Download as pdf or txt
Download as pdf or txt
You are on page 1of 108

1

SADRAJ
PRIMENA RAUNARA I......................................................................................................................3
UVOD U ORGANIZACIJU RAUNARA ..............................................................................................3
Kodiranje i dekodiranje informacija.........................................................................................................4
Memorija...................................................................................................................................................4
Centralna procesna jedinica......................................................................................................................5
Generator taktnog signala.........................................................................................................................6
Ulazno-izlazne (I/O) jedinice ...............................................................................................................7
Organizacija mikroraunara......................................................................................................................7
ELEMENTI RAUNARSKE ARITMETIKE........................................................................................9
Binarni, oktalni i heksadekadni brojni sistem...........................................................................................9
Prevoenje celih brojeva iz dekadnog u drugi brojni sistem..............................................................10
Prevoenje decimalnih brojeva iz dekadnog u neki drugi brojni sistem............................................11
Prevoenje izmeu binarnog, oktalnog i heksadekadnog brojnog sistema ........................................12
Binarno kodirani dekadni brojevi ...........................................................................................................14
Osnovne raunske operacije u pozicionom brojnom sistemu.................................................................14
Svoenje oduzimanja na sabiranje uz pomo komplementa ..................................................................16
Celi brojevi u raunarima i raunske operacije sa njima........................................................................19
Realni brojevi u raunaru........................................................................................................................21
Ogranienja pri registrovanju realnih brojeva....................................................................................26
Raunske operacije sa realnim brojevima ..........................................................................................27
LOGIKA KOLA....................................................................................................................................29
Bulova algebra........................................................................................................................................29
Osnovna logika kola .............................................................................................................................31
Sloena logika kola i Bulove funkcije ..................................................................................................32
Sinteza logikih kola zadate nemene......................................................................................................32
Osnovna kola u raunarskim sistemima ................................................................................................33
Tree logiko stanje................................................................................................................................33
Dekoder...................................................................................................................................................34
Dekoder 1 od 2
n
..................................................................................................................................34
Koder ......................................................................................................................................................36
Koder prioriteta...................................................................................................................................36
Multiplekser............................................................................................................................................37
Demultiplekser........................................................................................................................................39
Binarni sabira........................................................................................................................................40
Bistabilna kola (flip-flop) .......................................................................................................................41
R-S flip-flop........................................................................................................................................41
Registri....................................................................................................................................................44
Statiki registri....................................................................................................................................44
MIKRORAUNAR..................................................................................................................................47
MODEL MIKROPROCESORA............................................................................................................49
STANDARDNA ARHITEKTURA MIKROPROCESORA.................................................................58
UVOD.....................................................................................................................................................58
UPRAVLJAKA JEDINICA.................................................................................................................58
ARITMETIKO - LOGIKA JEDINICA I AKUMULATOR.............................................................58
REGISTRI OPTE NAMENE...............................................................................................................61
ADRESNI REGISTRI ............................................................................................................................61
MODEL MIKROPROCESORA M6800................................................................................................62
MEMORIJA..............................................................................................................................................67
UVOD.....................................................................................................................................................67
MEMORIJA ROM.................................................................................................................................67
2
NAINI ADRESIRANJA........................................................................................................................69
UVOD.....................................................................................................................................................69
NAINI ADRESIRANJA ZA MIKROPROCESOR M6800 ...............................................................69
Ukljuno adresiranje i adresiranje akumulatora .....................................................................................70
Usputno adresiranje ................................................................................................................................71
Direktno i direktno proireno adresiranje...............................................................................................72
Indeksno adresiranje ...............................................................................................................................73
Odnosno (relativno) adresiranje .............................................................................................................74
ULAZNO-IZLAZNI (U/I) PRENOS.......................................................................................................75
UVOD.....................................................................................................................................................75
ORGANIZACIJA PROGRAMIRANOG U/I PRENOSA....................................................................75
TIPOVI PROGRAMIRANOG U/I PRENOSA......................................................................................76
Postupak prozivanja (Polling).................................................................................................................77
PREKIDNI U/I PRENOS.........................................................................................................................78
UVOD.....................................................................................................................................................78
ORGANIZACIJA PREKIDNOG SISTEMA ZA MIKROPROCESOR M6800................................81
UVOD.....................................................................................................................................................87
ORGANIZACIJA DIREKTNOG PRISTUPA MEMORIJI (DMA)...................................................87
ORGANIZACIJA DMA ZA MIKROPROCESOR M6800..................................................................90
Direktni pristup memoriji zaustavljanjem procesora..............................................................................90
Direktan pristup memoriji kraom ciklusa .............................................................................................90
Direktan pristup memoriji multipleksiranjem operacija MPU/DMA....................................................90
PREGLED SKUPA INSTRUKCIJA (NAREDBI) I ASEMBLER......................................................92
UVOD.....................................................................................................................................................92
OSNOVNI POJMOVI ............................................................................................................................92
ASEMBLER ZA MIKRORAUNAR NA OSNOVI MIKROPROCESORA M6800..........................94
ULAZNO - IZLAZNI (U/I) MEUSKLOPOVI....................................................................................97
UVOD.....................................................................................................................................................97
U/I MEUSKLOP PIA ZA M6800 .......................................................................................................99
SERIJSKI U/I MEUSKLOP..............................................................................................................102
Prenos podataka na daljinu ...................................................................................................................104
DIGITALNO - ANALOGNI I ANALOGNO - DIGITALNI KONVERTORI.................................105
SOFTVER REALNOG VREMENA.....................................................................................................106

3
PRIMENA RAUNARA I
(II godina)

UVOD U ORGANIZACIJU RAUNARA

Prvi digitalni raunari su se pojavili poetkom 50-tih godina sa zadatkom da ubrzaju i olakaju
kompleksne proraune u tehnici i nauci i obradu velike koliine podataka u biznisu i administraciji. Po
dimenzijama bili su ogromni a u pogledu mogunosti skromni.
Zahvaljujui pojavi mikroprocesora poetkom 70-ih godina zapoela je raunarska revolucija
tj. veoma brz napredak u tehnologiji proizvodnje raunarskih elemenata, arhitekturi i performansama
raunara kao i njihovoj primeni. Jednostavno reeno raunari su sve manji, a istovremeno moniji a
oblast primene se od prorauna i obrade podataka proirila na analizu i projektovanje procesa u tehnici,
raunarsku grafiku, akviziciju (prikupljanje) i obradu merenja, upravljanje aparatima i procesima,
vetaku inteligenciju itd.
Klasina organizacija raunara prikazana je na slici 1. Osnovni funkcionalni delovi jednog
raunara predvienog za proraune ili obradu podataka su: ulazna i izlazna jedinica, centralna i
periferna memorija, kontrolna (upravljaka) i aritmetiko-logika jedinica koje zajedno ine
centralnu procesnu jedinicu (CPU). Mikroraunar ili personalni raunar se karakterie malom
veliinom i niskom cenom, a kao centralnu procesorsku jedinicu ima mikroprocesor (P).


IZLAZNA
JEDINICA
KONTROLNA
JEDINICA (CU)
CENTRALNA
MEMORIJA (CM)
PERIFERNA
MEMORIJA (PM)
podaci
program
rezultati
CENTRALNA PROCESNA
JEDINICA (CPU)
ULAZNA
JEDINICA
ARTMETIKO
LOGIKA JEDINICA (ALU)



Sl.1.1. Organizacija raunara za obradu podataka


Fizike komponente raunara (oprema) ine hardver (hardware). Sama oprema bi bila
beskorisna bez instrukcija ili naredbi (komandi) koje iz memorije pribavlja, a zatim aktivirajui
odreene hardverske elemente, izvrava centralna procesna jedinica.
Niz instrukcija ini program koji se pre izvrenja mora nalaziti u memoriji raunara. Program
omoguuje na primer, izvoenje nekog kompleksnog prorauna na raunaru. U programu se manipulie
4
informacijama koje nazivamo podaci. U nekom inenjerskom proraunu na primer, to su neophodni
brojni podaci. Razliiti programi ine programsku podrku ili softver (software).
Instrukcije koje CPU prepoznaje zovu se mainske instrukcije i deo su nekog mainskog
programa. Mainski program je teko razumljiv za korisnika i pravljenjem mainskih programa
sistemskim mainskim programiranjem bavi se samo mali deo korisnika koji su strunjaci za bazni
softver. Da bi se olakao problem programiranja pri reavanju razliitih praktinih problema na
raunaru odnosno formiranju aplikativnog softvera, formulisani su vii programski jezici kao to su
danas BASIC, FORTRAN, PASCAL, C, C++ itd. koji su mnogo blii oveku ali ih ne razume raunar.
Zato je neophodan poseban softver-prevodilac (compiler) koji prevodi program koga je korisnik
napisao u viem programskom jeziku u raunaru blizak mainski program. Iz jedne instrukcije u viem
programskom jeziku pri prevoenju (compiling) nastaje itav niz mainskih instrukcija.
Svoj program i podatke korisnik unosi u raunar preko ulazne jedinice ili ureaja

(input unit,
input device) kao to je tastatura. Instrukcije i podatke iz ulazne jedinice prihvata CPU i alje ih u
odreene memorijske lokacije. Kontrolna jedinica (CU) koja kontrolie i sinhronizuje rad svih ostalih
delova raunara uzima jednu po jednu instrukciju iz memorije i poto je prepozna ili dekodira
(deifruje) izvrava je. Primeri instrukcija su: sabiranje dva broja, unos podataka preko ulazne jedinice,
izlaz rezultata za korisnika preko izlazne jedinice ili ureaja (output unit, output device). U toku
izvravanja instrukcije, CU generie niz upravljakih naponskih signala - kontrolni signali koje alje
odgovarajuim hardverskim elementima (pune linije na sl.1.).

Kodiranje i dekodiranje informacija

Informacije koje raunar pamti i obrauje (podaci i instrukcije) su interno u binarnom obliku tj.
matematiki posmatrano, u obliku nizova nula i jedinica. Tako je najmanja jedinica informacije u
raunaru jedna nula ili jedna jedinica i naziva se bit. Fiziki, bit se u raunaru realizuje preko dva
razliita elektrina stanja pomou odgovarajuih hardverskih elemenata (diode, tranzistori, magnetska
jezgra). Tako ako je neki element na viem od dva nivoa napona on realizuje binarno 1, a ako je na
niem nivou napona onda realizuje binarno 0, ili magnetski tok u jednom smeru realizuje 1, a u
suprotnom smeru 0. Kaemo da su informacije u raunaru binarno kodirane pa su neophodni
odgovarajui hardverski elementi i softver za prevoenje-kodiranje ulaznih informacija iz izvornog
(source) oblika ili koda u binarni ili mainski oblik ili kod (binary code, mashine code), koga razume
raunar. Naime, korisnik unosi svoj program i podatke u obliku teksta i dekadnih brojeva (izvorni oblik)
koji se radi smetanja u memoriju moraju binarno kodirati. Hardver za binarno kodiranje ulaznih
informacija je u sklopu ulazne jedinice.
Da bi izlazne informacije (napr. rezultati) bile razumljive za korisnika, neophodan je obrnut
proces - dekodiranje internih binarnih informacija (u tekst i dekadne brojeve). Hardver za dekodiranje
obezbeuju izlazne jedinice.

Memorija

Instrukcije i podaci se uvaju u centralnoj ili operativnoj memoriji (CM) koja prestavlja niz
lokacija za pamenje jednake veliine. Memorijskim lokacijama se pristupa tj. one se nalaze pomou
adrese, kaemo da je centralna memorija adresibilna. Grupa bitova koja se uva u jednoj lokaciji
predstavlja jednu celinu (podatak ili deo podatka, instrukcija ili deo instrukcije). Kod mikroraunara, to
je grupa od 8 bitova i ona se naziva bajt (byte).
I adrese memorijskih lokacija je neophodno pamtiti. Prostor za pamenje adrese, tj. duina adrese
(broj bitova u adresi) definie maksimalnu adresibilnu memoriju ili adresni prostor tj. maksimalnu

alternativno, program i podaci se unose iz periferne memorije o kojoj e biti kasnije rei
5
centralnu memoriju raunara. Na primer, kod najmanjih mikroraunara - 8 bitni mikroraunari - duina
adrese je dva bajta, tj. 16 bitova pa najvea mogua adresa predstavlja najvei 16-to cifreni binarni broj

( ) 1111111111111111 2 1 65535
2
16
= =

odnosno maksimalan broj adresa (adresni prostor) s obzirom da on ukljuuje i nultu adresu je:

( )
2 1 1 2 65536
16 16
+ = =

Jedinica memorije 1KB (kilobajt) prestavlja 2
10
=1024 bajtova pa se umesto 65536 lokacija
odnosno bajtova kae 64KB. Dakle maksimalna centralna memorija 8-bitnih raunara je po pravilu
64KB. Tanije reeno, moe se instalirati i vea memorija ali pri izvoenju nekog programa na
raspolaganju je ne vie od 64KB (od toga jo treba oduzeti deo koji pripada ROM memoriji, to se vidi u
daljem tekstu).
Vee jedinice kapaciteta memorije su megabajt (MB) i gigabajt (GB):

1 2 2
1 2 2
10 20
10 20
MB KB B
GB MB KB
= =
= =


Centralna memorija je podeljena na ROM (Read Only Memory) u kojoj se trajno uvaju
neophodni programi za startovanje i osnovne funkcije raunara i u koju korisnik ne moe da upisuje
svoje podatke ili programe i na RAM (Random Access Memory) koja je namenjena pamenju
korisnikovih podataka i programa. RAM i ROM se razlikuju po izvedbi i RAM je izbrisiv (brie se
sadraj memorije posle iskljuenja napoja) a ROM permanentan ili neizbrisiv.
Za trajno uvanje korisnikovih programa i podaka koristi se periferna memorija (PM). Slino
ROM-u, permanentna je, ali se hardverski razlikuje od ROM-a i predstavlja magnetski medijum nanet
na odgovarajuu podlogu. Primeri periferne memorije su: disketa (floppy - disk) i fiksni disk (hard -
disk).
Za razliku od centralne memorije, periferna memorija nije direktno adresibilna tj. CPU ne moe
na osnovu adrese da pristupi pojedinom podatku. Zato je neophodno da se iz periferne memorije podaci i
program pre obrade prenesu u centralnu memoriju. S obzirom da nije adresibilna, periferna memorija
moe u principu da bude neograniena. Danas se ve koriste hard diskovi sa vie gigabajta memorija.

Centralna procesna jedinica

Centralnu procesnu jedinicu (CPU) ine aritmetiko logika jedinica (ALU) i kontrolna jedinica
(CU). Kod mikroraunara ta dva dela su hardverski objedinjena u mikroprocesor. U ALU se izvode
elementarne aritmetike i logike operacije. Za prihvatanje operanada i rezultata operacije slui u ALU
specijalni registar koji se zove akumulator (ACC). Termin registar oznaava lokaciju koja ima posebnu
namenu, pa za razliku od obine memorijske lokacije moe da ima i dodatne mogunosti kao to su
pomeranja svih bitova u registru u levo ili u desno, poveanje ili smanjenje sadraja registra za 1 itd.
Po pravilu, u akumulatoru se pre izvrenja neke binarne operacije nalazi prvi operand, a po
izvrenju operacije rezultat. Pored toga ACC slui i kao prihvatni registar pri unoenju podataka (podaci
u uem smislu i programi) preko ulazne jedinice. Naime prenos podataka do CM ide preko ALU tj.
akumulatora; (mada postoji i direktan prenos bez uea P (DMA-Direct Memory Assess), kada se
podaci unose sa periferne memorije.
Kapacitet akumulatora odreuje duinu podatka (broj bitova) koji se moe obraditi u jednom
koraku (izvravanjem jedne instrukcije) u ALU. Grupa bitova koja se kao celina obrauje u ALU pri
6
izvrenju neke elementarne aritmetike ili logike operacije (tj. koje moe da stane odjednom u ACC)
naziva se raunarska re. Kod 8-bitnih raunara ACC je 8-bitni registar pa je raunarska re=1B.
Raunarska re, tj kapacitet ACC moe da bude 2B tj. 16 bita i za takav raunar tj. mikroprocesor
kaemo da je 16-bitni. Kod 32-bitnog raunara, kapacitet ACC je 4B
Kontrolna jedinica (CU) upravlja izvrenjem programa. Instrukcije programa (mainske
instrukcije) su smetene u centralnoj memoriji u nizu susednih lokacija. CU pribavlja instrukcije na
osnovu adresa, pa je neophodan registar u kome e biti generisana adresa na kojoj se nalazi sledea
instrukcija koju treba pribaviti. To je programski broja (PC) u kome pre startovanja programa treba da
se nae adresa na kojoj je zapamena prva instrukcija u mainskom programu - poetna adresa. Prihvatni
registar za instrukciju u CU naziva se instrukcijski registar (IR). Svaki put kada pribavi sadraj nove
memorijske lokacije, tj. novu instrukciju ili deo instrukcije (poto, kao to emo kasnije videti instrukcija
moe da zahteva za memorisanje vie od jedne lokacije) sadraj PC registra se automatski poveava za 1
(inkrementira) tako da u njemu bude adresa sledee lokacije. Kaemo da se program izvrava
sekvencijalno, tj. jedna po jedna naredba u redosledu u kome su smetene u memoriji. Izuzetak od ovog
pravila je sluaj kada u toku izvravanje neke instrukcije skoka. Tada, ako je zadovoljen zadati uslov,
akciju treba preneti ne na sledeu nego na neku drugu naredbu u programu i sadraj PC se ne
inkrementira ve se u njega unosi adresa lokacije u kojoj se nalazi instrukcija na koju treba skoiti.
Da bi je CU mogla razumeti tj. deifrovati, mainska instrukcija mora imati strogo odreenu
formu. Ona se u optem sluaju sastoji iz dva dela: kod instrukcije ili operacija i adresni deo ili
operand. Kod instrukcije zahteva 1 bajt, a adresni deo jedan ili vie bajtova. Na primer, instrukciju za
storiranje u memoriju tj. preslikavanje sadraja ACC u odreenu memorijsku lokaciju, CU e je
prepoznati po prvom bajtu-kodu. Neophodna informacija o tome gde treba storirati sadraj ACC,
sadrana je u vidu 16-bitne adrese u sledea dva bajta instrukcije koji ine adresni deo. Tako, za
storiranje moe da izgleda kao:

1001101100000010
kod instrukcije
1.bajt adrese
2.bajt adrese
6 7 4 8 4
1 2 4 3 4
6 7 4 8 4
00000001

U toku izvravanja posmatrane instrukcije CU aktivira pomou kontrolnih signala ALU i RAM, a
rezultat je da e se tekui sadraj akumulatora nai u memorijskoj lokaciji sa adresom:

( ) ( ) 1000000001
2 10
513 =

Generator taktnog signala

Pri voenju izvravanja programa CU mora da vremenski sinhronizuje rad pojedinih delova
raunara. Zato je neophodan pravilan periodian naponski signal - taktni signal. U sklopu CU ili kao
posebna jedinica instaliran je generator takta (timer, clock) koji generie taktni signal. Idealizovano,
vremenski dijagram taktnog signala izgleda kao na sl.2.


logika vrednost 1
logika vrednost 0


Sl.1.2. Taktni signal
Duina periode taktnog signala kod razliitih mikroprocesora iznosi od nekoliko stotih delova
jedne s do stotinak ns i manje. Izvravanje neke mainske instrukcije (pribavljanje iz memorije,
7
dekodiranje i samo izvravanje) zahteva u optem sluaju nekoliko perioda i taj vremenski period se
naziva mainski ciklus. Reciprona vrednost periode taktnog signala predstavlja frekvenciju na kojoj
radi mikroprocesor. Manja perioda taktnog signala znai viu frekvenciju, tj. bri rad mikroprocesora.

Ulazno-izlazne (I/O) jedinice
Ulazno-izlazne jedinice (I/O) predstavljaju kao i periferna memorija periferne jedinice. One su
veza raunara sa spoljnim svetom pri emu binarno kodiraju ulaznu informaciju (ulazna jedinica) a
dekodiraju interni kod na izlazu (izlazna jedinica). Primer ulazne jedinice je tastatura. Tipine izlazne
jedinice kod jednog mikro raunara su monitor i tampa (printer)
Periferne jedinice nisu neposredno povezane sa CPU nego posredstvom meusklopa (interface)
pomou koga se reava problem razliite brzine rada CPU i I/O jedinice, kao i problem komuniciranja sa
CPU (prepoznavanje adresa, prijem i interpretacija kontrolnih signala). Tako je znaajna funkcija
interfejsa prihvatanje podataka ili baferovanje (buffer) pa interfejs po pravilu ima vie prihvatnih
registara koji ine bafer posmatrane I/O jedinice. Tipian primer je printer kao spora I/O jedinica.
Pojedinim I/O jedinicama, CU se obraa pomou njene adrese, odnosno tanije, adrese porta koji
predstavlja registar (vrata) kroz koga podaci ulaze u meusklop neke izlazne jedinice ili izlaze iz
meusklopa neke ulazne jedinice. Naime, u optem sluaju meusklop I/O jedinice ima vie portova.


Organizacija mikroraunara


Kao to smo videli, mikroraunar sadri svih est osnovnih delova digitalnog raunara, pri emu
CPU predstavlja mikroprocesor. Sve komponete mikroraunara predstavljaju integrisana logika kola
(IC) velikog (LSI) ili vrlo velikog (VLSI) stepena integracije (large scale integration, very large scale
integration) te imaju male dimenzije. Integrisano logiko kolo je specijalnom tehnologijom izraeno iz
malog poluprovodnikog kristala. Naziv integrisano oznaava da pojedine elektronske komponente u
logikom kolu (otpornici, kondenzatori,diode, tranzistori) nisu fiziki razdvojene ve predstavljaju
siune delove jedinstvenog kristala. Stepen integracije je utoliko vei ukoliko poluprovodniki kristal
datih dimenzija sadri vei broj elektronskih komponenata tj. ima sloeniju funkciju. Raunarske
komponente su ugraene u vidu ipova. ip predstavlja poluprovodniku ploicu smetenu u kuite sa
izvodima (prikljucima). Tako mikroprocesor predstavlja jedno VLSI logiko kolo izraeno na jednom
ipu.
Pojedini blokovi mikroraunara nisu, kako je to prikazano na sl.1.1. povezani meusobno
posebnim vezama (svako sa svakim) ve ih povezuju sabirnice ili magistrale (bus). Sabirnica
predstavlja skup linija kojima se prenose informacije izmeu pojedinih delova raunara, a to su: adrese,
podaci (u irem smislu, znai i instrukcije takoe) i kontrolni signali. Tipian nain povezivanja delova
kod mikroraunara dat je na sl.1.3. U stvari postoje tri, po funkciji, razliite sabirnice: sabirnica
podataka (data bus), adresna sabirnica (adress bus) i upravljaka sabirnica (control bus).









8


Sl. 1.3. ema veza pojedinih delova mikroraunara

Adresna sabirnica je jednosmerna i slui za slanje adresa memoriji ili perifernim jedinicama od
strane P. Jedna od jedinica prepoznaje svoju adresu i stupa u komunikaciju sa P. Adresna sabirnica
ima onoliko linija koliko bitova ima adresa, na primer 16 kod 8-bitnih raunara.
Sabirnica podataka je dvosmerna i slui za prenos podataka u oba smera (od P memoriji ili
izlaznoj jedinici i od memorije ili izlazne jedinice u P). Broj linija na sabirnici podataka je obino
jednak broju bitova u raunarskoj rei. Tako je data bus 8-bitnog raunara 8-linijski.
Upravljaka sabirnica slui za prenos upravljakih signala od P drugim delovima. Primer
upravljakog signala je R/W (read, write) signal ija jedinina vrednost znai da P eli podatak od
memorije (read), a nulta vrednost znai da P eli da upie (write) podatak u memoriju. Taktni signal
koji obezbeuje vremensku sinhronizaciju takoe je upravljaki signal. Mikroprocesor mora da dobije
povratnu informaciju od dela ili sklopa kome se obratio, da li je trenutno u stanju da izvri nalog ili je jo
zauzet izvravanjem prethodnog zadatka. Zato upravljaka sabirnica obuhvata i status signale ili signale
stanja kojima pojedini sklopovi alju informacije mikroprocesoru da li su spremni (logika vrednost 1)
ili ne (logika vrednost 0). Pojedinim sklopovima (tastatura na primer) data je mogunost da prekinu P
u njegovoj tekuoj aktivnosti pomou signala zahteva za prekid, pa upravljaka sabirnica ukljuuje i
liniju zahteva za prekid. Dakle neke linije upravljake sabirnice imaju smer od P ka ostalim delovima a
neke suprotan smer (linija stanja i linija zahteva za prekid).

Pitanja

Osnovni funkcionalni delovi digitalnog raunara.
ta ini hardver, a ta softver
Bit i bajt
ta je RAM i ROM
Razlika izmeu centralne (operativne) i periferne memorije
ta je uloga ALU (aritmetiko logike jedinice)
ta je uloga CU (upravljaka jedinica)
ta je uloga sabirnica

9
ELEMENTI RAUNARSKE ARITMETIKE

Digitalni raunar pamti i rauna sa brojevima u binarnom brojnom sistemu. Binarni brojni
sistem je, kao i nama najblii dekadni, jedan pozicioni brojni sistem s tim to za razliku od dekadnog
sistema u kome je osnova deset, u binarnom sistemu osnova je dva. Pozicioni oznaava da vrednost neke
cifre zavisi od njenog poloaja u broju, na primer u decimalnom broju 345.23 prva trojka vredi tri
stotine, a druga tri stota dela. Naime 345.23 predstavlja u stvari skraeni zapis sume

3 10 4 10 5 10 2 10 3 10
2 1 0 1 2
+ + + +



Za neki pozitivan broj:

a
n
a
n-1
a
n-2
. . . a
2
a
1
a
0
.a
-1
a
-2
(1)

decimalna taka

u pozicionom brojnom sistemu sa osnovom B (B 2) gde a
i
oznaava cifru, vai:

{ } a B
i
0 1 1 , , , L (2)


a a a a a a a B a B a B
a B a B a B
n n n
n
n
n


= + + + +
+ + +
1 1 0 1 2 1
1
1
1
0
0
1
1
2
2
L K L
K
.
(3)

Za dati primer dekadnog broja imaemo:

B a a a a a = = = = = =

10 3 4 5 2 3
2 1 0 1 2
; ; ; ; ;

Prvo cifarsko mesto sleva (cifra a
n
) najvie vredi i nazvaemo je najznaajnijom, a poslednja cifra je
najmanje znaajna.

Binarni, oktalni i heksadekadni brojni sistem

Za raunarsku aritmetiku, od interesa je binarni brojni sistem. Pri programiranju u mainskom
jeziku i u raunarskoj literaturi esto se koriste i oktalni (osnova je osam) i heksadekadni brojni sistem
(osnova je esnaest) pomou kojih se, kao to emo videti, u stvari skraeno prikazuju binarni kodovi.
Za binarni brojni sistem imamo:

{ } B a
i
= 2; , 01 (4a)

Za oktalni brojni sistem
{ } B a
i
= 8 0 1 2 7 ; , , , , L (4b)

Za heksadekadni brojni sistem

{ } B a A B C D E F
i
= 16 0 1 2 9 ; , , , , , , , , , , L (4c)

Slova A-F iz praktinih razloga zamenjuju cifre: 10-15
10

Bazu brojnog sistema naznaavaemo uz pomo indeksa, na primer:

1025
10
- dekadni broj
503.27
8
- oktalni broj
A01.B
16
- heksadekadni broj

Kako prevesti neki broj u nekom drugom brojnom sistemu u dekadni oblik?
Postupak se sastoji u primeni jednaine (3) i izraunavanju vrednosti sume u dekadnom brojnom sistemu.

PRIMER
Prevesti sledee brojeve u dekadni oblik:

a) 1100100.01
2

