mikroprocesorski sistemi skripta

73
SAOBRAĆAJNI FAKULTET DOBOJ Prof. Dr Zlatko Bundalo MIKROPROCESORSKI SISTEMI Nastavni materijali 1

Upload: mirko-mirkovic

Post on 08-Aug-2015

330 views

Category:

Documents


10 download

DESCRIPTION

mikroprocesorski sistemi skripta

TRANSCRIPT

Page 1: mikroprocesorski sistemi skripta

SAOBRAĆAJNI FAKULTETDOBOJ

Prof. Dr Zlatko Bundalo

MIKROPROCESORSKI SISTEMI

Nastavni materijali

1

Page 2: mikroprocesorski sistemi skripta

UVOD

Zahvaljujući razvoju mikroelektronskih tehnologija došlo je do mogućnosti realizovanja složenih integrisanih kola. To je dalje dovelo do pojave mikroprocesora, kao sistema koji se pojavljuju na jednom integrisanom kolu, a koji imaju izuzetno dobre mogućnosti i karakteristike koje omogućavaju njihovu primjenu u različitim oblastima.

Osnovne dobre karakteristike mikroprocesora su:• Niske cijene• Velika fleksibilnost• Velika pouzdanost • Mogućnost programiranja• Male dimenzije• Male potrošnje• Relativno velike brzine rada

U praksi postoji veliki broj različitih proizvođača i familija µp. Međutim, svi µp se mogu svrstati u nekoliko kategorija:

• Kalkulatorski namijenjeni• µp namijenjeni za upravljanje (µkontroleri)• µp opšte namjene (8 i 16-bitni)• µp visokih performansi (32-bitni i RISC procesori)

DEFINISANJE POJMOVA

µ p je sklop, odnosno digitalni sistem koji vrši obradu digitalnih podataka u skladu sa programima koje izvršava. Realizovan je na jednom LSI kolu ili korišćenjem više modula u obliku LSI kola. Po svojoj strukturi, funkciji i namjeni µp odgovara centralnom procesoru standardnog računara. Po načinu realizovanja razlikuju se dva tipa µp:

• monolitni µp su realizovani na jednom kolu i takvi su svi standardni µp opšte namjene

• bitmodularni µp se realizuju korišćenjem više LSI kola i koriste se uglavnom u nekim specijalnim namjenama, tamo gdje ne mogu zadovoljiti monolitni µp

µ računar predstavlja µp povezan sa memorijom i U/I skopovima, koji posjeduju odgovarajući program i pomoćne sklopove. On je obično realizovan korišćenjem više integrisanih kola. Međutim, postoje µračunari realizovani na jednom integrisanom

2

Page 3: mikroprocesorski sistemi skripta

kolu. Takvi µračunari su uglavnom namijenjeni za upravljanje, pa se često za njih koristi termin µkontroleri.

µ p sistem čini µračunar povazan sa odgovarajućim perifernim, senzorskim i upravljačkim uređajima i sklopovima uz odgovarajuće programe. On može da bude opšte ili specijalne namjene.

Kratak pregled razvoja µp1964 – prvo integrisano kolo SSI 1968 – prva MSI kola1971 – prva LSI kola i prvi µp INTEL 4004 (4-bitni kalkulatorski)1972 – INTEL 80081973 ÷ 1977 – pojava velikog broja 8-bitnih µp1977÷ 1980 – pojava 16-bitnih µpod 1980-tih 32-bitni µp

TEHNOLOGIJA IZRADE µp

Postoje 2 osnovne µelektronske tehnologije u kojima se realizuju µp:• unipolarna• bipolarna

Unipolarna se koristi za izradu monolitnih µp i na taj način se realizuju svi poznati standardni µp opšte namjene. Postoje 3 moguće tehnologije:

• pMOS• nMOS• CMOS

Bipolarna se koristi za realizaciju bitmodularnih µp i imaju mnogo veće brzine rada. Za realizaciju µp obično se koristi STTL, LSTTL, ECL, I2L. Nedostaci: povećane dimenzije, potrošnja i veći uticaj smetnji.

OBLASTI PRIMJENE µp

• Računarska tehnika• Komunikacije• Upravljanje• Instrumenti• Medicina• Proizvodi visoke potrošnje• Ostale

3

Page 4: mikroprocesorski sistemi skripta

ARHITEKTURA µp SISTEMA

OSNOVNA BLOK ŠEMA

Ona je ista kao kod računara, ali se umjesto procesora koristi µp, a koristi se ista magistrala.

(U/I SKLOP)

(ZAJEDNIČKA) MAGISTRALA

Od osobina µp zavise osobine cijelog sisitema. Postoji više tipova µp: za upravljanje, za opštu namjenu, i sl. Koriste se monolitni µp.

Kao memorije koriste se poluprovodničke memorije, realizovane kao kola visokog stepena integracije LSI. Od njih se zahtjeva velika brzina i veliki kapacitet (važnija je brzina koja treba da bude na nivou brzine µp, čak i veća), da ne usporavaju rad sistema.

Ulazni i izlazni sklopovi su integrisana kola visokog stepena integracije LSI, koji mogu da realizuju serijsku komunikaciju ili paralelnu komunikaciju sa perifernim jedinicama. Zahtjeva se velika brzina komunikacije sa µp.

Pomoćni sklopovi su sklopovi neophodni za rad µp i sistema. To su: sklopovi za napajanje, sklopovi za startovanje sistema i generator takt-signala.

Uvijek se koristi zajednička magistrala. Ako je problem sa brzinom rada, onda se koristi i više magistrala. Osnovni oblik je sistem sa 1 magistralom, a ako je problem sa brzinom realizuje se još jedna magistrala, itd.

U µp sistemima koristi se tzv. modularnost: memorija i U/I sklopovi se realizuju u obliku modula, koji se dodaju na zajedničku magistralu i tako se povećava kapacitet memorije ili se dodaju novi ulazno-izlazni sklopovi (npr. personalni računar).

Po konstrukciji i namjeni razlikujemo 2 tipa µp sistema:• µp sistemi opšte namjene• specijalizovani µp sistemi

BLOK-ŠEMA µp SISTEMA OPŠTE NAMJENE

Ovaj sistem služi za opšte primjene. Može da zadovolji u širokim oblastima. Tipičan primjer je personalni računar. Ovaj sistem posjeduje sve osovne elemente (osnovna blok-šema) što se tiče hardware-a, a što se tiče software-a ima određen software za neke opšte primjene.

4

POMOĆNISKLOPOVI MIKROPROCESOR

MEMORIJA(OPERATIVNA

MEMORIJA)

ULAZNI IIZLAZNI

SKLOPOVI

ULAZNE IIZLAZNE

PERIFERNEJEDINICE

(PERIFERIJE)

Page 5: mikroprocesorski sistemi skripta

MAGISTRALA

Kao µp koristi se µp opšte namjene ili visoke performanse, realizovan kao monolitno integrisano kolo u NMOS tehnologiji (npr. INTEL-ovi µp 8088, 80286, 80386, 80486, 80586, 80686 – pojavljuju se već i ovi).

Imamo 2 tipa memorije: RAM i ROM.ROM ima manji kapacitet (100-ak kbyte) (n10 kB ÷ nMB). Kod personalnih

računara imamo ROM BIOS; ovdje su samo osnovni programi, tzv. uslužni programi i neke konstante. Jeftinija je ROM memorija, kod prodaje na veliko npr. računara (ROM proizvodi proizvođač). Prizvođačima je lakše raditi PROM. ROM je u NMOS tehnici kao i µp.

RAM ima veći kapacitet (n MB ÷ n GB). Iz RAM memorije se koristi korisnički program, svi programi operativnog sistema; poželjno je da je RAM većeg kapaciteta da se dobije maksimalna brzina rada sistema. U RAM se pamte i ulazni podaci, međurezultati i konačni razultati. Ako sav program može stati u RAM imamo odmah i izvršavanje, a ako ne,onda se prebacuje dio po dio. Najčešće su to dinamičke RAM da bi se smanjila cijena (zbog velikog kapaciteta velika je i cijena).

U/I sklopovi – koriste se standardni sklopovi za paralelne ili serijske prenose, kao i kontroleri (za tastaturu, monitor, za floppy disk).

Što se tiče software-a ovi sistemi posjeduju operativni sistem (operativne programe) koji omogućavaju unošenje, razvijanje programa, otkrivanje i uklanjanje grešaka izvršavanja korisničkih programa.

µp sistemi opšte namjene su u mnogim primjenama: ekonomskim, tehničkim, pa i naučnim. Koristi se princip modularnosti, modularno proširivanje memorije.

BLOK-ŠEMA SPECIJALIZOVANOG µp SISTEMA

5

GENERATORTAKT

SIGNALA

SKLOP ZASTARTOVANJE

MIKRO-PROCESOR

MEMORIJA RAM TIPA

MEMORIJAROM

(PROM)TIPA

ULAZNISKLOPOVI

IZLAZNI SKLOPOVI

SKLOP ZA

NAPAJANJE

IZLAZNE PERIFERNEJEDINICE

ULAZNEPERIFERNEJEDINICE

Page 6: mikroprocesorski sistemi skripta

Ovi µp su prilagođeni konkretnoj namjeni i najveći broj je upravo ovih µp. U njima se vrši optimizacija u pogledu korišćenog hardware-a i software-a. Postoje specifični sklopovi u njima, a takođe i specifični programi.

NAPAJA SVE SKLOPOVE

Sljedeći sklopovi se mogu naći u ovim µp sistemima:µ p : mogu se koristiti svi tipovi µp u zavisnosti od namjene (npr µkontroler, za

upravljanje i dr.). Bitmodularni µp se koriste kada treba zadovoljiti veliku bzinu rada. Multiµp se koriste ponekad (više µp) (za veliku brzinu rada; ovi µp rade paralelno).

ROM: memorija velikog kapaciteta, jar se u njoj nalaze upisani svi programi i iz nje se izvršavaju svi programi koji upravljaju radom sistema (u ROM se nalaze konstante). Često se umjesto ROM koriste i PROM i EPROM, da proizvođač sistema programira memoriju i obezbjeđuje zaštitu sistema. Memorija je relativno velika (n100 kB ÷ n10MB).

RAM: memorija manjeg kapaciteta od ROM, u njoj se pamte ulazni podaci, te međurezultati i konačni rezultati (samo se manipuliše podacima). Kapacitet memorije je (n10kB ÷ nMB). Najčešće se koriste statičke RAM, jer je upravljanje jednostavnije.

Dodatna ALU kola, brzi množači, koprocesor: služe za logičke, matematičke i trigonometrijske operacije i za složenije matematičke operacije. Koriste se iz 2 razloga:

• uvijek se koriste za ubrzavanje logičkih i matematičkih funkcija i složene matematičke operacije

6

GENERATORTAKT

SIGNALA

SKLOP ZA

START

MIKRO-PROCESOR

MEMORIJAROM

(PROM, EPROM, E2PROM)

TIPA

MEMORIJARAM TIPA

DODATNAALU KOLA,

BRZIMNOŽAČI,

KOPROCESOR

SKLOPZA

NAPAJANJE

DIJAGNO-

STIČKISKLOPOVI

TAJMERII BROJAČI

ULAZNII

IZLAZNISKLOPOVI

A/DI

D/ASKLOPOVI

IMPULSNI ISKLOPOVI

ZA OBEZBJ.SNAGE

SPECIFIČ.SKLOPOVIDAVAČA I IZVRŠNIHMEHANIZ.

OBJEKAT UPRAVLJANJA(IZVOR I PRIJEMNIK

INFORMACIJA)

ULAZNE I IZLAZNEPERIFERNEJEDINICE

Page 7: mikroprocesorski sistemi skripta

• koriste se ako sam µp ne posjeduje odgovarajuće instrukcije ili ako se ne izvršavaju dovoljno brzo

ALU kola mogu da vrše operacije +, −, ⋅, : . Koprocesor omogućava realizovanje složenijih matematičkih operacija i omogućava preciznije i brže obavljanje matematičkih proračuna (daju eksponencijalne i logaritamske funkcije na izlazu). Sad su koprocesori realizovani u 1 čipu sa µp. Ovo se koristi kada sistem radi u realnom vremenu (podvučeno).

Dijagnostički sklopovi: namjena im je da utvrde grešku i da otklone te greške (dobroje dinamiku sistema). Ovo je važno kod sistema kod kojih se mora obezbjediti velika pouzdanost rada i brzo uklanjanje (oporavak) grešaka. Tipični sklopovi su:

1. sklop za ponovni start (za hardware-ski restart)Poznat je pod nazivom «Watchdog timer». To je brojač koji broji impulse koji se dovode i dok sistem ispravno funkcioniše on se resetuje i ne generiše nikakav signal. Kod greške, ako se program ne izvršava ispravno, taj timer se ne resetuje, dobrojaće do svog modula i generisaće signal koji se vodi na RESET ulaz µp-a i tako se ponovo startuje izvršavanje programa od početka.2. sklop za detektovanje pada napajanja i signalizacijuOvaj sklop postoji kod sistema kada dođe do prekida napajanja, da nakon njegovog ponovnog dolaska sistem nastavi normalno sa radom. Sistem zapamti stanja prije prekida napajanja i nakon ponovne pojave napajanja sistem radi dalje. Postoje 2 metode za ovo:

• dio RAM memorije se drži pod stalnim napajanjem (pomoću baterije), što je korišćeno ranije

• programiranje kritičnog sadržaja u E2PROM (ona se električno programira). Podaci se čuvaju tako da se oni upišu u ovu memoriju (kada dođe do prekida napajanja). Ova metoda je jednostavna, pa se više i koristi, jar su problemi sa baterijom (trošenje, dopunjavanje i sl.)

3. sklop za rad korak po korakOvaj sklop omogućava otkrivanje i ispravljanje grešaka u programu, omogućava da se program izvršava instrukcija po instrukcija i da se nakon izvršavanja svake instrukcije mogu pratiti rezultati.4. sklopovi za dijagnostičke tačkeČesto se postavljaju dijagnostičke tačke (u njima se utvrđuje gdje su greške tj. lociraju se greške) (npr. kod TV aparata, prilikom kvara), isto je i ovdje.5. procedura samotestiranja i odgovarajući sklopovi koji se pri tome koristeVrše se samotestiranja, tj. sistem se sam testira u toku rada, tj. testira pojedine sklopove. To se radi kad god procesor «ima vremena», tj. kad god ne radi ništa drugo, a obavezno se radi pri uključuvanju sistema. Postoje posebne procedure za testiranje µp, ROM, RAM, ulaznih i izlaznih sklopova.

Timer-i i brojači: koriste se kod sistema koji rade u realnom vremenu za realizaciju upravljanja signala sa definisanim vremenima trajanja i impulsnim

7

Page 8: mikroprocesorski sistemi skripta

oblicima. Koriste se za brojanje vanjskih impulsa i trajanje takvih sinala. Koriste se kada se sve to ne može riješiti adekvatno programski. Neki µp imaju određeni broj internih timer-a, pa se vanjski dodaju samo ako nema dovoljno unutrašnjih timer-a.

U/I sklopovi: služe za serijski ili paralelni prenos. Vrlo često se realizuje veza sa drugim µp sistemima ili računarima.

A/D ili D/A sklopovi: koriste se za povezivanje sa objektom upravljanja kod analognog upravljanja. A/D sklop služi za dobijanje informacija, a D/A za upravljanje. Svi su povezani paralelno u magistralu.

Impulsni i sklop za obezbjeđivanje snage: služi za upravljanje i prihvatanje signala od sklopova sa visokim naponima (npr. 220 V, 380 V), sa velikim opterećenjima i strujama, za formiranje snažnih upravljačkih signala. Tu spadaju i sklopovi za galvansko odvajanje, kao i filtri za zaštitu od smetnji. Postavljaju se na ulaze i izlaze kod kojih se treba izvršiti odvajanje.

Specifični sklopovi davača i izvršnih mehanizama: koriste se kod senzora ili davača za generisanje odgovarajućih el. signala, koji daju informacije o mjerenoj veličini. Tu spadaju i sklopovi za upravljanje izvršnim mehanizmima, kao što su displeji, servomotori, itd.

PROGRAM

Uglavnom ne postoji operativni sistem, već su svi programi prilagođeni samo za izvršavanje konkretnog posla, tj. svi programi su aplikativni. Svi programi su smješteni u ROM, PROM ili EPROM memoriju i iz nje se izvršavaju. Da bi bili maksimalno prilagođeni namjeni realizuju se pomoću asemblerskog jezika ili kombinacije asemblerskih jezika i viših programskih jezika.

NAMJENA OVAKVIH SISTEMA

To su specijalizovani sistemi za upravljanje procesima, objektima, uređajima ili mašinama ili obradu informacija. Rade u realnom vremenu i sistem je maksimalno optimiziran prema konkretnoj namjeni. Oblasti primjene su: upravljanje i obrada i prenos podataka informacija.

POSTUPAK PROJEKTOVANJA µp SISTEMA

Pri projektovanju postoji određena procedura. Postupak projektovanja predstavlja niz interaktivnih razmatranja i donošenja odluka. Razmatraju se zahtjevi koje je potrebno zadovoljiti u zavisnosti od konkretne primjene sistema, a donose se odluke o najpovoljnijoj u pojedinim fazama projektovanja. Polazi se od tehničkih zahtjeva koji se definišu na početku i koji zavise od toga kakva je namjena, tj. za šta će se koristiti kompletan sistem. Govorićemo s aspekta specijalizovanog µp sistema.

8

Page 9: mikroprocesorski sistemi skripta

1° Prvi korak u postupku projektovanja je izbor elemenata za realizaciju, odnosno u ovoj fazi treba donijeti odluku da li će se sistem realizovati korišćenjem µp ili korišćenjem diskretnih standardnih komponenti. I to posmatramo sa aspekta primjene. Prvo se analiziraju zahtjevi tog konkretnog sistema, da li se u sistemu mora realizovati mnogo operacija, da li ima mnogo ulazno-izlaznih podataka i sl. Jedan od najvažnijih zahtjeva je brzina rada i da li µp može da zadovolji tu brzinu rada.

DA

NE

DA

NE

DA

NEDA

NAJVAŽNIJEJE OVO

PITANJE NE NE

DA

9

REALIZUJESE MNOGOOPERACIJAU SISTEMU

START

MNOGO ULAZNIH,

IZLAZNIH I PRIVREMENIH

PODATAKA

POTREBNAMOGUĆNOST

MODIFIKACIJESISTEMA

POTREBNAFLEKSIBILNOST

PRIMJENE

µp ZADOVOLJAVAPO BRZINI

RADA

REALIZACIJA SA STANDARDNIM

DISKRETNIM KOLIMAREALIZACIJAKORIŠĆENJEM

µp

STOP

Page 10: mikroprocesorski sistemi skripta

U najvećem broju realizacija µp zadovoljava po brzini rada (rijetki su slučajevi kada µp ne zadovoljava).

2° Sljedeći korak je izbor µp i µp-ske familije. Vrši se analiza karakteristika raspoloživih µp u odnosu na zahtjeve konkretnog sistema i vrši se poređenje različitih µp i njihovih karakteristika, pa se onda analiziraju sklopovske karakteristike (hardware-ske karakteristike) µp i vrši se analiza programskih (software-skih) karakteristika pojedinih µp i µp-skih familija. Pri izboru značajno je iskustvo u prethodnom korišćenju nekog µp i µp-ske familije. Često je u različitim primjenama moguće koristiti jedan isti tip µp, pa je onda logično da se ne ide na izbor nekog novog µp iako to rješenje može biti optimalnije, već se odlučujemo na korišćenje µp s kojim već imamo iskustvo (koji smo koristili u prethodnom primjeru). Ako se odlučimo na novi µp treba obezbjediti i instrukcije za rad i razvoj hardware-a, a za prethodno korišćeni µp to sve već imamo na raspolaganju. Kad se analiziraju karakteristike prvo se analiziraju hardware-ske karakteristike, a to su načini U/I prenosa, raspoloživi U/I sklopovi, postojanje timer-a i brojača i njihove karakteristike i slično.

10

START

RAZMATRANJE RASPOLOŽIVIHU/I SKLOPOVA ZA ŽELJENU

PRIMJENU

RAZMATRANJE JEDNOSTAVNOSTII FLEKSIBILNOSTI ALTERNATIVNIH

µp I µp-SKIH FAMILIJA

RAZMATRANJE U/I MOGUĆNOSTI ALTERNATIVNIH µp I µp-SKIH FAMILIJA

U/I PRENOS KONTROLERI STRUKTURA DMA PROGRAMABILNI POD UPRA- ZA SPECIJA- VIŠESTRUKIH KONTROLER TIMER-IVLJANJEM LNE U/I PREKIDAPROGRAMA UREĐAJE

IZBOR JEDNOG µp I µp-SKE FAMILIJE

STOP

Page 11: mikroprocesorski sistemi skripta

Razmatraju se i software-ske karakteristike pojedinih alternativnih µp. Takođe posmatramo i konkretnu primjenu: načini adresiranja, rad sa podprogramima, način rada sa prekidima, rad sa nizovima i matricama podataka, sa BCD podacima kao i kompletan skup instrukcija kojim µp raspolaže.

Nakon izbora µp dalje ide niz koraka vezanih za praktičnu realizaciju pojedinih programskih i sklopovskih rješenja, te na njihovo testiranje i konkretnu realizaciju. U opštem obliku ti koraci se mogu predstaviti jednim ovakvim dijagramom.

11

START

RAZMATRANJE OVIH ZAHTJEVAKONKRETNE PRIMJENE

RAZMATRANJE KOJI POSLOVIUZIMAJU NAJVIŠE VREMENA

RADA µp

RAZMATRANJE SOFTWARE-SKIH MOGUĆNOSTI ALTERNATIVNIH µp I µp-SKIH FAMILIJA

NAČINI STRUKTURA NAČINI RAD SA NIZO- RAD SA DECI- TESTIRANJE “PAKOVANJE”ADRESI- RADA SA VIMA I MAT- MALNIM I BITA PODATAKARANJA PREKIDIMA RICAMA BIMARNIM PODATAKA BROJEVIMA

IZBOR JEDNOG µp I µp-SKE FAMILIJE

STOP

Page 12: mikroprocesorski sistemi skripta

NE(DA)

DA(NE)

12

START

DEFINISANJE KONCEPCIJESISTEMA

RAZMATRANJE ZAHTJEVA SISTEMA,POSEBNO NAČINA I BRZINA

U/I PRENOSA PODATAKA

IZBOR U/I SKLOPOVAI UREĐAJA

IZBOR µp I µp-SKE FAMILIJE

U REDU (POTREBNO PONOVNO

RAZMATRANJE)

ODREĐIVANJE BROJA POTREBNIHULAZA, IZLAZA I DRUGIH POTREBNIH

U/IMOGUĆNOSTI

PROJEKTOVANJE MIKRORAČUNARA

PROJEKTOVANJE U/I SKLOPOVA I NJIHOVO TESTIRANJE

PROJEKTOVANJE I RAZVOJ PROGRAMA(SOFTWARE-A)

TESTIRANJE ODNOSA IZMEĐU HARDWARE-A I SOFTWARE-A U

ČITAVOM SISTEMU

KOMPLETIRANJE SISTEMA

STOP

Page 13: mikroprocesorski sistemi skripta

PROJEKTOVANJE µp SISTEMA

µp INTEL 8086 - (80x86 ⇒ x=1,2,3,..)

SKLOPOVSKE RJEŠENJE (PROJEKTOVANJE HARDWARE-A)ARHITEKTURA

Nacrtaćemo opštu blok-šemu µp sistema.

ADRESNA MAGISTRALA

UPRAVLJAČKA MAGISTRALA

MAGISTRALA PODATAKA

Funkcija upravljačke logike je da generiše potrebne signale za selektovanje memorijskih kola i U/I kola u zavisnosti od adresnih i upravljačkih signala koje generiše µp za vrijeme izvršavanja instrukcija.

Upravljačka logika je kombinaciona logika koja dekoduje adrese pojedinih memorija i U/I sklopova i generiše signale za njihovo selektovanje kada oni budu adresirani.

MIKROPROCESOR INTEL 8086

13

GENERATORTAKT

SIGNALA

SKLOP ZASTARTOVANJE

MIKRO-PROCE-

SOR

UPRAVLJA-ČKA

LOGIKA

MEMO-RIJAROMTIPA

MEMO-RIJARAMTIPA

ULAZNISKLO-POVI

IZLA-ZNI

SKLO-POVI

SKLOP ZANAPAJANJE

IZLAZNEPERIFE-

RIJE

ULAZNEPERIFE-

RIJE

Page 14: mikroprocesorski sistemi skripta

On najviše utiče na kompletan način projektovanja sistema.

OSNOVNE KARAKTERISTIKE

To je µp opšte namjene standardnog tipa, realizovan kao jedno kolo LSI tipa, u NMOS tehnologiji sa Si gejtom i sa opterećenjem sa ugrađenim kanalom.

UDD

Ui opterećenje sa ugrađenim kanalom

Uu

To je 16-bitni µp, što znači da obrađuje 16-bitne podatke paralelno, svi unutrašnji registri i magistrale su 16-bitni. Koristi 1 takt signal i samo 1 napon za napajanje, može direktno da adresira do 1 Mbyte u memoriji, što znači da ima 20 adresnih bita. Ima 16 linija podataka u magistrali podataka, koji se multipleksiraju sa bitima adrese. U jednom takt ciklusu se na tim linijama nalaze biti adrese, a u sljedećem su podaci. Ima 17 upravljačkih linija, koristi 24 različita načina adresiranja. Posjeduje 14 unutrašnjih registara, koji su po 16 bita. Može da operiše sa bitima, byte-ovima, riječima (one su 2 byte-a) i blokovima podataka (nizovima podataka). Omogućava rad sa podacima sa predznakom ili bez predznaka u binarnom ili decimalnom sistemu, uključujuči i množenje i dijeljenje. Moguć ja rad sa 8-bitnim i 16-bitnim označenim ili neoznačenim podacima (sa ili bez predznaka). Može da koristi takt signal frekvencije 5 MHz,8 MHz i 10 MHz (postoje 3 tipa µp sa ovim maksimalnim frekvencijama). Posjeduje 95 instrukcija od kojih je najveći broj instrukcija 1-bajtni, što znači da je operacioni kôd 8 bita, a ostali byte-ovi su operandi, adrese, i sl.

BLOK ŠEMA µp 8086

PENTUIM 3 može istovremeno izvršavati 2 instrukcije, a PENTIUM PRO može istovremeno izvršavati 3 instrukcije (ima 100 miliona tranzistora na čipu, za razliku od PENTIUM-a 3 koji ima 1 milion).

14

Page 15: mikroprocesorski sistemi skripta

REGISTRI ZA REGISTRI ZA PODATKE POSEBNE FUNKCIJE BHE /S7

4 A16/S3-A19/S6 16 AD0-AD15

3 INTA , RD, WR 3 DT / R , DEN , ALE

TEST LOCK INT NMI 2 2 RQ / GT 0,1 QS0 , QS1 HOLD 3 HLDA S0 , S1 , S2 2 CLK RESET READY MN/MX GND VCC

REGISTRI PODATAKA, REGISTAR POKAZIVAČA

PODATAKA,INDEKSNI REGISTRI, (8 RIJEČI)

16-BITNA ALU

BITI STANJA (FLEGOVI-FLAGS)

(1 RIJEČ)

SEGMENTNI REGISTRI I POKAZIVAČ INSTRUKCIJE

(5 RIJEČI)

JEDINICA ZA

POVEZIVANJE SA

MAGISTRALOM

RED ZA INST- RUKCIJE

(6 BYTE-OVA)

KONTROLNA JEDINICA

Kompletna arhitektura je oko magistrala koje su 16 bita. Arhitektura µp je takva da se mogu izdvojiti 2 posebne jedinice:

1º izvršna jedinica – EU (execution unit)2º jedinica za povezivanje sa magistralom - BIU (buss interface unit)

Te 2 jedinice funkcionišu nezavisno, ali određena veza između njih postoji, kao i sinhronizacija. Pošto one funkcionišu paralelno i nezavisno, na taj način je postignuta povećana brzina rada µp. Postignuta je mogućnost paralelnog izvršavanja 1 instrukcije i pribavljanja 2. instrukcije. To se naziva preklapanje pribavljanja i izvršavanja instrukcija. Instrukcija koja se pribavlja upisuje se u unutrašnji red za

15

Page 16: mikroprocesorski sistemi skripta

instrukcije, tako da izvršna jedinica uvijek ima prethodno pribavljenu instrukciju u redu instrukcije. Taj red instrukcija ima 6 byte-ova, pa se prethodno može pribaviti 6 jednobyte-nih instrukcija. Ta mogućnost se bazira na tom da svaki µp izvršava program prolazeći uzastopno kroz 4 sljedeća koraka:

1º pribavljanje instrukcije2º očitavanje operanda3º izvršavanje instrukcije4º upisivanje rezultata

Za svaku instrukciju to se ponavlja. Kod µp 8086 ova 4 osnovna koraka su dodjeljena dvjema posebnim jedinicama: izvršnoj jedinici i jedinici za povezivanje sa magistralom.

Izvršna jedinica samo izvršava instrukcije, a sve ostale korake realizuje jedinica za povezivanje sa magistralom. Tako je omogućeno preklapanje ciklusa izvšavanja instrukcija sa nekim od ostalih instrukcija. Tako je povećana brzina izvršavanja instrukcija u odnosu na µp bez ove mogućnosti prethodne generacije (bez preklapanja operacija). Kod sljedećih generacija ovih µp 8086 zahvaljujući povećanom broju tranzistora u integralnom kolu realizovane su takve strukture koje su omogućile pored preklapanje izvršavanja i pribavljanja instrukcija istovremeno izvršavanje više instrukcija. 486 i PENTIUM procesori su takvi da mogu istovremeno izvršavati 2 instrukcije koje su prethodno pribavljene. Kod PENTIUMa PRO mogu se istovremeno izvršavati 3 instrukcije. Postoje 3 izvršne jedinice. Na 1 integralnom kolu PENTIUM PRO ima 100 miliona tranzistora.

Primjer: posmatrajmo slučaj istovremenog izvršavanja 3 instrukcije.

STANDARDNI CPU µ p DRUGE GENERACIJE MAGISTRALA 8086/8088 EU BIU MAGISTRALA (UBRZANO) SKRAĆENO VRIJEME IZVRŠAVANJA ZA 1 CIKLUS

IZVRŠ. UPIS PRIBAV. IZVRŠ. PRIBAV. OĆIT. IZVRŠ.

ZAUZ. ZAUZ. ZAUZ. ZAUZ.

IZVRŠ. IZVRŠ. IZVRŠ.

PRIBAV. UPIS PRIBAV. PRIBAV. OĆIT. PRIBAV.

ZAUZ. ZAUZ. ZAUZ. ZAUZ. ZAUZ. ZAUZ.

Magistrala je zauzeta čitavo vrijeme: ili se prenose podaci ili se pribavljaju instrukcije.

Blok šema µp se može nacrtati i na način kako je prikazano na sljedećoj slici. Izvršna jedinica nije direktno vezana na vanjsku magistalu, već preko BIU.Svi podaci i adrese, kojima se manipuliše u EU,su 16-bitni i svi prenosi su 16-bitni. Za prenose podataka prema memoriji ili perifernim jedinicama EU postavlja zahtjev BIU, BIU vrši relokaciju adresa, tako da formira stvarne fizičke adrese, koje su veličine 20 bita, čime je omogućen pristup kompletnom memorijskom prostoru od 1 Mbyte-a. Za vrijeme perioda kada je EU zauzeta izvršavanjem instrukcije, BIU “gleda unaprijed” i

16

Page 17: mikroprocesorski sistemi skripta

pribavlja nove instrukcije iz memorije, koje se smještaju u red instrukcija. Iz reda instrukcija one se vode na EU .U principu, EU uvijek ima prethodno pribavljenu instrukciju u redu instrukcija.

IZVRŠNA JEDINICA EU JEDINICA ZA POVEZIVANJE SA MAGISTRALOM (BIU)

VANJSKA MAGISTRALA

OPŠTI REGISTRI

SEGMENTNI REGISTRI

POKAZIVAČ INSTRUKCIJA

GENERISANJE ADRESE I

UPRAVLJANJE MAGISTRALOM

RED INSTRUKCIJA

OPERANDI

ARITMETIČKO- LOGIČKA JEDINICA

BITI STANJA (FLEGOVI)

Izuzete su jedino instrukcije grananja, kada se izvršavanje prenosi na neku od instrukcija koja je izvan reda. U tom slučaju se red instrukcija briše i prva instrukcija pribavlja iz operativne memorije.

U sastavu BIU su logika za upravljanje magistralom, grupa od 4 16-bitna segmentna registra, registar pokazivač instrukcija i sabirač.

Logika za upravljanje magistralom prihvata sve ulazne upravljačke signale i generiše potrebne izlazne upravljačke signale za pribavljanje instrukcija, operanada i upisivanje rezultata.

Grupa od 4 16-bitna segmentna registra, koji se označavaju sa CS za segment programa, SS za segment steka, DS za segment podataka, ES dodatni segment za podatke, omogućava povećanje memorije adresnog prostora kome se može pristupiti. Iako su svi interni registri µp od 16 bita, zahvaljujući segmentnim registrima generišu se adrese od 20 bita i tako se može pristupiti adresnom prostoru od 1 Mbyte-a, a ne samo od 64 kbyte-a. U jednom trenutku procesor može da pristupi memorijskim lokacijama u okviru 4 segmenta po 64 kbyte-a. Početne adrese ta 4 segmenta su definisane sadržajem segmentnih registara. Stvarne adrese se dobivaju na osnovu sadržaja segmentnih registara i određenih adresnih registara. Izmjenom sadržaja

17

Page 18: mikroprocesorski sistemi skripta

segmentnih registara može se ostvariti adresiranje bilo koje lokacije u okviru adresnog prostora od 1 Mbyte-a. Zbog toga se kaže da je adresni prostor kod ovog µp organizovan po segmentima, tj. ima segmentnu realizaciju.

Pokazivač instrukcija (IP) je registar koji kod ovog µp ima ulogu programskog brojača u okviru aktuelnog segmenta koda. Taj registar je 16 bita i omogućava adresiranje svih 64 kbyte-a lokacija u okviru aktuelnog kodnog segmenta.

Sabirač generiše stvarnu adresu od 20 bita, koja se vodi na adresne linije µp. Stvarna adresa se formira od sadržaja nekog od segmentnih registara i odgovarajućeg adresnog registra. Adresa od 20 bita se formira tako što se 1. sadržaj segmentnog registra proširi na 20 bita upisivanjem 4 0-e na 4 najniža bita. Zatim se to sabere sa sadržajem odgovarajućeg registra. Za slučaj generisanja adrese u kodnom segmentu za adresiranje instrukcija programa koriste se CS (segmentni) i IP (adresni) registri.

SEGMENTNI REGISTAR 15 0 19 43

20 ADRESNI REGISTAR 15 0 16 20

19 0

CS 0000

IP

SABIRAČ

STVARNA MEMORIJSKA ADRESA

REGISTRI µp 8086

Ovaj µp ima ukupno 14 unutrašnjih registara. Oni se mogu podijeliti na registre podatka, registre pokazivača, indeksne registre, segmentne registre, pokazivač instrukcija i registar bita stanja. Svi su oni 16-bitni, s tim što se registri podataka mogu koristiti i kao 8-bitni registri. Svaki registar podataka se može koristiti kao 2 8-bitna registra.

REGISTAR BITA STANJA

To je takođe 16-bitni registar, čiji biti pokazuju stanje rezultata ili se koriste kao kontrolni biti. Od 16 bita praktično se koristi 9, od čega je 6 bita stanja, a 3 su kontrolna bita.

18

Page 19: mikroprocesorski sistemi skripta

15 0

OF

DF

IF

TF

SF

ZF

AF

PF

CY

Biti stanja su:CY – bit prenosa ili pozajmicePF – bit parnosti – pokazuje da li rezultat ima paran ili neparan broj 1-caAF – poluprenos ili pomoćni prenos, pojavljuje se između 4 viša i 4 niža bita u okviru 1 byte-a i koristi se pri radu sa BCD podacimaZF – bit nule rezultata, pokazuje da je rezultat jednak 0 (tada je bit jednak 1)SF – bit znaka rezultata, pokazuje da li je rezultat pozitivan ili negativan (koristi se kod podataka sa predznakom) (1 – pozitivan, 0 – negativan) – to je najviši bit rezultatOF – bit prekoračenja, pokazuje da rezultat prelazi predviđeni broj bita za njegovo predstavljanje (ako se radi sa označenim podacima, onda se ovaj bit pojavljuje kao bit prenosa ispred predznaka naprijed ili predznak naprijed)

Ostali biti su kontrolni biti, pomoću njih se upravlja radom µp i utiče na njegovo funkcionisanje. Ti biti su:TF – tzv. «trap» bit – njegovim postavljanjem µp se dovodi u tzv. korak po korak način rada, koji se koristi za otkrivanje i uklanjanje grešaka u programima koje izvršava µp. U takvom načinu rada µp izvrši 1 instrukciju, pa se onda generiše tzv. “trap” prekid. U okviru programa za obradu tog prekida mogu se provjeriti sadržaji registara, µp, memorijskih lokacija i tako utvrditi ispravnost izvršavanja instrukcija. Sve se to ponavlja dok god je TF bit postavljen na 1. Uloga ovog bita je dibagiranje programa - utvrđivanje grešaka i otklanjanje. DF – bit smjera; zavisno od njegovog stanja, instrukcija za rad sa nizovima podataka će automatski uvećavati ili umanjivati sadržaj registra za adresiranje podataka u nizu.IF – to je bit za omogućenje ili onemogućenje prihvatanja zahtjeva za prekid opšteg tipa ili je to bit maske prekida. Ako je ovaj bit 1-ca onda je omogućeno prihvatanje prekida, a ako je na 0-i realizacija prekida biće onemogućena.

Ostalih 13 registara su registri podataka.

SKUP REGISTARA – PROGRAMSKI MODEL µp

Registri su 32-bitni, uključujući 8086 i kasnije µp. Prve 2 grupe su 32-bitne, dakle svi osim segmentnih registara, a segmentni registri su ostali 16-bitni; označavaju se sa:

EAX ESP EIP E – extented – proširenEBX EBP EFLAGSECX ESIEDX EDI

19

Page 20: mikroprocesorski sistemi skripta

Postoje još 2 dodatna segmentna registra: FS i GS, koji se mogu koristiti po potrebi.

31 16 15 8 7 0 AKUMULATOR (ACCUMULATOR) REGISTRI BAZA (BASE) PODATAKA BROJANJE (COUNT) PODATAK (DATA) POKAZIVAČ STEKA (STACK POINTER) POKAZIVAČI POKAZIVAČ BAZE I INDEKSNI (BASE POINTER) REGISTRI INDEKS IZVORA (SOURCE INDEX) INDEKS ODREDIŠTA (DESTINATION INDEX) SEGMENT KODA (CODE SEGMENT) SEGMENT STEKA (STECK SEGMENT) SEGMENTNI REGISTRI SEGMENT PODATAKA (DATA SEGMENT) DODATNI SEGMENT (EXTRA SEGMENT) POKAZIVAČ INSTRUKCIJE (INSTRUCTION POINTER) BITI STANJA (FLAGS)

AX AH AL

BX

BH BL

CX

CH CL

DX

DH DL

SP

BP

SI

DI

CS

SS

DS

IP

FLAGS

FS

GS

ES

Skup registara kod µp 8086 je dosta namjenski orjentisan. Neke specifičnosti namjene svakog od registara su:

AX – pri množenju, dijeljenju, U/I operacijama i pri radu sa nizovimaAL – isto kao AX, samo kad se radi sa 8-bitnim podacima, ali se takođe koristi i

za obavljanje pomjeranja podataka, BCD i ASCII aritmetikuBX – koristi se pri pomjeranju i kao bazni pokazivač zajedno sa DS CX – koristi se za rad sa nizovima, kao brojač u petljama (CUONTER) DX - za množenje, dijeljenje i U/I operacijeSP – pokazivač steka (uvijek)BP – koristi se kao pokazivač kad se pristupa lokacijama u steku zajedno sa SSSI – koristi se kao indeksni registar za adresiranje izvornih podataka pri radu sa

nizovima, a koristi se zajedno sa DS registrom

20

Page 21: mikroprocesorski sistemi skripta

DI – koristi se kao indeksni registar za adresiranje odredišta podataka i koristi se zajedno sa ES registrom

SIGNALI µp 8086

Ovaj µp je realizovan kao integrisano kolo sa 40 izvoda, pa se zove DIL kućište. Signale koje µp koristi dijelimo na:

1º napajanje2º takt signal3º signali memorijske adrese4º signali podataka5º upravljački signali

GND VCC AD14 AD15 AD13 A16/S3 AD12 A17/S4 AD11 A18/S5 AD10 A19/S6 U MAKSIMALNOM NAČINU AD9 BHE/S7 RADA KORISTE SE OVI ULAZI AD8 MN/MX AD7 RD AD6 HOLD (RQ / GT0) 2XGND – DA SE RASTERETI AD5 HLDA (RQ / GT1) MASA AD4 WR (LOCK) AD3 M/IO (S2) AD2 DT / R (S1) AD1 DEN (S0) AD0 ALE (QS0) NMI INTA (QS1) INTR TEST CLK READY GND RESET POGLED ODOZGO ZA MINIMALNI NAČIN RADA

1 40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 32 10 31 11 30 12 29 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21

Postoje 2 načina rada µp: minimalni i maksimalni. Razlika je u signalima koji su napisani u zagradama.

NAPAJANJE

Ovaj µp koristi 1 izvor za napajanje, ima 2 priključka za napajanje Vcc i GND; Vcc=5V (istosmjerno) – to je jedini napon napajanja, GND je masa.