b) 317.5
8

c) 20AB.4
16


a) 1100100.01
2
= 12
6
+ 12
5
+ 02
4
+ 02
3
+ 12
2
+ 02
1
+ 02
0
+ 02
-1
+ 12
-2
= 64 + 32 + 4 + 0.25
= 100.25
10


b) 317.5
8
= 38
2
+ 18
1
+ 7 + 58
-1
= 207.625
10


c) 20AB.4
16
= 216
3
+1016+11+416
-1
= 8363.25
10


Kako reiti obrnut problem- iz dekadnog prei u neki drugi brojni sistem? Kao ideja se nemee
obrnut postupak tj. primena jedn. (3) zdesna ulevo. Na primer:

327
10
= 564+7 = 58
2
+08
1
+78
0
= 507
8


Taj postupak je meutim teak za primenu na velike decimalne brojeve pa se koriste sledei algoritmi:
Prevoenje celih brojeva iz dekadnog u drugi brojni sistem

Postupak se sastoji u uzastopnom deljenju polaznog broja a, osnovom B sistema u koji se broj
prevodi. Kada se a podeli sa B dobija se celobrojni rezultat a
1
i ostatak r
1
, koji predstavlja najmanje
znaajnu cifru p
1
. Deljenjem rezultata a
1
sa B dobija se a
2
i ostatak r
2
koji predstavlja drugu cifru zdesna
ulevo. Postupak se ponavlja sve dok rezultat deljenja ne postane manji od B, i on predstavlja
najznaajniju cifru p
n
. Kao rezultat dobijamo

a
10
(p
n
,...,p
2
p
1
)
B


PRIMER

Broj 335
10
prevesti u binarni, oktalni i heksadekadni oblik.


335:2
167 i ostatak 1
83 1
11
41 1
20 1
10 0 335
10
= 101001111
2

5 0
2 1
1 0


335:8
41 7
5 1 335
10
= 517
8


335:16
20 15
1 4 335
10
= 14F
16



Prevoenje decimalnih brojeva iz dekadnog u neki drugi brojni sistem

Prevoenje decimalnih brojeva sastoji se u posebnom prevoenju celobrojnog i decimalnog dela
broja. Zato emo dati metod za prevoenje pravih razlomaka (decimalan deo nekog broja).
Postupak se sastoji u uzastopnom mnoenju decimalnog dela prethodnog rezultata osnovom
novog brojnog sistema B. Mnoenje se prekida kada se pojavi nula kao rezultat ili kada se postigne
eljena tanost. Celobrojni delovi dobijenih proizvoda bie redom cifre broja u novom brojnom sistemu.

PRIMER

Broj 0.6875
10
prevesti u binarni oblik:

0. 6875 0.1011
2

1. 375
x2=

0. 75
x2=

1. 5
x2=

1. 0
x2=


Neki pravi razlomak, koji u obliku decimalnog broja ima u nekom brojnom sistemu konaan broj
cifara, u nekom drugom brojnom sistemu moe biti beskonaan periodian decimalan broj. Prevedimo,
na primer, dekadni broj 0.1 u binarni sistem:

0. 1 ( ) 0.000110011
678678
K
2

0. 2
0. 4
0. 8 Vidimo da je rezultat beskonaan periodian
1. 6 decimalan broj.
1. 2
0. 4
0. 8
1. 6
12
1. 2
.

U ovakvim sluajevima nemogu je taan prelaz iz jednog u drugi brojni sistem ve se unapred
definie tanost, tj. broj decimala rezultata. Pri tom se, radi smenjenja greke, poslednja traena
decimala poveava za jedan, ukoliko je sledea jednaka ili vea od polovine osnove B - pravilo
zaokruivanja.



PRIMER

Broj 0.93
10
prevesti u oktalni sa tanou od 4 decimale:

0. 93
x8
0.7341
8

7. 44
3. 52
4. 16
1. 28
2. 24

Neki decimalni broj koji je vei od 1 tj. ima i celobrojni deo, prevodi se u drugi brojni sistem tako
to se posebno prevodi celobrojni deo a posebno decimalni, opisanim postupcima.

PRIMER

Broj 173.93
10
prevesti u oktalni sistem sa tanou od etiri decimale.

173:8
21 5
2 5 173
10
= 255
8



U prethodnom primeru smo izraunali

0.93
10
0.7341
8


pa konano imamo

173.93
10
255.7341
8



Prevoenje izmeu binarnog, oktalnog i heksadekadnog brojnog sistema

Izmeu binarnog i oktalnog brojnog sistema postoji specijalan odnos jer je:

8 = 2
3

Slino, za osnove heksadekadnog i binarnog sistema vai:
Poto je peta decimala (2) manja od 4, po
pravilu zaokruivanja etvrta poslednja
traena decimala rezultata ostaje
nepromenjena.
13

16 = 2
4


Osobina, da je osnova jednog brojnog sistema jednaka celobrojnom stepenu osnove drugog
brojnog sistema omoguuje brz prelaz iz jednog u drugi sistem.
Neka, na primer, treba oktalni broj 317
8
prevesti u binarni. Poeemo od jednaine (3):

317
8
= 38
2
+ 18
1
+ 78
0


Svaku od cifara oktalnog broja moemo da prevedemo u trocifreni binarni broj (najvea cifra zahteva tri
binarne cifre). U posmatranom primeru:

3
8
011
2
; 1
8
001
2
; 7
8
111
2


Ako u sumu na desnoj strani oktalne cifre zamenimo ekvivalentnim trocifrenim binarnim brojevima i
smenimo 8 = 2
3
,