21

Page 22: mikroprocesorski sistemi skripta

Vcc=+5V±5% (10%) – izvor mora biti ove stabilnostiPored toga izvor treba da obezbjedi i određenu snagu. µp troši maksimalno

≈300mA, a u prosjeku troši ispod 100mA.

TAKT SIGNAL

Koristi se samo 1 takt signal, dovodi se na ulaz CLK (clock). To je 1 jednofazni signal, koji se mora generisati izvan µp. Za generisanje takt signala postoji posebno kolo, označava se sa 8284A. To je oscilator i još neki sklopovi za generisanje reset signala i drugi. Na njega se priključuje ili kristal kvarca ili RC-mreža. Signal koji taj sklop generiše ima odnos signal-pauza 33% (1/3 pozitivni signal, 2/3 je 0). Frekvencija takt signala dijeli se na 3. Maksimalna frekvencija ovog takt signala može da bude 5 MHz, 8 MHz ili 10 MHz (80-tih godina ovo je bilo visoko,ali danas više ne).

ADRESNI SIGNALI

Ima 20 adresnih signala, odnosno bita i adresira 1 Mbyte adresnog prostora. To su ulazi AD0 ÷ AD15 i A16/S3 ÷ A19/S6.

Ulazi AD0 ÷ AD15 multipleksirani su sa podacima. Za vrijeme 1 takt ciklusa svakog mašinskog ciklusa na tim linijama se pojavljuju adrese, a u drugim takt ciklusima prenose se podaci. 4 viša bita su multipleksirana sa bitima stanja.

A16/S3 ÷ A19/S6 pokazuje stanje na magistrali (isto kao i prethodno).Adresni biti se moraju memorisati u vanjskom registru i onda se vode na

memorijske i U/I sklopove – to je adresni registar.

A0÷ A19 KOMPLETNA ADRESA

AD0÷ AD15

A16/S3÷ A19/S6

ALE

ADRESNI REGISTAR

(LEČ REGISTAR)

OMOGUĆENO

ALE – da bi se upis ostvario u pravom trenutku

SIGNALI PODATAKA

Procesor i podaci su 16-bitni; podaci se prenose preko linija AD0 ÷ AD15. U drugom i ostalim ciklusima preko tih linija prenose se podaci i prenos je 2-smjeran.

Adresni signali su uvijek jednosmjerni. Mogu se dovesti u stanje visoke impedanse. To su stanja HOLD i HALT.

HOLD – kad se direktno vrši pristup memoriji

22

Page 23: mikroprocesorski sistemi skripta

HALT - µp se zaustavi i odvoji se od magistraleI AD0 ÷ AD15 se takođe dovode u stanje visoke impedanse.

UPRAVLJAČKI SIGNALI

Svi ostali signali spadaju u upravljačke signale. Postoji 18 upravljačkih signala. Dijele se na ulazne i izlazne.

Ulazni upravljački signali

Postoji 8 ulaznih upravljačkih signala:READY – ulazni signal koji se koristi pri radu sa sporim memorijskim ili

perifernim uređajima. Pokazuje da je memorijski ili periferni uređaj spreman da primi ili pošalje podatak. Visok nivo na tom ulazu pokazuje da je memorija ili uređaj spreman i tad se može realizovati upis ili očitavanje. Ako je na ulazu nizak nivo, µp produžava trajanje ciklusa instrukcija i čeka dok taj signal ne pređe na visok nivo, a onda se realizuje prenos. µp čeka da memorija ili uređaj bude spreman za prenos. Uloga ovog ulaza je sinhronizacija µp i sporih memorijskih ili sporih perifernih uređaja.

HOLD – ulazni signal zahtjeva za odvajanje od magistrale. Visok nivo na ulazu pokazuje da neki drugi µp ili neki drugi sklop (najčešće DMA kontroler) zahtjeva korišćenje magistrale. Po prijemu tog zahtjeva µp će dovesti svoje izlaze u stanje visoke impedanse i osloboditi magistralu čim završi tekući mašinski ciklus. Sklop koji je zahtijevao magistralu sada može da je koristi. µp će nastaviti izvršavanje programa dok god postoje prethodno pribavljene instrukcije u redu instrukcija ili dok ne bude potrebno realizovati prenos preko magistrale. Kad se signal na ovom ulazu vrati na nizak nivo , to znači da je magistrala slobodna i da je µp može koristiti, µp preuzima korišćenje magistrale i nastavlja izvršavanje programa. Ovaj ulaz se najčešće koristi u radu sa DMA prenosom ili u sistemu sa više µp, koji koriste zajedničku magistralu ili zajedničke sklopove vezane na magistralu.

INTR – ulaz zahtjeva za prekid opšteg tipa. Dovođenje visokog nivoa na taj ulazpredstavlja zahtjev za prekidanje izvršenja programa; taj signal µp ispituje na kraju ciklusa izvršenja instrukcija i za vrijeme HOLD i HALT stanja. Ovakav zahtjev za prekid se može omogućiti ili onemogućiti postavljanjem i brisanjem bita stanja IF u registru bita stanja. Taj prekid je onemogućen nakon reseta i po prelasku u podprogram za obradu prekida, a omogućen je po povratku u program. Može se softverski omogućiti ili onemogućiti pomoću instrukcija za postavljanje ili brisanje bita IF.

RESET – to je ulaz za resetovanje µp. Dovođenjem visokog nivoa, µp prestaje izvršavati instrukcije i prelazi u reset stanje, u tom stanju se sadržaj određenog registra postavlja na početnu vrijednost; kada signal pređe na nizak nivo, µp počinje da izvršava program od početne adrese (od početka). Kod ovog µp početna adresa je FFFFØH. U stanju reseta obrisani su segmentni registri, osim registra CS. Stanje ostalih registara:

23

Page 24: mikroprocesorski sistemi skripta

FLAGS 0000HIP 0000HCS FFFFH – svi registri obrisani osim ovog registra za kodDS 0000HSS 0000HES 0000HRED INSTRUKCIJA PRAZAN

Signal za reset se generiše najčešće korišćenjem kola 8284A (vanjsko kolo), koje se koristi i za generisanje takt signala. U stanju reseta, µp ne izvršava instrukcije, registri su postavljeni na početnu vrijednost i odvojeni od magistrale.

TEST - stanje na ovom ulazu se ispituje izvršenjem instrukcije WAIT. Ako je pri izvršenju te instrukcije na ulazu nizak nivo, nastavlja se dalje izvršenje programa; ako je na tom ulazu visok logički nivo, pri izvršavanju WAIT instrukcije, µp će čekati dok taj signal ne pređe na visok nivo. Služi za sinhronizaciju sa vanjskim uređajima (obično sporijim), to je sihronizacija na nivou software-a.

NMI – ulaz zahtjeva za prekid, koji se ne može maskirati; to je prekid najvišeg nivoa prioriteta, čiji se zahtjev uvijek prihvata. Visok nivo na ovom ulazu predstavlja prelazak sa visokog na niski nivo, tada se iz tabele vektora prekida očita početna adresa programa za obradu prekida (TIP 2).

MN/MX – ulazni signal, pomoću koga se definiše način rada µp. MN/MX = 1 ⇒ µp radi u minimalnom načinu radaMN/MX = 0 ⇒ maksimalni način rada

Kod minimalnog načina rada to je rad kod koga se koristi samo 1 µp, a maksimalni način rada se koristi kod povezivanja više µp ili kod povezivanja µp i koprocesora.

Izlazni upravlja č ki signali

ALE – impuls koji se generiše u toku svakog prvog takt-ciklusa svakog mašinskog ciklusa. Pojavljuje se u trenutku kad se na linijama AD0 ÷ AD15 i A16/S3 ÷ AD19/S6 pojave adresni biti. Koristi se da se adresni biti upišu u vanjski adresni registar. Na zadnjoj (opadajućoj) ivici tog signala adresni biti se memorišu u vanjskom adresnom registru. Postoji 10 izlaznih upravljačkih signala (ulaznih je 8).

M/IO – pokazuje da li se u toku mašinskog ciklusa vrši pristup memoriji ili U/I sklopu.

ako je M/IO = 1 ⇒ pristup memoriji M/IO = 0 ⇒ pristup U/I sklopu

Korišćenjem tog signala mogu se generisati potrebni signali za selekciju memorijskih i U/I kola.

RD – signal očitavanjaNizak logički nivo na tom izlazu pokazuje da µp teba da očita podatak iz

memorije ili ulaznog sklopa; u tom trenutku je stabilna adresa na adresnoj magistrali i

24

Page 25: mikroprocesorski sistemi skripta

µp generiše ovaj signal da bi se očitao podatak iz memorije ili ulaznog sklopa; taj signal se vodi kao signal za omogućenje očitavanja.

WR – signal upisivanjaNizak nivo na tom izlazu pokazuje da će procesor realizovati operaciju

upisivanja podataka u memoriju ili izlazni sklop. U trenutku pojavljivanja ovog signala adresa je već stabilna na adresnoj magistrali; podatak je takođe stabilan na magistrali podataka i treba da se upiše u memoriju ili izlazni sklop. Taj signal se vodi na memoriju ili izlazni sklop kao signal za selektovanje i omogućenje upisivanja.

RD i WR – oba idu u stanje visoke impedanse o odvajaju se od magistrale.HLDA – signal kojim se potvrđuje prihvat HOLD-zahtjeva; kad prihvati HOLD

zahtjev, µp postavlja ovaj izlaz na visok nivo, što znači da će osloboditi magistralu za korišćenje od strane onog sklopa koji je zahtjevao magistralu. Kao µp izađe iz HOLD stanja signal na ovom izlazu se vraća na nizak nivo , µp preuzima upravljanje magistralom.

INTA – signal potvrde prihvatanja zahtjeva za prekid opšteg tipa (INTR). Kad µp prihvati zahtjev za INTR- prekid u izvršavanju tekuće instrukcije on generiše nizak nivo na ovom izlazu kao potvrdu da je zahtjev prihvaćen; taj nizak nivo se istovremeno koristi za očitavanje vektora prekida, odnosno tipa prekida koji odgovara sklopu koji je izazvao prekid.

DT/R – signal koji pokazuje smjer prenosa podataka preko magistrale, koristi se za upravljanje prenosom podataka kroz kola vezana na magistralu. log1 na ovom izlazu pokazuje da se podaci prenose od µp prema memoriji ili izlaznim sklopovima, a log0 da se podaci prenose ka µp.

DEN – signal za omogućenje prenosa podataka kroz kola vezana na magistralu, on je na niskom nivou kad god je potrebno realizovati prenos preko magistrale. Za vrijeme svakog pristupa memoriji ili U/I sklopovima na tom izlazu je nizak nivo.

µ P MAGISTRALA DEN DT/R

UPRAVLJAČKA LOGIKA

BHE/S7 – koristi se za omogućenje pristupa memorijskim čipovima kao signal BHE ili kao signal stanja S7 – multipleksirana 2 signala. Kad je na AD adresa, na ovoj liniji je BHE i on se zajedno sa adresnim signalima koristi za adresiranje memorije. Kod ovog µp je moguć pristup byte-u ili riječi (=2byte-a) ⇒ istovremeno se može upisati ili očitati 8 ili 16 bita, a u okviru 16 bita imamo 2 byte-a : parni i

25

Page 26: mikroprocesorski sistemi skripta

neparni. Onaj koji se nalazi na linijama AD0 ÷ AD7 je parni, a na AD8 ÷ AD15 neparni byte. Da bi se omogućio pristup parnom ili neparnom byte-u ili čitavoj riječi (ova 2 byte-a), koristi se najniži adresni signal A0 i BHE. Ako su oba ova signala na niskom nivou, pristupa se riječi (od 16 bita). Ako je A0=0 i BHE=1 ⇒ pristupa se parnoj adresi (byte). Ako je A0=1 i BHE=0 ⇒ neparni byteAko je A0=1 i BHE=1 ⇒ nema pristupa adresi (byte-u)

Sama memorija se fizički organizuje u 2 dijela, tj. u 2 banke: u jednoj se nalaze byte-ovi na parnim adresama, a u drugoj na neparnim adresama.

NEPARNA BANKA PARNA BANKA MORA SE VODITI RAČUNA DA SE BITI PRAVILNO POVEŽU 8

7 6 5 4 DVIJE BANKE PO POLA MBYTE-A ⇒

UKUPNO 1 MBYTE 3 2 1 0 A0 BHE

S3, S4, S5, S6, S7 multipleksiraju se sa adresnim bitima, pokazuju stanje i pojavljuju se u 2. dijelu mašinskog ciklusa. S3, S4 pokazuju koji se segmentni registar koristi pri konkretnom ciklusu instrukcije pri pristupu magistrali.

S4 S3 Memorijski pristup0 0 alternativni pristup ili pristup ekstra segmentu (koristi se ES)0 1 pristup steku (koristi STEK segment – SS)

1 0 pristup programu ili bez pristupa (koristi CS ili ne koristi segmentni registar

1 1 pristup podacima (koristi se DS)

Možemo da znamo tačno čemu se pristupa. S5 – bit za omogućenje prekida, pokazuje vrijednost omogućenja bita prekida IFS6 – pokazuje da li procesor koristi ili ne magistralu, na 0 je kad µp koristi

magistralu.S7 – tzv. rezervni bit stanja i ne koristi se kod ovog µp, ali je ostavljen kao

mogućnost da se koristi u sljedećim µp iz ove serije.

26

Page 27: mikroprocesorski sistemi skripta

TIPIČNI TALASNI OBLICI SIGNALA µp 8086

-za ciklus očitavanja iz memorije (za minimalni način rada)

T1 T2 T3 T4 T5 CLK ADRESA STANJE BHE/S7 BHE A16/S3÷ A19/S6 A16÷ A19 S3÷ S7 ALE ADRESA AD0÷ AD15 A0÷ A15 PODATAK RD WR DT/R DEN MAŠINSKI CIKLUS UPISIVANJA (PUNA) I OČITAVANJA (ISPREKIDANA)

(ovo ne moramo znati!)Svaki mašinski ciklus traje 4 takt perioda. Ciklus instrukcije može da traje 1 ili

više mašinskih ciklusa, što zavisi od instrukcije o kojoj se radi. Za svaku instrukciju se može odrediti koliko traje izvršenje te instrukcije poznajući broj mašinskih ciklusa i trajanje takt perioda.

27

Page 28: mikroprocesorski sistemi skripta

fCLK=10MMHz , TCi=4⋅TCLK=400ns

Za ciklus upisivanja u memoriju, talasni oblici se razlikuju u tome što se generiše signal WR, a ne RD, što signal DEN duže traje i što se ranije pojavljuje podatak iz µp (isprekidana linija na prethodnoj slici).

MINIMALNI I MAKSIMALNI NAČIN RADA µp 8086

MN/MX – definiše se način rada: maksimalni ili minimalni

MINIMALNI NAČIN RADA

Uglavnom se držimo ovog načina rada. U minimalnom načinu rada, µp se koristi pri realizovanju jednostavnih sistema, sistema koji koriste samo 1 µp. U takvom načinu rada µp generiše upravljačke signale ALE, DEN, DT/R, M/IO i upravljačke signale RD, WR, INTA za upravljanje memorijom i U/I sklopovima,te signale koji se koriste za rad sa DMA pristupom, tj. sa mogućnošću da µp oslobodi magistralu i prepusti je kontroleru: HOLD i HLDA. Sam µp ima vrlo slične signale kao µp 8085 (8-bitni procesor).

MAKSIMALNI NAČIN RADA

Razlika u odnosu na minimalni način rada je u načinu generisanja i vrstama nekih upravljačkih signala. Postoji 8 signala koji se koriste u ovom načinu rada, a ne u minimalnom. µp se u ovom načinu rada koristi u složenijim sistemima, u kojima se koriste i koprocesori. Najčešće se koriste koprocesori za upravljanje U/I jedinicama; taj koprocesor se zove U/I koprocesor 8089 ili U/I kanal. Drugi je numerički koprocesor. Proizvodi se pod oznakom 8087 – on realizuje numeričke operacije sa većom preciznošću i većim brojem bita i većom brzinom.

Maksimalni način rada omogućava povezivanje od 2 do 16 µp (ili koprocesora). U maksimalnom načinu rada generišu se upravljački signali zajedničke magistrale – Multibus → Intelov bus za magistralu. Za generisanje signala na magistrali koristi se posebno dodatno kolo, koje se zove kontroler magistrale pod oznakom 8288. Na njega se dovode signali stanja S0, S1, S2 i takt signal i on generiše potrebne upravljačke signale za Multibus magistralu. Zahvaljujući ovom kolu može se povezati 2 ÷ 16 µp ili koprocesora. Ovo kolo generiše signale koji postoje u minimalnom načinu rada ALE, DEN, DT/R na isti način kao što ih generiše i µp u minimalnom načinu rada, a generiše i upravljačke signale magistrale, čije su funkcije date u sljedećoj tabeli. (dekoduje S0, S1, S2 i generiše signale na magistrali)

S2 S1 S0 CIKLUS MIKROPROCESORA MULTIBUS SIGNAL(GENERIŠE GA 8288)

0 0 0 PRIHVATANJE PREKIDA28

Page 29: mikroprocesorski sistemi skripta

INTA

0 0 1 OČITAVANJE IZ U/I SKLOPA IORC

0 1 0 UPISIVANJE U U/I SKLOP IOWC, AIOWC *0 1 1 HALT – ZAUSTAVLJANJE NE GENERIŠE SE

1 0 0 OČITAVANJE INSTRUKCIJE MRDC

1 0 1 OČITAVANJE IZ MEMORIJE MRDC

1 1 0 UPISIVANJE U MEMORIJU MWTC, AMWTC *1 1 1 PASIVAN NE GENERIŠE SE

* - prefiks A ukazuje da se ovi signali generišu ranije (duže traju u odnosu na standardne)

U maksimalnom načinu rada postoje još 3 upravljačka signala za upravljanje magistralom:

RQ/GT0, RQ/GT1, LOCKKoriste se za komunikaciju i sinhronizaciju između više µp ili koprocesora. Prva

2 signala su bidirekcioni (dvosmjerni) signali, koji se koriste za postavljanje zahtjeva za oslobađanje magistrale i signalizaciju potvrde da je magistrala oslobođena. Oni su zamjena za signale HOLD i HLDA, koji se koriste u minimalnom načinu rada. Signal LOCK se koristi za sinhronizaciju prilikom pristupa zajedničkim resursima od strane više µp. On treba da spriječi pojavu da dok 1 µp ispituje da li je neki zajednički resurs slobodan da 2. preuzme njegovo korišćenje, što može da dovede do toga da se odobri pristup od strane više µp istovremeno zajedničkom resursu ili da svi µp čekaju odobrenje pristupa. To je onemogućeno sa LOCK signalom i instrukcijama sa prefiksom LOCK.

Pristup zajedničkoj magistrali realizuje se u 3 faze: zahtjev, odobrenje i oslobađanje.

µp koji zahtjeva pristup magistrali postavlja liniju RQ/GT0,1 na nizak nivo.Taj signal se dovodi na µp od koga se zahtjeva da oslobodi magistralu. Taj µp, kada oslobodi magistralu, na istoj liniji RQ/ GT0,1 generiše impuls niskog nivoa čime daje informacije da je oslobodio magistralu i svoje izlaze doveo u stanje visoke impedanse. Tako je magistrala dodjeljena µp koji ju je zahtjevao. µp koji je oslobodio magistralu odvaja svoju BIU jedinicu od magistrale, a izvršna jedinica EU nastavlja izvršavanje instrukcije iz reda instrukcija. Kad izvrši sve instrukcije iz reda instrukcija ili kad bude potreban pristup magistrali, taj µp će zaustaviti dalje izvršavanje dok ne dobije ponovo magistralu na korišćenje. Kada µp koji je dobio magistralu na korišćenje završi njeno korišćenje, on generiše impuls niskog nivoa na istoj liniji RQ/GT0,1 , signalizirajući tako da je oslobodio magistralu i da njeno korišćenje može da preuzme neki drugi µp.

29

Page 30: mikroprocesorski sistemi skripta

[ RQ/GT0,1 → ili 0 ili 1] Korišćenjem RQ/GT0,1 moguće je da µp radi u sprezi sa druga 2 µp bez ikakvih

drugih dodatnih kola. Ako se koristi veći broj µp onda je potrebno koristiti tzv. arbitar magistrale. Kod ova 2 signala, linija RQ/GT0 ima viši prioritet u odnosu na RQ/GT1 , dok obje imaju viši prioritet u odnosu na zahtjeve za prekid.

LOCK signal se koristi pri sinhronizaciji pristupa zajedničkim resursima. Koristi se kada višestruke pristupe zajedničkoj magistrali treba učiniti nedjeljivim za vrijeme izvršavanja neke instrukcije. To se dešava pri izvršavanju neke instrukcije sa prefiksom LOCK. Tada zahtjevi za pristup magistrali od strane drugih µp neće biti omogućeni sve dok se ta instrukcija, koja ima dopisan prefiks LOCK, ne izvrši. Da bi se to ostvarilo µp mora biti vezan na magistralu preko arbitar magistrale, koja se realizuje pod oznakom 8289. Kod ovog načina rada obezbjeđuje se nedjeljivo očitavanje, izmjena i upisivanje bita ili podataka u memoriji, koji služi za obezbjeđenje sinhronizacije pristupa nekom zajedničkom resursu. Takvi biti se nazivaju semaforima, pa LOCK mehanizam obezbjeđuje nedjeljivo ispitivanje i promjenu semafora. Taj mehanizam semafora se koristi za sinhronizaciju pristupa zajedničkim resursima.

Ako je resurs (periferna jedinica) slobodan, bit je 0, a kad je zauzet bit je 1. µp ispituje / mijenja sadržaj semafora i signalizira da je u pitanju ispitivanje i

promjena semafora. Postoje još 2 signala, koji pokazuju na stanje reda instrukcija (u maksimalnom

načinu rada). To su QS0 i QS1. Poznavanje stanja reda instrukcija je nekad interesantno, jer omogućava nekom drugom µp da prati izvršenje instrukcija, a to je neophodno pri korišćenju koprocesora. Istovremeno se prate i signali na linijama SO, S1 i S2. Kad se na ovim linijama pojavi kombinacija S0=0, S1=0, S2=1, to je situacija kad se očitava instrukcija iz memorije i upisuje u red čekanja. Tada linije QS0 i QS1 ukazuju na aktivnosti i stanja u vezi sa uzimanjem instrukcija iz reda instrukcija.

QS1 QS0 TIP AKTIVNOSTI0 0 AKTIVNOST NE POSTOJI

0 1 PRVI BYTE OPERACIONOG KODA SE UZIMA IZ REDA INSTRUKCIJA

1 0 PRAZAN RED INSTRUKCIJA

1 1 UZIMA SE SLJEDEĆI BYTE INSTRUKCIJE IZ REDA INSTRUKCIJA

Nakon operacije čitanja iz reda taj status je važeći.

ZAŠTIĆENI NAČIN RADA (PROTECTED MODE)

30

Page 31: mikroprocesorski sistemi skripta

Kod µp od 80286 pa nadalje uveden je i tzv. zaštićeni način rada. Način rada µp 8086, bio on minimalan ili maksimalan, naziva se realni način rada (real mode). Takav način rada koriste svi ostali µp iz ove serije 80X86.

Razlika između realnog i zaštićenog načina rada je uglavnom u načinu adresiranja i velečini adresnog prostora, kome se može pristupiti. U realnom načinu rada procesor može maksimalno adresirati 1MB (koristi 20 adresnih bita), zatim koristi se segmentni način adresiranja, gdje su segmentne veličine 64 kB. Svi programi napisani za procesor 8086 mogu se izvršiti bez izmjene software-a i na svim ostalim µp, koji moraju tad da rade u realnom načinu rada. Tako je postignuta software-ska kompatibilnost, što je jedna od prednosti Intelove familije µp 8086. Uvijek nakon reseta µp startuje u realnom načinu rada, a kasnije se po potrebi može promijeniti način rada i preći u zaštićeni (kod 80286 i kasnijih). U realnom se koriste adresni biti A0÷A19, a A20÷A31 se ne koriste. Adresiranje se vrši korišćenjem segmentnih registara i ofseta (kao kod 8086). Prednost takvog adresiranja je jednostavna mogućnost relokacije podataka i programa u memoriji, promjenom sadržaja segmentnog registra, a takođe i to što se tako napisani programi za izvršenje u realnom načinu rada mogu izvršiti i u zaštićenom načinu rada.

Kod zaštićenog načina rada dozvoljen je pristup podacima i programima u okviru cjelokupnog adresnog prostora µp (nije ograničen na segmentne registre). Tako je npr. kod 80286 16MB, jer je adresa 24 bita, kod 80386 64MB÷4GB, zavisno od verzije procesora, kod 80486 adresni prostor je 4 GB, jer je adresa 32 bita. Za 80386 adresa je 26÷32 bita; i kod Pentiuma je 64 GB, a adresa je 32 bita.

Pristup većem adresnom prostoru zahtjeva promjenu načina adresiranja, pa se ne koristi sadržaj iz segmentnog registra + ofset, već samo ofset. Umjesto adrese u segmentnom registru se nalazi selektor, koji selektuje deskriptor iz tabele deskriptora. Deskriptor definiše gdje se nalazi memorijski segment, kolika je njegova veličina i kakva su njegova prava pristupa tom segmentu. Deskriptor je veličine 8 byte-ova, postoje 2 tabele deskriptora: lokalna i globalna. Lokalna tabela deskriptora odnosi se na jednu jedinstvenu aplikaciju, a globalna tabela deskriptora sadrži definiciju segmenata koji se odnose na sve programe. Kod ovog načina adresiranja memorija se organizuje po stanicama, a ne segmentima i koristi se princip virtuelne memorije.

PREKIDI

Struktura prekida je jedna od najvažnijih osobina µp. Posebno je značajna kod sistema koji rade u realnom vremenu. Kod 8086 rad sa prekidima je baziran na tzv. tabeli vektora prekida, koja se nalazi u prvom KB-u adresnog memorijskog prostora, adrese 00000H÷003FFH. Programi za obradu prekida mogu se nalaziti bilo gdje u okviru 1 MB adresnog prostora. U tabeli vektora prekida su početne adrese svih programa za obradu prekida. Pošto se kod ovog µp stvarna adresa dobiva na osnovu sadržaja segmentnog registra CS i pokazivača instrukcija IP (oba registra su po 16 bita), onda je i početna adresa svakog programa za obradu prekida data sa 4 byte-a, gdje su 2 byte-a sadržaj CS registra, a 2 byte-a sadržaj IP registra. Tabela ima adrese

31

Page 32: mikroprocesorski sistemi skripta

za 256 različitih programa za obradu prekida. Kod ovog µp postoje 3 različita izvora prekida, pa se onda i prekidi mogu podijeliti u 3 različite grupe:

1° hardware-ski (sklopovski) prekidi2° software-ski (programski) prekidi3° unaprijed definisani prekidi

Hardware-ske prekide izazivaju signali koji dolaze na ulaze za prekid INTR i NMI. INTR je prekid opšteg tipa, koji se može maskirati pomoću bita IF u registru bita stanja. NMI je nemaskirajući ulaz zahtjeva za prekid (µp ga uvijek prihvata, jer se ne može onemogućiti).

Software-ski prekidi se generišu izvršavanjem odgovarajućih instrukcija. Postoje instrukcije tipa INTn, koje izazivaju software-ske prekide, gdje je n tip prekida (od 0 do 255).

Unaprijed definisani prekidi se generišu pri pojavi greške u toku izvršavanja neke instrukcije. Jedan takav prekid je usljed greške u dijeljenju, odnosno pri dijeljenju sa 0-om. Ako se pri dijeljenju sa 0-om dobije suviše velika vrijednost, koja ne može stati u registar, generiše se prekid. Kada prihvati zahtjev za prekid, ovaj µp prvo smješta na stek sadržaj registra bita stanja, zatim sadržaj CS registra i sadržaj IP registra (memoriše se sadržaj registra bita stanja i povratna adresa u programu, gdje je prihvaćen zahtjev za prekid).

Prvo se dekrementuje, pa se upisuje.Takođe se onemogućava prihvatanje zahtjeva za prekid tipa INTR i korak po

korak, poslije toga vraća se sadržaj IP, CS i FLAGS, što se može predstaviti i u obliku dijagrama (naredna slika).

Za utvrđivanje same adrese programa za obradu prekida koriste se sadržaji iz tabele vektora prekida. U toj tabeli se nalaze tzv. vektori (pokazivači) prekida, pa se ta tabele naziva tabela pokazivača prekida. Sam vektor (pokazivač) prekida je informacija od 4B, 2B je sadržaj CS, a 2B sadržaj IP registra i one definišu početnu adresu programa za obradu konkretnog zahtjeva za prekid.

Postoji 256 vektora (pokazivača) prekida. Za adresiranje vektora prekida u tabeli prekida koristi se 8-bitni podatak, koji se naziva tip prekida. On pokazuje adresu jednog od 256 vektora prekida. Konkretnu početnu adresu µp dobiva tako što tip prekida množi sa 4. µp automatski očitava sadržaj tog vektora prekida i upisuje u registar CS i IP. Tako se realizuje skok na program za obradu prekida. Taj skok je dugi skok, jer se može adresirati bilo koja lokacija u cijelom memorijskom prostoru. Postoji 256 tipova prekida. Prvih 5 su tzv. unaprijed definisani ili dodijeljeni. To su od 0 do 4; od 5 do 31 su prekidi rezervisani od strane INTEL-a za kasnije potrebe i korišćene su kod sljedećih µp ove generacije i od 32 do 255 su prekidi koji stoje na raspolaganju korisniku, tzv. raspoloživi prekidi.

32

Page 33: mikroprocesorski sistemi skripta

1. 2. PRELAZAK NA OBRADU 3. PREKIDA (1÷ 6) 4. 5. REALIZOVANJE SKOKA NA PROGRAM ZA 6. OBRADU PREKIDA SMJEŠTANJE SADRŽAJA REGISTRA µ P NA STEK OBRADA PREKIDA 7. VRAĆANJE SADRŽAJA IRET REGISTARA µ P SA STEKA 8. 9. POVRATAK IZ OBRADE PREKIDA (8÷ 10) 10.

START

DEKREMENTOVANJE SP ZA 2 I SMJEŠTANJE FLAGS NA STEK

ONEMOGUĆAVANJE PRIHVATANJA ZAHTJEVA ZA INTR PREKID (IF=0)

ONEMOGUĆAVANJE PRIHVATANJA ZAHTJEVA ZA PREKID TIPA KORAK PO KORAK (TF=0)

DEKREMENTOVANJE SP ZA 2 I SMJEŠTANJE SADRŽAJA CS NA STEK

DEKREMENTOVANJE SP ZA 2 I SMJEŠTANJE IP NA STEK

DALEKI SKOK NA ODGOVARAJUĆI PROGRAM ZA OBRADU PREKIDA

PROGRAM ZA OBRADU PREKIDA

INKREMENTOVANJE SP ZA 2 I UPISIVANJE (VRAĆANJE) SADRŽAJA IP SA STEKA

INKREMENTOVANJE SP ZA 2 I UPISIVANJE (VRAĆANJE) SADRŽAJA CS SA STEKA

INKREMENTOVANJE SP ZA 2 I UPISIVANJE (VRAĆANJE) SADRŽAJA FLAGS SA STEKA

STOP

TABELA VEKTORA PREKIDA

33

Page 34: mikroprocesorski sistemi skripta

3FFH

PREKIDI KOJI STOJE NA RASPOLAGANJU KORISNIKU 084H 080H 07FH PREKIDI REZERVISANI OD INTEL-A ZA KASNIJE POTREBE 014H 010H

UNAPRIJED DEFINISANI 00CH (DODIJELJENI) PREKIDI 008H 004H 000H 15 0

TIP 255 (RASPOLOŽIV)

TIP 254 (RASPOLOŽIV)

TIP 32 (RASPOLOŽIV)

TIP 31 (REZERVISAN)

TIP 6 (REZERVISAN)

TIP 5 (REZERVISAN)

TIP 4 PREKORAČENJE

TIP 3 TAČKA PREKIDA

TIP 2 NEMASKIRAJUĆI PREKID

TIP 1 KORAK PO KORAK

TIP 0 GREŠKA PRI DIJELJENJU

CS

IP

Svaki vektor prekida se sastoji od 4 byte-a.

0. 1. VEKTOR PREKIDA 2. (4 BYTE-A) 3. 7 0

IPL

IPH

CSL

CSH

Greška pri dijeljenju – TIP0(ili dijeljenje sa 0-om)

34

Page 35: mikroprocesorski sistemi skripta

Generiše se ako se dijeli sa 0-om. Pri izvršavanju instrukcija sa dijeljenjem, DIV i IDIV, pojavi se suviše veliki rezultat, koji prevazilazi sadržaj registra, pa se automatski generiše prekid TIP-a 0 i µp prelazi u podprogram za obradu tog prekida.

Prekid tipa korak po korak – TIP1Koristi se pri razvoju sistema (software-a i hardware-a) za pronalaženje i

ispravljanje grešaka. Kad se generiše ovaj prekid, procesor prelazi u podprogram za obradu tog prekida, u okviru koga se najčešće nalazi program za pokazivanje sadržaja memorijskih lokacija i registara i tako se može pratiti izvršavanje programa i rezultati nakon izvršavanja svake instrukcije. To omogućava da se otkrije greška u programu ili sistemu i da se ispravi. U ovakav način rada µp odlazi u jednoj instrukciji, nakon postavljanja bita TF u registru bita stanja. Postavljanjem tog bita, µp prelazi u tzv. način rada korak po korak, a to znači da se nakon izvršavanja svake instrukcije generiše ovakav prekid. Ne postoji instrukcija za postavljanje bita TF, pa se postavljanje i brisanje tog bita realizuje tako što se 1. sadržaj registra bita stanja upiše na stek, zatim se promjeni TF na željenu vrijednost i vrati sa steka u registar bita stanja. Kad se izvrši prelazak u podprogram za obradu ovog prekida, bit TF se automatski resetuje, tako da je rad korak po korak onemogućen u programu za obradu ovog prekida. Koristi se pri dibagovanju i pri otkrivanju grešaka u programu i cijelom sistemu.

Nemaskirajući prekid – TIP 2 Generiše se dovođenjem signala i prelaskom sa niskog na visok nivo na ulazu

NMI. Najčešće se koristi za detektovanje nekih katastrofalnih grešaka (i njihovu signalizaciju) u sistemu, npr. nestanak napajanja.

Prekid tipa tačka prekida – TIP 3 To je software-ski prekid, generiše se pri izvršavanju instrukcija za software-ski

prekid INT3. Koristi se takođe pri dibagovanju (odn. otkrivanju i otklanjanju grešaka i neispravnosti u radu sistema). INT3 se postavlja u program na ono mjesto gdje je potrebno provjeriti funkcionisanje sistema odn. dotadašnje rezultate.

Prekoračenje – TIP 4Koristi se da se omogući otkrivanje prekoračenja pri izvršavanju aritmetičkih

operacija. U praksi se i za instrukciju koja obavlja aritmetičku operaciju i gdje može da dođe do prekoračenja postavlja instrukcija INTO. U slučaju da dođe do prekoračenja u izvršenju aritmetičkih operacija, onda će pri izvršavanju ove instrukcije biti generisan ovaj prekid; u programu za obradu tog prekida obično se signalizira da je došlo do greške prekoračenja. Ako ne dođe do prekoračenja, onda izvršavanje instrukcije INTO služi samo da se signalizira da je došlo do prekoračenja.

SOFTWARE- SKI PREKIDI

Mogu biti bilo kojeg tipa (TIP0 ÷ TIP255). Može se generisati izvršenjem instrukcije INTn, n tip prekida. Npr. INT∅ ⇒ generisaće se TIP0 –greška pri dijeljenju, itd. (µp odlazi u program za obradu tog prekida). Ovako se najčešće generišu tipovi prekida, koji su raspoloživi korisniku.

35

Page 36: mikroprocesorski sistemi skripta

HARDWARE-SKI PREKIDI

Mogu biti bilo kojeg tipa (TIP0 ÷ TIP255). Realizovaće se kad se na ulaz INTR dovede visok nivo. Koji tip prekida će se realizovati zavisi od toga kakav će podatak obezbjediti sklop koji je izazvao prekid. Sklop koji je obezbjedio prekid mora da obezbjedi 8-bitni podatak, koji predstavlja tip prekida u tabeli vektora prekida. Njegovim množenjem sa 4 dobija se adresa gdje su smješteni podaci o početnoj adresi programa za obradu tog prekida. Kad µp prihvati ovaj zahtjev za prekid, on generiše signal INTA , kao potvrdu da je zahtjev prihvaćen. Taj signal se vodi na sklop koji je izazvao prekid i omogućava očitavanje tipa prekida iz tog sklopa. Očitani podatak tj. tip prekida pojavljuje se na magistrali na linijama AD0 ÷AD7 i učitava se u procesor kao informacija o tipu kokretnog prekida. Ovi prekidi se mogu maskirati pomoću bita IF, oni su maskirani nakon resetovanja µp i nakon prihvatanja ovakvog zahtjeva za prekid, automatski se omogućavaju po izlasku iz programa za obradu tog prekida. Postoje instrukcije za programsko postavljanje i brisanje bita IF. To su STI i CLI (1. je za postavljanje, a 2. je za brisanje, tj. onemogućenje prekida).

STI → IF=1 IF=1 ⇒ jedan program može da prekine drugi programCLI → IF=0 IF=0 ⇒ ne smije doći do prekidaIzmeđu svih tih prekida postoje prioriteti. Prioriteti prekida su dati tabelom.

PREKIDI PRIORITETGREŠKA DIJELJENJA, INTn, INTO NAJVIŠI

NMIINTR

KORAK PO KORAK NAJNIŽI

INSTRUKCIJE µp 8086

Mogu se posmatrati na 2 nivoa: na asemblerskom i mašinskom. Na asemblerskom nivou postoji oko 100 instrukcija. Pošto se pri prevođenju neke od tih instrukcija mogu prevesti u različite mašinske kodove, onda na mašinskom nivou ovaj µp ima oko 300 instrukcija. Prema funkciji i namjeni skup instrukcija ovog µp se može podijeliti u 6 grupa (to je uradio INTEL):

1° instrukcije za prenos podataka2° aritmetičke instrukcije3° instrukcije za manipulisanje bitima ili logičke instrukcije4° instrukcije za rad sa nizovima podataka5° instrukcije za prenos upravljanja u programu6° instrukcije za upravljanje µpINSTRUKCIJE ZA PRENOS PODATAKA

36

Page 37: mikroprocesorski sistemi skripta

Koriste se za prenos podataka veličine byte-a ili riječi između memorijskih lokacija registara i između akumulatora i U/I sklopova. U tu grupu spadaju i instrukcije za manipulisanje stekom, instrukcije za prenos sadržaja registra bita stanja i instrukcije za upisivanje u segmentni registar. Postoji 14 instrukcija za prenos podataka, obično se dijele u 4 grupe:

1° instrukcije za prenos podataka opšte namjene: MOV, PUSH, POP, XCHG, XLAT

2° ulazno - izlazne instukcije: IN, OUT3° instrukcije za prenos adresa: LEA, LDS, LES4° instrukcije za prenose bita stanja: LAHF, SAHF, PUSHF, POPF

ARITMETIČKE INSTRUKCIJE

Realizuju aritmetičke operacije: sabiranje, oduzimanje, množenje i dijeljenje. Mogu se realizovati na 4 vrste podataka:

1° neoznačeni binarni2° označeni binarni (sa predznakom)3° neoznačeni pakovani decimalni4° neoznačeni nepakovani decimalni podaciOve instrukcije utiču na bite stanja. Dijele se u 4 grupe, u zavisnosti od

aritmetičke operacije koju realizuju:1° instrukcije za sabiranje: ADD, ADC, INC, AAA, DAA2° instrukcije za oduzimanje: SUB, SBB, DEC, NEG, CMP, AAS, DAS3° instrukcije za množenje: MUL, IMUL, AAM4° instrukcije za dijeljenje: DIV, IDIV, AAD, CBW, CWD

INSTRUKCIJE ZA MANIPULISANJE BITIMA ILI LOGIČKE INSTRUKCIJE

Postoje 3 tipa takvih instrukcija, koje manipulišu bitovima u byte-ovima ili riječima:

1° logičke instrukcije: NOT, AND, OR, XOR, TEST2° instrukcije za pomjeranje: SHL/SAL, SHR/SAR3° instrukcije za rotiranje: ROL, ROR, RCL, RCR

INSTRUKCIJE ZA RAD SA NIZOVIMA PODATAKA

Postoje ovakve instrukcije, koje omogućavaju rad sa nizovima byte-ova ili riječi. Moguće je da niz ima maksimalno 64 kB. Postoje instrukcije za prenose, poređenje i skaliranje na određenu vrijednost, a postoji mogućnost hardware-skog ponavljanja instrukcija, korišćenjem instrukcija prefiks-tipa REP (repeat). U ovakve instrukcije spadaju: REP, REPE/REPZ, REPNE/REPNZ, MOVS, MOVSB/MOVSW, CMPS, SCAS, LODS, STOS.

INSTRUKCIJE ZA PRENOS UPRAVLJANJA U PROGRAMU

37

Page 38: mikroprocesorski sistemi skripta

Postoje 4 tipa mogućih instrukcija:1° instrukcije za bezuslovni prenos2° instrukcije za uslovni prenos3° instrukcije za upravljanje iteracijama4° instrukcije koje se odnose na rad sa prekidima

Bezuslovni prenosi – to su bezuslovni skokovi, mogu biti infrasegmentni ili NEAR ili mogu biti između segmenata – intersegmentni FAR. Realizuju se bezuslovno. Tu spadaju instrukcije: JMP, CALL, RET

Uslovni prenosi – to su instrukcije za realizaciju skokova u zavisnosti od stanja bita u registru bita stanja. Svi skokovi su kratki, adresa je 8-bitni označeni podatak, adresiranje je relativno u odnosu na stanje pokazivača instrukcija.

SHORT – kratki skok (-128 ÷ +127 byte-ova) u odnosu na 1. byte sljedeće instrukcijeNeke instrukcije su: JA/JNBE, JAE/JNBE, JB/JNAE,...,JNS, JO, JP/JPE, JS

Instrukcije za upravljanje iteracijama služe za regulisanje ponavljanja software-skih petlji. Registar CX služi kao brojač ponavljanja petlji. Kao i kod uslovnih skokova ove instrukcije se prenose u okviru –128 ÷ +127 byte-ova; to su SHORT prenosi. Instrukcije su: LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ, JCXZ

Instrukcije za rad sa prekidima omogućavaju da se programi za obradu prekida aktiviraju software-ski od strane programa. Instrukcije su: INTn, INTO, IRET.

INSTRUKCIJE ZA UPRAVLJANJE µp

One omogućavaju da se programski upravlja različitim funkcijama µp. Postoje 3 tipa instrukcija:

1° instrukcije koje operišu bitima stanja: STC, CLC, CMC, STD, CLD, STI, CLI.

2° instrukcije za vanjsku sihronizaciju (za sinhronizaciju µp sa drugim sklopovima): HLT, WAIT, ESC, LOCK

3° instrukcija koja ne dovodi ni do kakve operacije, zove se NOP (NO OPERATION) (nema operacije, samo da prođe vrijeme).

MIKROPROCESORSKI SISTEM SA µp 8086

38

Page 39: mikroprocesorski sistemi skripta

SKLOP ZA NAPAJANJE

Treba da obezbjedi potrebne napone za napajanje svih električnih kola u µp sistemu sa dovodnim strujama. Sam µp se napaja sa naponom +5V±5% ili +5V±10%. To napajanje treba da obezbjedi i određenu stabilnost napona napajanja. Ako se i ostala kola napajaju sa 5V, potrebno je odrediti ovaj napon 5V sa određenom stabilnošću i snagom u sistemu. Napajanje se vrši iz naizmjeničnog izvora 220V/50Hz; da bi dobili 5V treba smanjiti 220V, pa onda izvršiti ispravljanje.

Jedan sklop za napajanje izgleda kao na slici.

OS P Tr Vc=+5V

MASA

ISPRA- VLJAČ

NAPONSKI REGULATOR

220V/50Hz

Integrisani regulatori se koriste za jednostavne sisteme malih snaga. Npr. 78XX; regulator 7805 (za dobijanje napona od 5V). Ovo je najjednostavnije i najjeftinije rješenje (za struje do 2A maksimalno). Za veće struje koriste se diskretne realizacije regulatora.

Sklop za napajanje za jednostavniji sistem koji koristi regulator je na slici.

OSIGURAČ OS P Tr

ZA ISPRAVLJANJE ZA REGULACIJU I FILTRIRANJE

+Vcc=+5V

220V/50Hz

4700µ F 2,7µ F

2,7µ F 15µ F 10nF

1 3

2

7805

(ovo je za struje do 2A)Za ove izvore za napajanje postoji posebna oblast. Pored napona, struje i stabilnosti, ovi izvori imaju i osobinu efikasnosti. To je

karakteristika koja pokazuje koliku snagu daje izvor u odnosu na ovu sangu koju uzima iz mreže. Kod ovih linearnih izvora napajanja efikasnost je mala i iznosi 40%. Znatno efikasniji su impulsni izvori napajanja, koji mogu imati efikasnost i do 90%, ali su impulsni dosta složeniji i zahtjevaju više sklopova i unose smetnje. Linearni izvori su jednostavniji i manje efikasni.

GENERATOR TAKT-SIGNALA39

Page 40: mikroprocesorski sistemi skripta

µp 8086 ne posjeduje generator takt-signala, ne postoji oscilator na integrisanom kolu, već se koristi posebno (vanjsko) integrisano kolo, koje uz generisanje takt-signala generiše i signal za resetovanje µp i za određenu sinhronizaciju u sistemu.To integrisano kolo proizvodi se pod oznakom 8284A i naziva se generator takt-signala i driver. U sastavu integrisanog kola je i oscilator, tako da se takt-signal može generisati spajanjem kristala kvarca na ulaze oscilatora. Takođe se može na ulaz tog generatora dovoditi neki vanjski impulsni signal sa drugog generatora (ne mora se koristiti kristal kvarca). Ovaj generator daje takt-signal za µp, čija je frekvencija 3 puta manja od frekvencije (rezonantne) kristala kvarca ili vanjskog signala, koji se dovodi. Takođe generiše još 2 periodična impulsna signala. Jedan sa frekvencijom koja je 2 puta manja od rezonantne frekvencije kvarca ili frekvencije signala dovedenog spolja. Treći signal je iste frekvencije kao što je frekvencija kristala kvarca ili spolja dovedenog signala.

Osnovni signali kod kola za generisanje takt-signala:

X1 CLK X2 PCLK 8284A EF1 OSC F/C RES RESET

X1, X2 – ulazni priključci na koje se spaja kristal kvarca, ako se kristal kvarca koristi za generisanje

EF1 – ulazni signal na koji se dovodi vanjski impulsni signal , ako se ne koristi kristal kvarca za generisanje signala F/C – ulazni upravljački signal pomoću koga se definiše da li se za generisanje koristi kristal ili vanjski signal. Ako se koristi vanjski signal onda je F=1, a ako se F postavi na 0 kristal kvarca se koristi za generisanje takt-signala (C – kristal)

CLK – izlaz; takt-signal za µp i 3 puta je niže frekvencije od frekvencije kristala kvarca ili od signala na ulazu EF1

PCLK – izlaz generisanog signala, čija je frekvencija dvostruko manja od frekvencije kristala kvarca ili ulaznog signala. Često se dovodi na periferne uređaje, pa se onda naziva takt-signal za periferije (P – periferija)

OSC – generiše se prostoperiodični signal iste frekvencije kao što je frekvencija kristala kvarca ili frekvencija signala na ulazu EF1. Ovo kolo daje 3 različita prostoperiodična signala. PCLK za periferije, OSC bilo gdje. Ovo kolo se koristi za generisanje signala za resetovanje µp, pa postoje 2 priključka vezana za to.

RES – ulazni signal; dovođenje niskog nivoa na ovaj ulaz izaziva generisanje visokog nivoa na izlazu RESET, koji se vodi na RESET ulaz µp i vrši resetovanje µp

40

Page 41: mikroprocesorski sistemi skripta

RESET – izlazni signal, koji se direktno vodi na ulaz za reset µp i koristi se za resetovanje µp

Pored ovih signala postoje još signali vezani za sinhronizaciju, adresiranje i selekciju i koji se koriste u primjenama u sistemima sa više µp. Jedan od signala je READY; to je izlazni signal, direktno se vodi na ulaz µp i on kaže da je periferija spremna za prenos. Korišćenje ovog kola za generisanje signala i povezivanje sa µp je dato na slici.

8284A 8086 READY X 22pF CLK 22pF RESET +Vcc R +Vcc D C=3,3 µ F KOLO ZA AUTOMATSKO STARTOVANJE (ZA STARTOVANJE NAKON UKLJUČENJA)

X1 X2 READY CLK RESET RDY1 PCLK RDY2 OSC AEN1 AEN2 EF1 CSYNC ASYNC F/C RES

F/C je na +Vcc, a na EF1 je napon vanjskog oscilatora, ako nema kristala kvarca.

SKLOP ZA STARTOVANJE

Funkcija mu je da obezbjedi signale da µp startuje sa izvršavanjem programa od početka, od prve adrese programa FFFF∅H. Postoje u praksi 2 situacije kada µp treba da počne izvršavanje programa od početka:

1° stratovanje pri priključivanju napajanja2° startovanje u toku rada ili tzv. ponovni start

Startovanje pri uključivanju

Prilikom uključivanja napajanja, da bi µp počeo izvršavati program od početne lokacije, treba izvršiti resetovanje µp, tj. generisati signal visokog nivoa na ulazu

41

Page 42: mikroprocesorski sistemi skripta

RESET µp, koji treba da traje više od 10 ms nakon što se uspostavi napon napajanja. Tada će se µp ispravno resetovati, programski brojač će mu se postaviti na vrijednosti koje će dati početnu adresu (CS na sve 1-ce, IP na sve 0-e), resetuje se i bit IE i HLDA. Za generisanje ovog signala koristi se isto kolo koje se koristi za generisanje takt-signala i u principu to izgleda kao na slici.

+Vcc=+5V Vcc +Vcc +Vcc 5V 4,75V

D R 8284A ILI 8086 U1 t tri I RES + U1 Vcc T _ C VTH t t1 RESET >4 TCLK >4 TCLK

tri – VRIJEME USPOSTAVLJANJA NAPONA NAPAJANJA t VTH - VISOKI PRAG ŠMITOVOG TRIGERA t2 t2 > 10 ms (uslov) t2

’ =10 ms

RESET RES

RESET

t1 _ tri = t2 > 10ms

( )

τ

−−=

t

e1ccVtu1

CR ⋅τ = - vremenska konstanta

( ) TH11 Vttu == ⇒ ri2TH

1 ttVccV

ccVlnRCt +>

−=

⇒ TH

'2ri

VccVccV

ln

ttRC

+> ; R=n10kΩ

R=10kΩ ; R=n10kΩC=3,3µF ; C=nµFR i C obezbjeđuju vremensko kašnjenje. Kad se C prazni i vrši resetovanje,

zadatak D je da se brzo isprazni C, da se ne uništi ulaz RES.

42

Page 43: mikroprocesorski sistemi skripta

Ponovno startovanje RESET

U toku rada sistema potrebno je povremeno resetovati µp i ponovno ga startovati. Obično je to kad dođe do greške u radu sistema, a može se i projektovati sistem tako da startuje nakon određenog vremena. Jedan od osnovnih mehanizama za startovanje je timer – brojač, on resetuje µp ako dođe do greške u programu (watch dog timer).Druga mogućnost je ručno resetovanje ili ponovno startovanje. Da bi se µp ponovo startovao potrebno je na ulaz RESET dovesti signal visokog nivoa, koji će trajati najmanje 4 takt-perioda. Kod ručnog ponovnog startovanja najjednostavnije je koristiti 1 taster T vezan paralelno sa kondenzatorom (kao na prethodnoj slici). Kad se on stisne C se brzo isprazni, kad pustimo taster C se puni (ponovo)(kao pri uključenju napajanja).

Ako se radi automatski onda se mora dodati 1 dodatna logika. Druga varijanta je da se postavi ILI kolo (a ne I). Nakon resetovanja se obično u programu vrši inicijalizacija (kad se program počne vršiti od početka). Upisuju se početne vrijednosti u segmentne registre, pokazivač steka; programiraju se pojedine periferne jedinice i realizuje se sve potrebno da se sistem dovede u potrebno početno stanje, potrebno za njegov kasniji ispravni rad u skladu sa ranijim zahtjevom.

ZAJEDNIČKA MAGISTRALA

Svi sklopovi su spojeni na zajedničku magistralu. Preko zajedničke magistrale prenose se signali koje generiše µp i koji dolaze na µp, pa govorimo o ulaznim i izlaznim signalima, a svi ti signali se prenose preko zajedničke magistrale. U zavisnosti od konkretne primjene, neki od tih signala može da se ne koristi. U tom smislu je prvo potrebno razmatrati koji signali se koriste, a koji ne, šta uraditi sa onima koji se ne koriste, a oni koji se koriste na koje druge sklopove se koriste. Šta je potrebno definisati u tom smislu?

Ulazni signali (sa strane µp)

Ako se ne koriste neki od ulaznih signala, oni se moraju definisati tako da ne utiču na funkcionisanje µp. Ako se koriste, onda se mora voditi računa o tom da se dovode tačno definisani logički nivoi u skladu sa funkcijom odgovarajućeg ulaznog signala.

Što se tiče izlaznih signala, ako se neki od njih ne koriste, onda u zavisnosti od tipa izlaza mogu da ostanu odspojeni ili se pomoću otpornika mora definisati stanje na njima. Kod standardnog izlaza, ako se ne koriste, treba da ostanu odspojeni. Ako se radi o trostatičkim izlazima onda se oni moraju preko otpornika otpornosti n10kΩ vezati na + ili – pol izvora za napajanje.

43

Page 44: mikroprocesorski sistemi skripta

+VDD R

Za izlazne signale, koji se koriste u sistemu, mora se voditi računa o tom na

koliko drugih kola se povezuju. Potrebno je voditi računa o tzv. faktoru opterećenja. Izlaz µp 8086 ima mogućnost pobuđivanja 1 standardnog TTL kola. Izlazna struja je, za nizak logički nivo, 2 mA, a za visok logički nivo 400 µ A. Ako se priključuju LPSTTL (Šotkijeva kola male snage), MOS, CMOS, onda 1 izlaz µp može da pobuđuje 5-8 kola (paralelno vezanih). Ako se radi o složenijem sistemu, u kom je na 1 liniju povezano više od 5-8 ovakvih kola ili više od 1 standardnog TTL kola, mora se pojačati signal u toj liniji, tj. vrši se tzv. baferovanje.

1) UPRAVLJAČKA MAGISTRALA