317
8
= (011)2
6
+ (001)2
3
+ (111)2
0
=
= (02
2
+ 12 + 1)2
6
+(02
2
+ 02 + 1)2
3
+ (12
2
+ 12 + 1)2
0
=
= 02
8
+ 12
7
+12
6
+02
5
+02
4
+12
3
+12
2
+12
1
+12
0
=
=
{{{
011001111
3 1 7
2
= 11001111
2

Zapaamo da se iz oktalnog prelazi u binarni broj jednostavnom zamenom svake oktalne cifre
ekvivalentnim trocifrenim binarnim brojem.
Uopte nije teko izvesti sledee pravilo: Ako izmeu dva brojna sistema B
1
i B
2
postoji veza:
B B n E
n
1 2
= ;

1
0
Iz sistema sa osnovom B
1
se prelazi u sistem sa osnovom B
2
tako to se svaka cifra u prvom
sistemu prevede u n-to cifreni broj u sistemu B
2
.

2
0
Iz sistema sa osnovom B
2
u sistem sa osnovom B
1
tako to se levo i desno od decimalne take
u broju sa osnovom B
2
formiraju grupe od po n cifara i zamene izraunatim vrednostima koje
predstavljaju cifre u sistemu B
1


PRIMER

Prevesti binarni broj 1011010.0001
2
u oktalni i heksadekadni oblik:


{{{ {{
1011010 000100
1 3 2 0 4
8
132 04 . .


{
1011010.0001
5
1
16
5 1
A
123 123
A.

Uoavamo da oktalni i heksadekadni oblik mogu da poslue za saeto prikazivanje binarnih
brojeva. Tako umesto datog binarnog broja moemo skraeno da piemo 5A.1
16
, to je oko etiri puta
krae. Binarni kod je lako reprodukovati:


}
}
}
0101
1010
0001
1011010.0001 5 1 A
14

Preostaje problem prevoenja izmeu oktalnog i heksadekadnog sistema. Kao ideja se namee prelaz
preko binarnog sistema kao intermedijalnog.

PRIMER

Prevesti broj 5043.12
8
u heksadekadni oblik

504312 2328
8
2 3 2 8
16
. . . 1011000100011 00101000
A
A
123123123 123123


Binarno kodirani dekadni brojevi

Dok je prelaz iz binarnog u oktalni ili heksadekalni oblik ili kod jednostavan to nije sluaj sa
konverzijom izmeu binarnog i dekadnog brojnog sistema. Da bi se ubrzalo binarno kodiranje pri
unoenju brojeva i dekodiranje (konverzija binarnog u dekadni oblik) pri izlazu rezultata , u depnim
kalkulatorima i kod digitalnih instrumenata esto se dekadni brojevi umesto da se prevedu u binarne
samo binarno kodiraju. Rezultat je BCD (Bynary Coded Decimal) dekadnog broja. Postoji vie naina
kodiranja ili vie BCD kodova i najpoznatiji je 8421 BCD kod. Analogno binarnom kodiranju oktalnih i
heksadekadnih brojeva, 8421 BCD kod nekog dekadnog broja se dobija jednostavno zamenom svake od
cifara u dekadnom broju etvorocifrenom binarnom vrednou.

PRIMER 2.8.

Formiraj 8421 BCD kod broja 8092
10



}
{
}
{
1000
0000
1001
0010
1000000010010010 8 0 9 2




PRIMER 2.9.

Dekodiraj BCD broj 10101111000

}}}
010101111000 578
5 7 8
10


Osnovne raunske operacije u pozicionom brojnom sistemu

U pozicionom brojnom sistemu sa bilo kojom osnovom B osnovne raunske radnje se obavljaju
potpuno analogno kao u dekadnom brojnom sistemu (B=10). Naime, umesto da se manipulie sa
desetkama pri "pamenju" i "pozajmljivanju" u toku sabiranja i oduzimanja, manipulie se osnovom B.
Uoimo analogiju kod sabiranja na sledeim primerima:


11 11 1 111
586
10
576
8
110111
2

+ 175
10


+ 173
8
+ 10111
2

15

761
10
771
8
1001110
2


Jedinice iznad cifara prvog sabirka oznaavaju prenos (carry) iz prethodnog sabiranja.
Pri oduzimanju u brojnom sistemu sa osnovom B10 ne pozajmljuje se sa prvog znaajnijeg
cifarskog mesta desetka, ve osnova B.

Primer:

7 2 5
16
1101
2

- 3 C D
16
- 110
2


3 5 8
16
111
2


Izvrimo sledee mnoenje paralelno u dekadnom i oktalnom brojnom sistemu:

46
10
x 37
10
56
8
x 45
8

322 346 46
10
= 56
8

+138 +270 37
10
= 45
8

1702
10
3246
8


Provera: 3246
8
=38
3
+28
2
+48+6=1702
10


Kako smo raunali: 56
8
x 5
8
=346
8
,

6 x 5=30=38+6

Znai 6 piem a 3 osmice pamtim tj. prenosim 3 na rezultat sledeeg mnoenja:

5 x 5=25 ; 25+3=28=38+4

Dakle, 4 piem a 3 prenosim.

Za raunarsku aritmetiku od interesa je mnoenje u binarnom sistemu. Na primer:

11011 x 1011
11011
11011
11011
100101001

S obzirom da su cifre binarnog sistema 0 i 1 mnoenje se svodi na pravilno potpisivanje prvog inioca
(mnoenje nulom znai pomeranje dva mesta ulevo) i sabiranje, drugim reima u binarnom brojnom
sistemu mnoenje se svodi na sabiranje.
Deljenje u binarnom brojnom sistemu se svodi na uzastopno oduzimanje delioca.

16


Uoimo to na primeru:

100101001 : 11011 = 1011
-11011
101000
-11011
11011
-11011


Svoenje oduzimanja na sabiranje uz pomo komplementa

Komplement se koristi u kompjuterskoj aritmetici za koju je karakteristino da svi brojevi imaju
jednaku duinu (isti broj cifara) jer se pamte u jednakim memorijskim lokacijama. Poiemo dakle od
pretpostavke da svi brojevi imaju isti broj cifara, koji je uz to bar za jedan vei od broja cifara u
najveem po apsolutnoj vrednosti broja. Neka na primer posmatramo u dekadnom brojnom sistemu skup
pozitivnih celih brojeva koji su najvie etvorocifreni. U skladu sa postavljenim uslovom sve brojeve
emo posmatrati kao petocifrene. Tako e oni kao najznaajniju cifru imati nulu koja, kao to emo
kasnije videti, u stvari predstavlja znak +. Na primer brojeve 1280
10
i 452
10
emo posmatrati u obliku:

01280 ; 00452

U brojnom sistemu sa osnovom B definie se B i (B-1) komplement nekog broja.
(B-1) komplement nekog broja se dobija kada se svaka od cifara u datom broju zameni njenom
dopunom do B-1.
Na primer 9 komplement broja 00452
10
bie: 99547
B komplement nekog broja, koga emo oznaavatii malim slovom c u indeksu dobija se kada se
na najmanje znaajnu cifru (B-1) komplementa doda jedinica.


Na primer:

(00452)
c
=99547=99548
+1

Pokazaemo sada da se problem oduzimanja: 01280-00452 moe reiti sabiranjem

01280+(00452)
c


Zaista:

01280 01280
-00452 +99548
00828 100828

Dobijamo korektan rezultat ako ignoriemo prenos sa najznaajnijeg cifarskog mesta.

17
Uopte, vai da se oduzimanje pozitivnog broja y od pozitivnog broja x u brojnom sistemu sa
osnovom B moe zameniti sabirnajem broja x i komplementa broja y (uz ignorisanje konanog prenosa).
Formalno emo pisati

x - y = x + (-y) = x + y
c
(5)

Iz (5) sledi vana relacija:

-y y
c
(6)

gde operator znai ono na levoj strani zamenjujemo onim sa desne strane.
Negativni brojevi se zamenjuju (prikazuju) B-komplementom odgovarajueg pozitivnog broja.
Dakle u aritmetici sa komplementima, negativni brojevi se prikazuju preko B-komplemeta. Kao
rezultat, na najznaajnijem cifarskom mestu figurie cifra (B-1) koja tako prestavlja u stvari znak -.

Na primer:

- 00452 99548

Reimo sada u aritmetici sa komplementima problem: 452-1280


U skladu sa (5):

00452 - 01280 00452 + (01280)
c

(01280)
c
= 98719 = 98720
+ 1


00452
+98720
99172 Rezultat je negativan!

Kao negativan, rezultat u stvari predstavlja komplement odgovarajueg pozitivnog broja. Koji je
to broj?

-y y
c
= 99172 ; y=?

Ako relaciju (6) formalno primenimo na (-y):

-(-y) (-y)
c
(y
c
)
c


Kako je -(-y) = y, sledi:

y(y
c
)
c
(7)

Dakle, ako imamo (y
c
) onda broj y dobijamo kao komplement komplementa.
U naem primeru:

99172
c
= 00827 = 00828
+1
18
Dakle 99172 predstavlja u stvari broj -00828 to je taan rezultat.

U kompjuterskoj aritmetici se koristi opisan postupak zamene oduzimanja sabiranjem tj.
negativni brojevi u raunaru su prikazani u obliku 2 komplementa odgovarajuih pozitivnih brojeva.
Kako se radi o binarnom brojnom sistemu, znai da se sve binarne raunske operacije u raunaru svode
na sabiranje!. To u mnogome pojednostavljuje hardversko reavanje aritmetikih operacija-neophodan je
samo digitalni elektronski sklop (logiko kolo) za sabiranje. Da budemo precizniji, neophodna su i
jednostavna kola za komplementiranje i pomeranje svih bitova u broju za jedno mesto ulevo ili udesno
(shift operacija).



PRIMER

Kako izgledaju operacije
e=a+b ; g=a-b ; i=e-g
u raunaru gde su : a=24
10
; b=49
10
, ako se za pamenje celih brojeva koriste lokacije duine 1 bajta?

24
10
= 11000
2
; 49
10
= 110001
2


Tako e u raunaru biti:

a= 0 0011000 ; b=0 0110001

Nule na mestu najznaajnijeg bita govore o tome da su brojevi pozitivni.

e= a+b = 00011000
+ 00110001
e = 01001001 (e>0)

g=a-b = a+b
c
b
c
= (00110001)
c
=11001110
b
c
= 11001111 +1



g=00011000
+11001111
g=11100111 (g<0)

-g=(11100111)
c
= 00011000 = 00011001
+1
g=-(2
4
+2
3
+1) = -25
10


i= e-g = e+g
c


g
c
=(11100111)
c
= 00011000 = 00011001
+1
i= 01001001
+00011001
i= 01100010 (i>0)

19
i= 2
6
+2
5
+2 = 98
10


Celi brojevi u raunarima i raunske operacije sa njima

Za pamenje oznaenih celih brojeva (integer) u mikroraunarima u normalnom radu se angauju
(pri obradi programa napisanih u viim programskim jezicima) dva bajta odnosno dve memorijske
lokacije.


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0



znak broja

Sl.2.1 Registrovanje celih brojeva

Bitove u dvobajtnom broju oznaavaemo sa b
0
- b
15
. Pri tome, bitovi b
0
- b
7
pripadaju manje znaajnom
bajtu (Low byte), a bitovi b
8
- b
15
znaajnijem bajtu (High byte).
Najznaajniji bit b
15
uva informaciju o znaku broja:

b
za znak
za znak
15
0
1
=

`

-
+

Tako se oznaeni celi celi brojevi (integer) pamte (kodiraju) u vidu 2 - komplementa.



PRIMER

Prikai sadraj memorijskih lokacija u kojima su smeteni brojevi
x = 1285
10
; y=-1285
10
= -x.

Postupkom datim u pogl. 2.1.1. dobijamo binarni oblik broja x:
1285
10
= 10100000101
2


U dva bajta memorije:
x=0000010100000101

ili skraeno uz pomo heksadekadnog prikaza (pogl. 2.1.3.):

x=0505
16


Za y=-x imamo:

y=(0000010100000101)
c

y=1111101011111010=1111101011111011
+1
Rezultat je praktinije traiti u heksadekadnom sistemu:
20

y=(0505
16
)
c
=FAFA = FAFB
16

+1

Kako je kapacitet memorijske lokacije ogranien, postavlja se pitanje koliki je najvei, a koliki
najmanji ceo broj koji se moe zapamtiti (registrovati).

Najvei ceo broj x
max
bie:
x
max
=0111111111111111 = 1000000000000000 - 1

x
max
= 2
15
- 1= 32768 - 1 = 32767

To je relativno mali broj i ako se u nekom problemu pojavljuju vei celi brojevi, kako prevazii to
ogranienje ?

U viim programskim jezicima (BASIC, FORTRAN, PASCAL, C) postoje komande koje kao
rezultat imaju angaovanje duplo due lokacije (4 bajta) za registrovanje celih brojeva (long integer).
Tada se gornja granica pomera na:

x
max
= 2
31
- 1 = 2147480000

to moe biti dovoljno. Ukoliko i to ne reava problem, preostaje da se celi brojevi u raunaru obrauju
kao realni, ime se znaajno poveava gornja granica. To se meutim, kao to emo u narednom
poglavlju videti, mora platiti gubitkom tanosti u toku raunskih operacija.
Najmanji ceo broj koji se moe registrovati u dvobajtnoj lokaciji, x
min
(veliki po apsolutnoj
vrednosti negativan broj ) nije jednak -x
max
iz razloga to se negativni brojevi registruju u vidu 2 -
komplementa. Tako broj

x=1111111111111111=FFFF
16


nije, to se moe u prvi mah pomisliti, traeni najmanji broj, on ustvari predstavlja broj -1 jer je:

(FFFF)
c
=0001
16


Najmanji broj u raunaru ima oblik:
1000000000000000=8000
16

pa je:
x
min
=- (8000
16
)
c
=-7FFF=-8000
16

+1
x
min
=-8 16
3
= -2
3
2
12
=-2
15


x
min
=-32768

to se raunskih operacija tie, one se svode na sabiranje kao to smo to u prethodnim
poglavljima videli. Deljenje, kao to znamo, nije definisano na skupu celih brojeva i po pravilu se u
raunaru kao rezultat delenja dva cela broja, tzv. celobrojno deljenje, uzima ceo broj koji
predstavlja celobrojni deo tanog rezultata.


21
PRIMER

ta e se u raunaru sa jednobajtnom memorijskom lokacijom dobiti pri izvoenju sledeih
operacija:

j=a b ; k=b:a

gde su a=24
10
; b=49
10
. (vidi primer 2.10)

Najvei oznaen ceo broj u 1 - bajtnoj lokaciji e biti:
x
max
=2
7
-1 = 127

Kako je:
24 49>127

doi e do aritmetikog prelivanja, odnosno raunar nee moi da dobije rezultat, o emu korisnik
dobija odgovarajue upozorenje (aritmetic overflow).

Pri delenju, 00110001:00011000 postupak se prekida, poto se dobija celobrojni deo
rezultata:

110001 : 11000 = 10
- 11000
000001

Dakle rezultat e biti:
k=10
2
= 2
10

to predstavlja celobrojni deo tanog rezultata, 2.041666...



Realni brojevi u raunaru

Da se podsetimo najpre da se u dekadnom sistemu realni brojevi mogu zapisati u dva oblika:
oblik sa nepokretnom decimalnom takom (fixed point number) i eksponencijalni oblik ili oblik sa
pokretnom decimalnom takom (floating point number).

Na primer:
0 0257 2 57 10 0 0257 10 0 00257 10
2 0 1
. . . . ...
oblik sa fiksnom
dec. tackom
oblik sa pokretnom
dec. tackom
123 1 2 4 3 4
= = = =



Jedan od bekonano mnogo oblika sa pokretnom decimalnom takom, usvojen je kao standardni i zove
se normalizovani eksponencijalni oblik.
U posmatrnom primeru to je:
0.257 - 10
-1


gde se predeksponencijalni faktor 0.257, koji predstavlja pravi razlomak ija je prva decimala razliita od
nule, naziva mantisa, a stepen osnove, -1 naziva se eksponent.

22
Uopte, u nekom pozicionom brojnom sistemu sa osnovom B, normalizovana eksponencijalna
forma broja x je:

x x B
m
x
e
= (8)
0.1 x
m
<1 (8a)

gde x
m
oznaava mantisu, a x
e
eksponent.

Na primer:
-1011.01
2
=-0.101101
2
2
100
; x
m
=0.101101
2
; x
e
=100
2


0.00731
8
=0.731
8
8
-2
; x
m
=0.731
8
; x
e
=-2
8


U oba primera smo baze sistema 2 i 8 ostavili u dekadnom obliku umesto da ih prikaemo u
odgovarajuem brojnom sistemu:

2=10
2
; 8=10
8


da bi bilo uoljivije o kojoj se osnovi radi.
Naime, u bilo kom brojnom sistemu, osnova sistema kao broj, ima isti kod:

B=10
B


10=10
10
; 2=10
2
; 8=10
8
; 16=10
16
. . .

Vaan pojam vezan za realne brojeve je broj znaajnih cifara u broju, i on je u direktnoj vezi sa
tanou informacije koju sadri posmatrani broj. Neka smo, na primer, na analitikoj vagi, za koju
znamo da ne moe da registruje mase manje od 10
-4
g, izmerili 1 g neke supstance. Za masu supstance x
pisaemo: x=1.0000 g, a ne x=1 g, da bi naglasili tanost informacije koju vaga daje. Ako smo pak
izmerili 0.0205 g, neemo to pisati kao 0.02050, ve samo sa etiri decimale, y=0.0205 g jer nula na
petoj decimali nije rezultat merenja. Sve cifre u broju x su znaajne cifre (ukupno 5), dok broj y ima
samo 3 znaajne cifre, poslednje tri. Naime, nule na poetku broja (leve nule) ne predstavljaju
znaajne cifre, dok su nule na kraju broja (desne nule) znaajne, kao i sve nule izme|u dve
znaajne cifre.
Zato leve nule nisu znaajne bie jasno ako masu 0.0205 g prikaemo u razliitim jedinicama:

0.0205 g=20.5 mg=0.0000205 kg . . .

Oigledno, njihov broj varira zavisno od odabrane jedinice mere, te ne predstavlja informaciju o tanosti
merenja (koja je nezavisna od odabrane jedinice mere).
Treba zapaziti da prema datom pravilu, u normalizovanom eksponencijalnom broju, sve cifre
decimalnog dela mantise predstavljaju znaajne cifre.
Na primer:
y=0.205 10
-1
g=0.205 10
2
mg=0.205 10
-4
kg

U kompjuterskoj aritmetici, broj znaajnih cifara daje informaciju o tanosti sa kojom je neki
realan broj registrovan u memoriji.
Realni brojevi se u memoriji raunara uvaju u normalizovanom eksponencijalnom binarnom
obliku. Dakle memorijski prostor za neki realan broj ima dva dela: deo za mantisu i deo za eksponent.
Standardna organizacija registrovanja realnog broja data je na sl.2.1.

23



Znak eksponenta
1.bajt
Znak broja
2.bajt
3.bajt 4.bajt
x
e
x
m


Sl.2.2. Registrovanje realnih brojeva

Realan broj u memoriji zauzima etiri bajta, odnosno kod mikroraunara to su etiri memorijske
lokacije. Prvi bajt slui za pamenje eksponenata i za njega vae pravila za pamenje celih brojeva:
Najznaajniji bit predstavlja znak eksponenta, a negativni eksponenti se uvaju u obliku 2 -
komplementa.
Prvi (najznaajniji), od ukupno 24 bita koliko je rezervisano za mantisu, uva informaciju o
znaku broja, a ostali predstavljaju decimale mantise. Pri tome treba imati u vidu na osnovu definicije
normalizovane eksponencijalne forme (8, 8a) da ako je najznaajniji bit jednak nuli (pozitivna mantisa),
onda bit iza najznaajnijeg mora biti jednak jedinici.
Za negativne brojeve u prostoru za mantisu smeta se 2 - komplement mantise.
Uporedimo sada interne ili mainske kodove brojeva:
-4 , ceo broj
-4.0 , realan broj
Interni kod ( oblik u kome je broj u memoriji) celog broja -4 dugaak je 16 bitova (2 memorijske
lokacije):
-4=-100
2
=-0000000000000100=-0004
16

-4(0004
16
)
c
=FFFC
16
=1111111111111100

Da bi smo odredili izgled realnog broja -4. u memoriji, prikazaemo ga u normalizovanom
eksponencijalnom binarnom obliku.
-4.=-100.=-0.12
11


Prvi bajt internog koda je eksponent:
x
e
=00000011=03
16


Tri bajta predstavljaju mantisu x
m
, a poto je broj negativan:
x
m
22 nule
c
=
|
\

|
.
| 0100000...0
1 2 4 3 4
=(400000
16
)
c
=BFFFFF=C00000
16


Dakle, izgled broja -4. u memoriji je:


{
= 4 03 00000
16
.
x
x x x e m e m
C
12 4 3 4 1 2 4 3 4 12 4 3 4
00000011110...0


PRIMER

a) Brojeve x=-E1C.07
16
i y=1287.59
10
prevesti u oktalne sa tanou od 4 decimale i potom ih sabrati.

b) Prikazati izgled rezultata u memoriji raunara.

24
a) Prvi broj emo prevesti u oktalni posredstvom binarnog oblika:

E1C.07
16
111000011100.00000111
2
7034.016
8


x=-7034.016
8

Za drugi broj posebno konvertujemo celobrojni, a posebno decimalni deo.


1287:8 1287
10
=2407
8

160 7
20 0
2 4



0. 59 x

8 Kako je peta decimala 5, vea od polovine osnove, po
4. 72 pravilima zaokruivanja:
5. 76 0.59
10
=0.4561
8

6. 08
0. 64
5. 12

y=2407.4561
8

x+y=-7034.016+2407.4561
Oduzimamo manji od veeg broja

7034.016
- 2407.4561
4424.3377
8


Rezulatat je:
z=x+y=-4424.3377
8


b) -z=4424.3377=100100010100.011011111111

Broj ima ukupno 8x3=24 binarne znaajne cifre. U prostoru od 3 bajta, predvienom za znak
broja (prvi bit) i decimale mantise (preostala 23 bita) ima mesta za 23 binarne znaajne cifre, tj. broj z se
nemoe tano prikazati u memoriji. Neophodno je zameniti ga 23-bitnim brojem, i to se moe izvesti:
- odsecanjem, tj. jednostavnim odbacivanjem vika bitova
- zaokruivanjem na 23 znaajne cifre, ime se smanjuje greka







odsecanjem
zaokruivanjem
-z= 100100010100.01101111111|1
100100010100.01101111111
100100010100.01110000000

Pri zaokruivanju, poto je najznaajniji odbaeni bit jednak 1, (polovina osnove) na poslednju znaajnu
cifru dodaje se 1.
25
Iz oblika sa fiksnom decimalnom takom prelazimo u normalizovani eksponencijalni oblik, da bi odredili
mantisu i eksponent.

z =

0.10010001010001101111111
0.10010001010001110000000
1100
1100
2
2
( )
( )
odsecanje
zaokruzivanje


z
e
=1100=00001100=0C
16


Poto je broj negativan, u prostoru za mantisu smeta se 2-komplement mantise, koga moemo odrediti
uz pomo heksadekadnog koda:

( )
( ) ( )
( ) ( )
z
48A37F B75C81 odsecanje
48A380 B75C80 zaokruzivanje
m c
c
c
16 16
16 16
=
=



Konano, izgled broja z u memoriji je u heksadekadnom prikazu:

) nje zaokruziva ( 0CB75C80


) odsecanje ( 0CB75C81
: z



PRIMER

Dati su sadraji memorijskih lokacija u kojima su smeteni realni brojevi x i y.
x: 04A16900
y: FE560000

Prikazati brojeve x i y u heksadekadnom brojnom sistemu u obliku sa fiksnom decimalnom takom.

x
e
=04
16
=4
10

x
m
: A16900

U pitanju je komplement mantise jer je prvi bit jednak jedinici. Nalazimo mantisu:

(A16900
16
)
c
=5E96FF=5E9700
16

+1
x
m
=0.101111010010111

Poto je broj negativan:
x x B. D2E
m
x
e
= = = 2
2 16
1011.11010010111

y
e
: FE (u pitanju je negativan eksponent, u obliku komplementa)

y
e
=-(FE
16
)
c
=-02
16
=-2
10

y
m
: 560000, y
m
=0.101011

y y 0.2B
m
y
e
= = = =

2 2
2
16
0.101011 0.00101011

26
Ogranienja pri registrovanju realnih brojeva

S obzirom na ogranienu duinu (broj bitova) memorijskog prostora za eksponent, postoji gornja
granica veliine realnog broja koji se moe registrovati, x
max
. Naiemo je kao:

x (x )
max m max
(x )
e max
= 2

Prikaz maksimalne mantise (x
m
)
max
u raunaru je: 0111...1
23
12 4 3 4

To je 0.111...1 1 0.00...1
23 23
23
1 2
12 4 3 4 123
= =



Maksimalan eksponent je: (x
e
)
max
=2
7
-1=127, pa imamo:

x
max
=(1-2
-23
) 2
127
1.708 10
38
10
38


Analognim postupkom za najmanji realan broj, koji se moe registrovati, dobijamo:

x
min
=-x
max
-1.708 10
38
-10
38


Interne vrednosti realnih brojeva koje su po apsolutnoj vrednosti vei od granice:

|x|>x
max


bie jednake gornjoj granici:

x = x
max
(aritmetic overflow).

Duina eksponenta uslovljava takoe i donju granicu apsolutne vrednosti broja ispod koje su
svi brojevi za raunar jednaki nuli. Ovo ogranienje bi mogli nazvati ogranienje preciznosti
registrovanja.

|x|
min
=( )
min
( )
min
x
m
x
e
2
(x
m
)
min
=0.1
(x
e
)
min
=-2
7
=-128
|x|
min
=2
-1
2
-128
=2
-129
1.46 10
-39
10
-39


Dakle, ako je :
|x|< x
min

interna vrednost broja x bie jednaka nuli
x=0 (aritmetic underflow).

Konano, tree ogranienje - ograniena tanost registrovanja, posledica je ograniene duine
mantise u memoriji. Tanost registrovanja realnih brojeva traiemo u vidu broja znaajnih dekadnih
cifara, koje se mogu registrovati.
Najpre moemo da odredimo broj znaajnih binarnih cifara - on je jednak broju bitova u prikazu
decimala mantise: 23.
Dakle, vrednost najmanje znaajne cifre koja se moe registrovati je 2
-23

Kako je:
10
-7
< 2
-23
< 10
-6

27
znai da je poslednja dekadna cifra mantise, koja se moe tano registrovati priblino 10
-7
, pa je
priblino, tanost prikazivanja realnih brojeva jednaka 7 znaajnih cifara.

Raunske operacije sa realnim brojevima

U pitanju su operacije sa brojevima u eksponencijalnom obliku koji se sastoje od odgovarajuih
operacija izmeu predeksponencijalnih faktora i eksponenata operanada.

Tako se sabiranje dva realna broja obavlja u sledeim koracima:

1
0
Dovoenje brojeva na isti eksponent denormalizacijom predeksponencijalnog faktora
(mantise) manjeg od brojeva

2
0
Sabiranje predeksponencijalnog faktora jednog i mantise drugog broja

3
0
Normalizacija, tj. dovoenje predeksponencijalnog faktora zbira u interval |0.1,1),
odgovarajuim korigovanjem eksponenta

Oduzimanje se svodi na sabiranje, tj. sabira se predeksponencijalni faktor prvog broja sa
komplementom predeksponencijalnog faktora drugog broja.

Mnoenje ukljuuje:

1
0
Mnoenje mantisa

2
0
Sabiranje eksponenata

3
0
Normalizacija rezultata i definisanje njegovog predznaka

Deljenje ukljuuje:

1
0
Deljenje mantisa

2
0
Oduzimanje eksponenata

3
0
Normalizacija rezultata i definisanjenjegovog predznaka

Za realizaciju operacija sa realnom brojevima neophodno je raspolagati sklopovima za operacije
sabiranja i komplementiranja celih brojeva, pomeranja (shift) i inkrementiranja i dekrementiranja
(poveanja ili smanjenja vrednosti celog broja za 1).
Zbog razliitog naina registrovanja u memoriji realni i celobrojni operandi su meusobno
imkompatibilni, tj. CPU ne moe da izvede operaciju izmeu realnog i celobrojnog operanda.
Zato u viim programskim jezicima postoje funkcije (grupe instrukcija) za prevoenje celog broja
u realan oblik, kojima se aktivira odgovarajui niz mainskih instrukcija za transformaciju nekog
dvobajtnog celobrojnog operanda u etvorobajtni realni.


28
PITANJA
Binarni oktalni i heksadekadni brojni sistem
Osnovne raunske operacije (sabiranje,oduzimanje,mnoenje i deljenje) u bin. okt., heksadek.
brojnom sistemu
(B-1) i B Komplement
Kodiranje celih brojeva u raunaru (2 bajtni)
Sabiranje i odizimanje u aritmetici 2 komplementa
Kodiranje realnih brojevi u raunaru (4 bajtni)













29

LOGIKA KOLA

Kao to smo ve istakli, obrada podataka u digitalnom rauanaru se realizuje pomou elektrinih
veliina (napon, struja), odnosno elektronski sklopovi raunara obrauju elektrine veliine kojima su
predstavljeni podaci. Najpogodnije je podatke binarno kodirati, odnosno predstavljati ih pomou dva
definisana stanja elektronskih sklopova, koji se stoga nazivaju digitalni sklopovi, a poto se radi o
elektronskim kolima ee se koristi termin digitalna kola.
Dva mogua stanja digitalnog kola su najee dva nivoa napona U
1
i U
2
. Recimo, U
1
=0V, a
U
2
=5V. Fizikim stanjima 0V i 5V odgovaraju dve logike vrednosti (la) i T (istina) koja se u
digitalnoj elektronici oznaavaju kao logika nula (0) i logika jedinica (1). (vidi sl. 3.1)

U=U
2

logiko stanje 1


U=U
1

logiko stanje 0

Logiko i fiziko stanje digitalnog kola

Data korespodencija izmeu fizikih i logikih stanja odgovara tzv. pozitivnoj logici. Mogue je
suprotno, niem naponu U
1
dodeliti logiku 1, a viem naponu U
2
logiku 0 i tada se radi o negativnoj
logici. Stanja i funkcije digitalnih kola se dakle mogu opisati pomou logikih vrednosti i logikih
operacija, pa se zato umesto termina digitalno kolo najee koristi termin logiko kolo.
Ponaanje logikih kola moe se opisati pomou prekidakih ili Bulovih funkcija koje su
predmet izuavanja Bulove (ili prekidake) algebre.

Bulova algebra

Za razliku od klasine algebre, promenljiva veliina u Bulovoj algebri moe da ima samo dve
vrednosti - logika nula (0) i logika jedinica (1):

1 ili 0 = = x x

Tri osnovne operacije, pomou kojih moe da se definie bilo koja Bulova funkcija, su:

1. operacija logikog sabiranja (disjunkcija) ili ILI (OR) operacija
2. operacija logikog mnoenja (konjunkcija) ili I (AND) operacija
3. operacija komplementiranja tj. inverzije (negacija) ili NE (NOT) operacija

Pri tome Bulova funkcija predstavlja rezultat izraza koji se sastoji od operanada i operacija nad
tim operandima. Naravno, i Bulova funkcija ima razultat 0 ili 1.

Osnovne operacije se mogu definisati pomou tablice stanja ili tablice istinitosti (Tab. 3.1), iz
koje vidimo da su prve dve operacije binarne (dva operanda), a trea je unarna (jedan operand).
30

Tab. 3.1. Osnovne logike operacije
operandi operacija:
x Y ILI (OR) I(AND) NE(NOT)
f = x + y f = xy f = x
0 0 0 0 1
0 1 1 0 1
1 0 1 0 0
1 1 1 1 0

Vidimo da,
1. Logiki zbir ima vrednost nula ako i samo ako oba sabirka imaju vrednost nula.
2. Logiki proizvod ima vrednost 1 ako i samo ako oba inioca imaju vrednost 1.
3. Komplement ili negacija (inverzija) nule je jedinica, a komplement jedinice je nula.
Ako je u Bulovoj funkciji prisutno vie binarnih operacija onda se Bulov izraz izraunava s desna na
levo pri emu se definie da logiko mnoenje ima prioritet u odnosu na logiko sabiranje. Prioritet
operaija se moe promeniti zagradama.

Osnovne teoreme Bulove algebre date su u Tabeli 3.2.

Tab. 3.2. Teorema Bulove algebre
a) b) opis:
1. x + 0 = x x1 = x
operacije sa kostantnim
2. x +1 = 1 x0 = 0
vrednostima
3. x + x = x xx = x
zakon idempotentnosti
4. x + x = 1 x x = 0
operacije sa
komplementima
5. x = x dvostruka negacija
6. x + y = y + x xy = yx
komutativnost
7. x + (y + z) = (x + y) + z =
x + y + z
x(yz) = (xy)z
asocijativnost
8. x + yz = (x + y)(x + z) x(y + z) = xy + xz
distributivnost
9. x + xy = x x(x + y) = x
zakoni
10. x + xy = x + y x( x + y) = xy
apsorpcije
11.
(x + y) = x y x y x + y =
De Morganova pravila
invertovanja


Zakoni De Morgana i zakon distributivnosti se mogu uoptiti:


( )
( )
( )
12a) x x x x x x
12b) x x x x x x
13a) x y y y (x y )(x y ) (x y )
13b) x y y y xy xy xy
1 2 n 1 2 n
1 2 n 1 2 n
1 2 n 1 2 n
1 2 n 1 2 n
+ + + =
= + + +
+ = + + + + +
+ + + = + + +
K K
K K
K K
K K

31

Osnovna logika kola

Logikim operacijama I, ILI i NE (Tab.3.1) odgovaraju elementarna logika kola ije su oznake
date u tabeli 3.3.

Tab.3.3 Oznake logikih kola

Kolo Oznaka Bulova funkcija

NE (NOT)

I (AND)

ILI (OR)

NI (NAND)

NILI (NOR)

EXILI (EXOR)

NEXILI (NEXOR)

x
x
x
x
x
x
y
y
y
y
y
f
f
f
f
f
f
f
x
y


f = x

f = xy

f = x + y

f = xy

f = x + y
f = x y

f = x y


Elementarnim kolima su pridodata jo tri kola: NI, NILI , EXILI i NEXILI (Tab.3.3. i 3.4.), koja
zajedno sa njima ine osnovna kola u digitalnoj elektronici. Ako u Bulovoj funkciji figuriu vie
binarnih operacija tj. ta funkcija predstavlja kombinaciju osnovnih logikih kola sa dva ulaza tada je
prioritet operacija sledei: NI, NILI , EXILI. Naravno, prioritet se moe promeniti zagradama.

Tab.3.4. Definicije NI, NILI, EXILI i NEXILI kola

x y
xy x + y
x y x y
0 0 1 1 0 1
0 1 1 0 1 0
1 0 1 0 1 0
1 1 0 0 0 1


Invertor ulaznog signala u neko kolo oznaava se skraeno kruiem. Na primer:

x
y
z z
x
y


32
Sloena logika kola i Bulove funkcije
Sloena logika kola su sastavljena iz vie osnovnih kola. Svako logiko kolo se moe opisati
nekom Bulovom funkcijom i obratno, svaka Bulova funkcija se moe generisati pomou nekog logikog
kola. Ilustrovaemo to sledeim primerima.

PRIMER Formirati Bulovu funkciju koja opisuje sledee logiko kolo sa etiri ulaza: x,y,z i v

x
z
v
y
z
y
z
w
2
w
1
f

Na slici su uvedene oznake meusignala: w
1
i w
2
. Idui od desnog kraja eme (izlaz iz kola) prema
ulazima, zapaamo:


f = w z w
w y z , w xzv y
1 2
1 2
+
= = +


Smenom izraza za w
1
i w
2
u izraz za f dobijamo konano:


f yz z(y xzv) yz zy xzv
f yz z(y xv)
= + + = + +
= + +


PRIMER Formirati logiko kolo, koje generie Bulovu funkciju:

f(x, y, z, w) w(xyz y z) = +

Kolo formiramo postupno-sleva udesno, potujui pravila o redosledu izraunavanja sloenog Bulovog
izraza.
x
y
z
w
xyz
y z
f w(xyz y z) = +


Sinteza logikih kola zadate nemene

Zadatak sinteze logikih kola se reaava u etiri etape:
1. Formulisanje tablice istinitosti na osnovu zadate namene kola,
2. Generisanje odgovarajue Bulove funkcije
3. Uproavanje ili minimizacija dobijene Bulove funkcije
4. Realizacija minimizovane Bulove funkcije pomou raspoloivih osnovnih kola
33
Osnovna kola u raunarskim sistemima

Kola iz kojih je izgraen raunarski hardver mogu se podeliti u dve klase:

1. Kombinaciona
2. Sekvencijalna

Izlazni signal iz kombinacionih kola zavise od trenutne kombinacije vrednosti ulaznih
signala. Sva kola, koja smo sreli u dosadanjem izlaganju pripadaju ovom tipu logikih kola. Za
realizaciju vrlo vane funkcije - memorisanja podataka, neophodna su i kola koja mogu da proizvoljno
dugo zadre dato stanje tj. vrednost svog izlaza (memorisanje bita 0 ili 1) kao i da uz pomo ulaznih
signala promene stanje. (unos novog sadraja u 1-bitnu memorijsku lokaciju). Takva kola se nazivaju
sekvencijalna (ili memorijska) i njihovi izlazi ne zavise samo od trenutnih vrednosti ulaznih signala,
ve i od prethodnog stanja.

Tree logiko stanje

Logikim kolima u sklopu hardvera se najee dodeljuje tzv. tree logiko stanje pri kome su
izlazi iz kola odvezani, tj. nemaju veze sa ulazima. Drugim reima, u treem logikom stanju, koje se
jo i zove i stanje velike impedanse, logiko kolo ne obavlja svoju funkciju. Za aktiviranje i
deaktiviranje kola slui dodatni ulazni signal - signal dozvole (enable signal). Na primer NI kolo sa
mogunou treeg logikog stanja, dato je na Sl.4.1a.

x
f
y
E
f =
xy za E =1
n.d. za E = 0
,


Sl.4.1a NI kolo sa tri logika stanja

Kada signal dozvole, E, ima logiku vrednost 1, kolo je aktivno, a pri E=0 ono prelazi u tree logiko
stanje, kad signal f nije definisan. Tanije, f nema veze sa vrednostima ulaza x i y, ve uzima onu
vrednost napona koji je trenutno na liniji na koju je kratko vezana f linija - plivajua vrednost. Aktivna
vrednost signala dozvole moe da bude nulti napon i tada se on oznaava sa E , to ukazuje na taj uslov
(Sl.4.1b).

x
f
y
f =
xy za E = 0
n.d. za E =1
,

E

Sl. 4.1b NI kolo sa tri logika stanja

34
Za kolo sa treim logikim stanjem se koristi termin trostabilna ili trostatika kola, a ako se kao signal
dozvole koristi taktni signal i sinhronizovana kola. Najjednostavnije trostabilno kolo u raunarskoj
tehnici je formira signala dat na Sl.4.2., analogan elektrinom prekidau.
x
f
f =
x za E =1
n.d. za E = 0
,

E

Sl. 4.2. Formira signala

Dekoder

Dekoder je kombinaciono kolo koje slui za dekodiranje ili prepoznavanje stanja na ulazu. Tako
se kao elementi hardvera sreu: adresni dekoder, dekoder instrukcija, dekoder binarnih brojeva itd.
Najjednostavniji dekoder je dekoder sa jednim izlazom, koji dekodira ili prepoznaje samo
jednu od moguih kombinacija ulaznih signala. Znak prepoznavanja posmatrane kombinacije, tj.
logika vrednost izlaza koja ukazuje na nju, moe da bude 1 ili 0. Na primer, dekoder binarne
kombinacije tj. binarnog broja (1011) je I kolo sa 4 ulaza (cifre u binarnom broju), pri emu je na ulazu
sa adresom 2 (ulaz cifre na cifarskom mestu 2
2
) stavljen invertor (sl.4.2.)
3
0
1
2
y
y =
1 za ulaz (1011)
0 za sve ostale ulaze


Sl.4.3. Dekoder kombinacije (1011)

Na prisustvo kombinacije (1011) na ulazu ukazuje jedinina vrednost izlaznog signala.

Dekoder 1 od 2
n


Dekoder 1 od 2
n
ima n ulaza i 2
n
izlaza i dekodira sve mogue (ukupno 2
n
)ulazne binarne
kombinacije. Svaka od 2
n
izlaznih linija jednoznano odgovara jednoj od moguih binarnih kombinaicja,
tj. dobija logiku vrednost 1 samo pri toj kombinaciji, dok istovremeno svi ostali izlazi imaju nulte
vrednosti. Na slici 4.3. dat je blok dijagram dekodera 1 od 2
3
sa treim logikim stanjem.
3
0
1
2
y
y =
1 za ulaz (1011)
0 za sve ostale ulaze


Sl. 4.3 Dekoder 1 od 2
3


35
Brojne oznake ili adrese izlaznih linija predstavljaju dekadne vrednosti odgovarajuih binarnih
kombinacija.

PRIMER 4.3. Za vrednosti ulaznih signala u dekoder 1 od 2
3
na Sl. 4.3.:

0 1 2
E
0 1 1 0

kakve su vrednosti na izlaznim linijama?
U pitanju je linearna kombinacija 110
2
= 6
10
pa e samo na izlaznoj liniji sa adresom 6 biti
jedinina vrednost, dok e na ostalim linijama biti 0. Jasno je da dekoder 1 od 2
n
u stvari dekodira tj.
prevodi u dekadni oblik n-to cifrene binarne brojeve, pri emu dekadnu vrednost daje brojna oznaka
jedinog aktivnog (vrednost 1) izlaza.
Vana primenu dekodera 1 od 2
n
je kao adresnog dekodera kada se na ulaz u dekoder dovode
signali sa adresne sabirnice. Kao rezultat dekodiranja adrese bie aktivna samo jedna od izlaznih linija i
ona e aktivirati memorijsku lokaciju ili registar radi unosa ili itanja podataka.

PRIMER Pomou I kola i NE kola formirati dekoder 1 od 2
2
.
3
2
1
0
x
1
x
0


36
Koder

Koder je kombinaciono kolo sa suprotnom funkcijom od dekodera 1 od 2
n
. Tako, njegovi
izlazi (ukupno n) daju binarni kod jedinog aktivnog (jedinina vrednost) od ukupno 2
n
ulaza (Sl.4.4).
E
2
1
0
7
6
5
4
3
2
1
0

Sl.4.4 Blok dijagram kodera sa 3 izlaza

PRIMER 4.4. Ako je E = 0 i jedini aktivni ulaz u koder na Sl.4.4. je ulaz sa adresom 6, koje su
vrednosti na izlaznim linijama?
Izlazni signali daju binarni kod broja 6 pa su vrednosti

Izlaz 2 1 0
Vrednost
1 1 0

Koder prioriteta

Kao to smo konstatovali, kod kodera je dovoljno da samo jedna od ulaznih linija bude aktivna.
Kod kodera prioriteta vie ulaznih linija mogu da imaju jedininu vrednost a izlazi daju binarni kod
najprioritetnijeg od aktivnih ulaza.

PRIMER 4.5. Ako prioritet ulaza u dati koder prioriteta raste od 0 prema 7 (najprioritetniji je ulaz 7)
odrediti vrednosti izlaza.
2
1
0
7
6
5
4
3
2
1
0
0
0
1
0
1
1
0
0
0
?




37
Poto je najprioritetniji aktivni ulaz onaj sa adresom 5, izlazi daju binarni kod broja 5:

Izlaz 2 1 0
Vrednost
1 0 1


Multiplekser

Multiplekser ili selektor izvorita podataka je kombinaciono kolo sa 2
m
ulaznih prikljuaka, m
adresnih ulaznih linija i jednim izlazom. U optem sluaju, na svaki od ulaznih prikljuaka (ili portova)
kao i na izlazni port moe da se vee po n linija i takav multiplekser se zove multiplekser MUX 2
m
xn
(Sl.4.5)
n
n n n
n
m
MUX 2
m
xn
2
m
-1 0
1 2
.......

Sl.4.5. Multiplekser 2
m
xn

Funkcija multipleksera je da se pomou m adresnih ulaza bira koji od 2
m
ulaza e biti povezan sa
izlazom. Blok dijagram multipleksera MUX 2
3
x1 sa tri logika stanja dat je na Sl.4.6.
















Sl.4.6. MUX 2
3
x1
I
7
I
6
I
5
I
4
I
3
I
2
I
1
I
0
E
S
2
S
1
S
0
Y




I - ulazne linije
S - adresne (selekcione) linije
Y - izlazne linije
E - ulaz sa signal dozvole
38

PRIMER 4.6. Logike vrednosti ulaza u MUX 2
3
x1 su

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

Za svaku od kombinacija vrednosti dozvole i adresnih ulaza odrediti vrednosti izlaza


E
S
0
S
1
S
2

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

Vrednost (podatak) na onom od ulaza, ija adresa je postavljena na adresnim ulazima, pojavie se na
izlazu, ako je multiplekser aktivan ( E = 0). Tako je reenje:

E
S
0
S
1
S
2
Y
0 0 0 0 0
0 1 1 0 1
0 0 1 1 0
0 1 0 0 1
1 0 1 1 n.d.

Na slici 4.7. data je realizacija multipleksera MUX 2
m
x1 pomou dekodera 1 od 2
m
i 2
m
formiraa
signala:


izlaz
0
0
1
2
2
m
-2
2
m
-1
1 2 2
m
-2 2
m
-1
m
adresni
ulazi
DEKODER

Sl.4.7. Realizacija multipleksera pomou dekodera

39
Demultiplekser

Demultiplekser predstavlja selektor odredita podataka jer omoguuje upuivanje podataka
sa ulaznog porta (linije) na odabrani izlazni port uz pomo adresnih ulaza (Sl.4.8.)
n
n n n
n
m
DEMUX nx2
m
2
m
-1 0 1 2

Sl.4.8. ema demultiplekseara DEMUX nx2
m


Kao i multiplekser, demultiplekser se moe lako realizovati pomou dekodera 1 od 2
n
(Sl.4.9.)
izlazi
0
0
1
2
2
m
-2
2
m
-1
1 2 2
m
-1 2
m
-2
m
adresni
ulazi
DEKODER
ulaz


Sl.4.9. Realizacija pomou dekodera

Na Sl.4.10. Dat je blok dijagram demultipleksera sa 8 izlaza (DEMUX 1x2
3
)

40















Sl. 4.10 DEMUX 1x2
3

Binarni sabira

Ovo kombinaciono kolo realizuje sabiranje dva cela binarna broja u ALU.













Sl. 4.11. Binarni sabira

Binarni sabira se dobija jednostavno, vezivanjem n potpunih sabiraa.

S
a
n-2
b
n-2
c
n-2
s
n-2
S
a
0
b
0
c
0
s
0
S
a
1
b
1
c
1
s
1
S
a
2
b
2
c
2
s
2
S
c
n
s
n
a
n-1
b
n-1
c
n-1
........
c
3


Sl.4.12. ema binarnog sabiraa
I
7
I
6
I
5
I
4
I
3
I
2
I
1
I
0
E
S
2
S
1
S
0
Y
S
a
i
b
i
c
i
c
i+1
s
i




I - izlazne linije
S - adresne (selekcione) linije
Y - uazna linija
E - ulaz sa signal dozvole
c
i
- prethodni prenos
c
i+1
- prenos pri sabiranju cifara a
i
i b
i

s
i
- cifra zbira
41

Kao to smo ve rekli, binarni sabira je samo jedno od vie kola u sklopu ALU. Pored sabiraa,
tu su i kolo za komplementiranje, kolo za razliite logike operacije sa podacima, a kod sloenih ALU i
kola za hardversko izvoenje oduzimanja, mnoenja i deljenja.
Na linije a
i
, i=0,n-1, cifre prvog operanda A, koji se nalazi u akumulatoru centralne procesne
jedinice (mikroprocesor) dolaze internom sabirnicom. Signali b
i
, koji predstavljaju cifre drugog operanda
dolaze sabirnicom podataka iz memorijske jedinice mikroraunara, a onda internom sabirnicom
mikroprocesora, ili iz nekog registra za privremeno pamenje podataka u okviru mikroprocesora. Signali
s
i
linijama interne sabirnice idu u akumulator, pa rezultat S zamenjuje u akumulatoru prethodno smeten
prvi operand. Preostaje da objasnimo odakle dolazi signal poetnog prenosa c
0
i gde ide konaan prenos
c
n
. Prenos (carry) kao vrlo vana informacija se uva u mikroprocesoru u posebnom registru - registar
uslova ili status registar. Tako konaan prenos c
n
ide u registar uslova (kao bit ili zastavica C). Kakav
smisao kod sabiranja ima poetni prenos c
0
?. To e biti jasno, ako se podsetimo da se u mikroraunaru
celi brojevi registruju kao dvobajtni (16-cifreni). Tako se u 8 bitnom mikroprocesoru sabiranje dva broja
vri u dva koraka: u prvom se, bez poetnog prenosa, sabiraju nii bajtovi, a u drugom koraku se sabiraju
vii bajtovi gde je poetni prenos, c
0
jednak konanom prenosu c
n
prethodnog sabiranja iz registra stanja.

Bistabilna kola (flip-flop)

Bistabilna kola slue za memorisanje bita. To su sekvencijalna kola koja mogu da budu u dva
stabilna stanja, 0 ili 1, otuda naziv bistabilna kola ili bistabili. Stabilno stanje (memorisani bit) se moe
odravati proizvoljno dugo, a moe se delovanjem ulaznih signala promeniti (unos novog sadraja).
Bistabil ima bar jednu izlaznu liniju na kojoj se dobija njegovo stanje (memorisani bit). Ako je
na izlaznoj liniji jedinica kaemo da je bistabil setovan, a ako je nula kaemo da je resetovan.
Bistabil ima bar jednu ulaznu liniju i vrednost signala na ulazu, zajedno sa njegovim satnjem
(signal na izlaznoj liniji), odreuje njegovo novo stanje, tj. novu vrednost izlaza.
Bistabili se sreu i pod nazivom flip-flopovi.

R-S flip-flop

Blok dijagram R-S flip-flopa je dat na Sl.4.13. a njegovu funkciju objanjava tablica istinitosti
(tab.4.1.)


Q - izlaz na kome se dobija stanje
Q - drugi izlaz, ija vrednost je uvek invertovano stanje
S - ulaz za setovanje (unos jedinice)
R - ulaz za resetovanje (unos nule)





Sl. 4.13. Blok dijagram R-S flip flopa

Q
Q S
R
42
Tab. 4.1. Tablica istinitosti R-S flip flopa

R S Q
0 0
Q
*

0 1 1
1 0 0
1 1
n.d.

Q
*
- postojee stanje
n.d. - ova kombinacija nije dozvoljena

Na Sl.4.14. data je uproena realizacija R-S flip flopa pomou NI odnosno NILI kola

S
R
Q
Q
S
R
Q
Q
a) b)

Sl.4.14. Realizacija R-S flip-flopa pomou a) NI i b) NILI kola

Pretpostavimo da su trenutne vrednosti signala Q i Q u emi na Sl.4.14.: Q = 0, Q= 1. Sve dok
su R i S jednaki nuli stanje Q se ne menja (Tab 4.1.). Zaista, na ulazu u gornje NI kolo su dve jedinice
to daju to daje Q = 0, dok u donje NI kolo ulaze nula (Q) i jedinica ( R) to daje Q= 1. Ako elimo da
promenimo stanje tj. da u bistabil unesemo bit 1 (setovanje) treba na ulazu primeniti: S = 1, R = 0
(Tab.4.1). U gornje NI kolo sada ulaze jedna jedinica ( Q) i jedna nula ( S ) to daje novu vrednost za Q,
Q = 1. Ona zajedno sa R = 1 u donjem NI kolu daje Q= 0. Ta nova vrednost za Q ne menja izlaz iz
gornjeg NI kola (dve nule daju opet 1). Slino razmatranje vai i za R-S flip-flop realizovan sa 2 NILI
kola.
U praksi se ee koriste sinhronizovani R-S bistabili za dodatnim prikljukom za signal dozvole
C i postavljanje Q na 1 (SET) ili na 0 (CLR)(Sl.4.15.)



C - ulaz za signal dozvole, po prvilu taktni signal (clocl signal
SET - postavljanje Q na 1 bez obzira na ostale signale
(setovanje)
CLR - postavljanje Q na 0 bez obzira na ostale signale
(resetovanje)



Sl .4.15. Sinhronizovani R-S flip-flop
Q
Q
SET
CLR
S
R
C
43

C R S Q
1 0 0
Q
*

1 0 1 1
1 1 0 0
0 x x
Q
*


x - bilo koja vrednost (0 ili 1)
Q
*
- postojee stanje

Razlika u funkciji asinhronog i sinhronizovanog R-S bistabila jasna je sa vremenskog dijagrama na slici
4.16.














Asinhroni R-S



Sinhronizovani R-S



Sl.4.16. Vremenski dijagram asinhronog i sinhronizovanog R-S flip-flopa

D flip-flop

D flip-flop (Sl.4.17.) je sinhronizovan bistabil sa jednim ulazom D. Vrednost sa ulaza prelazi na
izlaz Q, sinhronizovano sa taktnim signalom (Tab.4.2. i Sl.4.18.)

Tab.4.2 Tablica istinitosti D flip-flopa

C D Q
1 0 0
1 1 1
0 x Q
*


x - bilo koja vrednost (0 ili 1)
Q
*
- postojee stanje
Sl.4.17. D flip-flop
1
0 C
S
R
Q
Q
Q
Q
SET
CLR
D
C
44

1
0 C
D
Q

Sl. 4.18. Vremenski dijagram D - flip flopa

D flip flop se moe jednostavno formirati od R-S flip flopa (Sl.4.19)
Q
Q
SET
CLR
S
R
C
D

Sl.4.19. Realizacija D flip flopa pomou R-S flip flopa
Registri

Osnovna mamena registra je privremeno pamenje nekog viebitnog podatka (kod 8-bitnog
procesora, njegov kapacitet je 8 bitova). U tom svojstvu, sem u memoriji (memorijski registri) oni se
sreu u meusklopovima, preko kojih su periferne ulazno-izlazne jedinice vezane za sabirnicu
mikroraunara, i tu imaju funkciju meumemorisanja ili baferovanja (baferni registri) podataka na putu
od ulazne jedinice do mikroprocesora ili od mikroprocesora do ulazno-izlazne jedinice. Registri koji
imaju samo opisani nain uvanja (registrovanja) podataka zovu se statiki ili stacionarni registri.
Sloeniji registri od statikih su oni koji omoguavaju razliite manipulacije sa registrovanim
podatkom i to su:
- pomeraki (ift) registri
- ciklini ili kruni registri
- brojaki registri ili kaunteri (counter)
Statiki registri
S obzirom da uvanje 1-bita omoguuju bistabili, jasno je da se n-bitni registar dobija
paralelnim vezivanjem n bistabila. ema jednog 4-bitnog registra data je na slici 4.20.

45
Q
Q
SET
CLR
D
C
Q
Q
SET
CLR
D
C
Q
Q
SET
CLR
D
C
Q
Q
SET
CLR
D
C
R/W

S
E
Sa sabirnice podataka
2
3
2
3
2
2
2
1
2
0
2
2
2
1
2
0
Na sabirnicu podataka

R/W =

(write) pisanje za 0
(read) itanje c za 1
(

- taktni signal iz generatora taktnog signala
S - signal izbora registra, iz adresnog dekodera


Sl.4.20. ema 4-bitnog statikog registra



Da bi se u neki registar uneo (write) podatak sa sabirnice podataka ili iz njega proitao (read)
podatak, tj. postavio na sabirnicu podataka neophodno je da budu ispunjena 2 uslova.
- odabran je posmatrani registar, tj. njegova adresa je postavljena (od strane mikroprocesora) na
adresnu sabirnicu,
- vrednost taktnog signala je jednak 1
Ako je mikroprocesor odabrao dati registar, signal S koji ide iz adresnog dekodera imae vrednost 1 (vidi
poglavlje 4.2.1), inae njegova vrednost je 0. Ako su ispunjena oba opisana uslova, tj. E = S = 1 (I
kolo na levom kraju eme), zavisno od vrednosti R/W signala bie realizovano itanje ili upisivanje.
Ako R/W signal ima vrednost 1, izlaz iz I kola u koji se uvode R/W i E = S signal bie aktivan
i otvorie formirae signala pa e se bitovi (Q signali) iz pojedinih D bistabila nai na sabirnici podataka
(operacija itanja).
Ako je R/W = 0 (upisivanje) izlaz iz I kola u koji se uvode R / W i E signal bie aktivan i on e
aktivirati D bistabile, pa e u njih biti uneti bitovi sa sabirnice podataka.
Na slici 4.21. dat je blok dijagram 4-bitnog statikog registra, kome je pridodat i prikljuak za
resetovanje ili brisanje registra (postavljanje svih izlaza Q
i
na nulu.
46
D3
D2
D1
D0
R/W
E
Q3
Q2
Q1
Q0
RES

Sl.4.21. Blok dijagram 4-bitnog statikog registra sa mogunou resetovanja


PITANJA
Dekoder, Koder
Multiplekser, Demultiplekser
Potpuni sabira, Binarni sabira
Flip-Flopovi, RS, D
Registri





47

MIKRORAUNAR


Mikroraunar je sastavljen od etiri osnovna bloka (Sl.1) - to zovemo hardver:
-mikroprocesora
-memorije
-ulaznog meusklopa
-izlaznog meusklopa
Programska podrka (to zovemo softver) je vezivna materija koja ta etiri bloka osmiljava i dri ih
zajedno. Mikroprocesor sjedinjuje u sebi sposobnost raunskog dela i dela koji je sposoban da na temelju
dobijenih rezultata donosi odluke-izabere jedan od alternativnih smerova daljnjeg delovanje ili akcije. U
memoriji se smetaju podaci u binarnom obliku, meurezultati i rezultati. U memoriji su takoe smeteni
programi koji odreuju mikroprocesoru koje operacije mora izvriti. Preko ulaznog meusklopa
ostvaruje se put za prenos binarnih podataka (u paralelnom ili serijskom obliku) od ulaznih jedinica
prema mikroprocesoru ili memoriji. Izlazni meusklop omoguava prenos binarnih podataka od
mikroprocesora prema izlaznim jedinicama. Sastavni blokovi (mikroprocesor, ulazno-izlazni
meusklopovi, memorija) su preko spoljne sabirnice povezani i ine mikroraunar (Sl.1.). Spoljna
sabirnica je skup linija preko kojih se saobraa izmeu sastavnih delova mikroraunara.


Sl.1. - Sklop mikroraunara kao crna kutija




48

Sl.2. prikazuje strukturu mikroraunara zasnovanog na porodici Motorola M6800,gde su:
- MPU: mikroprocesor,
- RAM, ROM: memorija sa direktnim pristupom, ispisna memorija,
- START UP, CLOCK: pomoni sklopovi,
- PIA: paralelni U/I meusklop,
- ACIA; serijski meusklop.
Spoljna sabirnica se sastoji od upravljake (CONTROL BUS) i adresne (ADRESS BUS) sabirnice i
sabirnice podataka (DATA BUS).




Sl.2. - Struktura mikroraunara zasnovanog na mikroprocesorskoj porodici M6800

Sl.3 prikazuje grau mikroraunara na osnovi mikroprocesora Intel 8080, a sastoji se od memorije
RAM, ROM, U/I meusklopa i specijalne jedinice nazvane upravljaki sklop (system controller),
generatora takta, kao pomonog sklopa. Spoljna sabirnica se sastoji od adresne sabirnice, sabirnice
podataka i upravljake sabirnice.

49




Sl.3 - Struktura mikroraunara na bazi mikroprocesora Intel 8080

MODEL MIKROPROCESORA


Mikroprocesor je osnovni sastavni blok mikroraunara. On je centralno procesorska jedinica
realizovana u tehnologiji LSI. Sastoji se od sklopova koji dekodiraju instrukcije pribavljene iz memorije
i u skladu s tim generu sekvence upravljakih signala (koji odreuju niz prenosa preko interne sabirnice,
prenose kroz aritmetiko-logiku jedinicu, pobuivanje internih sklopova i sl.), potrebnih za izvoenje
instrukcije. To je jedan od osnovnih zadataka upravljake jedinice.
Mikroprocesorski ip sadri aritmetiko-logiku jedinicu (ALU). U njoj se izvode aritmetike i
logike operacije na binarnim podacima. Registri za privremeno skladitenje i rukovanje podacima
takoer su sastavni deo procesora LSI. Budui da veina standardnih mikroprocesora ima re duine
osam bita (bajt), dat je opis njegovog rada na jednostavnom modelu 8-bitnog mikroprocesora.
Duina rei od 8 bita onemoguava da se instrukcijska re razdeli na klasian nain kao kod
raunara: na polje operacijskog koda, na polje naina adresiranja i na adresno polje (Sl.4). Samo polje
operacijskog koda zauzelo bi vei deo 8-bitne rei. Na primer, 8-bitni mikroprocesor M-6800 ima
osnovni skup od 72 instrukcije, to zahteva operacijski kod od 7 bita (2
7
> 72 > 2
6
), ako privremeno
zanemarimo 197 razliitih operacijskih kodova u zavisnosti od naina adresiranja.



Sl.4 - Organizacija instrukcijske rei

50
Adresno polje bilo bi svedeno, u najboljem sluaju na jedan bit. To znai da bi bilo mogue
direktno adresirati samo dve memorijske lokacije- to je oito premalo. Problem duine rei mora biti
kod mikroprocesora reen pribavljanjem vie 8-bitnih rei za konstrukciju jedne instrukcijske rei.
Zbog ega re mikroprocesora nije dua (npr. 24 ili 32 bita)? Veina razloga je u tehnolokim
ogranienjima, na primer u broju izvoda na integrisanom kuitu DIP (sa izvodima u dve linije),
problemu gustoe integracije komponenti, postojeoj opremi za testiranje i ispitivanje ipova u fazi
proizvodnje i sl..

Jednostavni model na kojem e biti opisan princip rada prikazan je na Sl.5. Model
mikroprocesora ima akumulator A koji koji se upotrebljava za privremeno skladitenje jednog od
operanada. Akumulator uestvuje pri izvravanju aritmetikih i logikih opracija na podacima, te ima i
sredinju ulogu u prenosu podataka unutar mikroraunara ili sklopa mikroraunara. Programsko brojilo
(programski broja) - registar PC - sadri adresu sledeeg bajta koji e biti pribavljen u narednom
ciklusu.
Operacijski kod instrukcije upisuje se u instrukcijski registar - registar IR. U 16-bitnom brojilu
podataka (registar podataka) registru DC, sadrana je adresa memorijske lokacije u kojoj se nalazi
operand. Izvoenje svake instrukcije deli se na:

- fazu pribavljanja instrukcije -PRIBAVI (fetch),
- fazu izvravanje instrukcije -IZVRI (execute).

Mikroprocesor za vreme faze PRIBAVI postavlja sadraj programskog brojila preko interne
sabirnice na spoljnu adresnu sabirnicu. Ujedno alje i odgovarajue upravljake signale (signal ITAJ)
na spoljnu upravljaku sabirnicu (u naem sluaju pojednostavljeni model ime samo dva upravljaka
signala: ITAJ i PII). Memorijski sklop dekodira postavljenu adresu (prisutnu na adresnoj sabirnici) u
cilju pristupa do odgovarajue memorijske rei. Za nekoliko stotina ns (npr. 500 ns) sadraj specificirane
memorijske lokacije pojavie se na spoljnoj sabirnici podataka. Taj se sadraj skladiti u instrukcijskom
registru IR, i to je operacijski kod instrukcije. Za vreme faze PRIBAVI mikroprocesor upotrebljava svoju
internu logiku i poveava sadraj programskog brojila.



Sl.5 - Pojednostavljeni model mikroprocesora

51
U fazi IZVRI upravljaka jedinica, u skladu s operacijskim kodom koji je skladiten u
instrukcijskom registru, stvara niz upravljakih signala. Rezultat tog niza signala su odgovarajui prenosi
podataka, odnosno operacije (npr. aktiviranje pojedinih sklopova unutar aritmetiko-logike jedinice,
izvravanje (izvoenja) zadate instrukcije.)
Operacije unutar mikroprocesora (esto se nazivaju mikrooperacijama) sinhronizovane su
generatorom takta. Perioda generatora takta moe biti, u zavisnosti od tipa mikroprocesora, od 100 ns do
nekoliko s. Signali generatora takta mogu se sastojati od jednog ili vie signala (to je onda viefazni
generator takta, npr. mikroprocesor M6800 ima signale 1 i 2). Za pojednostavnjeni model izabran je
jednofazni generator takta (Sl.6). je obino oznaka za signal generatora takta.


Sl.6 - Jednofazni signal takta (vremenskog voenja) pojednostavljenog modela mikroprocesora


Na primeru jednostavnog programa sa Sl.7 prikazani su vremenski dijagram stanja na spoljnim
sabirnicama i promene u sadrajima registara modela u cilju objanjenja rada mikroprocesora.





Sl.7 - Primer programa

Napomena: Adrese i sadraji memorijski lokacija na Sl.7 prikazani u heksadekadnom sistemu.

Poetni uslov (sadraj registara) prikazuje Sl.8. Na slici su oznaeni samo oni registri koji
uestvuju u izvoenju programa. U programskom brojilu postavljena je adresa prve instrukcije.
52


Sl.8 - Poetni uslovi




Sl.9 - Stanje nakon faze PRIBAVI: Prvi ciklus prve instrukcije

Sl.9 prikazuje stanje nakon faze PRIBAVI: u instrukcijskom registru skladiten je operacijski kod
instrucije, sadraj programskog brojila povean je za 1. Sadraj instrukcijskog registra 10110110 (B6-
heksadekadno) dekodiran je kao: napuni akumulator A sadrajem memorijske lokacije koje je adresa
sadrana u sledea dva bajta. Mikroprocesor pribavlja sledei bajt postavljanjem sadraja programskog
brojila na adresnu sabirnicu i generiranjem upravljakog signala ITAJ. Pribavljeni bajt se smetava u
brojilo podataka.
Sl.10 prikazuje stanje nakon pribavljanja znaajnijeg bajta adrese operanda (02..); programsko je
brojilo uveano za 1. Mikroprocesor pribavlja trei bajt instrukcijske rei-manje znaajni bajt adrese
53
operanda (..01) i smeta ga u brojilo podataka; programsko brojilo uveava se za 1 i pokazuje na sledeu
instrukciju 9B (Sl.7).




Sl.10. Stanje nakon pribavljanja znaajnijeg bajta adrese operanda: Drugi ciklus prve instrukcije

Sl.11 prikazuje stanje nakon pribavljanja manje znaajnog bajta adrese operanda.



Sl 11. Stanje nakon pribavljanja manje znaajnog bajta adrese operanda: Trei ciklus prve instrukcije

Ako se na trenutak pretpostavi da instrukcijski registar IR (0-7) i brojilo podataka DC (0-15) ine
jedan 24-bitni registar, moe se instrukcijski registar smatrati poljem operacijskog koda, a brojilo
podataka adresnim poljem (Sl.12).
54


Sl.12 - Instrukcijska re sastavljena iz tri bajta

Postupku pribavljanja kompletne instrukcijske rei mikroprocesora su bila tri ciklusa (3x1 bajt),
dok bi raunar sa duinom rei od 24 bita taj isti postupak obavio u jednom ciklusu. Mikroprocesor
pribavlja operand postavljanjem sadraja brojila podataka na adresnu sabirnicu i generisanjem
upravljakog signala ITAJ.
Sl.13 prikazuje konani rezultat izvoenja prve instrukcije: akumulator A napunjen je sadrajem
memorijske lokacije 0201. Sadraj programskog brojila nije povean, jer je pribavljen operand a ne
instrukcija - mikroprocesor je bio u fazi IZVRI.



Sl.14 Stanje nakon izvoenja prve instrukcije: etvrti ciklus prve instrukcije

Sl.15. prikazuje pojednostavnjeni vremenski dijagram izvoenja prve instrukcije. Instrukcija se izvodi u
etiri ciklusa (periode) generatora takta .
Nastavlja se dalje izvoenje programa. Sl.15 prikazuje stanje nakon pribavljanja prvog bajta
druge insrukcijske rei. U instrukcijskom registru smeten je operacijski kod druge instrukcije. Sadraj
programskog brojila povean je za 1. Instrukcijski kod 9B, uz specificiranje operacije (pribrajanja
operanda sadraju akumulatora A), odreuje i nain adresiranja - sledei bajt je manje znaajan bajt
adrese operanda.


55



Sl.15 - Pojednostavljeni vremenski dijagram izvoenja prve instrukcije





Sl.16 - Stanje nakon pribavljanja prvog bajta druge instrukcije: Prvi ciklus druge instrukcije

Sl.17 prikazuje stanje nakon pribavljanja drugog bajta instrukcijske rei. Programsko brojilo
poveano je za 1, a u brojilo podataka smetava se adresa operanda. Sl.18 prikazuje rezultat konanog
izvoenja instrukcije-sadraju akumulatora A pribrojen je sadraj sa memorijske lokacije 00FF (1A).
Programsko brojilo nije poveano za 1 - mikroprocesor je bio u fazi IZVRI.
56


Sl. 17 - Stanje nakon pribavljanja drugog bajta instrukcijske rei: Drugi ciklus druge instrukcije




Sl.18 - Prikaz konanog izvoenja instrukcije

Sl.19 prikazuje vremenski dijagram izvoenja druge instrukcije. Tabela 1 prikazuje stanje na sabirnici
podataka i adresnoj sabirnici za model mikroprocesora prilikom izvoenja zadatog programa sa Sl.7. U
mnemonikom kodu program bi imao (za mikroprocesor M6800) sledei oblik:
LDAA $0201
ADDA $FF
(Napomena: $ je oznaka za heksadekadni broj )

57




Sl.19 - Vremenski dijagram izvoenja druge instrukcije


Tabela 1
Stanje na sabirnici podataka i adresnoj sabirnici
Instrukcija Broj ciklusa Ciklus Signal
(itaj)
Adresne sabirnice Sabirnice podataka

1 1 Adresa instrukcije Operacijski kod
B6 4
2 1 Adresa instrukcije +1 Adresa znaajnijeg bajta operanda

3 1 Adresa instrukcije +2 Adresa manje znaajnog bajta operanda

4 1 Adresa operanda Operand

1 1 Adresa instrukcije Operacijski kod
9B 3
2 1 Adresa instrukcije +1 Adresa operanda

3 1 Adresa operanda Operand

Broj ciklusa potreban mikroprocesoru M6800 za izvoenje prve instrukcije je 4, a druge 3
ciklusa. Vidimo da se razmatranja na jednostavnom modelu u ovom primeru podudaraju s izvoenjem u
stvarnim mikroprocesorima.

PITANJA
Osnovni delovi mikroraunara
Vrste sabirnica
Model mikroprocesora - registri i osnovni delovi
Centralna memorija (Instrukcije, podaci - program)
Faze u kojima se mikroprocesor nalazi (pribavi, izvri)
Faza pribavi
Faza izvri






58
STANDARDNA ARHITEKTURA MIKROPROCESORA
UVOD

Svaki sastavni deo, a time i celi mikroprocesor, najbolje je opisan skupom registara i njihovom
funkcijom, putevima izmeu registara, nizom operacija koje se izvode na binarnim informacijama
skladitenim u registrima, te upravljakim funkcijama koje rukovode tim operacijama. Skup registara,
putevi izmeu njih, organizacija i nain delovanje upravljake jedinice (a time i delovanje
mikroprocesora kao celine) odreuje arhitekturu mikroprocesora.
Veina dananjih mikroprocesora istog je tipa arhitekture. Elementi te standardne arhitekture su
sledei:
- upravljaka jedinica,
- aritmetiko-logika jedinica,
- jedan ili vie akumulatora,
- registri opte namene ili skup registara opte namene,
- adresni registri,
- interne sabirnice.


UPRAVLJAKA JEDINICA

Upravljaka jedinica generie upravljake signale i koordinira sve aktivnosti unutar
mikroprocesora. Ona pribavlja, dekodira i omoguuje izvoenje instrukcije. Upravljaka jedinica takoe
komunicira s ostalim komponentama mikroraunara preko ulazno-izlaznih linija - upravljake sabirnice.
Za vreme faze PRIBAVI upravljaka jedinica pribavlja instrukciju i dekodira operacijski kod. U
skladu s interpretacijom operacijskog koda, menja stanje mikroprocesora i alje upravljake signale
drugim elementima mikroprocesora i mikroraunara. Niz takvih upravljakih signala rukovodi
izvravanjem instrukcije pribavljene iz memorije. Element iz niza upravljakih signala naziva se
mikroinstrukcija. Mikroinstrukcija je upravljaka re koja je uzrok jedne ili vie istovremenih operacija -
mikrooperacija. Primeri takvih mikrooperacija su prenosi izmeu registara, posmak sadraja registara i
slino. Instrukcija pribavljena iz memorije mikroraunara (makrinstrukcija) obino uslovljava izvoenje
itavog niza mikroinstrukcija.

ARITMETIKO - LOGIKA JEDINICA I AKUMULATOR

Aritmetiko-logika jedinica je viefunkcijski digitalni kombinacioni sklop. Ona izvrava
osnovne aritmetike i logike operacije. U svom sastavu ima sklopove za komplementiranje, posmak,
sabiranje, inkrementiranje (poveanje za 1), dekrementiranje (smanjenje za 1) i prenos. Aritmetiko-
logikoj jedinici pridruen je registar uslova sa zastavicama (bistabilima dojave stanja). Mikroprocesor
automatski postavlja ili brie odgovarajue zastavice - dojavne bistabile (C,V,N,Z,H,P) u registru uslova
za vreme izvoenja instrukcije, u zavisnosti od rezultata aritmetiko-logike operacije.
Zastavica C, dojavni bit prenosa, element je registra uslova i ima dve funkcije:
- pohranjuje bit kod aritmetikog prenosa (prenos sa najznaajnijeg mesta).
Na primer, pri sabiranju dva broa (Sl.23) rezultat genere prenos u 9-ti bit. Deveti bit je skladiten
u zastavici C registra uslova i moe se ispitivati,
- zastavica C upotrebljava se kao bit pri operacijama posmaka. Sl.4.5 daje primer krunog
pomaka i pomaka ulevo.

59
1 1 1 1 1 1 0 0
+
1 0 0 0 0 0 0 0

1 0 1 1 1 1 1 0 0
C - zastavica

Primer sabiranja sa prenosom



b7 b0 b7 b0


c c

a)

b)

Primer instrukcija: a) krunog pomaka, b) pomaka ulevo

Zastavica V (Overflow) je bit preteka (preliva). U matematikom smislu predstavlja greku u
bitu predznaka u aritmetici dvojnog komplementa:
V = C
s
C
p

gde su C
p
prenos u bit predznaka (najznaajniji bit b7), a C
s
prenos iz bita predznaka. Drugim reima,
aritmetiki pretek (zastavica postavljena V=1) pokazuje da je prilikom aritmetike operacije rezultat
prekoraio granicu 127, ako je re mikroprocesora (akumulatora) duine 8 bita.
Zastavica N upotrebljava se za indikaciju negativnog rezultata aritmetike operacije
(najznaajniji bit rei b7=1)
Zastavica Z je dojavni bit nule i postavlja se (Z=1) kada je rezultat aritmetike operacije nula.
Upotrebljava se i za logike operacije, npr. komparacije, gde se,ukoliko su dva operanda jednaka,
postavlja zastavica. Operacija komparacije vri se logikom operacijom Iskljuivo ILI (XOR,EOR),
(Sl.25).


Z bit pre






Z bit posle


Operacija EORA i Z-bit u registru uslova

Sl.20 prikazuje interni sklop za postavljanje zastavica C, V, N, Z.
Zastavica H je dojavni bit polovinog prenosa i upotrebljava se u BCD (Binary-Coded Decimal)
operacijama, budui da se u kodu BCD upotrebljavaju etiri bita za prikaz decimalnog broja. Prilikom
izvoenja aritmetikih operacija moe nastati prenos iz bita b3 u b4 (polovini prenos). Taj prenos u
BCD aritmetici mora biti otkriven (detektovan)-(H=1 ako se prenos dogodio) da bi se omoguilo
pravilno izvoenje aritmetikih operacija.

0 0 0 1 1 0 1 0 1
Akumulator A

Z
EORA

0 0 1 1 0 1 0 1
Sadraj
memorijske
lokacije M
1 0 0 0 0 0 0 0 0
Akumulator A

Z

60


Sl. 20 - Sklop za postavljanje zastavica u registru uslova

Zastavica P je bit parnosti i sadrana je u registru uslova kod mikroprocesora Intel 8080 za
ispitivanje korektnog prenosa podataka. Veina mikroprocesora nema bit P u registru uslova, budui da
je funkcija generisanja i ispitivanje parnosti prenesena u nadlenost programibilne jedinice U/I.
Bit prekida - zastavica I obino se ne upotrebljava u aritmetikim operacijama. Bit I se postavlja
(I=1) u sluaju prekida. Zastavica I naziva se kod mikroprocesora M6800 prekidna maska, jer se u
sluaju da je I=1 i ako se pojavi zahtev za prekidom nieg prioriteta (IRQ = 0), prekid se nee dogoditi.
Na Sl.21 prikazan je registar uslova (CCR-- Condition Code Register) za M6800 i uticaj nekih
instrukcija na pojedine zastavice.

Instrukcije 1 1 H I N Z V C
STAA R
EORA R
ADDA
CLRA R S R R
COMA R S
PSHA
LDAA R
ne utie; S postavlja; R brie; postavlja ili brie u zavisnosti od rezultata

Sl.21 - Registar uslova CCR i uticaj nekih instrukcija na pojedine zastavice (M6800)

Neki mikroprocesori imaju jedan ili vie registara koji su po funkciji izdvojeni od ostalih, a
nazivaju se akumulatori. Pored toga to se upotrebljavaju za privremeno skladitenje jednog operanda,
oni uestvuju pri izvoenju aritmetikih i logikih operacija na podacima. Rezultati aritmetikih i
logikih operacija izvedenih u aritmetiko-logikoj jedinici skladite se u akumulatoru. Obino se
akumulator postavlja na jedan od ULAZA u aritmetiko-logiku jedinicu i u kombinaciji sa privremenim
registrima razdvaja ulaz aritmetiko-logike jedinice od izlaza. Razdvajanje je potrebno kod
mikroprocesora standardne arhitekture sa jednom internom sabirnicom, zbog uticaja izlaza aritmetiko-
logike jedinice na ulaz (critical race).





61
REGISTRI OPTE NAMENE

Registri opte namene omoguavaju aritmetiko-logikoj jedinici rukovanje podacima velikom
brzinom. Registri u mikroprocesoru mogu biti organizovani u maloj memorijskoj jedinici. Tako
organizovani nazivaju se skup registara za privremeno skladitenje (scratchoad).

ADRESNI REGISTRI

Adresni registri su 16-bitni registri za skladitenje adresa. Nazivaju se i brojila podataka (data-
counters ili pointers). Njihova bitna karakteristika je da su spojeni na adresnu sabirnicu, te da im sadraj
preko adresnog meuregistra i spoljne adresne sabirnice odreuje adresu memorijske rei.
Adresni registri su:
- programsko brojilo, pomono programsko brojilo (program counter PC)
- brojilo podataka - registar podataka (data counter DC)
- pokaziva steka (stack pointer SP),
- indeksni registar.

Stek LIFO (Last-In-First-Out) memorijska je struktura koja ukljuuje hronoloku komponentu-
najstariji je podatak na dnu stoga, dok je najmlai na vrhu (Sl.22).


Sl.22 - LIFO struktura

Jedan od naina realizacije steka je programski (softverski stek). On se sastoji od odreenog broja
memorijskih lokacija u memoriji, tako da je njegova dubina neograniena - zavisi samo od veliine
memorije. Programer sam bira osnovu stoga, koja je odreena poetnim sadrajem pokazivaa steka.
Sklopovski (hardverski) realizovani stek sastoji se od n internih registara izvedenih u ipu.
Prednost im je velika brzina, meutim, nedostatak je ograniena dubina stoga. Hardverski realizovan stek
uslovljava logike sklopove za detekciju popunjenosti steka. Stekom se upravlja samo sa dve instrukcije:
- poloi podatak u stek (PUSH),
- uzmi podatak iz steka (PULL)
Instrukcija PUSH polae podatak na vrh stoga. Instrukcija PULL uzima podatak sa vrha
stoga (Sl.23).

62

Sl.23 - Primer izvoenja: a) PUSH instrukcije, b) PULL instrukcije

Pokaziva steka (SP) je 16-bitni registar koji sadri adresu steka. Svaki memorijski pristup steku
(polaganje ili uzimanje podataka) inkrementira ili dekrementira (poveava ili smanjuje za 1) sadraj
pokazivaa steka.
Stek slui za privremeno skladitenje podataka kao to su:
- tekui status (stanje) mikroprocesora,
- povratna adresa,
- podaci.
Upotrebljava se kod sledeih funkcija:
- operacija prilikom prekida,
- operacija sa potprogramima,
- skladitenje podataka.

Indeksni registar se upotrebljava pri indeksnom nainu adresiranja, pri kojem se adresa u
instrukcijskoj rei i sadraj indeksnog registra sabiraju u cilju odreivanje stvarne adrese operanda. Neki
mikroprocesori imaju indeksne registre (npr. Motorola M6800), dok se drugi koriste registrima opte
namene kao indeksnim (npr. Intel 8080).


MODEL MIKROPROCESORA M6800

Mikroprocesor M6800 je 8-bitni paralelni procesor na jednom ipu, smeten u kuitu sa 40
izvoda u dve linije (40-pin dual-in-line package). Mikroprocesor ima stek promenljive duine, sedam
naina adresiranja, skup od sedamdeset i dve instrukcije, vektorski prekid, est programeru dostupnih
internih registara, direktan pristup memoriji i mogunost multiprocesorske obrade. M6800 treba jedan
napon napajanja (+5V). To su osnovne karakteristike mikroprocesora M6800. Sl.24 prikazuje model
interne organizacije mikroprocesora M6800.

63

Sl.24 - Model mikroprocesora M6800

esnaestobitni programsi broja je registar za usmeravanje programskog toka od jedne
instrukcije prema drugoj. Budui da je to 16-bitni registar, omogueno je direktno pribavljanje
instrukcije iz celog memorijskog prostora od 64KB. 16-bitno brojilo podataka ima istu funkciju kao i u
pojednostavljenom modelu mikroprocesora.
Pokaziva steka je registar duine 16-bita koji sadri adresu lokacije u memorijskom prostoru
koji se upotrebljava kao stek. Stek je obino memorija sa direktnim pristupom i upotrebljava se za
skladitenje povratnih adresa iz potprograma, skladitenje tekueg stanja kod prekida, te skladitenje
podataka. U indeksni registar, veliine dva bajta, skladite se podaci ili 16-bitna adresa.
Dva akumulatora, A i B, su 8-bitni registri koji sadre operande i rezultate iz aritmetiko-
logike jedinice. Oni su sa programskog gledita pravi radni prostor. Sve aritmetike i logike operacije
akumuliraju rezultate u tim registrima. Podskup instrukcija namenjen je operacijama nad podacima
sadranim u tim registrima, s time, da akumulator A ima neto vee sposobnosti u odnosu na B.
Registar uslova ili registar stanja procesora je 6-bitni registar, iji se bitovi (zastavice--bistabili
dojave stanja) postavljaju na temelju sadraja registra ili memorijske lokacije, ili rezultata aritmetike,
odnosno logike operacije.
Instrukcijski registar sa dekoderom i upravljakim sklopovima rukovodi internim operacijama
mikroprocesora. Kombinacije osnovnih instrukcija i razliitih naina adresiranja daju 197 instrukcija
razliitih duina rei (1-, 2-, 3- bajtne instrukcijske rei).
Dvofazni taktni signali 1 i 2 vremenski upravljaju svim operacijama u mikroprocesoru
(Sl.25).


64



Sl.25 - Dvofazni signali takta (vremenskog voenja)

Na prednjem bridu signala 1 sadraj programskog brojila se preko adresnog meuregistra prenosi na
spoljnu adresnu sabirnicu. Na zadnjem bridu signala 1 sadraj programskog brojila pveava se za jedan.
Na prednjem bridu signala 2 podaci se postavljaju na sabirnicu podataka. Smer podataka (od ili prema
mikroprocesoru) odreen je stanjem na upravljakoj liniji R/W (itaj/pii). Na zadnjem bridu signala 2
podaci su prihvaeni u mikroprocesor ili memoriju (u zavisnosti od smera podataka).
Devet upravljakih linija omoguava razliita delovanje mikroprocesora ili nude posebne
upravljake funkcije. Upravljaka linija HALT omoguava zaustavljanje mikroprocesora (HALT
signal=0) na kraju izvoenja tekue instrukcije.
Ulazna linija za upravljanje treim logikim stanjem TSC (Three-State Control) slui za
prebacivanje spoljnih adresnih linija i R/W upravljake linije u stanje visoke impedanse -u tree logiko
stanje.
VMA (Valid Memory Address) - Adresa memorije validna je izlazna linija koja pokazuje
memoriji i spoljnim jedinicama da je na adresnoj sabirnici validna adresa memorije. Izlaz Sabirnica
raspoloiva, BA (Bus Available), u logikom stanju 1 oznaava da je mikroprocesor zaustavljen (u
stanju HALT) i da je adresna sabirnica raspoloiva za druge spoljne ureaje.
Upravljanje spoljnom sabirnicom podataka vri se ulaznom linijom DBE (Data Bus Enable) -
Osposobi sabirnicu podataka. Ta ulazna linija je upravljaki signal logike treeg stanja i u stanju DBE=1
omoguava mikroprocesoru upotrebu sabirnice podataka. Tim ulazom normalno upravlja takt 2. Pri
DBE=0 sabirnica podataka je na raspolaganju (drugom) spoljnom ureaju.
Ulaz RESET slui za resetovanje i pokretanje mikroprocesora nakon uspostavljanja napona
napajanja.
Ulazne linije: Zahtev za prekid (IRQ) i Nemaskirajui prekid (NMI) slue za postavljanje
zahteva za prekid od strane spoljnih jedinica.
Na modelu mikroprocesora M6800 bie opisano izvoenje dve instrukcije:

LDAA $0F NAPUNI AKUMULATOR SADRAJEM MEMORIJSKE LOKACIJE IJA JE
ADRESA 000F,
STAA $010F SKLADITI SADRAJ AKUMULATORA A U MEMORIJSKU LOKACIJU
010F

Instrukcija LDAA $0F izvodi se u tri ciklusa (Sl.26). U prvom ciklusu sadraj programskog
brojila (adresa instrukcije LDAA) se sa prednjim bridom signala 1 postavlja na adresnu sabirnicu (1).
Zadnjim bridom signala 1 sadraj programskog brojila se poveava za jedan (2). Podatak sa sabirnice
podataka sa zadnjim bridom signala 2 (to je operacijski kod instrukcije LDAA) prihvata i sprema u
instrukcijski registar (3). Prispeli operacijski kod se dekodira kao: napuni akumulator A sadrajem
memorijske lokacije, ija je adresa sledei bajt instrukcijske rei.
65



Sl.26 - Dijagram izvoenja instrukcije LDAA $0F

Prilikom pribavljanja operacijskog koda signali VMA i R/W bili su u logikom stanju 1. U drugom
ciklusu sadraj programskog brojila postavlja se na adresnu sabirnicu sa prednjim bridom signala 1.
Programsko se brojilo poveava za jedan. Sadraj memorijske lokacije sa postavljene adrese smeten je
na sabirnicu podataka (VMA I R/W = 1) i skladiti se u brojilo podataka (4). To je bajt 0F - adresa
operanda. U treem ciklusu sadraj brojila podataka smetava se na adresnu sabirnicu. Sadraj sa adrese
000F postavlja se na sabirnicu podataka (signali VMA i R/W su 1) i sa zadnjim bridom signala 2 smeta
se u akumulator A (5).

Tabela 2
Izvoenje instrukcije LDAA $0F
Instrukcija Broj
ciklusa
Ciklusi VMA
linija
Adresna sabirnica R/W linija Sabirnica
podataka
LDA A (direktno
adresiranje)
1 1
Adresa operacijskog koda
1
Operacijski kod

3 2 1
Adresa operacijskog koda
+1
1
Adresa
operanda

3 1
Adresa operanda
1
Operand

Tabela 2 prikazuje stanja na sabirnici podataka i adresnoj sabirnici, te upravljakim linijama
VMA i R/W.

Instrukcija STAA $010F izvodi se u pet ciklusa (Sl 35). Stanje u memoriji je sledee:
Adresa Sadraj
0005 B7 operacijski kod STAA

0006 01
adresa operanda
0007 0F

Prvi ciklus zapoinje postavljanjem sadraja programskog brojila (0005) na adresnu sabirnicu (1).
Programsko brojilo poveava se za jedan (0006) (2). Sadraj sa adrese 0005 (operacijski kod B7)
postavljen je na sabirnice podataka i zadnjim bridom 2 signala spremljen u instrukcijski registar (3).
66
Operacijski kod je dekodiran kao: Skladiti sadraj akumulatora A u memorijsku lokaciju odreenu sa
dva sledea bajta.
Drugi ciklus zapoinje postavljanjem sadraja programskog brojila (0006) na adresnu sabirnicu
(4). Sadraj programskog brojila poveava se za jedan (0007) (5). Sadraj sa adrese 0006 (01) postavlja
se na sabirnicu podataka i smetava u brojilo podataka.
U treem ciklusu pribavlja se trei bajt (manje znaajan bajt adrese (7) instrukcijske rei (0F) I
smeta u brojilo podataka (9). Sadraj programskog brojila poveava se za jedan (0008) (8).
U etvrtom se ciklusu sadraj brojila podataka (010F) postavlja na adresnu sabirnicu (10).
Sadraj akumulatora A je pripravan za prenos (VMA=0 i R/W=1). Sadraj programskog brojila se ne
poveava.
U petom ciklusu izabrana je memorijska lokacija s adresom 010F, upravljaki signal R/W prelazi
u 0, (VMA u 1, a sadraj akumulatora A je preko spoljne sabirnice podataka prenesen i skladiten u
memorijsku lokaciju 010F (11). Tabela 5.2 prikazuje stanja na sabirnicama i upravljake signale prilikom
izvoenja instrukcije STA A $ (16-bitna adresa).
Tabela 5.2
Izvoenje instrukcije STA A $010F
Instrukcija Broj
ciklusa
Ciklus
i
VMA
linija
Adresna sabirnica R/W
linija
Sabirnica podataka
1 1
Adresa operacijskog koda
1
Operacijski kod
STA A
2 1
Adresa operacijskog koda +1
1
Odredina adresa (znaajniji bajt)
(proireno 5 3 1
Adresa operacijskog koda +2
1
Odredina adresa (manje znaajan
bajt)
direktno
4 0
Odredina adresa operanda
1
-
adresiranje
)
5 1
Odredina adresa operanda
0
Podatak iz akumulatora

Prilikom izvoenja instrukcije mikroprocesor moe imati tri tipa vremenskih mainskih ciklusa:
-ciklus operacije itanja,
-ciklus operacije upisivanja,
-ciklus interne operacije.
Za vreme operacije itanja bajt podataka se unosi u mikroprocesor (VMA=1, R/W=1) Za
vreme operacije upisivanja bajt podataka je poslat od strane mikroprocesora (VMA=1, R/W=0). U
ciklusu interne operacije mikroprocesora nema aktivnosti na sabirnici (VMA=0, R/W=1).
67

MEMORIJA
UVOD

Memorija je vana komponenta mikroraunara i sklopa mikroraunara. Instrukcije, podaci,
rezultati i meurezultati skladite se u memoriji i pozivaju iz memorije. Memorije koje se upotrebljavaju
u sklopovima mikroraunara moemo podeliti u dve grupe:
-memorija sa sekvencijalnim pristupom (periferna memorija),
-memorije sa direktnim pristupom (tipovi memorije RAM i ROM - centralna ili operativna
memorija)
Kod memorije sa sekvencijalnim pristupom vreme pristupa zavisi od mesta gde je podatak
skladiten. Glavni predstavnici takvih memorija su magnetne trake, magnetni diskovi, optiki diskovi,
poluprovodnike serijske memorije itd. Veina ovih tipova memorija upotrebljavaju se u niim
hijerarhijskim tipovima organizacije memorije (sekundarna memorija). Primeri: disketa, disk.
Memorija RAM upotrebljava se za skladitenje podataka koji se menjaju za vreme izvoenja
programa, te programa koji se razvijaju i prolaze fazu testiranja, uz popravke i izmene. Nedostatak
memorija RAM je da su izbrisive (volatile) - pri nestanku napajanja njihov sadraj se brie.
Memorija ROM upotrebljava se za skladitenje programa, konstanti i stalnih parametara. Sadraj
memorije ROM moe se oitati, meutim, ne moe se menjati upisivanjem. Memorija ROM je
neizbrisiva (non-valatile) - pri nestanku napajanja sadraj je sauvan.
U poseban tip memorija sa direktnim pristupom ulaze alfanumeriki i grafiki video-RAM
(VRAM).
Alfanumeriki video-RAM sa strane mikroprocesora izgleda kao obini statiki RAM i moe
se direktno spojiti na adresnu sabirnicu i na sabirnicu podataka mikroraunara. U VRAM se moe
upisivati ili oitavati isto kao i kod obinih memorija RAM. VRAM ima dodatni izlaz -VRAM VIDEO
SIGNAL, koji daje video signal, a upotrebljava se za prikaz sadraja memorijskih lokacija VRAM-a na
TV monitoru.
Grafiki VRAM (grafika kartica) ima i dodatne registre, koji slue za skladitenje parametara
kao to su koordinate x,y, boja i intenzitet, te za skladitenje naredbi za rukovanje prikaznom jedinicom.

MEMORIJA ROM

Memorija ROM ili ROS (Read-Only Store) ispunjava dva zahteva:
-neizbrisivost (nonvolatibility),
-nedestruktibilnost - neunitivost sadraja.
Nedestruktibilnost znai da se ROM pojavljuje kao memorijsko polje iji je sadraj, jednom
upisan, stalan i ne moe se promeniti pod uticajem mikroprocesora (operacijom upisivanje). Zbog tih
svojih karakteristika ROM se obino upotrebljava za skladitenje stalnih programa.
U grupu ispisnih memorija spadaju:
a) ROM
b) PROM - programibilna ispisna mrmorija,
c) EPROM - promenljiva programibilna ispisna memorija.

a) U ROM je upisan odreeni sadraj ve za vreme izrade memorijskog ipa. Bit-uzorke koji
odgovaraju eljenom programu korisnik dostavlja proizvoau u standardnom obliku. Sl.40 prikazuje
logiku strukturu ROM-a.
b) PROM (User-Programmable Read Only Memory) je tip ispisne memorije koju moe
isprogramirati sam korisnik uz pomo ureaja za programiranje PROM-ova.
68
c) EPROM je memorija koju moe programirati korisnik uz pomo (E) PROM - programera, ali
se njen sadraj moe izbrisati i zatim ponovo isprogramirati.

PITANJA
Elementi standardne arhitekture mikroprocesora
Uloga upravljake jedinice CU
Uloga aritmetiko logike jedinice ALU
Registar stanja u ALU
Adresni registri
Operacije nad stekom -PUSH, PULL
Registri M6800
Nain izvravanja programa kod M6800
Tipovi memorije































69


NAINI ADRESIRANJA

UVOD

Prilikom izvoenja programa upravljaka jedinica mora znati gde se nalaze instrukcije i operandi
nad kojima e se izvoditi operacije. Naini na koje se pribavljaju instrukcije i odreeni operandi za
vreme izvoenja instrukcijskog ciklusa nazivaju se naini adresiranja. Instrukcijska re se sastoji od tri
dela (Sl.42):
-polja operacijskog koda,
-polja naina adresiranja,
-adresnog polja.
Duina instrukcijske rei zavisi od raunara i operacije koju treba izvesti. Osmobitna re
mikroprocesora, meutim, omoguava samo 2
8
=256 kombinacija za operacijski kod i adresu. To je,
oito, premalo da bi se mogao dosegnuti itav adresni prostor (npr. 64KB memorije). Zbog toga se u
mikroprocesorima upotrebljavaju instrukcijske rei sastavljene od dva ili tri bajta. U veini sluajeva
prvi bajt se upotrebljava za predstavljanje operacijskog koda i koda naina adresiranja, dok preostali bajt
(ili preostala dva bajta) slui kao adresa ili kao osnova za odreivanje stvarne adrese operanda.


Operacijski kod Nain adresiranja Polje adrese
n-1 0
Sl.27 - Organizacija n-bitne instrukcijske rei

Vie naina adresiranja prisutno u mikroprocesorskoj arhitekturi omoguava efikasnije rukovanje
razliitim strukturama podataka, a time i efikasnije izvoenje programa.


NAINI ADRESIRANJA ZA MIKROPROCESOR M6800


Za ilustraciju razliitih naina adresiranja upotrebiemo programski model mikroraunara, uz
pridodan instrukcijski registar. Programski model mikroprocesora ini skup registara koji su vidljivi i
dostupni programeru, memorija podataka, te programska memorija. Sl.28 prikazuje programski model za
mikroraunar M6800. Programabilni registri su: akumulatori A i B, 6-bitni registar uslova (CCR), 16-
bitno programsko brojilo (PB), 16-bitni pokaziva steka (SP) i 16-bitni indeksni registar (IX). Na slici je
registar podataka (DC) izostavljen. Programeru moraju biti na raspolaganju naini adresiranja internih
registara mikroprocesora i adresiranja svih memorijskih lokacija.

70

Sl.28 - Programski model za mikroraunar na bazi mikroprocesora M6800


Mikroprocesor M6800 ima sedam naina adresiranja:
- ukljuno (Inherent, Implied),
- adresiranje akumulatora,
- usputno (Immediate),
- direktno (Direct),
- direktno proireno (Extended),
- indeksno (Indexed),
- odnosno tj. relativno (Relative).
Tako raznolik izbor naina adresiranja omoguava efikasno programiranje u pogledu brzine
izvoenja programa i iskoritenja memorijskog prostora.

Ukljuno adresiranje i adresiranje akumulatora

Ovim nainom adresiranja operand se odreuje implicitno u samoj instrukciji. Ukljunim se
adresiranjem koristimo pri adresiranju registra kao to su indeksni (IX) ili pokaziva steka (SP).
Adresiranjem akumulatora ili akumulatorskim adresiranjem oznaava se akumulator (ili dva
akumulatora).
Takve instrukcije (tipa ukljunog i akumulatorskog adresiranja) imaju mnemoniki kod koji
odreuje jedan ili dva registra (akumulatora) - kao izvor i/ili odredite. Drugim reima, u mnemonikom
kodu same instrukcije ukljuena je i adresa operanda.
Primeri takvih instrukcija:

ABA Saberi sadraje akumulatora A i B, te rezultat skladiti u A.
TSTB Ispitaj sadraj akumulatora B.
CLRA Izbrii sadraj akumulatora A.
DES Umanji sadraj pokazivaa steka za 1.
INX Poveaj sadraj indeksnog registra za 1.
PULA Sadraj iz steka prenesi u akumulator A

Sl.29 prikazuje primer izvoenja instrukcije PULA na programskom modelu (heksadekadni broj
32 je kod instrukcije PULA). Sl.29a prikazuje pribavljanje operacijskog koda instrukcije PULA. Sl.29b
prikazuje stanje nakon izvoenja instrukcije PULA.

71

Sl.29 - Primer izvoenja instrukcije PULA na programskom modelu: a) faza PRIBAVI; b) faza IZVRI

Usputno adresiranje

Kod ovog naina adresiranja operand je prisutan u instrukcijskoj rei. On je sadran u bajtu koji
sledi bajt operacijskog koda. Instrukcijska re ovog tipa adresiranja je duine dva bajta, ako je operand
duine 8 bita. Ukoliko je operand 16-bitni (kod instrukcija LDX i LDS), tada se instrukcijska re sastoji
od tri bajta. Sl.30a, Sl.30b, Sl.31a i Sl.31b prikazuju oba sluaja na primeru instrukcija ADDA #$3F i
LDX #$012A. Oznaka # odreuje usputno adresiranje, a znak $ oznaava heksadekadni broj.


Sl.30 - Primer izvoenja instrukcije ADD A #$3F (pribroji sadraju akumulatora A3F)
a) poetak faze PRIBAVI, b) zavretak faze IZVRI

72

Sl.31 - Primer izvoenja 3-bajtne instrukcije LDX # $012A (pohrani 012A u indeksni registar)
a) poetak faze PRIBAVI, b) zavretak faze IZVRI

Direktno i direktno proireno adresiranje

Kod ovog naina adresiranja operand se nalazi u memorijskoj lokaciji, ija je adresa direktno
zadata u adresnom delu instrukcijske rei. Instrukcijska se re sastoji od dva ili tri bajta. Instrukcija koja
se sastoji od dva bajta omoguava adresiranje samo 256 rei (adresiranje memorijskih lokacija 0000-
00FF). Direktni nain adresiranja esto se naziva i adresiranje nulte stranice (zero-page addressing).
Upotrebom tih lokacija i skladitenjem u njih postie se uteda u vremenu izvoenja instrukcija. Na
primer, instrukcija LDAA $A0 (direktno adresiranje ili adresiranje nulte stranice) se izvodi u tri ciklusa,
dok su istoj instrukciji LDAA $00A0 (direktno proireno adresiranje) potrebna etiri ciklusa. Sl.32
prikazuje primer direktnog naina adresiranja (instrukcija ADDA $30 - pribroji operand s adrese 0030
sadraju akumulatora).


Sl.32 - Primer direktnog adresiranja ADDA $30 (pribroji sadraju akumulatora A operand sa adrese 0030)
a) poetak faze PRIBAVI, b) zavretak faze IZVRI

Da bi se dosegao celi memorijski prostor od 64KB rei, koristi se direktno proireno adresiranje.
Instrukcijska re se sastoji od tri bajta, s tim da su zadnja dva 16-bitna adresa operanda. Sl.33 prikazuje
primer direktno proirenog naina adresiranja (STAA $1FA0 - skladiti sadraj akumulatora A na
memorijsku lokaciju 1FA0).
73

Sl.33 - Primer direktno proirenog adresiranja instrukcije STAA $1FA0 (pohrani sadraj akumulatora A na memorijsku
lokaciju 1FA0): a) poetak faze PRIBAVI, b) zavretak faze IZVRI

Indeksno adresiranje

Instrukcijska re se kod ovog naina adresiranja sastoji od dva bajta (drugi bajt je adresni deo).
Adresni deo instrukcijske rei (0-255) pribraja se manje znaajnom bajtu indeksnog registra, dok se
eventualni prenos kod spomenutog zbrajanja pribraja znaajnijem bajtu indeksnog registra. Rezultat je
adresa operanda. Pri tome se sadraj indeksnog registra ne menja. Sl.34 prikazuje izvoenje instrukcije
ADDA 2,X. Oznaka X upotrebljava se za oznaavanje indeksnog naina adresiranja.



Sl.34 - Primer indeksnog adresiranja instrukcije ADDA 2, X: a) poetak faze PRIBAVI, b) zavretak faze IZVRI

Sadraj indeksnog registra se esto poveava (izvoenjem instrukcije INX) ili smanjuje (DEX)
prilikom izvoenja programske petlje u cilju pristupa do podataka skladitenih u memoriji u obliku
tablica.

74
Odnosno (relativno) adresiranje

Instrukcije grananja i uslovnog grananja upotrbljavaju odnosno (relativno) adresiranje. Ove se
instrukcije sastoje od dva bajta, s tim da je drugi bajt binarni broj s predznakom u notaciji dvojnog
komplementa koji se pribraja sadraju programskog brojila i omoguava grananje u dva smera. To znai
da je obim relativnog adresiranja 127 u odnosu na lokaciju same instrukcije grananja. Meutim, kako se
obim rauna u odnosu na sledeu instrukciju koja bi bila izvrena kada uslov grananja ne bi bio ispunjen,
odredina adresa D je u obimu:
(PC+2) 127 < D < (PC+2) + 127
PC 125 < D < PC + 129

Sl.51 prikazuje izvoenje BRA (bezuslovno grananje) za mikroprocesor M6800. Odnos izmeu relativne
adrese i apsolutne adrese dat je izrazom:
D = (PC + 2) + R,
gde su:
R - 8-bitna re u notaciji dvojnog komplementa, skladitena u drugom bajtu instrukcije grananja;
PC - tekui sadraj programskog brojila;
D - odredina adresa.


Sl.35 - Primer odnosnog adresiranja (instrukcija BRA $06): a) poetak faze PRIBAVI, b) zavretak faze IZVRI

PITANJA
(M6800- naini adresiranja)
ukljuno (Inherent, Implied) adresiranje
adresiranje akumulatora,
usputno (Immediate), adresiranje
direktno (Direct), adresiranje
direktno proireno (Extended), adresiranje
indeksno (Indexed), adresiranje
odnosno tj. relativno (Relative), adresiranje







75
ULAZNO-IZLAZNI (U/I) PRENOS

UVOD

Prenos podataka (u irem smislu rei - informacije) izmeu logike koja je deo sastava
mikroraunara i logike izvan mikroraunara omoguava ulazno-izlazni (U/I) podsistem mikroraunara.
Granica izmeu internih logikih sklopova mikroraunara i spoljnih logikih sklopova sklopova
(procesa) je sledea: interni logiki sklopovi-komponente mikroraunara-deluju u uskoj vezi sa
mikroprocesorom (npr. memorija RAM, ROM, U/I meusklop), dok su spoljni logiki sklopovi u sprezi
sa procesom. Ovde se pod procesom podrazumeva iri pojam, npr. upravljanje tehnolokim postupkom.
Meusklop izmeu mikroraunara i spoljne logike ima etiri osnovne funkcije:
- meuskladitenje (buffering),
- dekodiranje adrese ili izbor ureaja,
- dekodiranje komandi,
- vremensko voenje (timing) i upravljanje.
Meuskladitenjem se vri sinhronizacija izmene podataka izmeu mikroraunara i spoljnih
logikih sklopova. Funkcija dekodiranja adrese ili izbora ureaja potrebna je zbog izbora spoljnjeg
logikog sklopa. Dekodiranje komandi je potrebno u sisitemima u kojima vanjska logika pored uloge u
prenosu podataka ima i zadatak poblieg definisanja funkcije prenosa podataka. Sve gornje funkcije
zahtevaju vremensko voenje i upravljanje.
Nain izmene podataka izmeu mikroraunara i spoljne logike moe se svrstati u tri grupe:
- programirani U/I,
- prekidni U/I,
- direktan pristup memoriji DMA (Direct Memory Access).

Pri programiranom U/I, prenosom podataka u potpunosti upravlja mikroraunar, odnosno
program koji se izvodi. Kod prekidnog U/I, spoljna logika zahteva da mikroraunar prekine sa svojim
tekuim operacijama i da posveti panju spoljnjoj logici. Prenos podataka bez uestvovanja
mikroprocesora (MPU) i ometanja njegova rada sprovodi se direktnim pristupom memoriji.


ORGANIZACIJA PROGRAMIRANOG U/I PRENOSA

Veliki raunari imaju viesabirniku arhitekturu - sabirnicu operanda, rezultata, posebnu
sabirnicu za komunikaciju sa memorijom (memorijska sabirnica), te sabirnicu povezanu sa U/I
meusklopovima (U/I sabirnica). Mikroprocesor zbog ogranienog broja izvoda na integrisanom kuitu,
upotrebljava zajedniku sabirnicu za saobraanje sa memorijom i U/I meusklopovima. Zbog toga se na
mikroprocesorskoj sabirnici ne razlikuju adrese U/I meusklopova od adresa memorijskih lokacija.
Postoje dva naina adresiranja U/I meusklopova:

- memorijsko preslikavanje U/I registara meusklopova,
- izdvojeno adresiranje U/I registara meusklopova

Kod metode memorijskog preslikavanja U/I registra, mikroprocesor smatra ulazno/izlazne i
upravljake registre U/I meusklopa delom memorijskog adresnog prostora. Samim tim je stvarni
memorijski adresni prostor umanjen za taj deo. U takvoj U/I organizaciji mikroprocesor nema ulazne niti
izlazne instrukcije. Mikroprocesor rukovodi U/I podacima koji se nalaze u registrima U/I meusklopa
pomou istih instrukcija koje se upotrebljavaju za rukovanje podacima skladitenim u memorijskim
76
lokacijama (memorijski odnosne instrukcije). Primer takve organizacije je mikroprocesor M6800. Na
primer, izvoenje instrukcija:

LDAA #$A0
STAA $8008

ima kao posledicu da se podatak A0 skladiti u izlaznom registru i alje spoljnoj logici, ako je 8008
adresa izlaznog registra u U/I meusklopu PIA, na primer.
Pri izdvojenoj U/I organizaciji mikroprocesor specifira s jednom ili dve izlazne upravljake linije
da li je podatak na adresnoj sabirnici adresa memorijske lokacije ili je to adresa registra U/I meusklopa.
Na primer, postavljanjem odreene upravljake linije u logiko stanje 1 oznaava adresnoj sabirnici i
komponentama mikroraunara da je prisutna adresa namenjena memoriji. Kada je ta upravljaka linija u
stanju logike 0, adresa prisutna na sabirnici namenjena je ulazno/izlaznom registru U/I meusklopa.

TIPOVI PROGRAMIRANOG U/I PRENOSA

S obzirom na odnos mikroraunara i spoljnih logikih sklopova, programirani U/I prenos moe se
podeliti na:
- programirani bezuslovni prenos,
- programirani uslovni prenos.

Bezuslovni se prenos upotrebljava samo tamo gde je vreme odziva spoljnih logikih sklopova
poznato i stalno. Kod tog tipa prenosa spoljna logika mora biti spremna na saobraanje (prihvatanje ili
slanje podataka) u trenutku izvoenja U/I instrukcije. Zbog jednostavnosti i direktnosti ovaj tip prenosa
predstavlja minimalne zahteve za programe i sklopove.

Primeri programiranog U/I prenosa
a) primer bezuslovnog programiranog prenosa za M6800.
Program: Objanjenje:
-
-
LDAA #$FF Napuni akumulator A sa 00FF
STAA $8008 Skladiti na $8008 (izlazni registar)
-
-
(druge programske instrukcije)
-
-
LDAA $800A Napuni akumulator A sa memorijske lokacije $800A
-
Uz pretpostavku da je $8008 adresa izlaznog registra podataka, a $800A adresa ulaznog registra
podataka, instrukcija STAA $8008 alje podatke (u ovom primeru sa 00FF) spoljnjem logikim
sklopovima preko izlaznog registra. Instrukcija LDAA $800A prenosi podatke s ulaznog registra u
akumulator A.

b) Primer programiranog uslovnog prenosa za M6800 - Paralelni U/I meusklop PIA omoguava
jednostavan prenos podataka. Programski odseak za unos podataka ima sledei oblik:
-
OPET LDAA $8009 Ispitivanje bita b7 upravljake rei PIA
BPL OPET granaj ako je b7=0
LDAA $8008 Podatak je spreman, unesi ga u akumulator A
77
-

Postupak prozivanja (Polling)

U sistemima gde vie spoljnjih logikih sklopova komunicira preko vie U/I meusklopova sa
jednim mikroprocesorom, upotrebljava se U/I tehnika prozivamja (polling) ili ciklikog ispitivanja.
Mikroraunar periodiki proziva svaki spoljni logiki sklop i ispituje da li je zahtevao posluivanje. Ako
spoljni logiki sklop ne zahteva posluivanje, mikroraunar ispituje sledei spoljni logiki sklop itd.
Ako jedan od njih zahteva posluivanje, mikroraunar prelazi na izvoenje programa za posluivanje
dotinog vanjskog logikog sklopa (Sl.36). U program za posluivanje ukljuene su funkcije U/I prenosa
(prenos rei ili bloka podataka).

Sl.36 - Postupak prozivanja
Nakon prozivanja tih spoljnih logikih sklopova postupak prozivanja se ponavlja, tako da program ini
petlju prozivanja (Sl.53).


78

PREKIDNI U/I PRENOS

UVOD

Ukoliko se bezuslovni prenos, uslovni prenos ili postupak prozivanja pokau nepogodnim, bilo
zbog nepoznavanja tanih vremena odziva spoljnih logikih sklopova, bilo zbog rasipanja vremena
raunara u petljama ekanja ili sporosti u prozivanju pojedinih spoljnih logikih sklopova, moe se
upotrebiti prekidni prenos. Pri prekidnom prenosu, na zahtev spoljne logike, mikroraunar prekida
izvoenje svog tekueg programa i prelazi na izvoenje prekidnog programa (Sl.37)



Sl.37 - ematski prikaz prekidnog prenosa

Prekidna struktura omoguava da mikroprocesor odgovori na asinhrone dogaaje, odnosno
zahteve od strane spoljne logike, a da ne eka u petlji kojom ispituje stanje spoljnog logikog sklopa.
Mikroprocesor ima jednu ili vie upravljakih linija (prekidne linije) preko kojih spoljnih logiki
sklopovi zahtevaju posluivanje. Postupak prekidnog prenosa izvodi se obino u sledeim koracima
(Sl.38):
a) Spoljna logika generie zahtev za prekid i alje ga prekidnom linijom mikroprocesoru (Sl.39).
b) Ukoliko mikroprocesor prihvata zahtev za prekid, na kraju izvrenja tekue instrukcije
odgovara signalom potvrde (IACK) i onemoguava dalje prekide.
c) Skladite se svi tekui sadraji radnih registara, sadraj registra uslova i programskog brojila.
d) Program se grana na memorijsku adresu, sa kojom zapoinje prekidni program (u njega je
ukljuen i programski odseak za U/I prenos podataka).
e) Nakon izvrenja prekidnog programa nastavlja se izvoenje prekinutog (tekueg) programa s
tim, da se svi sadraji radnih i uslovnih registara obnavljaju.

Veina mikroprocesora ima mogunost programskog maskiranja prekida u zavisnosti od nivoa
prioriteta. Ukoliko je bit prekida u registra uslova postavljen u 1 (npr. instrukcijom SEI kod M6800),
mikroprocesor ne prihvata zahtev za prekid i nastavlja sa izvoenjem sledee instrukcije tekueg
programa.
Prvi korak u postupku prekidnog prenosa je onemoguavanje sledeih prekida (postavljanjem
prekidne maske spreava se gneenje prekida, Sl.40). U nekim se situacijama mikroraunar mora
prekidati i kad se nalazi u prekidnom programu (gneenje prekida, Sl.40b); to se omoguava brisanjem
prekidne maske (npr. instrukcijom CLI kod mikroprocesora M6800).

79

Sl.38 - Postupak pri prekidu



Sl.39 - ematski prikaz prekidne strukture mikroraunara

80

Sl.40 - Primer prekida sa postavljanjem prekidne maske i bez postavljanja prekidne maske:
a) bez gnijeenja (uglavljivanja), b) gnijeenje prekida

Sledei korak u postupku prekida je slanje signala potvrde prekida na kraju izvrenja tekue
instrukcije (neki mikroprocesori nemaju signal potvrde, npr M6800). Na kraju prekidnog programa
omoguava se nov prekid (brie se prekidna maska u registru uslova) te mikroprocesor prelazi na
izvoenje sledee instrukcije iz tekueg prekinutog programa. Taj prelaz na dalje izvoenje prekinutog
programa vri se pomou instrukcije povratka iz prekidnog programa (npr. RTI, RET). Napomenimo da
kod nekih mikroraunara postoji zamena u redosledu koraka c) i d).
Budui da je vie U/I meusklopova prikljueno na istu prekidnu liniju (Sl.39), mikroprocesor
mora ustanoviti koji je U/I meusklop, odnosno spoljni logiki sklop, zahtevao posluivanje. Postoje dve
metode utvrivanja uzronika prekida:
- metoda prozivanja prekida,
- metoda vektorskog prekida.
Metoda prozivanja prekida slina je metodi prozivanja ve ranije opisanoj kod programiranog
prenosa. U prekidnom programu obavlja se prozivanje pojedinih U/I meusklopova i ispituje se njihovo
stanje, odnosno, ispituje se da li je odreeni meusklop prouzroio prekid. Ispitivanja stanja meusklopa
znai ispitivanje njegovih registara, odnosno onih registara koji upuuju da je aktiviran prekidni prenos
od strane meusklopa. Ukoliko je ispitani meusklop uzrok prekida, program se grana na odgovarajui
programski odseak za prenos podataka. Pri tom se u redosledu ispitivanja meusklopova krije i prioritet
pojedinih U/I meusklopova.
Kod metode vektorskog prekida adresu grananja genere U/I meusklop koji zahteva
posluivanje. U sisitemima mikroraunara esto se upotrebljavaju prekidi u vie nivoa koji su obino
kombinacija metoda prozivanja i vektorskog prekida.
Prednost prekidnog programa je u brzom odgovoru, jer se spoljni logiki sklopovi posluuju u
vrlo kratkom vremenu nakon generisanog zahteva. Prekidni prenosi se obino zbog toga upotrebljavaju u
sistemima s odzivom u realnom vremenu.
Nedostatak prekidnog prenosa je u tome to zahteva dodatne sklopove u sluaju simultanih i
vienivovskih zahteva za prekid. Pri svakom posluivanju zahteva mikroprocesor gubi vreme u
dodatnom poslu skladitenja stanja tekueg programa. Dalji je nedostatak asinhrono meudelovanje
programa za posluivanje i glavnog programa, tako da mogu nastati konflikti u pogledu zahteva za
memorijskim prostorom ili u pogledu vremena izvoenja programa. Nedostatak prekida je u tome to se
prenos podataka obavlja pod programskim upravljanjem mikroprocesora. Pri analizi prekidnog sistema
pojedinog mikroprocesora obino treba odgovoriti na sledea pitanja:
- Koliko prekidnih linija poseduje mikroprocesor?
- Kakav je odziv mikroprocesora na prekid?
- Na koji nain mikroprocesor odreuje izvor (uzronik) prekida ako je broj izvora vei od broja
prekidnih linija?
- Da li mikroprocesor moe razlikovati vaan prekid od nevanog (prioritetna struktura prekida)?
- Kada i kako se prekid omoguava ili onemoguava?


81
PITANJA
Tipovi prenosa podataka
tipovi programiranog prenosa
prekidni prenos


ORGANIZACIJA PREKIDNOG SISTEMA ZA MIKROPROCESOR
M6800

Mikroprocesor M6800 ima tri prekidna ulaza: Reset (RES), Non-Maskable Interrupt (NMI -
nemaskirajui prekid) i Interrupt Request (IRQ). Prekidni sled moe zapoeti upotrebom odgovarajuih
upravljakih signala na ta tri prekidna ulaza, ili upotrebom instrukcije SWI (softverski, programski
prekid). Rezultirajui prekidni sled razliit je za svaki od gornjih sluajeva.

Sklopovski (hardverski) zahtev za prekidom (IRQ) obino generiu meusklopovi U/I (PIA,
ACIA), i sklopovi koje projektuju korisnici. Postavljanjem linije IRQ u logiku 0 zahtev se aktivira.
Sl.41 prikazuje prekidni sled pri aktiviranju linije IRQ.


Sl.41 - Prekidni sled za prekid IRQ
Nakon pojave IRQ=0 i ispitivanja prekidne maske u registru uslova, sledi skladitenje
programibilnih registara (PC, IX, ACCA, ACCB, CCR) u memoriju odreenu sadrajem pokazivaa
steka SP. Postupak skladitenja traje sedam memorijskih ciklusa. Po dva su ciklusa potrebna za
skladitenje sadraja programskog brojila i indeksnog registra, a po jedan za akumulator A, akumulator
B, te registar uslova CCR. Sadraj pokazivaa steka umanjie se za sedam i pokazivati sledeu praznu
memorijsku lokaciju. Adresa prekidnog programa pribavlja se sa memorijskih lokacija FFF8 i FFF9.
Postavljanje prekidne maske vana je operacija u organizaciji prekidnog sistema. Postavljanjem
maske definisan je postupak rukovanja u sluaju pojave vie zahtava za prekid. Ukoliko se eli
omoguiti gneenje prekidnih programa, mora se obrisati prekidna maska instrukcijom CLI na
poetku prekidnog programa. Meutim, ako se ne eli gneenje prekida, prekidna maska se ne brie.
82
Maska se automatski brie tek izvoenjem instrukcije RTI (Return from Interrupt - povratak iz prekidnog
programa). Izvoenjem instrukcije RTI, iz steka se vraaju sva skladitena stanja radnih registara, te
sadraj programskog brojila i registra uslova (Sl.42). Budui da je pre prekida prekidna maska bila
obrisana (inae ne bi ni dolo do prekida), nakon izvoenja instrukcije RTI, odnosno vraanja u prekinuti
tekui program, ponovno je omoguen prekid.


Sl.42 - Izvoenje instrukcije RTI: a) pre izvoenja instrukcije RTI, b) nakon izvoenja instrukcije RTI

Na Sl.41 prikazana je situacija u kojoj nakon postavljanja prekidne maske sledi grananje na prvu
instrukciju u prekidnom programu. To se postie punjenjem programskog brojila sadrajem memorijskih
lokacija FFF8 i FFF9. Mikroprocesor pribavlja prvu instrukciju iz lokacije koja je odreena novim
sadrajem programskog brojila. Sadraj u memorijskim lokacijama FFF8 i FFF9 naziva se vektorom.
Mikroprocesor alje na adresnu sabirnicu adresu FFF8 i postavlja liniju R/W u 1 te se sa izabrane
lokacije pribavlja znaajniji bajt nove vrednosti programskog brojila (PC8-15). Nakon toga sledi adresa
FFF9 i pribavljanje drugog bajta nove vrednosti programskog brojila (PC0-7). Na taj se nain pribavlja
vektor.

Nemaskirajui prekid NMI

Sa zadnjim bridom (prelazom logike 0 u 1) signala na ulazu NMI inicira se u mikroprocesoru
prekidni sled. Kako sam naziv kae, taj se prekid ne moe maskirati. Prekidna maska u registru uslova
CCR ne utie na nemaskirajui prekid.
Na ovu prekidnu liniju obino se prikljuuju spoljni logiki sklopovi sa najviim prioritetima u
pogledu zahteva za posluivanje. Izuzev injenice da taj tip prekida ne moe biti maskiran, prekidni sled
je u potpunosti jednak sledu izvoenja IRQ prekida. Nakon zavretka izvoenja tekue instrukcije
mikroprocesor skladiti stanja, postavlja masku i pribavlja vektor sa memorijskih lokacija FFFC i FFFD
(Sl.43).



83

Sl.43 - Prekidni sled za prekid NMI
Nemaskirajui prekid upotrebljava se i za sisteme gde se stanje tekueg programa moraju
sauvati prilikom ispada napajanja (stanja se skladite u memoriju sa baterijskim napajanjem).

Reset (RES)

Kada je RESET=0, mikroprocesor postavlja masku prekida i sa memorijskih lokacija FFFE i
FFFF pribavlja vektor (adresu prve instrukcije u prekidnom programu), (Sl.44). Taj prekid koristi se za
startanje mikroprocesora nakon uspostavljanja napona napajanja. Budui da se upotrebljava za start
mikroprocesora (start-up mode), nije potrebno skladitenje stanja u stek.



Sl.44 - Prekidni sled za prekid RES



84
Programski (softverski) prekid SWI

Mikroprocesor M6800 poseduje takoe softverski prekid. Izvoenje softverskog prekida (SWI -
instrukcija) inicira sled prikazan na Sl.45. Vektor se pri softverskom prekidu pribavlja iz memorijskih
lokacija FFFA i FFFB.

Sl.45 - Sled izvoenja prekida SWI

Softverski prekid se upotrebljava kao ispitna taka (break-point) pri otkrivanju i otklanjanju
greaka u programu.

- U sluaju istovremenih zahteva za prekid, prioritet prekida je sledei:
1.) RESET, 2.) NMI, 3.) SWI, 4.) IRQ.

Prioritet prekida

Vektor pribavljen sa memorijskih lokacija koje su specifine za pojedinu vrstu prekida, odreuje
poetnu adresu prekidnog programa. Ako je na svaku prekidnu liniju (IRQ, NMI) prikljuen jedan
spoljni logiki sklop, izvor prekida je poznat i odreeno je grananje na odnosni prekidni program.
Problem prioriteta prekida javlja se pojavom vie istovremenih zahteva za prekid na istoj prekidnoj liniji.
Metodom prozivanja prioritet se odreuje redosledom ispitivanja stanja spoljnih logikih
sklopova ili U/I meusklopova; Sl.46 prikazuje postupak ispitivanja za tri U/I meusklopa. Postoje
modifikacije metode prozivanja kod kojih se najpre prikupljaju sva stanja, a zatim se odreuje redosled
posluivanja u zavisnosti od vremena proteklog od poslednjeg posluivanja spoljnjeg logikog sklopa.

85


Sl.46 - Postupak ispitivanja stanja tri U/I meusklopa, potencijalna izvora zahteva za prekid
U primeru prikljuenja vie spoljnjih logikih sklopova na istu prekidnu liniju, metoda prozivanja moe
biti prespora za utvrivanje izvora prekida i njegovog posluivanja. U tom sluaju primenjuje se
hardverska organizacija pririteta prekida.
Interesantan nain za realizaciju strukture vektorskih prekida sa prioritetima je kodiranje
prioriteta i koritenje koda pririteta umesto odreenog broja adresnih linija adresne sabirnice. Jedan
primer ovakve strukture prikazan je na Sl.47. Struktura obezbeuje osam nivoa prioriteta prekida. Ako bi
se, na primer, ova struktura prioriteta prekida primenila na Motorolu 6800, najpogodnije bi bilo da se
vektori prekida smesta na lokacijama od (FFF9, FFF8) do (FFFB, FFFA) kako je to prikazano na Sl.48.
Odgovarajua tabela istine za koder prioriteta sa Sl.47 data je na Sl.49.



Sl.47- Struktura prekida sa osam nivoa prioriteta
86

Sl.48 - Vektori prekida za vienivovsku strukturu prekida sa osam nivoa prioriteta Motorole 6800


Nivoi
prioriteta
U l a z i
0 1 2 3 4 5 6 7
I z l a z i
A
4
A
3
A
2
A
1

IRQ Lokacija vektora
1 (najvi{i)
1 x x x x x x x 1 1 0 0
1
FFF9 FFF8
2
0 1 x x x x x x 1 0 1 1
1
FFF7 FFF6
3
0 0 1 x x x x x 1 0 1 0
1
FFF5 FFF4
4
0 0 0 1 x x x x 1 0 0 1
1
FFF3 FFF2
5
0 0 0 0 1 x x x 1 0 0 0
1
FFF1 FFF0
6
0 0 0 0 0 1 x x 0 1 1 1
1
FFEF FFEE
7
0 0 0 0 0 0 1 x 0 1 1 0
1
FFED FFEC
8
0 0 0 0 0 0 0 1 0 0 1 0
1
FFEB FFEA
9
0 0 0 0 0 0 0 0 0 0 0 0
0


Sl.49 - Tabela istine kodera prioriteta

87
DIREKTNI PRISTUP MEMORIJI
UVOD

Prekidnom U/I prenosu, u zavisnosti od broja spoljnih logikih sklopova prikljuenih na istu
prekidnu liniju i od izabrane metode za otkrivanje uzronika prekida, potrebno je vreme za posluivanje
prekida, odnosno vreme za prenos jednog elementa iz bloka podataka. Meutim u sluaju postojanja
estih zahteva za U/I prenosom od strane spoljnih logikih sklopova, te postojanje zahteva za prenos
veih blokova podataka, moe se oekivati oteano i vrlo usporeno izvoenje glavnog (prekinutog)
programa.
Reenje tog problema je u poveanju brzine U/I prenosa podataka i oslobaanju mikroprocesora
od tereta U/I prenosa. Pomou direktnog pristupa memoriji ostvaruje se brz prenos podataka izmeu
memorije i spoljnih logikih sklpova, a da ne sudeluje mikroprocesor i da se ne menja sadraj njegovih
registara. Budui da se taj prenos vri bez programskog upravljanja, granice brzine postavljene su sa
sklopovskim karakteristikama komponenti mikroraunara. Primeri upotrebe metode direktnog pristupa
memoriji su pri prenosu podataka izmeu memorije mikroraunara i jedinice diskete, izmeu brzih A/D
pretvaraa i memorije; izmeu memorije i prikazne jedinice.


ORGANIZACIJA DIREKTNOG PRISTUPA MEMORIJI (DMA)

Sl.68 daje ematski prikaz realizacije direktnog pristupa memoriji. U ovom postupku tok
podataka, uspostavljen izmeu vanjskog logikog sklopa i memorije mikroraunara, zaobilazi
mikroprocesor, odnosno DMA ima izdvojen kanal za prenos podataka.






Sl.50 - ematski prikaz direktnog pristupa memoriji (DMA)

Zbog specifine organizacije mikroraunara, te nepostojanja izdvojenog kanala izmeu memorije
i upravljakog sklopa DMA, pri organizaciji direktnog pristupa mora se upotrebiti ista spoljna sabirnica
koju upotrebljava i mikroprocesor (Sl.51). Mikroprocesor i upravljaki sklop DMA zajedniki dele
sabirnice na sledei nain:
88


Sl.51 - ematski prikaz stvarne organizacije direktnog pristupa memoriji (DMA) za mikroraunar

U primeru normalnog delovanja mikroprocesora upravljaki sklop DMA se elektriki odspaja
od spoljne sabirnice postavljanjem svojih izlaza u stanje velike impedance (Sl.52).


Sl.52 - Primer normalnog delovanja mikroprocesora (ematski prikaz)

Pri direktnom pristupu memoriji prikljuuje se upravljaki sklop DMA na spoljnu sabirnicu, a
mikroprocesor se odspaja od spoljne sabirnice postavljanjem svojih izlaza u stanje velike impedance
(Sl.53).
S obzirom na nain realizacije direktnog pristupa memoriji, postoje sledee tehnike:
- direktni pristup memoriji zaustavljanjem procesora,
- direktni pristup memoriji kraom ciklusa,
- kombinacija gornjih metoda,
- direktni pristup memoriji multipleksiranjem operacija DMA/MPU (mikroprocesorskih).
Direktni pristup memoriji zaustavljanjem procesora najjednostavnija je metoda ali budui da
moe postojati relativno veliko kanjenje od trenutka zahteva za prenos DMA do trenutka zaustavljanja
procesora u nekim aplikacijama je ta metoda neprihvatljiva. Aktiviranjem (od strane spoljnjeg logikog
sklopa) upravljakog signala za zaustavljanje, mikroprocesor zavrava svoju tekuu instrukciju i
89
postavlja adresnu sabirnicu i sabirnicu podataka u stanje velike impedance. Time daje na raspolaganje
sabirnice upravljakom sklopu DMA.


Sl.53 - Primer DMA prenosa (ematski prikaz)
Metoda direktnog pristupa memoriji kraom ciklusa ne zaustavlja mikroprocesor, ve on samo
privremeno obustavlja tok provoenja instrukcije. To omoguava upravljakom sklopu DMA da za
prenos iskoristi vrlo kratke vremenske intervale. Kraa ciklusa mikroprocesoru od strane operacija DMA
odraava se na smanjenju brzine delovanja mikroprocesora zbog smanjenja frekvencije signala (takta)
vremenskog voenja. Direktni pristup memoriji kraom ciklusa u stanju kada je procesor zaustavljen
kombinacija je opisanih metoda. Takvom kombinacijom koristimo se kao jednom od varijanti
organizacije direktnog pristupa memoriji (Halt Steal Mode) u upravljakom sklopu LSI DMA za
mikroprocesor M6800. Pri toj metodi mikroprocesor je u stanju HALT za vreme koje je potrebno da se
izvri prenos samo jednog bajta. Nakon prenosa samo jednog bajta upravljanje se usmerava na
mikroprocesor.
Metoda direktnog pristupa memoriji multipleksiranjem operacija DMA i delovanja
mikroprocesora omoguuje najveu brzinu izvoenja operacija mikroprocesora. Pri toj metodi
mikroprocesor se ne zaustavlja, niti smanjuje brzinu operacija uz istovremeni prenos DMA. Operacije
mikroprocesora i prenosa DMA su multipleksirane tako da je pristup memoriji od strane mikroprocesora
omoguen za vreme jedne faze signala vremenskog voenja, a pristup memoriji od strane upravljakog
sklopa DMA za vreme druge faze signala vremenskog voenja (Sl.54)

Sl.54 - Multipleksiranje operacija DMA/MPU

Frekvencija signala vremenskog voenja u tom sluaju mora biti prilagoena brzini memorije
koja se upotrebljava. Obino je perioda toga signala jednaka dvostrukom vremenu trajanja memorijskog
ciklusa.



90
ORGANIZACIJA DMA ZA MIKROPROCESOR M6800

Direktni pristup memoriji zaustavljanjem procesora

Postavljanjem linije HALT u logiku 0 (HALT ili DMA REQUEST-zahtev za DMA) od strane
spoljnjeg logikog sklopa preko upravljakog sklopa DMA, zahteva se zaustavljanje mikroproceesora i
postavljanje njegovih linija (R/W, adresna sabirnica, sabirnica podataka) u stanje velike impedance. U
stanju HALT mikroprocesor se zaustavlja na kraju izvrene instrukcije, signal BA (Bus Available)-
sabirnice raspoloive - postaje logiko 1, izlaz mikroprocesora VMA (Valid Memory Address) - adresa
pravomona - postaje logika 0. Izlazne linije mikroprocesora koje se koriste logikom sa tri stanja
prelaze u stanje velike impedance. Signal (takta) vremenskog voenja 2 prisutan je bez obzira da li je
procesor u stanju HALT ili ne, i slui za sinhronizaciju prenosa podataka pri DMA.
Izabrani memorijski ip je omoguen signalom AMV koji je uslovni invertirani signal VMA
(mikroprocesora). Uslovljen je upravljakim signalom od strane sklopa DMA u trenutku prenosa DMA
Signal R/W generisan je od strane upravljakog sklopa DMA, sa zadatkom da upravlja smerom prenosa.
Prenos DMA inicijalizovan je postavljanjem HALT linije (DMA REQUEST) u logiku 0. Prelaz
na ulazu HALT ne sme se dogoditi za vreme poslednjih 250ns signala 1. Stoga je pogodno
sinhronizovati prelaz signalom 1 (prednjim bridom). Mikroprocesor uvek zavrava izvoenje tekue
instrukcije pre zaustavljanja. Ako se prelaz na liniji HALT dogodio unutar 100ns nakon prednjeg brida
signala 1, mikroprocesor e se zaustaviti nakon provoenja tekue instrukcije. Ako se prelaz dogodio
nakon 100 ns, mikroprocesor se zaustavlja tek nakon izvoenja sledee instrukcije. Vreme odgovora na
DMA zahtev zavisi od trajanja instrukcije.

Direktan pristup memoriji kraom ciklusa

Osnova ove tehnike DMA je kraa ciklusa mikroprocesoru za prenos DMA. Ta kraa ciklusa
mikroprocesoru odraava se u sporijem izvoenju programa za vreme prenosa DMA pri TSC=1. Tada se
adresna sabirnica i linija R/W upravljake sabirnice postavlja u stanje visoke impedance. TSC ne utie na
sabirnicu podataka ali kako pri TSC=1 1 mora biti 1 a 2 mora biti 0 tako i sabirnica podataka prelazi u
stanje velike impedance, budui da se signal 2 upotrbljava za upravljanje ulazom DBE. Postavljanjem
signala DBE u 0 (2 je nisko za vreme od 4,5 s), sabirnica podataka prelazi u stanje velike impedance.
Koenje signala (takta) vremenskog voenja zamrzava za trenutak rad mikroprocesora i dodeljuje
sabirnice upravljakom sklopu DMA. DMA krade ciklus (TSC=1 ogranieno je pri DMA na 3s) i
obavlja se prenos. Budui da se zamrzavanje moe dogoditi u bilo kojem ciklusu, ak i usred izvoenja
instrukcije od vie ciklusa, maksimalno kanjenje prenosa DMA je jedan ciklus. To znai da prenos
DMA nee nikada ekati due od 1s, bez obzira koja se instrukcija izvrava. Za razliku od DMA
zaustavljanjem procesora, vreme trajanja mu je ogranieno jer je mikroprocesor dinamika sprava i ovo
koenje moe trajati najvie 4.5s.

Direktan pristup memoriji multipleksiranjem operacija MPU/DMA

Kada je memorija najmanje dvaput bra u odnosu na procesor, direktan pristup memoriji moe se
koristiti jednom polovinom memorijskog ciklusa a da ne utie na performansu mikroprocesora.
Upotrebom dva puta bre memorije omogueno je da se u jednom normalnom procesorskom ciklusu
(npr. 1s) obave dva prenosa po sabirnici podataka. U prvom prenosu uestvuje upravljaki sklop DMA.
Signal C
DMA
upravljakog sklopa DMA omoguava mu dostup do sabirnice podataka, adresne sabirnice,
91
te do dela upravljake sabirnice. Istovremeno signal C
p
odspaja mikroprocesor od sabirnica
postavljanjem izlaza meuregistra u stanje velike impedancije.
Najbolje karakteristike opisane metode su u pogledu vremena izvoenja operacija
mikroprocesora i brzine prenosa DMA, ali su potrebni sloeni sklopovi i bra memorija. Spomenimo
samo da se metoda multipleksiranjam MPU/DMA moe primenjivati i na memorije koje nisu bre u
odnosu na mikroprocesorski ciklus. To se postie rastezanjem signala 1 i 2, odnosno smanjenjem
frekvencije signala vremenskog voenja. Oito je da se tako smanjuje brzina rada i samim tim i
performansa mikroprocesora.



Sl.55- Vremenski dijagram direktnog pristupa memoriji multipleksiranjem operacija MPU/DMA

PITANJA
Prekidni ulazi kod M6800
IRQ
NMI
RES
Prioriteti prekida sa vie nivoa prekida
Direktan pristup memoriji
Tipovi DMA
















92
PREGLED SKUPA INSTRUKCIJA (NAREDBI) I ASEMBLER

UVOD

Ako digitalne sklopove-komponente mikroraunara prikaemo kao graevne blokove (sastavne
jedinice), tada je softver ona vezivna materija, koja te blokove osmiljava i povezuje u funkcionalnu
celinu. Realizacija sloenijih digitalnih sklopova ili sistema koji se temelje na mikroprocesoru rui
nejasne granice izmeu softvera i hardvera. Od strunjaka koji rade na podruju mikroprocesorske
tehnike oekuje se i zahteva poznavanje softvera jednako dobro kao i hardvera. Pod hardverom se
podrazumeva raunarska oprema - elektronski i digitalni sklopovi. Pojavom mikroprocesora javlja se i
izraz firmware koji se odnosi na programe upisane (obino od strane proizvoaa) u ispisne memorije.
Uobiajeno je da se izrazom softver podrazumeva program, odnosno pisanje programa. Meutim,
program kao rezultat programiranja samo je jedna od komponenti softvera.
Softver se odnosi na programsku opremu - odgovarajue tehnike programiranja, instrukcije,
programe i slino. Softver ine tri glavna dela:
- aplikativni programi pisani za reavanje odreenih - specifinih problema,
- sistemski programi koji slue za laki razvoj aplikativnih programa,
- dokumentacija kao nuni deo svakog programa, sa svrhom da omogui efikasnu i pravilnu
upotrebu programa.
Razvoj programa (aplikativnog ili sistemskog) prolazi kroz sledee faze:
- definicija problema,
- oblikovanje programa,
- kodiranje i prevoenje,
- testiranje programa i otklanjanje greaka,
- izrada dokumentacije,
- upotreba i odravanje programa.

OSNOVNI POJMOVI
Nakon faza definisanja problema, izbora algoritma i oblikovanja programa (pisanje algoritma u
jednom od algoritamskih jezika ili prikazivanja dijagramom toka) sledi faza kodiranja programa.
Program u tome obliku definisan je kao niz instrukcija kojim raunar izvrava algoritam. Budui da je
konaan cilj programa transformacija ulaznih podataka u izlazne, u programu raunara ukljueni su i
podaci, te njihove memorijske adrese. Raunaru, kao izvriocu, jedino je razumljiv jezik sastavljen od
binarnih rei. Takav oblik programa naziva se mainski ili objektni program (object program). Na
primer, programski odseak u mainskom jeziku, koji izvodi sabiranje podatka 8A
16
sa podatkom koji je
na memorijskoj lokaciji 0A0F
16
, ima za mikroprocesor M6800 sledei oblik:

1 0 0 0 0 1 1 0 Instrukcija: Napuni akumulator A sa 8A
16

Podatak 1 0 0 0 1 0 1 0
1 0 1 1 1 0 1 1 Instrukcija: Pribroji akumulatoru A podatak sa
memorijske lokacije 0A0F
16

Adresa 0 0 0 0 1 0 1 0
0 0 0 0 1 1 1 1

1 0 0 1 0 1 1 1 Instrukcija: Skladiti sadraj akumulatora A na
memorijsku lokaciju 02
16


Adresa 0 0 0 0 0 0 1 0
93
Raunar pribavlja prvu binarnu re 1000 0110 (mikroraunar je u fazi PRIBAVI). Ona e se
smatrati kodom instrukcije LDAA (napunu akumulator A), dok e sbinarna kombinacija 1000 1010 biti
podatak koji se puni u akumulator A. Instrukcija 1011 1011 (ADDA - pribroji sadraju akumulatora A
podatak sa memorijske lokacije specificirane sa esnaest bitnom adresom) - pribraja sadraju
akumulatora A podatak skladiten na adresi 0000 1010 0000 1111. Binarna kombinacija 1001 0111
predstavlja instrukciju STAA (skladiti sadraj akumulatora A) kojom se sadraj akumulatora A skladiti
na adresu 0000 0010. U uvodnim poglavljima, gde je sistem mikroraunara bio razmatran kao crna
kutija, naglaeno je da mikroraunar u svojoj memoriji skladiti podatke i instrukcije u istom obliku, te
da instrukcije mogu biti smatrane podacima i obratno (von Neumannov model raunara).
Na koji nain mikroraunar razlikuje instrukcijski kod od podatka ili od adrese? Kada je
mikroraunar u fazi PRIBAVI, pribavljena re bit e smetena u instrukcijski registar i tumaena kao
instrukcijski kod. Taj 8-bitni instrukcijski kod u sebi, pored ostalog, sadri i informaciju da li je to
instrukcijska re koja se sastoji od 1, 2 ili 3 bajta i ta znae sledei bajtovi koji je sainjavaju. Na
primer, kod 1011 1011 koji je smeten u instrukcijski registar pokazuje mikroprocesorskoj upravljakoj
jedinici da su sledea dva bajta adresa operanda, koji e biti pribrojen sadraju akumulatora A (primer za
mikroprocesor M6800). Nakon izvoenja tekue instrukcije (faze IZVRI), mikroprocesor prelazi u fazu
PRIBAVI i zna da e sledei bajt koji se pribavlja biti opet instrukcijski kod.
Kodiranje i unoenje programa u mainskom jeziku u mikroraunar naporan je i mukotrpan
postupak, podloan grekama. Budui da je oito u kojoj je meri binarni oblik neprikladan za
programera, na raspolaganju je meustapenica prema zbirnom (simbolikom) jeziku - oktalni ili
heksadekatni kod.
Prethodni programski odseak prikazan u heksadekadnom kodu sledeeg je oblika:
86
8A
BB
0A
0F
97
02
Oito je da je takav nain pisanja i unoenja programa poboljanje u odnosu na binarni. Do
zabuna dolazi ree, a greke se lake otkrivaju. Postupak nastajanja programa u heksadekadnom ili
oktalnom kodu je sledei: nakon faze oblikovanja programa, programer zapisuje program kao niz
mnemonikih simbola (svaki mikroprocesor ima ovakvu tabelu). Pomou tablica prevodi mnemonike
simbole u heksadekadni ili oktalni kod (runo prevoenje). Nakon toga upotrebljava se heksadekadni ili
oktalni punilac.
U programima napisanim pomou mnemonikih simbola, umesto adresa podataka u
heksadekadnom kodu upotrebljavaju se simbolike oznake. Programer, koristei se simbolikim
oznakama, na taj nain pojednostavljuje postupak pisanja i provere programa. Poveana je i razumljivost
programa. Na primer, programski odseak primenom mnemonikih simbola dobija oblik:

(prevod u heksadekadni kod)
LDAA # $8A 86 8A
ADDA $ 0A0F BB 0A0F
STAA $ 02 97 02

Primenom simbolikih adresa isti programski odseak ima sledei oblik:

LDAA #DATA1 86 8A
ADDA DATA2 BB 0A0F
STAA SUMA 97 02
gde je
DATA1 simbolika oznaka za podatak 8A, DATA2 i SUMA simbolike oznake za 0A0F i 02.
94

ASEMBLER ZA MIKRORAUNAR NA OSNOVI MIKROPROCESORA M6800

Izvorni jezik za mikroprocesor M6800 sastoji se od 72 mnemonike instrukcije i desetak naredbi
za upravljanje tokom prevoenja. Izvorni jezik opisan je skupom doputenih znakova koje asembler
moe prepoznati:
- Abecedom od A do Z,
- Celim brojevima od 0 do 9,
- etiri aritmetike operacije: +;; ; /.

- Znakovi koji se upotrebljavaju kao specijalni prefiksi:
# odreuje usputno adresiranje,
$ odreuje heksadekadni broj,
@ odreuje oktalni broj,
% odreuje binarni broj,
(apostrof) odreuje znak ASCII.


- Znakovi koji imaju specijalno znaenje:
B odreuje binarni broj,
H odreuje heksadekadni broj,
O (slovo O) odreuje oktalni broj,
Q odreuje oktalni broj.


- etiri simbola - graninika:
prazno mesto (space),
horizontalni pomak (Horizontal TAB),
CR (Carrige Return),
, (zarez).

- Komentar u izvornom izrazu (source statement) moe sadravati znak ASCII od heksadekadne
vrednosti 20 (SP) do 5F ( )
Izvorni program sastoji se od niza izvornih izraza. Svakoj liniji u izvornom programu odgovara
jedan izraz. Linije mogu biti numerisane. Linijski broj je duine od jedne do pet cifara. Svaki linijski broj
mora biti vei od prethodnog u nizu izvornih izraza. Linijski broj nije sastavni deo programa, ve slui
kao pomo pri ureivanju i popravljanju programa. Izvorni izraz razdeljen je na etiri polja na sledei
nain: (linijski broj) labela operacijski kod (mnemonika oznaka) operand komentar.

Polja su odvojena graninikom ( ), jednim ili vie praznih mesta.
Na primer:

10 OPET STAA $25 POVRATAK U PETLJU

linijski broj komentar
graninik operand

labela operacijski kod


Labela je simbolika adresa za instrukciju. Na primer, za program:

95
Izvorni program Prevedeni program
adrese kodovi
ORG 256 0020 0100
START LDAB $AF 0030 0100 C6 AF
LDAA DATA 0040 0102 B6 010B
- -
- -
- -
JMP START 0080 0108 7E 0100
DATA FCB $10 0090 010B 10

Nakon prevoenja, labeli START je dodeljena adresa oznaene instrukcije (LDAB #$AF) 0100. Izraz u
izvornom jeziku moe biti i bez labele.
Asembler za M6800 postavlja sledea ogranienja za labele.
- labela se mora sastojati od 1 do 6 alfanumerikih znakova,
- prvi znak mora biti slovo,
- labela mora zapoeti u drugom praznom mestu nakon linujskog broja,
- labela ne moe biti jedan od znakova A, B i X.
Prilikom izbora oznaka za labele potrebno je, pored pridravanja pravila koje zahteva asembler,
voditi rauna i o sledeem:
- Nije preporuljivo koristiti se slovima i oznakama koje mogu dovesti do zabune, na primer slova Z,Q,I
mogu biti prilikom unoenja ili ispravki programa zamenjena za 2,0 ili 1.
- Zbog lakeg razumevanja programa i lakeg ispravljanja greaka, dobro je upotrebljavati labele koje
simbolima asociraju na funkciju - mnemonike labele. Na primer:

START ---
-
-
-
JMP START
-
-
-
BRA KRAJ
-
-
-
KRAJ ---

Polje operacijskog koda, odnosno polje mnemonike oznake, sadri mnemoniku oznaku instrukcije.
Polje operanda, u zavisnosti od operacijskog koda, moe biti prazno, sadravati numeriku vrednost,
adresu, labelu ili aritmetiki izraz. Polje se moe sastojati od jednog ili dva lana odvojena zarezom.
Polje komentara sledi polju operanda i odeljeno je jednim ili vie praznih mesta. Tekst komentara ne
utie na mainski kod i asembler ga ufazi prevoenja ignorie. Tekst komentara se pojavljuje jedino
prilikom ispisivanja izvornog programa i slui kao programska dokumentacija.
Asembler omoguava upotrebu instrukcija u izvornom programu, koje se odnose na upravljanje
radom asemblera. Takvim mnemonikim simbolima ne dodeljuju se mainski kodovi u fazi prevoenja.
Instrukcije sa tim svojstvima nazivaju se pseudoinstrukcije. Primer takve pseudoinstrukcije je:
ORG (Origin) - definie numeriku adresu gde e biti skladiten prvi bajt sledee instrukcije.

Tako se asembler sastoji od mainskih instrukcija, iji su mnemoniki kodovi u principu isti kao i
kodovi u tabeli od proizvoaa mikroprocesora i dodatnih pseudoinstrukcija koje upravljaju radom
asemblera. Za asembler se kae da je nii programski jezik jer je striktno vezan za konkretan
96
mikroprocesor i uglavnom je prevoenje 1:1 to znai jedna asemblerska instrukcija se prevede u jednu
mainsku (mikroprocesorsku) instrukciju.
97
ULAZNO - IZLAZNI (U/I) MEUSKLOPOVI
UVOD
Saobraanje mikroraunara sa spoljnim svetom jedna je od njegovih osnovnih funkcija.
Ulazno-izlazni meusklopovi u tehnologiji LSI su komponente mikroraunara koje omoguavaju
prenos informacija izmeu mikroraunara i perifernih jedinica mikroraunara (prikazne jedinice CRT,
jedinice diska i sl.) ili izmeu mikroraunara i spoljnjeg sveta (npr. koranog motora, regulatora i slinih
elemenata, koji su sastavni delovi nekog procesa).
U/I meusklopovi u tehnologiji LSI obino su programibilni-to znai da im se funkcija moe
menjati programom upisanim u memoriju mikroraunara. Na primer, upisivanjem odreenih kombinacija
bitova (upravljakih rei) u upravljake registre tih meusklopova odreuje se da li e meusklop biti
ulazni ili izlazni i da li e moi generisati zahtev za prekid.
Proizvoai mikroprocesora i komponenti mikroraunara nude irok izbor meusklopova LSI,
koji mogu biti svrstani prema nameni na:
- paralelne U/I meusklpove,
- serijske U/I meusklopove,
- meusklopove za posebne namene.
Informacija koja se prenosi preko U/I meusklopova moe biti prikazana u paralelnom ili
serijskom obliku. Pri paralelnom prenosu savaki bit informacije ima svoju liniju, tako da se cela re (npr.
8-bita) prenosi istovremeno. Prilikom serijskog prenosa bitovi - elementi rei alju se u nizu preko jedne
linije. Oito je paralelni prenos bri, meutim, treba mu vie linija, pa ga se koristi u prenosima na malim
udaljenostima. Serijskim prenosom moemo se koristiti na veim udaljenostima. Serijski U/I meusklop
u kombinaciji sa modemom (koji takoer moe biti izveden u tehnologiji LSI, npr. MC6860) omoguava
prenos podataka preko telefonskih linija.
U sklopove za posebne namene ubrajaju se serijski ili paralelni meusklopovi koji omoguavaju
saobraanje s odreenom perifernom jedinicom, ili imaju specijalnu funkciju. Primeri takvih
meusklopova su upravljaki sklop diskete, (floppy disk kontroler), meusklop CRT (upravljaki sklop
za prikaznu jedinicu), programibilno brojilo (interval timer), upravlja prioritetom prekida i sl.
Na primer, na Sl.56 je prikazan paralelni meusklop (sastoji se od dva dela A i B sa po deset U/I
linija za rukovanje prenosom) i veze izmeu procesa, U/I meuskolopa i mikroprocesora. Ulaz je tok od
procesa ka mikroprocesoru a izlaz od mikroprocesora ka procesu.

Sl.56 - Veza procesa - U/I meusklop
Sl.57 prikazuje primer postupka rukovanja pri unosu podataka u mikroraunar. Od 10 U/I linija osam
linija PA0-PA7 predstavljaju linije podataka a preostale dve CA1, CA2 su kontrolne linije koje
upravljaju prenosom.
98


Sl.57 - Primer upotrebe linije za rukovanje prenosom pri unosu podataka u mikroraunar

Postupak prenosa od meusklopa ka procesu slian je opisanom postupku, uz zamenu uloga odredita i
izvora podataka. Opisani nain prenosa rukovanjem zahteva od mikroprocesora ispitivanje bit-zastavice
stanja u upravljakom registru (da li je proces zahtevao posluivanje?), pa je taj postupak primer
uslovnog programiranog prenosa. U nainu prenosa sa rukovanjem uz primenu prekida nije potrebno
ispitivanje stanja zastavice. Postavljanjem logikog 1 na liniji za rukovanje (Odredite, imam podatak
za tebe!) proces prekida izvoenje glavnog programa mikroprocesora.
Mikroprocesor prelazi na izvoenje prekidnog programa, signalizira prihvaanje poruke, nalazi
izvor zahteva za prekid (ako je vie U/I meusklopova), vri prenos podataka i postavlja izlaznu liniju za
rukovanje u stanje 0 (Podatak je primljen, spreman sam za sledei prenos!)

99

U/I MEUSKLOP PIA ZA M6800

Struktura programabilnog paralelnog U/I meusklopa PIA (Peripheral Interface Adapter) slina
je prikazanoj blok-shemi na Sl.56.-57. Sl.58 prikazuje detaljniju internu organizaciju meusklopa PIA.


Sl.58 - Interna organizacija meusklopa PIA

U/I meusklop je podeljen na dve simetrine i nezavisne podstrukture registara. Svaka od njih se sastoji
od registra podataka, upravljakog registra i registra smera podataka. Mikroprocesor, prilikom
saobraanja sa PIA, svaki od tih registara smatra memorijskom lokacijom. Registar podataka i registar
smera podataka imaju istu memorijsku adresu. Oni se interno razlikuju u PIA pomou bita b2
upravljakog registra.
Upisani sadraj u registru smera podataka odreuje smer U/I linija na sledei nain:
- ako je bit registra smera podataka 0, onda je odgovarajua linija podataka ulazna,
- ako je bit registra smera podataka 1, onda je njemu odgovarajua linija podatka izlazna.
Na primer, ako je sadraj u registru smera podataka 11010010, U/I linije imae na sledei nain
odreene smerove: PA0, PA2, PA3, PA5 ulazne linije, PA1, PA4, PA6, PA7 izlazne linije.
Kada je adresiran registar podataka za vreme operacije upisivanja (R/W=0), u njega se skladite
podaci prisutni na sabirnici podataka mikroraunara. Isti podatak pojavljuje se i na U/I linijama koje su
programirane kao izlazne. Sadraj registra podataka moe biti izloen uticaju linija koje su programirane
100
kao ulazne, te se njegovi odnosni bitovi menjaju pod uticajem spoljnjih ulaznih signala.U postupku
itanja podaci prisutni na U/I linijama, koje su programirane kao ulazne, direktno se prenose na sabirnicu
podataka mikroraunara.
Postoje izvesne sklopovske razlike izmeu strane A i B. Samo U/I linije strane B imaju periferni
meuregistar sa tri logika stanja. Upravljaki registar omoguava mikroprocesoru da uspostavi jedan od
naina saobraanja upravljanjem linijama za rukovanje prenosom (CA1, CA2, CB1, CB2). Uz to,
pomou sadraja upravljakog registra programer upravlja linijama zahteva za prekid (IRQA/B).
Najznaajniji bitovi upravljake rei b6 i b7 su bit zastavice za prekid, koje se postavljaju
aktivnim prelazom na CA1 i CA2 (organizovanim kao ulazom). Sl.59 prikazuje organizaciju upravljake
rei. Sve to je reeno u vezi funkcija za stranu A odgovara i za simetrinu stranu.

Sl.59 - Organizacija upravljake rei za U/I meusklop PIA

Adresiranje meusklopa PIA ima svoje karakteristike:
- celi meusklop PIA predstavlja se mikroprocesoru kao 4-adresna memorija, iako ima 6
dostupnih internih registara,
- PIA ima tri linije za izbor ipa i dva izvoda (RS0, RS1) za izbor internog registra.
Izvodi za izbor internog registra (RS0 i RS1) su obino prikljueni na najmanje znaajne adresne
linije. Linije za izbor ipa CS0, CS1, CS2 omoguavaju delimino dekodiranje (ip je izabran pri uslovu
CS0=1, CS1=1 i CS2=0). Sl.79 je primer povezivanja PIA na mikroraunar.

Sl.60 - Primer povezivanja meusklopa PIA
Primer adresiranja PIA, ako je meusklop odreen adresama 8008, 8009, 800A, 800B
Iz tabele se vidi da su registar smera podataka A i registar podataka A na istoj memorijskoj adresi 8008,
te da bit b2 upravljakog registra A interno odreuje jedan od njih.






101
Primer adresiranja meusklopa PIA


102

SERIJSKI U/I MEUSKLOP

Pri serijskom prenosu, informacije izmeu mikroraunara i spoljnjeg sveta alju se preko jedne
linije u obliku niza impulsa. Zadatak serijskog U/I meusklopa je da pretvara paralelni oblik informacija
u serijski (i obratno), sa dodatnim bitovima potrebnim za prenos. Prenos se obino vri izmeu udaljenih
taaka (npr. izmeu dva udaljena terminala). Na Sl.61 je data ema asinhronog meusklopa ACIA
(Asynchhronous Communications Interface Adapter) za M6800 .


Sl.61 - Organizacija programibilnog veznog sklopa za serijske prenose ACIA

ACIA se mikroprocesoru predstavlja kao dvoadresna memorija, iako ima etiri interna registra. Meutim
dva su samo upisna (WRITE ONLY) a dva samo ispisna (READ ONLY).
Upisni registri su:
- upravljaki registar
- predajni registar

Ispisni registri su:
- registar stanja
- prijemni registar

Na primer, ako se ACIA nalazi na adresi 8010 i 8011. Ako je R/W=0 (upis u registre) onda upravljaki
registar ima adresu 8010 a predajni registar 8011. Ako je R/W=1 (itanje iz registara) onda registar
stanja ima adresu 8010 a prijmeni registar 8011.
103


Asinhroni prenosi

U serijskom prenosu podaci se prenose bit po bit. U njemu uvek postoje minimalno dva uesnika,
prijemnik i otpremnik, Ako se radi o prenosima na daljinu, neophodno je vriti modulaciju signala za
prenos; inae, prijemnik i otpremnik mogu da budu jednostavno vezni sklopovi za serijske prenose
(fiksni ili programibilni).

Sl.62 - Serijski prenos podataka

Kod asinhronog prenosa kad god mikroprocesor poalje podatak (5 -8-bitni znak) programabilni
vezni sklop na otpremnoj stani automatski dodaje na poetak start-bit (nii nivo napona) i na kraj
odreeni broj stop-bita (vii nivo napona). Takoe, ispred prvog stop-bita dodaje se bit pariteta koji se
koristi u proveri ispravnosti prenosa u prijemnoj strani. Na Sl.63. dat je primer formata podatka u
serijskom prenosu.



Sl.63 - Otprema i prijem podataka

U normalnom stanju, kada nema prenosa, linija je na viem naponu tako da prelazak na nii napon
oznaava pojavu start-bita i poetak prenosa podatka.
Prelazak na nii napon na prijemnoj liniji oznaava start-bit i poetak rada veznog sklopa kao
prijemnika. Broja bita omoguava identifikaciju podatka, bita pariteta i stop-bita. U sluaju da je prenos
bio pogrean postavlja se zastavica greke pariteta i taj podatak je dostupan mikroprocesoru.
Iz ovoga se vidi da se sinhronizacija vri na nivou jednog podatka (start i stop bit) i da je reakcija
na pogrean prenos podatka mogua neposredno nakon to je podatak prenesen. Osnovni nedostatak ove
vrsta prenosa je to se veliki deo vremena troi na nekorisni prenos (start i stop-biti, bit pariteta i,
eventualno, ako je korisni deo podatka krai od 8 bita).

Sinhroni serijski prenos

Kod sinhronih serijskih prenosa vri se prenos podataka u blokovima tako da se imaju manji
gubici u nekorisnom prenosu. Kada mikroprocesor poalje prvi podatak za prenos, programabilni vezni
sklop generie oznaku sinhronizacije, SYNC znak ili vie uzastopnih SYNC znakova koji oznaava
poetak prenosa bloka podataka. Nakon ovoga slede podaci za prenos. Format bloka podataka za
sinhroni prenos ispred i iza otpremnika predstavljen je na Sl.64.a. i 64.b. respektivno.



104


Sl.64 - Formati podataka u sinhronom serijskom prenosu

Prenos podataka na daljinu

Pri prenosu podataka na daljinu obino se koristi telefonska linija (Sl.65.). Tada se obino koriste
asinhroni meusklopovi (UAPP- univerzalni asinhroni primo-predajnik) koji imaju dadatni deo za
konekciju sa modemom. Modem je ureaj za transformaciju binarnih signala u tonske (analogne).


telefonska
UAPP MODEM MODEM UAPP
linija

PREDAJNIK PRIJEMNIK

MODEM: MODULATOR - DEMODULATOR


prevodi binarrne prevodi
signale (0,5V) tonske
u tonske signale
odreenih u naponske
frekvenci (0,5V)

Sl.65- Prenos podataka na daljinu
. . . .
105

DIGITALNO - ANALOGNI I ANALOGNO - DIGITALNI KONVERTORI

Pri primeni mikroraunara za prikupljanje (akvizicija) i obradu podataka iz procesa i za
upravljanje procesom, mikroraunar komunicira sa analognim svetom i za to su neophodni interfejsi
posebne namene: D/A i A/D pretvarai (konvertori).
Na Sl.66 data je {ema D/A konvertora sa operacionim pojaivaem. To je pojaiva napona sa
velikim po apsolutnoj vrednosti a negativnim koeficijentom pojaanja (-A). Na ulazu je digitalna veliina
- binaran broj realizovan sa osam naponskih linija (U
0
- U
7
) sa sabirnice podataka mikroraunara. Na
izlazu je anlogna veliina - izlazni napon U
iz
proporcionalan brojnoj vrednosti na ulazu.
{ }
7 , 0
5 , 0
=
=
i i
U
( )
4
10 5 ;
2
= = A U A U
R
R
iz i i

Zbir struja u voru T (Kirhofovo pravilo):
0 ...
7
7
1
1
0
0
=

+ +

R
U U
R
U U
R
U U
R
U U
iz

Smena :
A
U
U
iz
=
R
U
R R
A
R R A
U
R
U
R
U
R
U
iz iz

|
|
.
|

\
|
+ + + + = + + +
1 1
...
1
...
7 0 7
7
1
1
0
0
N
akon smene :
i i
R
R
2
=


=
i
i iz
U U 2
Sl.66. ema D/A pretvaraa sa operacionim pojaivaem
Na Sl.67. prikazan je A/D konvertor za konverzijom metodom probe i greke. Rezultat
konverzije se nalazi u brojakom registru. Kao polazna procena digitalne vrednosti analognog ulaza
uzima se nula (resetovanje brojakog registra). U svakom narednom ciklusu (na pozitivnom bridu
taktnog signala ) sadraj brojakog registra (procena digitalne vrednosti analognog ulaza) se
inkrementira i u D/A konvertoru se izvri njegova D/A konverzija. Onog momenta kada rezultat D/A
konverzije postane jednak ili premai veliinu ulaznog napona (poreenje se vri u komparatoru napona),
ne generie se vie signal INCR za inkrementiranje brojakog registra i A/D konverzija je zavrena.

>

=
B A
B A
Y
za 0
za 0







Sl.67. ema A/D pretvaraa metodom probe i greke

Na Sl.68. data je ema vezivanja A/D konvertora za mikroraunar preko univerzalnog paralelnog
interfejsa (PIA).
106

Sl.68. ema vezivanja A/D konvertora za mikroraunar preko (PIA).


SOFTVER REALNOG VREMENA

Veliki broj aplikacija mukroraunara spada u klasu aplikacija realnog vremena, odnosno onih u
kojima mikroraunar radi uporedo sa odreenim procesom pratei njegove promene u vremenu i
eventualno delujui na proces. U ovim aplikacijama zahteva se da mikroraunar razlikuje pojedine
dogaaje sa esto malom vremenskom rezolucijom, kao i da deluje na proces u okviru dosta strogih
vremenskih ogranienja. Pri tome se javlja problem obavljanja velikog broja asinhronih ulazno/izlaznih
operacija nad ureajima koji zahtevaju razliito sloene hardverske vezne sklopove i programe za
manipulaciju.
U veini primera primene i programiranja raunara pretpostavlja se da su ulazno/izlazne operacije
apriori reene. Meutim, treba istai da je najvei broj primena mikroraunara vezan upravo za probleme
izrade veznih sklopova i programa za obavljanje ulazno/izlaznih operacija. Kako stvarne primene
podrazumevaju manipulisanje sa vie ulazno/izlaznih ureaja, kao i obrade prikupljenih podataka, to se
kao osnovni problem javlja integracija vie sekvencijalnih programa koji mogu da budu inicirani
programskim putem ili spoljnim dogaajima u celini koja e da obezbedi ispravno vrenje eljenih
funkcija.
Onaj koji realizuje primene mikroraunara za realno vreme sigurno e se nai i u situaciji da
izradi kompletan softver ukljuujui i programe koji vre koordinaciju i rasporeivanje aplikacionih
funkcija i koji ine takozvani izvrni sistem mikroraunara. Realizacija izvrnog sistema krije mnoge
zamke i opasnosti, a kljuna je za ispravno funkcionisanje celog sistema. Iz tog razloga emo u ovom
delu opisati jedan pristup njegovoj realizaciji koji je pogodan za veliki broj jednostavnih primena realnog
vremena i koji obezbeuje pouzdano komuniciranje programa koji realizuju aplikacione funkcije.

107
OSNOVNE KARAKTERISTIKE TIPINIH PRIMENA REALNOG VREMENA

Tipine primene realnog vremena u kojima se koriste mikroraunari obuhvataju sisteme za
akviziciju podataka iz procesa i voenje razliitih protokola o ponaanju procesa u vremenu, direktno
digitalno upravljanje, sisteme za praenje laboratorijskih eksperimenata, komunikacione procesore,
koncentratore podataka i slino.
Kao karakteristine uzmimo primene akvizicije podataka i direktnog digitalnog upravljanja. U
ovim primenama zahteva se direktna veza senzora i mernih instrumenata preko multipleksera, A/D
konvertora i veznih sklopova za paralelne i serijske prenose sa mikroraunarom, kao i veza izvrnih
organa sa mikroraunarom putem D/A konvertora ili drugih veznih sklopova. Takoe, za mikroraunar
su esto vezani i odreeni standardni ulazno/izlazni ureaji, kao to su tastature, tampai, ekrani,
displeji, pokazni instrumenti i slino.
Senzorski signali i digitalni ulazi prihvataju se u mikroraunar periodino ili na zahtev. Analogni
signali se prvo pretvaraju u digitalni oblik putem A/D konvertora. Dalje se vri analiza prikupljenih
podataka i alarmiranje ako njihove vrednosti izlaze iz dozvoljenih opsega, davanje izvetaja na tampau
u obliku predvienih protokola, prikazivanje odreenih podataka i informisanje na ekranu i displejima,
obrada podataka koritenjem raznih algoritama, saimanje podataka i dovoenje u eljeni oblik i slino.
Pri tome se razlikuju u principu dva naina rada mikroraunarskog sistema:
(1) periodino ponavljanje odreenih operacija uz koritenje prozivke ulazno/izlaznih ureaja
(2) rad uz aktiviranje pojedinih funkcija na zahtev spoljnjih dogaaja.
U oba ova naina rada esto se trai da se vodi rauna i o vremenu kada su, na primer, vrena merenja ili
su se desili odreeni dogaaji. Ovu funkciju obezbeuje sat realnog vremena.
U primenama direktnog digitalnog upravljanja nije dovoljno samo razlikovati pojedine dogaaje
sa unapred zadatom rezolucijom, nego u okviru odreenog vremena izdavati komande. Tipino,
neophodno je odravati neke kritine promenljive procesa na unapred zadatim vrednostima. Na primer,
to je sluaj sa regulacijom pritiska, temperature, nivoa, protoka brzine i slino. U upravljanje je ukljuen
osnovni princip povratne sprege: vri se poreenje stvarnih i zadatih vrednosti da bi se iz njihove razlike,
odstupanja, preko upravljakog algoritma, delovalo na veliinu pomou odgovarajuih izvrnih organa.
Primer ovakve situacije prikazan je na Sl.89.. Za ilustraciju upravljanja moe se uzeti upravljanje nivoom
tenosti u rezervoaru.


Sl.69. Sistem povratne sprege pri upravljanju procesom pomou raunara

Kao izvrni organ moe da se pojavi servomotor sa ventilom kome mikroraunar daje komande za
otvaranje ili zatvaranje u skladu sa trenutnom vrednou nivoa. Jasno je da je u velikom broju sluajeva
mikroraunar neracionalno iskoristiti samo za upravljanje jednom promenljivom. Na bazi deljenja
vremena i uzimanja u obzir minimalnog perioda u kome je potrebno obnoviti upravljanje datom
promenljivom, mikroraunar moe da prividno istovremeno upravlja sa vie promenljivih, odnosno
zatvori vie regulacinih krugova.
Pored nabrojanih funkcija, vrlo esto raunarski sistem mora da omogui promenu odreenih
parametara koji su u sklopu sistema za akviziciju i direktno digitalno upravljanje, to namee potrebu za
komuniciranje izmeu oveka i mikroraunara putem tastature i ekrana i dalje uslonjava programsku
108
organizaciju sistema. Pretpostavimo li da mikroraunar mora da vri i upravljanje i akviziciju, onda on
tipino mora da obavlja sledee funkcije realizovane kao odvojene sekvencijalne programe:
- A/D konverziju
- konverziju jedinica u odgovarajue tehnike jedinice, i obratno (na primer, napon koji odgovara
temperaturi izraen u voltima u stepene Kelvina),
- ispitivanje da li je veliina u dozvoljenom obimu,
- filtriranje ulaznih veliina i eliminaciju uma,
- upravljake algoritme,
- odravanje sata realnog vremena,
- auriranje slike na ekranu,
- tampanje znakova na tampau,
- skaniranje tastature i prihvat znakova,
- prikazivanje na ekranu,
- aktiviranje zvunih i svetlosnih alarma.

PITANJA
Ulazno izlazni meusklopovi - tipovi
PIA za M6800
ACIA za M6800
Asinhroni i sinhroni prenos
Prenos podataka na daljinu
D/A , A/D konvertori
Softver realnog vremena - akvizicija i upravljanje procesima

You might also like