Postoje ulazni i izlazni upravljački signali.

Ulazni upravljački signali

Kod njih je bitno što ako se neki od ulaza ne koristi uvijek se mora definisati stanje na ulazu, a tako da ne utiče na rad µp.

READY – ako se ne koristi treba ga vezati na visoki nivo, spojiti ga na +VCC

INTR – treba ga vezati na masu (- VSS), jer tada nema zahtjeva za prekid TEST – treba biti spojen takođe na masu (na nizak nivo)(izvršavanje ide dalje)

NMI – treba se vezati na masu (ne postoji takav zahtjev)MN/MX – definiše se u skladu sa radom µp (minimalni ili maksimalni način

rada)(spojen na 0 ili na 1)HOLD – na masu Izlazni upravljački signali

Važno je da li se koriste i ako se koriste, potrebno je baferovati, a ako se ne koriste:

ALE – uvijek se koristi da se upiše adresa u vanjski adresni registar i sl. Ako se vodi samo na 1 registar, ne treba ga baferovati, a ako se vodi na više registara treba ga baferovati. To se radi korišćenjem standardnih TTL kola.

44

To je neophodno uraditi zbog toga što je u stanju visoke impedanse na tom izlazu µp potrebno definisati nivo signala na odgovarajućoj liniji magistrale, jer se ta linija dovodi na ulaze drugih kola u sistemu. Na taj način se definišu stanja na ulazima tih kola. Ako se radi o CMOS ulaznim kolima, onda se to obavezno radi.

Page 45: mikroprocesorski sistemi skripta

ALE ALE ALE ALE ALE 1/4 7408 2/6 7404 MOGUĆNOST DA SE OVDJE SPOJI 5÷ 8 PARALELNO VEZANIH KOLA (TO JE BAFEROVANJE)

RD – to je signal sa trostatičkim izlazom i on seuvijek koristi, jer je potrebno bar očitavati program. Ako se radi o jednostavnom sistemu, taj izlaz potrebno je spojiti na + izvor za napajanje preko otpornika od 10 kΩ.

+VCC TROSTATIČKI IZLAZ R=10kΩ RD RD (PREMA DRUGIM KOLIMA) µ p ZAJEDNIČKA MAGISTRALA

RD je uglavnom na +, zbog ulaznih struja kola, na koje ovo gore spajamo. Ako se radi o složenom sistemu, gdje se RD vodi na više ulaza drugih kola, onda se taj signal mora baferovati. Ako se u sistemu ne koristi HOLD način rada, (magistrala ne treba da ide u stanje visoke impedanse), onda je:

HOLD +VCC RD RD µ p ZAJEDNIČKA MAGISTRALA 1/4 7408

Ako se koristi HOLD način rada, u opštem slučaju mora se omogućiti da RD zajedničke magistrale može otići u stanje visoke impedanse. Zbog toga se onda za baferovanje mora koristiti 3-statičko kolo. To se može ovako realizovati:

+VCC R=10kΩ 1/4 74126 RD RD µ p ZAJEDNIČKA MAGISTRALA HLDA 1/6 7404

45

Page 46: mikroprocesorski sistemi skripta

Ako se koristi HOLD način rada, HLDA je na visokom nivou, pa imamo 0, ona onemogućava gornje kolo, tj. imamo stanje visoke impedanse.

WR – izlaz (3–statički), uglavnom se koristi; i za njega približno vrijedi sve kao i za RD

M/IO – takođe je 3–statički izlaz, uglavnom se koristi u sistemu, za njega vrijedi slično kao i za RD i WR. Ne koristi se tamo gdje ima U/I sklop.

HLDA – to je izlaz standardnog tipa, uvijek je ili 1 ili 0. Ako se ne koristi odspojen je, a ako se koristi može se baferovati na osnovu istih principa kao ALE.

INTA – takođe standardni izlaz i ako se ne koristi ostavlja se odspojen, a ako se koristi nekad ga treba baferovati kao za ALE i HLDA

DT/R – signal sa 3-statičkim izlazom, ima približan timing kao i M/IO i slično kao i on se definiše

DEN –3-statički izlaz, s njim se slično postupa kao kod DT/R i M/IO 2) ADRESNA MAGISTRALA

Adresa kod ovog µp je 20 bita i oni se prenose preko signala µp:AD0÷AD15A16/S3÷A19/S6BHE/S7

Svi ovi signali moraju da se prenose preko adresne magistrale, oni su pojavljuju u 1. ciklusu svakog mašinskog ciklusa, moraju se memorisati u vanjskom memorijskom registru i voditi se na adresnu magistralu. Svi ovi ulazi su 3-statički. Za upisivanje u vanjski adresni registar koristi se ALE signal. Za memorijske adrese može se koristiti bilo koji paralelni stacionarni registar sa paralelnim ulazima i izlazima i oni se mogu koristiti kao pojedinačni D-flip-flopovi. Ako bi se koristili pojedinačni D-flip-flopovi, onda bi se moglo koristiti integrisano kolo 74273, koga čini 8 D-flip-flopova i onda bi bila potrebna 3 ovakva registra za memorisanje ostalih bita.

46

Page 47: mikroprocesorski sistemi skripta

8086 74273 BHE/S7 BHE A19 A18 A17/S4 A17 A16/S3 A16 AD15 A15 A14 A13 ADRESNA A12 MAGISTRALA A11 A10 AD9 A9 AD8 A8

AD7 18 17 A7 AD6 17 16 A6 14 15 A5 13 12 A4 8 9 A3 7 6 A2 4 5 A1 AD0 3 2 A0 ALE 1/6 7404

INTEL

D7 Q7 D1 Q1 D0 Q0 C R

D7 Q7 D1 Q1 D0 Q0 C R

D7 Q7 D1 Q1 D0 Q0 C R

kolo 8282 – 8-bitni registar i bafer, sadrži 8 D-flip-flopova, koji imaju 3-statičke izlaze i koji se opisuju sinhrono sa 1 ulaznim signalom. Povezuje se slično ovim kolima na slici, a omogućava dovođenje adresne magistrale u stanje visoke impedanse, kad se µp nalazi u HOLD stanju.

47

Page 48: mikroprocesorski sistemi skripta

+VCC +VCC CPU 8086 21xR 21xR 21x10kΩ 21x10kΩ BHE/S7 BHE A19 A18 A17/S4 A17 A16/S3 A16 AD15 A15 ADRESNA MAGISTRALA AD8 A8 DI - INPUT DO-OUTPUT AD7 8 12 A7 7 13 6 14 5 15 4 16 3 17 2 18 AD0 1 19 A0

11 9 ALE ADRESNA MAGISTRALA HLDA JE JEDNOSJERNA

SLIKA ⊗

DI7 DO7 8282 DI1 DO1 DI0 DO0 STB OE

DI7 DO7 8282 DI1 DO1 DI0 DO0 STB OE

DI7 DO7 8282 DI1 DO1 DI0 DO0 STB OE

Ova kola 8282 ujedno vrše baferovanje i povezivanje više kola na adresnu magistralu. Svaki od ovih registara u sebi ima jedan D-flip-flop.

DIi DOi STB OE

D Q

∅ ∅

CL

3) MAGISTRALA PODATAKA

µp operiše sa 16-bitnim podacima i oni se prenose; magistrala podataka je od 16 bita. Podaci se prenose linijama AD0 ÷ AD15. Ovi priključci magistrale (a i linije) dvosmjerni su. AD0 ÷ AD15 imaju 3-statičke izlaze. Što se tiče magistrale podataka

48

Page 49: mikroprocesorski sistemi skripta

mora se voditi računa koliko se drugih sklopova vezuje paralelno na magistralu, jer je nekada potrebno izvršiti baferovanje tih signala. Ako se radi o jednostavnim sistemima kod kojih je na magistrali vezano 5÷8 LPTTL, MOS ili CMOS kola, onda nije potrebno baferovati linije magistrale. U takvom slučaju signali AD0 ÷ AD15 direktno se vežu na magistrali podataka.

LP – low power LPS – low power shotky

+VCC 16xR

8086 16x10kΩ AD15 D15 AD14 D14 AD13 D13 AD12 D12 D11 D10 D9 MAGISTRALA D8 PODATAKA D7 D6 D5 D4 D3 AD2 D2 AD1 D1 AD0 D0

R se vezuju na +, jer se smanjuje struja iz izvora napajanja kad su izlazi u stanju logičke 1-ce, a smnjuje se faktor opterećenja u odnosu kad su R na masi. Dodavanje R negativno utiče na rad µp i čitavog sistema, naime smanjuje se faktor opterećenja.

Postojanje tih otpornika smanjuje struje punjenja i pražnjenja parazitnih kapacitivnosti na linijama magistrale podataka i to smanjenje je veće što je vrijednost otpornika manja. S druge strane, povećavanje R povećava parazitne kapacitivnosti na linijama magistrale. I jedno i drugo povećava kašnjenje na magistrali, tj. smanjuje brzinu rada µp i sistema na magistrali. Zbog toga se mora odrediti kompromisna vrijednost R, koja zavisi od ukupnog broja paralelno vezanih sklopova na liniji magistrale podataka i od potrebne brzine rada µp, odnosno takt-frekvencije kojom se pobuđuje µp. Zavisno od tih uslova praktične vrijednosti otpornika R se kreću od 5 ÷ 25 kΩ. Najčešće se u praksi uzima 10kΩ, a ako se desi da sa tim otpornostima sistem neispravno funkcioniše, problem se eliminiše baferovanjem linija magistrale podataka. Za složenije sisteme linije magistrale podataka se moraju baferovati da bi se obezbjedila dovoljna snaga za pobuđivanje svih priključenih kola. Za baferovanje magistrale se koriste kola koja se zovu drajver/bafer. Ova kola moraju biti dvosmjerna, imaju priključke za određivanje smjera prenosa, kojima se upravlja od strane µp. Oni imaju 3-statičke izlaze da bi se linije magistrale podataka dovele u stanje visoke impedanse. Iako se u principu mogu koristiti bilo koji tipovi drajver/bafera, u praksi se najčešće koriste takva kola koja su prilagođena za primjene u µp sistemima iz određene µp familije. U familiji INTEL-ovih µp, jedno takvo kolo je 8286. To je 8-bitni bafer/drajver sa 3-statičkim izlazima. Potrebna su 2 takva kola za baferovanje magistale podataka. To kolo ima priključke za određivanje smjera

49

Page 50: mikroprocesorski sistemi skripta

prenosa i priključke za dovođenje izlaza u stanje visoke impedanse. (bafer/drajver≡drajver/bafer)

+VCC +VCC 16xR 16xR 8086 16x10kΩ 16x10kΩ AD15 D15 AD14 D14 MAGISTRALA PODATAKA

8 12 7 13 6 14 5 15 4 16 3 17 2 18

AD1 1 19 D1 AD0 +VCC 11 9 D0 R

DT/R HLDA +VCC R DEN

SLIKA ⊗ ⊗

A7 B7 A6 B6

8286 A1 B1 A0 B0 T OE

A7 B7 A6 B6

8286 A1 B1 A0 B0 T OE

T – smjer prenosaT=1 A→BT=0 A←BOE – omogućenje izlazaOE=0 – izlaz omogućenOE=1 – izlaz u stanu visoke impedanseNa izlazu svakog kola 8286 na priključcima su:

Ai Bi

i=0,1,..,7 OVA LOGIKA ZOVE SE BAFER ILI DRAJVER ILI TRANSMITER (SAMO1 OD KOLA JE OMOGUĆENO)

T

OE

50

UPRAVLJAČKALOGIKA

Page 51: mikroprocesorski sistemi skripta

Ako bi crtali zajedno adresnu i magistralu podataka imali bi kombinaciju slika ⊗ i ⊗⊗. Ako je sistem jednostavan izostave se baferi, tj. kola 8286 na prethodnoj slici. U velikim µp sistemima, da bi se rasteretila zajednička magistrala podataka sistema, često se vrši razdvajanje na više magistrala. Obično se vrši odvajanje memorijske magistrale i U/I magistrale i vrši njihovo posebno baferovanje i tu se kao kola koriste baferi/drajveri i mogu se koristiti kola 8286.

MEMORIJA

Može biti ROM i RAM tipa. To su poluprovodničke memorije u µp. Organizovana memorija mora posjedovati ROM i najčešće postoji dio RAM

memorije za upis podataka. Potrebno je da memorija ima odgovarajuću brzinu rada, vrijeme pristupa treba da bude na nivou rada µp ili memorija mora da bude brža od µp.

MEMORIJA ROM TIPA

Ovdje se memorišu podaci, programi, osnovni programi, programi opšte namjene i svi specijalizovani programi. Organizacija ROM zavisi od karakteristika sistema i od korišćenih memorijskih kola. Mogu se koristiti memorije: ROM, PROM, EPROM, E2PROM.

Način povezivanja sa µp zavisi od potrebnih kapaciteta ove memorije i od toga kakve upravljačke signale zahtjevaju korišćena memorijska kola.

Jedna od memorija je UV EPROM 2716 (pretpostavimo da ćemo ovu koristiti). Briše se ultraljubičastom svjetlošću,a programira se elektronskim putem. Kapacitet je 2kx8 (2kB)(8-bitne ćelije). Ovo je memorija nMOS tipa sa 1 izvorom napajanja VCC=+5V i naponom programiranja Vpp=+25V.

1 ` 24 2 23 11 14 12 13

A7 VCC A6 A8 A5 A9 A4 VPP A3 CS A2 A10 A1 PD/PGM A0 O7 O0 O6 O1 O5 O2 O4 GND O3

A0 ÷ A10 – adresni signaliO0 ÷ O7 – izlazi podatakaVpp – napon programiranjaPD/PGM – za omogućenje izlaza i programiranjeCS – signal za omogućenje izlaza (za selektovanje memorijskih kola)

51

Page 52: mikroprocesorski sistemi skripta

Da bi se podatak očitao iz ove memorije treba dovesti adresu, zatim generisati signal CS, što je omogućeno pomoću signala na ulazu PD/PGM. Takođe se upravlja očitavanjem.

Način rada PD/PGM CS Vpp O0÷O7Očitavanje 0 0 +5V Podatak

Onemogućenje izlaza X 1 +5V HIOnemogućenje izlaza (smanjena potrošnja) 1 X +5V HI

memorija je nešto sporija i to se koristi kod prenosnih uređaja

ovo je normalni način rada i on se uglavnom koristiOrganizovanje i povezivanje ROM memorije zavisi od kapaciteta i načina

adresiranja. Kod sistema sa manjim kapacitetom koristi se linearno adresiranje, gdje se za generisanje signala za memorijska elektronska kola koriste direktno pojedini biti adrese. Kod složenih sistema sa većim brojem kola koristi se tzv. dekodovano adresiranje uz primjenu dekodera, koji na osnovu adresnih bita generišu signale za selektovanje, tzv. adresne selekcione signale. Pored adresnih signala za generisanje potrebnih signala za ROM memoriju, koriste se i upravljački signali RD i M/IO, a da bi mogli pristupiti višem ili nižem byte-u riječi koriste se signali BHE i A0. S obzirom da je memorija 8-bitna, za dobijanje 16-bitne riječi koriste se minimalno 2 memorijska čipa, tako da se u 1 nalaze lokacije nižih, a u drugom lokacije viših byte-ova riječi.

2kx16 bita – kapacitet (4kx8)FF000H ÷ FFFFFH – adresni prostor (posljednjih 4kB)

52

Page 53: mikroprocesorski sistemi skripta

ADRESNA MAGISTRALA +VCC=5V 11 A1÷ A11 10nF 10µ F

A0 +VCC BHE A12 10kΩ AS OVI KONDENZATORI SE A19 DODAJU U SAMO INTEGRISANO M/IO KOLO I TO ZBOG INDUKOVANJA RD SMETNJI UZ IZVOR NAPAJANJA (DA TO SPRIJEČE) MAGISTRALA +VCC=5V PODATAKA 11 8

VCC A0÷ A10 VPP PD/PGM GND CS O0÷ O7

VCC A0÷ A10 VPP PD/PGM GND CS O0÷ O7

Kod većih kapaciteta memorije, za generisanje adresnih selekcionih signala koriste se dekoderi. U µp sistemu sa INTEL µp, koristi se najčešće dekoder pod oznakom 8205 (isti je kao 74138, funkcionalno,iz iste serije).

VCC=+5V 16 15 1 14 ULAZI 2 13 3 12 4 11 SIGNALI ZA 5 10 OMOGUĆENJE 6 9 7 8

VDD Q0 A0 Q1 A1 Q2 A2 Q3 E1 E2 E3 GND Q7

A0 ÷ A2 – adreseE1 ÷ E3 – ulazi za omogućenjeQ0 ÷ Q7 – izlazi (nadvučeno ⇒ dobije se nizak nivo kad je signal dekodovan)E1, E2 = 0E3=1 ⇒ omogućen izlaz, samo u ovom slučajuPomoću ovog kola se generišu potrebni adresni selekcioni signali za memorijske

čipove, npr. za ROM memorije kapaciteta 4x16 bita u adresnom prostoru:FE000H ÷ FFFFFHOnda se za dekodovanje može koristiti ovakav dekoder, pa su potrebna 4

integrisana kola 2716.

53

IZLAZI

Page 54: mikroprocesorski sistemi skripta

A1÷ A11 11 A0 BHE D0÷ D7 8 +VCC R=10kΩ 11 RD A12 A13 A14 A15 A16 AS1 A17 A18 A19 11 M/IO 8 D8÷ D15 11 8

A0 Q7 A1 A0 Q6 E1 E2 Q1 E3 Q0

A0÷ A10 PD/PGM CS 2716 O0÷ O7 O0÷ O7

A0÷ A10 PD/PGM CS 2716 O0÷ O7 O0÷ O7

A0÷ A10 PD/PGM CS 2716 O0÷ O7 O0÷ O7

A0÷ A10 PD/PGM CS 2716 O0÷ O7 O0÷ O7

Memorije su sada većeg kapaciteta i jednostavnije su za povezivanje.

MEMORIJA RAM TIPA

To je drugi dio memorije u kojem se drže podaci i međupodaci. Mogu se koristiti 2 tipa: statičke i dinamičke. Statičke se koriste u sistemu sa manjim kapacitetom, a dinamičke sa većim kapacitetom. Realizacija zavisi od potrebnog kapaciteta, korišćenih memorijskih kola i adresnog prostora. Posmatramo statičku memoriju RAM tipa u nMOS tehnologiji, pod oznakom 2114, kapaciteta 1kx4bita.

54

Page 55: mikroprocesorski sistemi skripta

1 18 2 17

8 11 9 10

A6 VCC A5 A7 A4 A8 A3 A9 A0 I/O1 A1 I/O2 A2 I/O3 CS I/O4 GND WE

A0 ÷ A9 – adresni ulaziI/O1 ÷ I/O4 – izlazi podatakaCS – ulaz za omogućenje upisivanja ili očitavanjaWE – ulazni signal za omogućenje upisivanja podataka

Način rada WE CS I/O1 ÷ I/O4očitavanje 1 0 podatak iz memorijeupisivanje 0 0 podatak u memoriju

onemogućen izlaz/ulaz X 1 HI (visoka impedansa)

Za generisanje WE i CS koriste se RD, WR i adresni signali. Ovo nije samo za µp sisteme, pa nije jednostavno generisati signal za selektovanje. Za generisanje WE može se direktno dovesti WR a za generisanje CS potrebna je određena logika. Najjejdnostavnije se taj signal može generisati ovako:

WR AS – ADRESNI SLEKCIONI SIGNAL, CS KOJI SE DOBIJA NA OSNOVU ADRESE RD LOKACIJA U TOM MEMORIJSKOM ČIPU AS

Da bi se dobile memorijske lokacije sa 16 bita potrebno je koristiti 4 ovakva čipa. Kako će se generisati signal AS zavisi od adresnog prostora u kome će biti RAM memorija i od kapaciteta RAM memorije. Ovdje se takođe može koristiti linearno i dekodovano adresiranje.

1kx16 – kapacitetu memorijskom prostoru 00000H ÷ 007FFH(koristićemo adresiranje bez dekodera)

55

Page 56: mikroprocesorski sistemi skripta

A1÷ A10 +VCC=5V 10nF 10µ F A0 BHE D0÷ D3 4 D4÷ D7 4 +VCC A11 A12 AS CSL A19 M/IO CS RD CSH +VCC R +VCC 4 D8÷ D11 R +VCC D12÷ D15 4 WR

VCC AO÷ A9 2114 WE GND CS I/O1÷ I/O4

VCC AO÷ A9 2114 WE GND CS I/O1÷ I/O4

VCC AO÷ A9 2114 WE GND CS I/O1÷ I/O4

VCC AO÷ A9 2114 WE GND CS I/O1÷ I/O4

Može se koristiti dekodovano adresiranje. Najčešće se koristi isti dekoder 8205 na istim principima kao i kod ROM memorije za generisanje adresnog selekcionog signala AS. Samo generisanje signala za selektovanje memorijskog kola realizuje se po principima koji vrijede za RAM memoriju.

2kx16 bita – kapacitet u adresnom prostoru 00000H ÷ 00FFFH ⇒ potrebno je 8 kola 2114; mogla bi se koristiti sljedeća logika za generisanje signala za selektovanje memorijskih kola uz korišćenje dekodera:

A0 AS1 CSL1 A11 A12 ZA NIŽIH 1K RIJEČI A14 A13 (4X2114) A15 AS2 CSH1 A16 BHE A17 A18 A0 A19 CSL2 WR RD M/IO ZA VIŠIH 1K RIJEČI (4X2114) CSH2 BHE

A0 Q0 A1 Q1 A2 Q2 E1 E2 Q6 E3 Q7

56

Page 57: mikroprocesorski sistemi skripta

ULAZNI I IZLAZNI SKLOPOVI

Ulazni i izlazni sklopovi vežu se paralelno na magistralu podataka i onemogućavaju prenos podataka između µp i vanjskih sklopova. Bez obzira koja kola se koriste kao ulazna i i zlazna ona moraju da zadovoljavaju određene zahtjeve:

1° paralelno se povezuju na zajedničku magistralu2° ulazna kola i sklopovi moraju biti sa 3-statičkim izlazima, jer se njihovi izlazi povezuju na zajedničku magistralu. Ta kola mogu, a ne moraju sadržavati registar, što zavisi od konkretne periferije (ulaza).3° izlazna kola i sklop posjeduju uglavnom registar, jer se u njih upisuje podatak iz µp, a onda vodi na izlazni uređaj, pa takva kola posjeduju paralelni stacionarni registar4° i ulazna i izlazna kola moraju imati mogućnost selekcije samo u odgovarajućem kratkom vremenskom trenutku, kad su ona adresirana i kad je potrebno izvršiti prenos podataka između njih i µp

S obzirom da neki µp (takav je i 8086) mogu da koriste i memorijski preslikani i izolovani U/I prenos, način povezivanja ulaznih i izlaznih sklopova u određenoj mjeri zavisi od načina U/I prenosa, koji se koristi.

ULAZNI SKLOPOVI

Kao ulazni sklopovi mogu se koristiti standardna integrisana kola sa 3-statičkim izlazima ili posebno projektovana kola prilagođena primjeni u određenoj µp familiji. Zavisno od ulazne periferne jedinice sa kojom se vrši povezivanje, ulazni sklop može posjedovati i stacionarni paralelni registar. Ako periferna jedinica posjeduje registar na svojim izlazima, onda ulazni sklop ne mora posjedovati registar i obrnuto. U praksi se za povezivanje koriste i složeni programabilni ulazno-izlazni sklopovi, prilagođeni za povezivanje sa µp bez obzira na tip sklopa koji se koristi. Za njegovo upravljanje se koriste adresni signali zajedničke magistrale i upravljački signali RD i M/IO i INTA sa upravljačkim magistralama.

Primjer: način povezivanja jednostavnih ulaznih sklopova. Tu korišćeni principi vrijede i za složenije sklopove. Od jednostavnih sklopova najčešće se koriste ulazni registri sa 3-statičkim izlazima i tzv. ulaz U/I port. Najčešće se koristi registar 8282, a U/I port je realizovan kao 8212. Od složenijih se najčešće koristi programabilni periferni interfejs PPI 8255.

Slučaj: memorijski preslikan U/I prenos. Ako se koristi registar 8282, treba koristiti 2 takva registra za prenos podataka od 16 bita. Za adresiranje se koriste biti sa adresne magistrale slično kao kod adresiranja memorijskih kola; sami signali za selektovanje registara generišu se na osnovu adresnih i upravljačkih signala, koje generiše procesor.

57

Page 58: mikroprocesorski sistemi skripta

8282 16 D0÷ D15

8 8 A0 OEL (CSL) AS RD BHE OEH (CSH)

8 8 M/IO HLDA

DO0÷ DO7 OE

8282 STB DI0÷ DI7

DO0÷ DO7 OE

8282 STB DI0÷ DI7

Q0÷ Q7 Q8÷ Q15 STB ULAZNI UREĐAJ

AS – adresni selekcioni signal, generisan na osnovu adrese ovog ulaznog sklopa (slično kao i kod memorijskog najčešće korišćenog dekodera ili nekodovanog direktnog adresnog bita)

Ako se koristi HOLD način rada koristi se HLDA. Ulazno-izlazni sklopovi se posmatraju kao memorijski sklopovi. Ako bi se

koristio izolovani U/I prenos povezivanje na magistralu bilo bi identično, jedino se ovi selekcioni signali OEL i OEH generišu nešto drugačije, zavisno od toga koji tip ulazne instrukcije se koristi: da li onaj koji ima adresu od 8 ili 16 bita, tako da će se adresni selekcioni signal AS generisati u zavisnosti od toga (ili korišćenjem samo 8 bita ili svih 16 bita).

Pošto je pri izvršavanju ulaznih instrukcija signal M/IO na niskom nivou, onda nije potreban invertor na ulazu M/IO (kao na ovoj slici), a AS se sad generiše ili na osnovu 8 bita ili kao ovdje na osnovu 16 bita (ako je adresa od 16 bita).

U/I port 8212 je 8-bitni sklop koji omogućava realizaciju ulaznog ili izlaznog prenosa; u njegovom sastavu je 8-bitni registar sa 3-statičkim izlazima,logika za omogućavanje selektovanja i upisivanja ili očitavanja i 1 bit koji pokazuje da li postoji podatak u registru. Taj bit koji pokazuje da li postoji podatak koristi se za sinhronizaciju između µp i porta, odnosno U/I uređaja.

1 24 2 23 11 14 12 13

DS1 VCC MD INT DI1 DI8 DO1 DO8 DI2 DI7 DO2 DO7 DI3 DI6 DO3 DO6 DI4 DI5 DO4 DO5 STB CLR GND DS2

58

Page 59: mikroprocesorski sistemi skripta

DI1 ÷ DI8 – ulazi podatakaDO1 ÷ DO8 – izlazi podatakaDS1, DS2 – ulazni signali za selektovanje kolaMD – ulaz za izbor načina radaSTB – ulazni signal za upis podataka u registarINT – signal koji pokazuje da postoji podatak u registru (na niskom nivou-

postoji podatak u registru)CLR – signal za brisanje registra i izlaza INT

Ako je potrebno izvršiti prenos riječi od 16 bita potrebna su 2 ovakva porta.

MAGISTRALA JE 16-BITNA MAGISTRALA PODATAKA 16 D0÷ D15 NA µ P NMI, INTR A0 8 8 CSL AS RD CSH BHE 8 8 HLDA M/IO ZA IZOLOVANI OVAJ SIGNAL SE U/I PRENOS MOŽE I OVDJE DOVESTI

POMOĆU NJEGA VRŠI SE UPIS

DO0÷ DO7 DS1 INT DS2 8212 STB MD

DI0÷ DI7

DO0÷ DO7 DS1 INT DS2 8212 STB MD

DI0÷ DI7

Q0÷ Q7 Q8÷ Q15 STB ULAZNA

PERIFERNA JEDINICA

Kod izolovanog ulaznog prenosa podatak se prenosi pri izvršavanju ulaznih instrukcija tipa IN. Tada se na adresnoj magistrali pojavljuje adresa ulaznog sklopa iz koga treba očitati podatak; zavisno od tipa ulazne instrukcije ta adresa može biti 8 ili 16 bitna. Na osnovu te adrese se generiše odgovarajući adresni selekcioni signal AS. Što se tiče povezivanja i selektovanja korišćenih ulaznih sklopova, principijelno je ista situacija kao kod memorijskog izolovanog prenosa. Razlika je jedino u tome što je signal M/IO pri izvršavanju ulazne instrukcije na niskom nivou, pa ga treba invertovati u odnosu na rješenja kod memorijskog preslikanog prenosa.

IZLAZNI SKLOPOVI

Pošto se podatak, koji se prenosi prema izlaznom uređaju, na magistrali nalazi samo 1 kratak vremenski interval, potrebno ga je upisati u izlazni sklop. Zbog toga izlazni sklop mora posjedovati flip-flopove, odnosno registar u koji se taj podatak upisuje. Takođe je potrebno taj sklop adresirati i selektovati u trenutku kad se podatak nalazi na magistrali podataka. Za adresiranje se koriste biti sa adresne

59

Page 60: mikroprocesorski sistemi skripta

magistrale, a za selektovanje upravljački signali WR i M/IO. Za generisanje selekcionog signala koristi se odgovarajuća kombinaciona logika, a pri tom se koristi i signal koji se dobija dekodovanjem adrese, tzv. adresni selekcioni signal AS. Kao izlazni sklopovi mogu se koristiti flip-flopovi ili registri iz serije 7400 ili odgovarajući sklopovi prilagođeni za takve namjene. Za ove namjene se mogu koristiti isti sklopovi koji se koriste kao ulazni: 8282 i 8212. Jedino se moraju povezati na odgovarajući način. Ako bi koristili 8282 za prenos 2 byte-a, potrebna su 2 takva registra (8282):

-memorijski preslikani prenos MAGISTRALA PODATAKA 16 D0÷ D15

8 8 A0

AS WR

8 8 BHE M/IO

DI0÷ DI7 STB OE 8282

DO0÷ DO7

DI0÷ DI7 STB OE 8282

DO0÷ DO7

DI0÷ DI7 DI8÷ DI15 IZLAZNA PERIFERNA JEDINICA

(IZLAZNI UREĐAJ)

Ne postoji informacija kad postoji novi podatak, pa se najčešće koriste 8282 za sinhronizaciju između µp i izlaznog uređaja.

MAGISTRALA PODATAKA 16 D0÷ D15 NA µ P 8 8 (NMI, INTR) A0 AS WR +VCC +VCC BHE 8 8 M/IO OČITAVA SE PODATAK IZ REGISTRA POMOĆU OVOG STROBA

DI0÷ DI7 DS1 INT DS2 8212 STB MD

DO0÷ DO7

DI0÷ DI7 DS1 INT DS2 8212 STB MD

DO0÷ DO7

DI0÷ DI7 DI8÷ DI15 STB IZLAZNA

PERIFERNA JEDINICA

Obje prethodne slike su za slučaj memorijskog preslikanog prenosa. Za izolovani izlazni prenos podatak se prenosi pri izvršavanju izlazne instrukcije OUT. Slično kao kod ulazne instrukcije IN adresa moše biti 8 ili 16-bitna i na osnovu te

60

Page 61: mikroprocesorski sistemi skripta

adrese generišu se odgovarajući adresni selekcioni signali. Sam selekcioni signal, koji omogućava upis podataka u izlazni sklop, generiše se slično kao na prethodnim slikama, jedino je potrebno izvršiti invertovanje signala M/IO.

UPRAVLJAČKA LOGIKA

Generiše sve potrebne signale za adresiranje i selektovanje memorije, ulaznih i izlaznih sklopova, pri prenosu podataka između µp, memorije, ulaznih i izlaznih sklopova. Neke dijelove upravljačke logike smo nacrtali kad smo govorili o memoriji, ulaznim i izlaznim sklopovima. Ona se može posmatrati kao 1 cjelina sa određenim principima za njeno projektovanje. Za generisanje potrebnih signala za adresiranje i selektovanje memorijskih kola, ulaznih kola i izlaznih kola koriste se signali sa adresne magistrale i signali sa upravljačke magistrale. U principu, upravljačka logika se sastoji iz 2 dijela: logika za generisanje adresnih selekcionih signala i logika za generisanje selekcionih signala.

A0 AS0 A1 AS1 A2 AS2 ADRESNI ADRESNA SELEKCIONI MAGISTRALA ASn SIGNALI ASn+1 S0 A15 S1 S2 SELEKCIONI (ADRESNI ASN SIGNALI DEKODER) Sm (KOMBINACIONA LOGIČKA MREŽA) RD RD UPRAVLJAČKA WR WR UPRAVLJAČKI MAGISTRALA M/IO M/IO SIGNALI

LOGIKA ZA

GENERI - SANJE

ADRESNIH SELEKC. SIGNALA

LOGIKA ZA

GENERI- SANJE

SELEKC. SIGNALA

Zavisno od korišćenih memorijskih, ulaznih i izlaznih kola, za njihovo selektovanje i omogućavanje upisivanja ili očitavanja koriste se neki od ovih signala, koje generiše upravljačka logika. Za memorijska i ulazno-izlazna kola, koja su prilagođena i projektovanja za korišćenje sa konkretnim µp, tj. koja spadaju u određenu µp familiju, koriste se adresni selekcioni i upravljački signali. Za ona memorijska i ulazno-izlazna kola, koja ne spadaju u određenu µp familiju, već su opšte namjene, uglavnom se koristi selekcioni signal, a nekad i upravljački signali. Logika za generisanje adresnih selekcionih signala je u suštini dekoderska logika, jer dekoduje adresne signale sa adresne magistrale. Logika za generisanje selekcionih signala je kombinaciona logika, koja generiše signal na osnovu adresnih selekcionih i upravljačkih signala.

Složenost dekoderske ii kombinacione mreže zavisi od veličine i složenosti konkretnog µp sistema i to od potrebnog broja memorijskih i U/I kola, od karakteristika konkretno korišćenih memorijskih i U/I kola i od adresnog prostora u kom će se nalaziti ta memorijska i U/I kola. U praksi se nastoji da se upravljačka

61

Page 62: mikroprocesorski sistemi skripta

logika minimizira i što više pojednostavi, da bi se smanjila i kašnjenja koja ona unosi. Tako se često koristi tzv. linearno adresiranje, kod koga se kao adresni selekcioni signali koriste direktno pojedini biti adrese sa adresne magistrale. To je moguće kod jednostavnih sistema sa manjim kapacitetima memorije i sa manjim brojem memorijskih i U/I kola. Takođe, nekad se koristi kombinacija linearnog i dekodovanog adresiranja, da bi se pojednostavila dekoderska mreža.

ASEMBLERSKI JEZIK MIKROPROCESORA i 8086

Tekst napisan na asemblerskom jeziku mikroprocesora i8086 predstavlja izvorni asemblerski program i sastoji se od naredbi jezika koje mogu biti:

1. asemblerske instrukcije 2. asemblerske direktive

Asemblerske instrukcije u izvornom asemblerskom programu imaju ulogu da definišu šta mikroprocesor treba da uradi. Svakoj asemblerskoj funkciji odgovara jedna ili više instrukcija na mašinskom jeziku. Asemblerske direktive se koriste da bi se odredilo šta asembler treba da uradi, tj. kako da u procesu prevođenja tretira asemblerske instrukcije i podatke u datom izvornom programu. Kao i u višim programskim jezicima, i asemblerski jezik u svojim naredbama sadrži promjenjive , labelne (oznake) , konstante i operatore.

PROMJENJIVE

Promjenjive predstavljaju oznaku za pojedine podatke, tj. za određene memorijske lokacije u koje se smještaju vrijednosti tih podataka. Mogu se u programu definisati i na dva načina: -direktivom za definisanje podataka

-LABEL – direktivom Svaka promjenjiva je određena sljedećim atributima: -segment – segment memorije u kome se nalaze vrijednosti promjenjive, -pomjeraj – rastojanje u bajtovima od početka segmenta do početka memorijske lokacije promjenljive u bajtovima. -tip promjenljive U asembleru za i8086, definisani su sljedeći tipovi promjenljivih: - BYTE – za promjenjive dužine od 1 bajta; - WORD – za promjenjive dužine od 2 bajta; - DWORD – za promjenjive dužine od 4 bajta.

LABELE

Labele predstavljaju oznake za dijelove programa na koje se može «preći» ili «skočiti», ili za dijelove programa se mogu pozvati kao potprogrami. Kao i promjenjive, i labele sadrže tri atributa: segment, pomjeraj i tip. Segment i pomjeraj su atributi koji imaju isto značenje kao i kod promjenjivih, dok tip specifikuje vrstu instrukcije koja će se izvršiti na datoj lokaciji na programu. Za labele su definisana sljedeća dva tipa:NER – oznaka za labelu kojoj će se pristupiti iz istog fizičkog segmenta iFAR – oznaka za labelu u kojoj će se pristupiti iz drugog fizičkog segmenta.

62

Page 63: mikroprocesorski sistemi skripta

KONSTANTE

Konstante koje se koriste u asemblerskom jeziku mikroprocesora i8086 mogu biti:- brojčane i znakovne ili slovne. Brojčane konstante mogu biti:- binarne- decimalne i - heksadecimalne Binarne konstante se sastoje od binarnih cifara (nule i jedinice) na čijem kraju mora da stoji oznaka da se radi o binarnom brojnom sistemu: slovo B. Na primjer: 11001010B. Decimalne konstante se sastoje od niza arapskih cifara (od 0 do 9 ). Na kraju niza cifara postavlja se oznaka za dekadni brojni sistem: slovo D. Za razliku od binarnih konstanti, decimalne konstante ne moraju da sadrže oznaku brojnog sistema, tj. ukoliko se na kraju niza cifara ne nalazi slovo D, ono se podrazumjeva. Na primjer: 28D i 28 su ispravno zapisane konstante. Heksadecimalne konstante se sastoje od niza slova, cifara, grafičkih simbola ili specijalnih znakova koji se zapisuju između navodnica ili znakova apostrofa. Na primjer: « Znakovna konstanta « i « Ovo je primjer « su ispravno zapisane konstante.

OPERATORI

Operatori imaju ulogu da modifikuju operande instrukcija asemblerskog jezika. Postoje:- aritmetički operatori +, -, *, /, MOD , SHL, SHR;- logički operatori : AND, OR, XOR, NOT;- relacioni operatori: EQ, NE, LT, GT, LE, GE;- povratno – vrijednosni operatori: $, SEG, OFFISET, LENGHT, TUPE, SIZE;- atributi: PTR, SHORT, THIS, HIGH, LOW;

ASEMBLERSKE DIREKTIVE

Pored simboličkih mašinskih instrukcija, jezik asemblera sadrži i određeni broj posebnih naredbi koje se ne provode u mašinski kod, već služe da daju određene informacije asembleru ( programu – prevodiocu ) za vrijeme samog prevođenja. Informacije koje se njima prenose nose upustva asembleru šta da uradi sa određenim instrukcijama i podacima. Te instrukcije se nazivaju naredbe asemblera,pseudonaredbe ili asemblerske direktive. Opšti format zapisa asemblerskih direktiva je sledeći: « ime « , «direktiva « , « polje sa operandima « , « komentar « Asemblerske direktive se mogu podjeliti na 4 grupe:

1. direktive za podršku segmentnog rada mikroprocesora i8086, 2. direktive za definisanje simbola, labela, i inicijalizaciju promjenjivih, 3. direktive vezane za informacije pri lociranju programa, 4. direktive koje daju informacije pri povezivanju programa.

Direktive za podršku segmentnog rada mikroprocesora i8086 SEGMENTS / ENDS – omogućava definisanje logičkih segmenata; ASSUME – definiše sadržaj segmentnih registara; GROUP – omogućava kombinovanje različitih logičkih segmenata u jedan fizički segment.

63

Page 64: mikroprocesorski sistemi skripta

Direktive za definisanje simbola, labela, i inicijalizaciju promjenjivih EQU – omogućava definisanje simbola, = - omogućava definisanje simbola samo u numeričkim izlazima, DB – definiše pronjenjivu tipa BYTE, DW – definiše promjenjivu tipa WORD, DD – definiše promjenjivu tipa DWORD, PROC – definiše labelu za grupu naredbi koja predstavlja potprogram, LABEL – definiše ime tekuće lokacije koja se asemblira.Direktive vezane za informacije o lociranju programa ORG – predstavlja brojač instrukcija na željenu vrijednost EVEN – predstavlja instrukcije iza ove direktive na parne lokacije u memoriji.Direktive koje daju informacije pri povezivanju (linkovanju ) programa PUBLIC – definiše koje su se konstante, promjenjive ili labele iz drugih programskih modula dostupne prilikom povezivanja, EXTERN – definiše one promjenjive ili labele koje će se u datom modulu koristiti, a koje su kao PUBLIC deklarisane u nekom drugom programskom modulu. NAME – definišu ime objektnog modula, END – poslednja naredba u modulu koja označava završetak procesa asembliranja.

FUNKCIONALNOST INSTRUKCIJA

Sada ćemo se upoznati detaljnije sa repertoarom instrukcija procesora Intel 8086. Instrukcije ćemo podeliti u više logičkih grupa, i to po njihovoj funkciji. Ovaj odeljak u odnosu na prethodni, treba da posluži da se upoznamo sa funkcionalnošću svake instrukcije.

Instrukcije za prenos podataka

Ova grupa sadrži instrukcije koje ćete najčešće upotrebljavati prilikom pisanja programa u asembleru. Podelićemo ih u četiri manje funkcionalne grupe.

Instrukcije prenosa opšte namene

U ovoj grupi se nalazi instrukcija MOV. Ona poseduje dva operanda, od kojih je prvi odredište, a drugi izvor podatka koji treba preneti. Moguće je vršiti prenos između registara, memorijskih lokacija, a i dodeliti vrednost konstante, ali sve kombinacije nisu moguće.Instrukcija LEA, predstavlja specifičnu instrukciju prenosa. Ona služi za učitavanje efektivne adrese drugog operanda, tj. njene adrese unutar podrazumevanog segmenta. Prvi operand ove instrukcije mora biti neki od 16-bitnih registara izuzev segmentnih.Učitavanje pointera se vrši uz pomoć instrukcija LDS i LES. Drugi operand predstavlja adresu na kojoj se nalazi zabeležen 32-bitni pointer. Prvi operand predstavlja registar u koji će biti smešten ofset na koji pokazuje pointer, dok se segment smešta u jedan od segmentnih registara (DS, kod instrukcije LDS, odnosno u ES, kod LES).Moguća je i razmena sadržaja sa status registrom, i to pomoću instrukcija LAHF i SAHF. Ove instrukcije nemaju operanada, pa se podrazumeva AH kao prvi, a nižih 8-bita status registra kao drugi operand. Instrukcija LAHF smešta sadržaj nižih osam bita status registra u AH, dok instrukcija SAHF ima suprotno dejstvo.Preostala instrukcija XCHG služi za zamenu sadržaja dva operanda. Jedan od operanada može biti i memorijska lokacija, dok drugi obavezno mora biti registar. Korisnost ove instrukcije je u tome što se izbegava korišćenje treće, pomoćne, promenljive prilikom izmene sadržaja.

64

Page 65: mikroprocesorski sistemi skripta

Instrukcije za rukovanje stekom

Stek je jedna od procesorsko podržanih struktura podataka. Radi se o LIFO (Last In First Out) organizaciji, što znači da prvo očitavamo poslednje uneti podatak. Instrukcije ove grupe, kao implicitni operand, imaju memorijsku adresu na koju pokazuje registarski par SS:SP, što ujedno predstavlja vrh steka. Treba reći da se stek puni prema dole, tj. prema nižim adresama.Instrukcija stavljanja podatka na stek je PUSH. Njen jedini operand određuje sadržaj koji treba staviti na stek. On može biti 16-bitni registar, uključujući i segmentne registre (osim CS), ili sadržaj neke memorijske lokacije.Za skidanje sa steka koristi se instrukcija POP. Njen operand govori gde će podatak biti smešten, i to može biti 16-bitni registar, ili memorijska lokacija.Postoje i instrukcije PUSHF i POPF, za koje se podrazumeva da je njihov operand status registar.Stek se implicitno koristi i u nekim drugim instrukcijama, što će kasnije biti navedeno.

Instrukcije konverzije

Instrukcije ove grupe nemaju operande, a implicitno menjaju neke od registara.Konverzija iz bajta u reč se obavlja instrukcijom CBW, pri čemu se vodi računa i o znaku datog broja. Intrukcija podrazumeva da se ulazni podatak nalazi u AL, dok izlaz predstavlja kompletan registar AX.Slično tome imamo instrukciju CWD, koja služi za konverziju iz reči u duplu reč, pri čemu se podrazumeva da je ulaz registar AX, a izlaz registarski par DX:AX. Prilikom konverzije se očuvava znak.Konverzija, uz upotrebu posebne tabele konverzije, može se izvršiti pomoću instrukcije XLAT. Podrazumeva se da se operand konverzije nalazi u registru AL, dok BX sadrži adresu početka tabele konverzije. Instrukcija kao izlaz vraća u registru AL vrednost pročitanu na lokaciji dobijenoj sabiranjem vrednosti registara BX i AL. Tabela konverzije je tabela uzastopnih vrednosti, čiji indeksi odgovaraju vrednostima koje se konvertuju u vrednosti navedene u tabeli.

Instrukcije za rukovanje periferijom /IN,OUT/

Pristup periferijama se vrši isključivo preko instrukcija iz ove grupe, osim ako nemamo računarski sistem sa memorijski preslikanim ulazom-izlazom, u kom slučaju se mogu koristiti i ostale instrukcije prenosa podataka.Periferijama korenspondiraju posebne memorijske lokacije; nazvane portovi. Za očitavanje vrednosti na nekom portu koristimo instrukciju IN. Vrednost se smešta isključivo u akumulator, što je i prvi operand, dok drugi operand može biti 8-bitna konstanta, koja predstavlja adresu porta, ili registar DX koji sadrži 16-bitnu adresu porta kojeg čitamo. Treba reći da prvi operand govori i koja je širina podatka koji se prenosi, AL 8-bitna, AX 16-bitna.Slična je i instrukcija OUT, koja služi za slanje podatka na odgovarajući port. Operandi su isti, s tom razlikom da su im zamenjena mesta, tj. prvo adresa porta, a zatim podatak. Važe ista ograničenja.

Aritmetičke instrukcije

Aritmetičke operacije su upravo one za čije je izvršavanje, u osnovi, namenjen računar. Aritmetičko logička jedinica je 16-bitna.

65

Page 66: mikroprocesorski sistemi skripta

Posebnu oblast čini BCD aritmetika. Ona se pojavila kao posledica potrebe izračunavanja vrednosti izraza sa svim tačnim ciframa, što se najviše koristilo prilikom računanja bankovnog salda. BCD brojevi se predstavljaju u formi u kojoj svaka četiri bita predstavljaju binarni kod jedne decimalne cifre. Postoje tzv. otpakovani i spakovani format. Otpakovani format ima za pretpostavku da se u jednom 8-bitnom registru nalazi samo jedna cifra, što je uvedeno radi lakše implementacije aritmetičkih operacija, dok spakovani format podrazumeva da se u 8-bitnom registru nalaze dve cifre, što je opet zgodno za čuvanje takvih brojeva u memoriji, jer su oni i onako predugački. Nevolja korišćenja brojeva u spakovanoj formi je u tome što se ne mogu vršiti operacije množenja i delenja direktno nad njima.

Instrukcije za sabiranje

Instrukcije za sabiranje poseduju samo dva operanda, oni sadrže sabirke, a rezultat sabiranja se smešta u prvi operand. Treba reći i da se sabiranje vrši na isti način i sa označenim i sa neoznačenim brojevima, te za to ne postoje posebne instrukcije.Prva od instrukcija sabiranja je ADD, koja sabira dva operanda, a rezultat smešta u prvi. Operandi naravno moraju biti iste dužine, a dozvoljene su kombinacije registara, memorijskih lokacija, kao i konstante kao drugog operanda, što je i logično zbog smeštanja rezultata u prvi operand.Često nam se, međutim, dešava situacija da treba sabirati brojeve iz opsega šireg od postojećeg 16-bitnog. Takvu situaciju rešavamo upotrebom instrukcije ADC, za sabiranje u višestrukoj preciznosti. Ona je, u principu, veoma slična instrukciji ADD, s tim da se na zbir dodaje i vrednost bita prenosa iz status registra, čija vrednost se, recimo, postavlja sabiranjem nižih delova brojeva, a onda koristi u sabiranju viših delova.Prilikom pisanja programa u asembleru često se javlja potreba za uvećavanjem vrednosti nekog registra za jedan, što je najčešći slučaj u petljama. Iz razloga pojednostavljenja pisanja, kao i smanjenja dužine mašinskog koda, uvedena je instrukcija INC. Ona ima jedan operand koji može biti neki od 8-bitnih ili 16-bitnih registara (izuzimajući segmentne registre) ili memorijska lokacija.Sabiranje brojeva u BCD otpakovanom formatu se takođe vrši sa instrukcijom ADD, ali je nakon njene upotrebe potrebno pozvati instrukciju AAA koja je zadužena da izvrši popravku rezultata i njegovo pretvaranje u BCD oblik. Ograničenje je u tome što se sabiranje mora vršiti kroz registar AX, jer je on podrazumevani operand ove instrukcije.Sabiranje se može vršiti na identičan način i u spakovanoj formi, s tom razlikom da se nakon sabiranja mora pozvati instrukcija DAA, koja ima dejstvo kao i predhodna instrukcija, ali se radi o spakovanoj formi.

Instrukcije za oduzimanje

Postoji više instrukcija za oduzimanje.Instrukcija SUB vrši duzimanje drugog operanda od prvog, a rezultat smešta u prvi operand. Operandi moraju biti istih dužina da bi se dobio i ispravan rezultat, bilo označen bilo neoznačen.Kada nam 16-bita nije dovoljno da bismo izvršili smeštanje potrebnih vrednosti, koristimo instrukciju SBB za oduzimanje u višestrukoj preciznosti. Ona takođe ima dva operanda, ali u računu koristi i pozajmicu iz predhodnog oduzimanja nižih delova brojeva, koja se nalazi u bitu prenosa status registra.Umanjivanje operanda za jediničnu vrednost je takođe često potrebna funkcija, te iz tog razloga imamo instrukciju DEC, koja vrši umanjivanje vrednosti jedinog svog operanda, koji može biti bilo registar bilo memorijska lokacija.Rad sa BCD brojevima se vrši slično kao i kod sabiranja. Kada se koristi BCD aritmetika u otpakovanoj formi, nakon oduzimanja koristimo instrukciju AAS, da bismo ponovo vratili rezultat u odgovarajuću formu, a DAS kada radimo u spakovanoj formi. Slično kao kod sabiranja, i ovde važi ograničenje da se sabiranje mora vršiti kroz akumulator, jer je on imlicitni operand prethodne dve instrukcije.

66

Page 67: mikroprocesorski sistemi skripta

Instrukcija za poređenje

Poređenje se zasniva na oduzimanju, s tom razlikom da se razlika zanemaruje, a postavljaju se samo bitovi status registra.Instrukcija CMP omogućuje poređenje. Ona ima dva operanda koji se porede. Nakon ove instrukcije se uvek izvršava neka od instrukcija uslovnog skoka.

Instrukcija za komplement

Komplementiranje omogućuje instrukcija NEG. Ona poseduje jedan operand koji predstavlja vrednost čiji komplement 2 (negativnu vrednost) treba naći.

Instrukcije za množenje

Za množenje neoznačenih brojeva koristimo instrukciju MUL. Ona podrazumeva da se u akumulatoru nalazi jedan operand i zahteva da se eksplicitno navede samo drugi operand. Ako je operand dužine bajta, tada se množi sa AL, a rezultat smešta u AX registar. Ako je operand reč, tada se množi sa AX, a rezultat se smešta u duplu reč DX:AX.Slično ovome, za množenje označenih brojeva koristimo instrukciju IMUL, koja radi na sličan način kao i predhodna.Kada se radi sa BCD brojevima, moramo koristiti raspakovani format, da bismo bili u mogućnosti da radimo i operaciju množenja. Nakon izvršenog množenja potrebno je popraviti rezultat instrukcijom AAM, koja nema operanada, a podrazumevani je akumulator, što se poklapa sa izlaznim registrom instrukcije množenja.

Instrukcije za delenje

Za delenje neoznačenih bojeva koristimo instrukciju DIV. Ona podrazumeva da se u akumulatoru nalazi deljenik, i zahteva da se kao eksplicitni operand navede samo delilac. Ako je operand dužine bajta, tada se vrednost registra AX deli sa operandom, rezultat smešta u AL, a ostatak delenja u AH. Kada je operand dužine reči, tada se DX:AX deli operandom, rezultat smešta u AX, a ostatak u DX.Slično tome imamo instrukciju za delenje označenih brojeva, IDIV, za koju su operandi i njihovo tumačenje identnični.Delenje BCD brojeva u otpakovanom formatu je takođe moguće, ali je nakon njega potrebno instrukcijom AAD prilagoditi rezultat delenja. Imlicitni operand ove instrukcije je akumulator, u kome se, ujedno, nalazi rezultat delenja.

Logičke instrukcije i instrukcije pomeranja i rotiranja

Logičke instrukcije

Instrukcijom AND izvršavamo logičku operaciju I nad operandima, a rezultat operacije se smešta u prvi od njih. Da podsetimo, rezultat ima jedinice na onim binarnim pozicijama na kojima ih istovremeno imaju i oba operanda, dok se na ostalim pozicijama nalaze nule. Dozvoljene kombinacije operanada su iste kao i kod aritmetičkih instrukcija.

67

Page 68: mikroprocesorski sistemi skripta

Logičko ILI se postiže instrukcijom OR, koja ima isti oblik kao i predhodna, ali se ovde u rezultatu jedinica nalazi na onim binarnim pozicijama na kojima ih ima bar jedan od operanada, dok se na ostalim nalaze nule.Operacija “logičko ekskluzivno ILI” se dobija upotrebom instrukcije XOR, a način upotrebe je identičan kao kod predhodnih. U rezultatu ove instrukcije se jedinica nalazi na onim binarnim mestima gde isključivo jedan od operanada ima jedinicu, dok se na ostalim pozicijama nalaze nule.Logičko NE, odnosno negacija, se postiže instrukcijom NOT i, za razliku od predhodnih instrukcija, ima jedan operand, koji ujedno služi i kao izlaz operacije. Njeno dejstvo se svodi na prostu zamenu jednica nulama i obratno.

Instrukcija za rukovanje bitovima

Često imamo potrebu da proverimo vrednost nekog bita, a da tom prilikom ne izmenimo sadržaj registra, ili memorijske lokacije u kojoj se on nalazi. Taj problem se rešava instrukcijom TEST, koja, zapravo, vrši operaciju logičko I i samo postavlja bitove status registra. Posle ove instrukcije obično slede instrukcije uslovnog skoka.

Instrukcije za pomeranje

Postoje dve vrste pomeranja; logičko i aritmetičko. Razlika je u tome što instrukcije aritmetičkog pomeranja čuvaju znak operanda, dok kod logičkog pomeranja to nije slučaj.Instrukcije logičkog i aritmetičkog pomeranja u levo su identične. Njihovi nazivi su SHL i SAL respektivno. Ove instrukcije kao prvi operand sadrže vrednost koju treba pomeriti, a drugi operand je broj 1, ili registar CL, koji sadrži podatak o zahtevanom broju pomeranja sadržaja prvog operanda.Treba reći da asembler omogućuje da se umesto broja jedan nađe bilo koji broj, jer se on pobrine da se izvrši odgovarajući broj pomeranja. Pomeranje u levo je ekvivalent množenju sa dva. Prilikom pomeranja ubacuju se nula na najnižu poziciju, a bit sa najviše pozicije odlazi u bit prenosa status registra.Kod pomeranja u desno, razlikuju se operacije logičkog i aritmetičkog pomeranja. Ove operacije su ekvivalentne operacijama delenja sa dva.Za operaciju logičkog pomeranja u desno instrukcija je SHR. Prilikom pomeranja bit sa najniže pozicije odlazi u bit prenosa status registra, dok na najvišu poziciju dolazi nula.Instrukcija SAR, koja omogućuje aritmetičko pomeranje u desno se razlikuje od instrukcije SHR, u tome što se na najvišoj poziciji zadržava predhodna vrednost, tj, znak operanda.

Instrukcije za rotiranje

Rotacija u levo se obavlja instrukcijom RCL, uz preuzimanje zatečenog bita prenosa, i instrukcijom ROL, bez preuzimanja zatečenog bita prenosa. Kod obe instrukcije se vrednost sa najviše pozicije smešta u bit prenosa, s tom razlikom da se kod RCL, u najniži bit upisuje zatečena vrednost iz bita prenosa, a kod ROL vrednost sa najviše pozicije.Kod rotacije u desnu stranu situacija je slična. Instrukcija RCR omogućuje rotiranje u desno uz preuzimanje zatečenog bita prenosa, i ROR bez preuzimanja zatečenog bita prenosa. Prilikom rotacije u desno, bit sa najniže pozicije odlazi u bit prenosa status registra, međutim, RCR instrukciju na najvišu poziciju dolazi zatečena vrednost bita prenosa, dok kod ROR instrukcije na to mesto dolazi vrednost sa najniže pozicije.

Upravljačke instrukcije

68

Page 69: mikroprocesorski sistemi skripta

Upravljačke instrukcije omogućuju bezuslovnu i uslovnu izmenu redosleda izvršavanja instrukcija, obrazovanje programskih petlji i pozive potprograma.

Instrukcije bezuslovnog skoka

Kao osnovna instrukcija skoka, postoji instrukcija bezuslovnog skoka JMP. Ona poseduje jedan operand koji predstavlja adresu na koju će se izvršiti skok. Razlikujemo tri različita oblika instrukcije bezuslovnog skoka, kratki skok (short) koji obuhvata raspon od -128 do 127 bajta, skok u blizini (near) koji se odnosi na lokacije iz istog segmenta, i daleki skok (far) koji dozvoljava skok van tekućeg segmenta. Za kratki skok raspon se računa u odnosu na instrukciju skoka. Prilikom prevođenja asembler sam otkriva da li je skok unutar istog segmenta ili između dva segmenta. Kada je reč o kratkom skoku, to treba eksplicitno navesti stavljanjem ključne reči short ispred imena labele.

Instrukcije uslovnog skoka

Instrukcije uslovnog skoka se koriste nakon instrukcija koje utiču na sadržaj status registra. Obično se radi o aritmetičkim instrukcijama, najčešće poređenju, ili pak o nekoj iz grupe logičkih instrukcija. Njihov jedini operand omogućuje kratki skok u rasponu -128 do 127 bajta.Instrukcija JE omogućuje utvrđivanje važenja relacije jednako. Ona važi za poređenje i označenih i neoznačenih brojeva. Instrukcija JNE omogućuje utvrđivanje relacije različito. I ona važi i za označene i za neoznačene brojeve.Instrukcija JA, odnosno JNBE, se odnosi na neoznačene brojeve. Ona omogućuje utvrđivanje relacije veći, odnosno nije manji ili jednak.Instrukcija JBE, odnosno JNA, se odnosi na neoznačene brojeve. Ona omogućuje utvrđivanje važenja relacije manje ili jednako, odnosno nije veće.Za utvrđivanje važenja relacije veće ili jednako, odnosno nije manje, koristimo instrukciju JAE, odnosno JNB. I ova instrukcija važi za neoznačene brojeve.Za utvrđivanje važenja relacije manje, odnosno nije veće ili jednako služi instrukcija JB, odnosno instrukcija JNAE. I ova instrukcija važi za neoznačene brojeve.Za utvrđivanje važenja relacije veće, odnosno nije manje i jednako,za označene brojeve služi instrukcija JG, odnosno JNLE.Za utvrđivanje važenja relacije manje ili jednako, odnosno nije veće, za označene brojeve služe instrukcije JLE, odnosno JNG.Za utvrđivanje važenja relacije veće ili jednako, služi instrukcija JGE, a relacije nije manje instrukcija JNL. Obe se odnose na označene brojeve.Za utvrđivanje važenja relacije manje za označene brojeve služi instrukcija JL, odnosno JNGE.Pošto se brojačka konstanta obično smešta u registar CX, procesor podržava i instrukcija skoka ako je registar CX jednak nuli. To je instrukcija JCXZ.Preostale instrukcije uslovnog skoka omogućuju skok ako je odgovarajući bit status registra jednak nuli odnosno jedinici. Instrukcija JZ omogućuje skok ako je bit Z postavljen, a instrukcija JNZ omogućuje skok ako ovaj bit nije postavljen. Slično, instrukcija JC omogućuje skok kada je bit C postavljen, a instrukcija JNC omogućuje skok ako ovaj bit nije postavljen.Što se tiče bita pariteta, instrukcija JP, odnosno JPE omogućuje skok kada je bit postavljen, a instrukcija JPO, odnosno JNP, kada on nije postavljen.Slično za bit prekoračenja instrukcija JO omogućuje skok kada je bit O postavljen, a instrukcija JNO kada on nije postavljen.Za bit predznaka instrukcija JS omogućuje skok kada je bit S postavljen, a instrukcija JNS kada on nije postavljen.

69

Page 70: mikroprocesorski sistemi skripta

Instrukcije za rukovanje potprogramima

Pozivanje podprograma omogućuje instrukcija CALL, čiji operand sadrži adresu potprograma. Ova instrukcija implicitno koristi stek za smeštanje povratne adresePovratak iz potprograma omogućuje instrukcija RET.

Instrukcije za obrazovanje programskih petlji

Instrukcije za obrazovanje programskih petlji podrazumevaju da se brojačka konstanta nalazi u CX registru i da se njena vrednost u svakoj iteraciji smanjuje za jedan. Izlazak iz petlje se dešava onda kada registar CX postane jednak nuli, i on podrazumeva obavljenje skratkog skoka. Instrukcija LOOP je osnovna iz ove grupe, a tu su i LOOPE i LOOPZ, kao i LOOPNE i LOOPNZ, kod koji dolazi do izlaska iz petlje i ako je postavljen bit Z status registra, odnosno ako on nije postavljen.

Instrukcije za rukovanje prekidima

Prekidi se mogu softverski izazivati pomoću instrukcije INT, čiji je jedini operand vektor prekidne rutine. Postoji i instrukcija izazivanja prekida prekoračenja INTO, koja nema operanda, i izaziva prekid sa vektorom 4 ako je bit O status registra postavljen. Prilikom softverskog izazivanja prekida na steku se sačuvaju povratna adresa kao i zatečeni sadržaj status registra.Povratak iz obrade prekida omogućuje instrukcija IRET koja skida sa steka povratnu adresu i sadržaj status registra.

Instrukcije za rukovanje nizovima

Instrukcije za rukovanje nizovima, kao implicitni operand koriste indeksne registre SI i DI, čija vrednost se nakon izvršenja instrukcije menja zavisno od sadržaja bita D status registra. Pritom je SI registar vezan za DS segmentni registar, a DI registar je vezan za ES segmentni registar. Sve instrukcije za rukovanje nizovima imaju dva oblika: jedan za rad sa nizovima bajtova, sa postfiksom B, i drugi za rad sa nizovima reči, sa postfiksom W.Instrukcija LODS (LODSB za bajtove i LODSW za reči) služi za učitavanja elementa niza u akumulator. Ovde se implicitno menja samo SI registar, koji pokazuje na elemente niza iz koga se čitaju podaci.Smeštanje u niz se vrši instrukcijom STOS (STOSB za bajtove i STOSW za reči). Vrednost se uzima iz akumulatora i smešta u element na koji pokazuje DI indeksni registar.Za kopiranje elemenata nizova koristi se instrukcija MOVS (MOVSB za bajtove, odnosno MOVSW za reči). Kopiranje se vrši iz elementa na koji pokazuje SI, u element na koji pokazuje DI.Instrukcija SCAS (SCASB za bajtove i SCASW za reči) omogućuje poređenje akumulatora sa elementima niza. Na elemente niza pokazuje DI registar.Međusobno poređenje elemenata nizova omogućuje instrukcija CMPS (CMPSB za bajtove, i CMPSW za reči). Na prvi operand pokazuje SI registar, a na drugi DI registar.Dodavanje prefiksa REP ispred imena instrukcije za rukovanje nizovima označava ponavljanje odgovarajuće instrukcije. Pri tome broj ponavljanja smeštamo predhodno u CX registar. Nakon svakog ponavljanja vrednost CX registra se umanjuje, a ponavljanje završi kada vrednost ovog registra padne na nulu. Kada prefiksi REP, REPE ili REPZ stoje ispred instrukcija SCAS ili CMPS, ponavljanje se završava i kada bit Z status registra nije postavljen. U slučaju prefiksa REPNE i REPNZ ponavljanje se završava i kada je bit Z status registra postavljen.

Instrukcije za upravljanje procesorom

Instrukcije za rukovanje status registrom

70

Page 71: mikroprocesorski sistemi skripta

Postavljenje bita C status registra omogućuje instrukcija STC, njegovo poništenje instrukcija CLC. Izmenu vrednosti ovog bita omogućuje instrukcija CMC.Postavljanje bita D status registra omogućuje instrukcija STD, a njegovo poništavanje instrukcija CLD.Instrukcija STI postavlja bit I status registra, a instrukcija CLI poništava ovaj bit.

Razne instrukcije

Instrukcija NOP troši procesorsko vreme pa omogućuje generisanje kratkih pauza, reda desetina taktova procesora.Instrukcija WAIT omogućuje usklađivanje rada procesora i numeričkog koprocesoraInstrukcija HLT omogućuje zaustavljenje rada procesora.

Metode adresiranjaNeposredno adresiranje

Ovo je najjednostavnija metoda adresiranja. Kao što joj ime kaže, radi se o neposrednoj dodeli vrednosti. Kada se instrukcija, koja koristi ovo adresiranje, prevede u mašinski oblik, neposredno iza koda operacije nalaziće se zadata konstanta.

mov ah,34hmov ax,4563h

Za 16-bitne konstante, važno je naglasiti da se u memoriju prvo smešta njen niži, a zatim viši bajt.

Registarsko adresiranje

Ovo je jedna od najjednostavnijih metoda adresiranja i svodi se na preuzimanje sadržaja registra i njegovog smeštanja u odredište. Primeri :

mov ax,bxmov si,dxmov al,dlmov ds,axmov ax,cs

Registarsko indirektno adresiranje

Sadržaj registra, koji je naveden između uglastih zagrada, tumači se kao adresa na kojoj se nalaze podaci. Primeri:

mov al,[bx]mov al,[bp]mov al,[si]mov al,[di]

71

Page 72: mikroprocesorski sistemi skripta

Treba naglasiti da se prilikom upotrebe registara BX, SI i DI za računanje efektivne adrese koristi segmentni registar DS, dok se za BP koristi SS. Eksplicitnim naviđenjem segmentnih registara moguće je uticati na računanje efektivne vrednosti, kao u sledećim primerima.

mov al,cs:[bx]mov al,ds:[bp]mov al,es:[si]mov al,ss:[di]

Direktno adresiranje

Radi se o metodi adresiranja koja podrazumeva da joj je parametar adresa na kojoj se nalazi vrednost koju treba preuzeti. U mašinskom formatu adresa lokacije se nalazi kao neposredni operand i uvek je 16-bitna vrednost. Primeri :

mov al,[0234h]mov [0045h],ax

Treba reći da se kod ove metode adresiranja kao segmentni registar podrazumeva DS, ali je to moguće predefinisati kao u narednim primerima.

mov al,es:[0234h]mov ax,cs:[3452h]

Indeksirano adresiranje

Ova metoda adresiranja predstavlja varijantu koja povezuje registarsko indirektno i direktno adresiranje. Efektivna adresa se formira sabiranjem vrednosti registra i navedene konstante, pa se sa lokacije, koju određuje efektivna adresa, uzima podatak ili se on u nju smešta. Kod ove metode adresiranja indeks je u registrima SI i DI, a konstanta je u principu početna adresa bloka kome se pristupa.

mov al,20h[si] ili mov al,[si+20h]mov dl,78[di] ili mov dl,[di+78]

Treba naglasiti da se prilikom računanja efektivne adrese koristi segmentni registar DS, što se može izmeniti ako se eksplicitno navedu segmentni registri kao u sledećim primerima.

mov bh,es:[si+340]mov cl,ss:[di+120]

Bazno adresiranje

Razlika ovog adresiranja i indeksiranog adresiranja je u tome da bazni registar predstavlja početak bloka, a konstanta, koja se uz njega navodi relativan položaj elementa kome pristupamo. Kao bazni registri se mogu koristiti BX i BP.

mov al,20h[bx] ili mov al,[bx+20h]mov dl,120[bp] ili mov dl,[bp+120]

72

Page 73: mikroprocesorski sistemi skripta

Kada je bazni registar BX, za računanje efektivne adrese koristi se segmentni registar DS, dok se kod baznog registar BP koristi segmentni registar SS. Ovo se može izmeniti ako se segmentni registri navedu eksplicitno :

mov bh,es:[bx+340]mov cl,cs:[bp+120]

Bazno indeksirano adresiranje

Ovo je podvarijanta indeksiranog adresiranja, s tom razlikom da više ne postoji konstanta koja određuje početak strukture kojoj se pristupa, već tu ulogu preuzima bazni registar. Kao i kod predhodnih metoda, važi ista napomena vezana za segmentne registre.

mov al,ds:[bp][si] ili mov al,ds:[bp+si]mov dl,es:[bx][di] ili mov dl,es:[bx+di]

Bazno indeksirano relativno adresiranje

Ovo je najkompleksnija metoda adresiranja koja kombinuje prethodne dve vrste adresiranja, bazno i bazno indeksirano. U računanju efektivne adrese pored jednog baznog i jednog indeksnog registra učestvuje i konstanta pomeraja. Takođe važi napomena vezana za segmentne registre. Primeri za ovu metodu su slični predhodnim.

mov al,ds:25h[bp][si] ilimov al,ds:[bp+si+25h]

mov dl,es:120[bx][di] ilimov dl,es:[bx+di+120]

73