TALLINNA TEHNIKAÜLIKOOL
ELEKTRIAJAMITE JA
JÕUELEKTROONIKA INSTITUUT
ROBOTITEHNIKA
ÕPPETOOL MIKROPROTSESSORTEHNIKA
TÕNU LEHTLA LEMBIT KULMAR
Tallinn
1995
2
T Lehtla, L Kulmar. Mikroprotsessortehnika
TTÜ Elektriajamite ja jõuelektroonika instituut. Tallinn, 1995. 141 lk
Toimetanud Juhan
Nurme Kujundanud Ann
Gornischeff Autorid tänavad TTÜ arvutitehnika instituudi lektorit Toomas Konti ja samainstituudi dotsenti Vladimir Viiest raamatu käsikirjas tehtud paranduste ja
täienduste eest. T Lehtla, L Kulmar, 1995
TTÜ elektriajamite ja jõuelektroonika instituut, 1995
Kopli 82, 10412 Tallinn
Tel 620 3704, 620 3700.
Faks 620
3701 ISBN 9985-69-006-0
TTÜ trükikoda. Koskla 2/9, Tallinn EE0109
Tel 552 106
3
Sisukord Saateks
5
Digitaal - ja mikroprotsessortehnika arengut kajastavaid aastaarve
6
1.DIGITAALELEKTROONIKA ALUSED7
1.1. Diskreetsed ja arvsignaalid7
1.1.1.
Kvantimine
7
1.1.2.
Kodeerimine , dekodeerimine ja koodide liigid
8
1.1.3
Kümnendarvude
teisendamine kahend -,
kaheksand -
ja kuueteistkümnendarvudeks
12
1.1.4.
Informatsiooni hulk ja signaali viga
13
1.2. Loogikafunktsioonid ja loogikalülitused ning
nende esitusviisid14
1.2.1.
Loogikatehted 14
1.2.2.
Loogikaseadused
17
1.2.3.
Loogikalülituste süntees ja
minimeerimine 21
1.3. Funktsionaalsed loogikalülitused24
1.3.1.
Trigerid 24
1.3.2.
Registrid 27
1.3.3.
Loendurid 28
1.3.4.
Summaatorid
31
1.3.5.
Kommutaatorid
34
1.3.6.
Aritmeetika-loogikaplokk
36
1.3.7.
Koodrid ja dekoodrid
37
1.4.Homogeensed struktuurid ja loogilised maatriksid 40
1.4.1.
Loogilised maatriksid
40
1.4.2.
Ümberprogrammeeritavad maatriksid
43
1.5.Mälud44
1.5.1.
Muutmälud
45
1.5.2.
Püsimälud 47
1.6.Diskreetsed automaadid 48
1.6.1.
Diskreetsete automaatide olemus
48
1.6.2.
Algoritmide aparatuurne
realiseerimine 51
1.6.3.
Programm- ja mikroprogrammjuhtimine
57
1.6.4.
Algoritmide programmiline realiseerimine
60
4
2.MIKROPROTSESSORID61
2.1.Mikroprotsessorite ja arvutite ehitus61
2.1.1.
Põhimõisted
61
2.1.2.
Arvuti põhiplokkid ja
siinid 63
2.1.3.
Töötsüklid 65
2.2. Mikroprotsessori tööpõhimõte67
2.2.1.
Protsessori ehitus
67
2.2.2.
Registrid ja nende otstarve
68
2.2.3.
Ajadiagrammid
71
2.2.4.
Käsu- ja andmevormingud
72
2.2.5.
Protsessori käsustik
75
2.2.6.
Adresseerimine
77
2.2.7.
Pinumälu
79
2.2.8.
Protsessori koostöö mälu ja välisseadmetega
79
2.3. Andmevahetus 82
2.3.1.
Andmevahetuse meetodid
82
2.3.2.
Rööpvärat
87
2.3.3.
Jadavärat 90
2.3.4.
Taimer 91
2.3.5.
Otsemällupöördus ja DMA-kontroller
96
2.4. Tarkvara 98
2.4.1.
Ülevaade mikroarvutite ja juhtraalide tarkvarast
98
2.4.2.
Assembler 99
2.4.3.
Intel
8080 assemblerikeel
101
2.5.Signaaliprotsessorid105
2.5.1.
Signaaliprotsessorite ehituse iseärasused
105
2.5.2.
Digitaal-analoogmuundurid
106
2.5.3.
Analoog -digitaalmuundurid
107
2.5.4.
Transpuutrid
111
2.6.Mikroprotsessorite kasutamine114
2.6.1.
Ülevaade
114
2.6.2.
Mikroprotsessorid elektriajamis
115
2.6.3.
Mikroprotsessorid releekaitses
119
LISA. Programmeeritavad
kontrollerid SIMATIC S5
127
Kirjandus141
5
SaateksMikroprotsessortehnika on
lühikese aja jooksul levinud peaaegu kõikidesse inimtegevuse
valdkondadesse.
Arvutid on muutunud igapäevaseks töövahendiks, mikroprotsessoreid
kasutatakse juba kodumasinates, üha harvemini puutume kokku tööpinkidega, kuhu
mikroprotsessorid pole veel jõudnud. Digitaal- ja mikroprotsessortehnika areng jätkub
peadpööritava kiirusega.
Vaevalt leidub teist tehnikaala, kus seadmete
töökiirus ja
efektiivsus, hind ja mõõtmed muutuksid mõne aasta jooksul 10 ja enam korda.
Mikroprotsessorist on saanud inseneride käes universaalne vahend paljude probleemide
lahendamiseks. Energia- ja tööstusseadmete juhtimine, kontrolli-,
mõõte -, bürootehnika
jms on vaid väike
loetelu aladest , kus tänapäeval mikroprotsessoriteta läbi ei saada. Kooselu
arvutitega on muutnud meie arusaamu ja mõttemalle. Pidevatoimeliste protsesside
juhtimiseks kasutatakse üha enam diskreetseid juhtseadmeid, sest nii
paraneb süsteemi
tundlikkus, täpsus ning töökindlus. Signaalide kvantimine ja kodeerimine võimaldab
rakendada numbrilise infotöötluse
meetodeid ja programmjuhtimise põhimõtteid ning
kasutada selleks universaalseid mikroprotsessorseadmeid. Selle tulemusena vähenevad
seadmete mõõtmed, mass ja hind.
Tänapäva arvutustehnika on kujunenud hiigelpüramiidiks, mille
vundament on
mikro -
protsessorid , selle peale aga kerkivad üha uued tarkvarakorrused. Paljukihiline
hierarhiline tarkvarasüsteem on lahutanud inimese protsessorist ning vaevalt suudab arvutiklahvistikul
klõbistav operaator tunnetada oma tegevuse seost protsessori
registrite ja siinidega ning
kahendsõna bittide ja baitidega. Universaalarvutite
riist - ja tarkvara arendavad tänapäeval
vähesed tippspetsialistid, nende tööd kasutavad peaaegu kõik. Ja vaevalt et enamikule
arvutioperaatoreist pakub lähemat huvi mikroprotsessorite ehitus
Tehniliste seadmete ja tehnoloogiaprotsesside juhtimisel on riist- ja tarkvaraprobleemid
sageli
spetsiifilised ning üldlahendid puuduvad. Programmeerijalt eeldatakse
riistvara ehituse tundmist. Tööstuslikku juhtimissüsteemi projekteeriv insener peab aga tundma
mikrokontrollerite spetsiifilisi detaile,
sisend -väljundliideste omadusi ja mälu ning
protsessori töö iseärasusi. See on põhjus, miks automaatikasüsteemide insener vajab
algteadmisi mikroprotsessortehnikast.
Digitaal- ja mikroprotsessortehnika on
kahtlemata üheks tänapäeva insenerihariduse
nurgakiviks. Digitaaltehnika aluste omandamine annab üliõpilasele võimaluse paremini
mõista seda, kuidas funktsioneerib nüüdistehnika ja
tehnoloogia ; aitab mõista tehnika
arengut ning inimese ja tehnika vahelist suhet nüüd ja tulevikus; arendab süsteemset
mõtlemist ning kahandab aukartust üle mõistuse keerukana tunduvate aparaatide ja
seadmete ees.
Käesolev raamat on mõeldud õppevahendiks
energiatehnika õppevaldkonna üliõpilastele,
kuid see võib osutuda kasulikuks ka teiste tehnikaerialade üliõpilastele.
6
A u t o r i d
7
Digitaal- ja mikroprotsessortehnika arengut kajastavaid aastaarve:1948
esimene
bipolaarne transistor 1948
J von Neumani digitaalarvuti struktuur ja tööpõhimõte
1959 esimene integraallülitus, mille valmistasid J S Kilbi ja R Noyce
1960-64
integraalloogikaelementide väljaarendamine
1961
esimene kommertsotstarbeline integraallülitus
1962
esimene
MOS integraallülitus
1964
integraallülituste 14 jalaga
DIP (
dual in plane) tüüpi
kiibi väljatöötamine
1965
MOS integraallülituste tööstuslik tootmine
1967
256-
bitine püsimälukiip
1969
firma
Intel alustab mikroprotsessorite projekteerimist
1970
firma
IBM ümbrikketasmäluseade
1971 esimene 4-bitine
mikroprotsessor Intel 4004
1972
firma
Intel 1024-bitine muutmälukiip
1972-73 8 bitiste n-
MOS mikroprotsessorite tootmise algus
1973
firma
Intel 8-bitine mikroprotsessor 8080
1974
firma
Motorola 8-bitine mikroprotsessor 6800
1974
esimesed 12- ja 16-bitised mikroprotsessorid
1976
esimene ühekiibiarvuti
1976
firma
Zilog 8-bitine mikroprotsessor Z80
1976
firma
Intel 16 384-bitine muutmälukiip
1978
esimene 16-bitine firma
Intel mikroprotsessor 8086
1979
firma
Motorola 16-bitine protsessorikiip 68000
1979
firma
Intel mikroprotsessor 8088
1980
firma
Intel matemaatikaprotsessor 8087
1982
esimene 32-bitine firma
Hewlett- Packard 'i protsessorikiip
1982
firma
Intel mikroprotsessor 80286 taktsagedusega 8...16 MHz
1985
firma
Inmos Ldt. transpuuter T400
1985
firma
Intel 32-bitine mikroprotsessor 80386 taktsagedusega 16...40 MHz
1989
firma
Intel mikroprotsessor 80486 taktsagedusega 25...66 MHz
1990
antakse välja hilisemat poleemikat põhjustanud USA
patent nr 4 942 516
mikroprotsessori (
Single Chip Integrated Circuit Computer Architecture )
leiutamise kohta Gilbert Hyattile (avaldus 1970. aastast)
1992
firma
Intel mikroprotsessor 80486DX2
1993
firma
Intel mikroprotsessor
Pentium taktsagedusega vähemalt 60 MHz
8
1. DIGITAALELEKTROONIKA ALUSED1.1. Diskreetsed ja arvsignaalid1.1.1. KvantimineKvantimine tähendab klassikaliselt füüsikateoorialt kvantteooriale siirdumise menetlust.
Informaatikas on
kvantimine signaalitöötluse
operatsioon , millega pidevale signaalile
omistatakse kindlaks ajavahemikuks
diskreetne väärtus. Kvantimine toimub nii signaali
nivoo järgi kui ka ajas. Lisagem, et
signaal on sõnumi (informatsiooni) füüsikaline kandja.
Sõltuvalt füüsikalisest olemusest liigitatakse signaale
pneumo -, hüdro-, elektri-, valgus- jms
signaalideks. Mikroprotsessortehnikas käsitletakse peamiselt elektrisignaale, kuid
erijuhtudel ka optilisi ehk valgussignaale.
Suur osa looduslikest ja tehisprotsessidest on pidevatoimelised, s. t neid iseloomustavad
pidevad olekusignaalid, mida saab mõõta või hinnata suvalisel ajahetkel. Pidevatoimelisi
signaale nimetatakse neid töötlevate (analoog)seadmete järgi
analoogsignaalideks.
Mikroprotsessortehnika põhineb
diskreet- ehk katkelistel signaalidel, millele omistatakse
väärtus ainult kindlail ajahetkeil. Diskreetsignaalid jagunevad
impulss - ja arvsignaalideks.
Impulss -signaalides kodeeritakse informatsiooni impulsi parameetritega. Impulsi
olulisemad
parameetrid on amplituud (
Ai) ehk kõrgus, kestus (
ti) ehk laius, sagedus (
fi) või
periood (
τi) ja
faasinurk (
ϕi) ehk
nihe taktiimpulsi suhtes. Nende nelja parameetri alusel
tuntakse signaalide nelja
impulssmodulatsiooni liiki: 1) amplituud-impulssmodulatsiooni
(
AIM), 2) laius-impulssmodulatsiooni (
LIM), 3) sagedus-impulssmodulatsiooni (
SIM) ja 4)
faasi-impulssmodulatsioon (
FIM), mille olemusest annab ülevaate joonis 1. Märkigem, et
nende
terminite asemel võib kasutada ka pulsiamplituudi-, pulsilaiuse-, pulsisageduse- ja
pulsifaasimodulatsiooni mõisteid.
AIMLIMFIMSIMUUUUppppttttUUddUUddA = variτ tttt= var.t= const .i = var.ϕi = var.f iJoonis 1.1. Impulssmodulatsiooni liigid
9
Kvantimisperiood ehk diskreetimisintervall τ valitakse sõltuvalt kvanditava signaali
sageduslikest omadustest (spektrist) nii, et kvantimisega ei läheks kaduma signaaliga
edastatav info. Selleks peab kvantimisperiood τ olema vähemalt kaks korda lühem kui
signaali spektri suurima sagedusega harmoonilise komponendi periood
τ = 1
1
või
f =
= 2
fi2
fτmax,
(1.1)
max
ikus
f max on signaali spektri
harmooniliste komponentide suurim sagedus.
Juhul kui impulsi parameetrid ei ole määratletud, sisaldab üks impulss ühe biti
informatsiooni, s. t impulsi olemasolu võib lugeda signaaliks 1 ning selle puudumise
signaaliks 0. Kahe impulsiga opereerides saab
edastada 22 = 4
bitti infot jne. Mitmebitiseid
impulsisignaale saab kodeerida kahendarvude koodiga ning neid nimetatakse
arvsignaalideks. Digitaaltehnikas kasutatakse kõige enam 8-, 10-, 12- või 16-bitiseid
arvsignaale, mille infosisaldus on 28 = 256, 210=1024, 212 = 4096 ja 216 = 65536 bitti.
1.1.2. Kodeerimine, dekodeerimine ja koodide liigidKodeerimine on informatsiooni esitusvormi muutmine sellekohase reeglistiku alusel.
Numbritest koostatud koode nimetatakse
arvkoodideks. Arvsignaale moodustatakse
kodeerimisega. Eri arvusüsteemidele vastavad erinevad koodid. Arvusüsteemidest tuntakse
kõige enam
kümnendsüsteemi . Vähem on kasutusel nn
rooma numbrite süsteem.
Arvutustehnikas rakendatakse peamiselt kahendsüsteemi, kuid ka kaheksand- ja kuueteist-
kümnendsüsteemi. Kõiki arvusüsteeme võib jaotada positsioonilisteks süsteemideks ning
mittepositsioonilisteks süsteemideks. Viimaste hulka kuulub näiteks rooma numbrite
süsteem.
Positsiooniliseks süsteemiks nimetatakse arvusüsteemi, kus ühel ja samal arvul
on erinev väärtus sõltuvalt asukohast arvujadas. Neid süsteeme iseloomustab arvude
esitamise selgus ning aritmeetiliste
operatsioonide lihtsus. Positsiooniliste süsteemide hulka
kuuluvad nii kümnend-, kahend-, kaheksand- kui ka kuueteistkümnendsüsteem (tabel 1).
Positsioonilist süsteemi kirjeldatakse üldjuhul valemiga
−1
0
−1
−
Xasnasn= ⋅ +
2
−
L
L
1 ⋅
+ +
a1 ⋅
s +
a0 ⋅
s +
a−1⋅
s +
a−2 ⋅
s +
nn(1.2)
kus
teguriteks a võivad olla suvalised süsteemis kasutatavad arvud.
iKa positsioonilisi süsteeme on erinevaid. Üldjuhul võib arvu igale numbrile anda suvalise
kaalu, mida nimetatakse arvu
kohakaaluks. Arvu mõistmiseks tuleb ette anda
koodi võti,
mis näitab arvu kõigi
kohtade kaalu. Kümnendkoodi korral on kohakaaludeks arvud 10
n,
kus
n on koha
järjenumber . 10 on koodi
põhiarv, kuna selle järgi moodustatakse kõik
kohakaalud. Kohti loendatakse alates paremalt, mille kohakaal kümnendkoodis on 100.
10
Kahendkoodi põhiarv on 2, kohakaaludeks aga arvud 2
n. Koodi
võtmeks on harilikult
8421 , s. o 23, 22, 21, 20.
Kahendarvudel on järgmised omadused:
- kasutatakse kahte sümbolit 0 ja 1;
- põhiarvuks on 2;
- kohakaaludeks on arvud 2
n (1, 2, 4, 8, 16, 32, 64 jne), kus
n on arvu kohanumber.
Kahendarvu väärtuse leidmiseks tuleb selle kohti
tähistavad arvud korrutada kohakaalu-
dega ning seejärel liita. Nii leitakse, et kahendarvule 11001101 vastab kümnendsüsteemis
väärtus 205 (joonis 1.2). Nagu näha, on kahendarvul palju enam kohti kui vastaval
kümnendarvul. Suurimale kaheksakohalisele kahendarvule vastab kolmekohaline
kümnendarv 255 ning suurimale kuueteistkümnekohalisele kahendarvule viiekohaline arv
65535 . Sellest
tingituna on inimesel kahendarvudega opereerida tülikas.
Sümbolid : 0, 1
Sümbolid: 0, 1, 2, 3, 4, 5, 6, 7,
Põhiarv: 2
8, 9, A, B, C, D, E, F
Kohakaalud: 2
n, kus
n on kohanumber
Põhiarv: 16
Kohakaalud: 16
n, kus
n on kohanumber
Näide:Näide: 1 1 0 0 1 1 0 1C D1 x 1 = 1
0 x 2 = 0
13 x 1 = 13
1 x 4 = 4
12 x 16 = 192
1 x 8 = 8
0 x 16 = 0
2050 x 32 = 0
1 x 64 = 64
1 x 128 = 128
205Joonis 1.2. Kahendarvu väärtuse leidmine
Joonis 1.3. Kuueteistkümnendarvu
väärtuse leidmine
Kuueteistkümnendarvu esitamiseks kasutatakse kümnendarvu sümboleid 0...9 ning
ladina kirja suurtähti
A = 10,
B = 11,
C = 12,
D = 13,
E = 14,
F = 15, mida antud juhul
tõlgendatakse kui
numbreid (joonis 1.3). Kui võrrelda kahendarvu 1100
1101 vastava
kuueteistkümnendarvuga
CD, siis on näha, et üks kuueteistkümnendarvu koht vastab
neljakohalisele kahendarvule. See tähendab, et neljakohalise kahendarvu saab esitada vaid
ühe kuueteistkümnendarvu sümboliga 0...
F ehk 0...15. Kuueteistkümnendarvude väärtus
leitakse samuti kui kümnend- ja kahendarvude puhul kohaväärtuste liitmisega.
Levinumatest arvkoodidest ja arvusüsteemidest annab ülevaate tabel 1.1. Tehnikas
kasutatakse laialt
kahend-kümnendkoodi, mille mõistmiseks on vaja teada, et arvu
kodeerimisel on kasutatud korraga kahend- ja kümnendkoodi positsioonilisi süsteeme, s. t
11
mitmekohaline arv on kodeeritud kümnendkoodis, kuid iga selle number esitatakse
kahendkoodis. Kahend-kümnendkoodide korral rakendatakse mitmesuguse võtmega
koode, lisaks tavalisele 8421
koodile näiteks ka 4221 või 2421 võtmega koode.
Kahend-kümnendkoodiga 8421+3 saab lihtsustada kahend-kümnendarvude aritmeetika-
tehteid. Koodi võti 8421+3 tähendab, et
arvujada iga kümnendnumbri asemel kodeeritakse
kahendkoodis 3 võrra suurem kümnendarv, näiteks arvu 5 asemel arv 8 või arvu 8
asemel 11. Saadakse neljakohalise kahendkoodi ülekanne järgmisele kohale vastavalt
kümnendarvule (kümnendarvu ülekanne tekib arvu 9 järel, neljakohalise kahendarvu
ülekanne aga 11112 = 1510 järel). Tsüklilistest ehk peegeldunud koodidest on levinud nn
Gray kood, mida rakendatakse positsioonjuhtimisega ajamite asendiandurites. Koodi
eeliseks võrreldes teiste kahendkoodidega on see, et anduri lähimatele naaberasenditele
(naaberarvudele) vastavad koodid erinevad teineteisest minimaalselt, s. t ainult ühe järgu
võrra. Seega muutub kood anduri modulatsiooniketta liikumisel sujuvalt ning asendisignaali
töötlevate loogikaskeemide lülituste arv on minimaalne, mis suurendab seadmete
töökindlust.
Ühikkoodi kasutakse juhul, kui mingit füüsikalist suurust iseloomustab
impulsside arv, näiteks kui asendit määratakse impulssanduri impulsside loendamisega.
Tähtsad on
vigu avastavad ning
vigu korrigeerivad koodid, mida nimetatakse
veatõrjekoodideks. Seoses informatsioonitehnika arenguga on oodata nende koodide üha
laiemat rakendust. Veatõrjekoodide abil on võimalik vähendada seadmete keerukusest ning
keskkonnahäiretest põhjustatud vigu ning järelikult suurendada seadmete töökindlust. Vigu
avastavate ja korregeerivate koodide puhul on lubatud ehk õigete koodide arv märksa
väiksem võimalike koodide arvust. Seega on osa koode keelatud ehk vigased. Lubatud ja
keelatud koodide suhet iseloomustab koodi samm
d. Tavalise kahendsüsteemi korral
d = 1,
s. t kõik koodid on lubatud. Kui
d = 2, siis on lubatud ja keelatud koodide arv võrdne ning
niisugune kood võimaldab
avastada ühe vea. Kui avastatakse keelatud kood teatatakse
sellest juhtseadme või süsteemi operaatorile, kes teeb vastavad järeldused. Koodi sammu
d = 3 korral saab avastada korraga kahte viga. Kui eeldada, et korraga esineb vaid üks viga,
siis saab niisuguse koodiga ka vigu korrigeerida, s. t keelatud koodid jagunevad omakorda
rühmadesse, mille koode korrigeeritakse kas üheks või teiseks lubatud koodiks. Koodi
sammu suurenemisel avarduvad ka
vigade avastamise ning korrigeerimise võimalused. Kui
koodis on informatsiooni rohkem kui tema eristamiseks minimaalselt vaja, on tegu
liiaskoodiga. Seega sobivad liiaskoodid veatõrjekoodideks. Tuntumad veatõrjekoodid on
Hammingi ja
Reedi-Mulleri koodid.
Tabel 1.1
Arvkoodid ja
arvusüsteemid Nr
Koodi nimi
Sümbolid ai
Koodi valem või näide
1
Kahendkood 0, 1
L
a3
⋅2 +
a2
⋅2 +
a1
⋅2 +
a0
⋅
3
2
1
0 2
12
2
Kaheksand-
0, 1, 2, 3, 4, 5, 6, 7
L
a3
⋅8 +
a2
⋅8 +
a 1
⋅8 +
a0
⋅
3
2
1
0 8
kood
3
Kümnendkoo
0, 1, 2, 3, ... , 9
L
a3
⋅10 +
a2
⋅10 +
a1
⋅10 +
a0
⋅
3
2
1
0 10
d
4
Kuueteistküm- 0, 1, 2, 3, 4, 5, 6, 7, 8,
L
a3
⋅16 +
a2
⋅16 +
a1
⋅16 +
a0
⋅
3
2
1
0 16
nendkood
9, A, B, C, D, E, F
Tabeli 1.1
järg 5
Kahend-
0, 1
Näide:
kümnendkood
852 = 1000 0101 0010
8421
6
Kahend-
0, 1
Näide:
kümnendkood
852 = 1110 0111 0010
4221
7
Kahend-
0, 1
Näide:
kümnendkood
852 = 1100 0101 0010
4421
8
Kahend-
0, 1
Näide:
kümnendkood
852 = 1110 0101 0010
2421
9
Kahend-
0, 1
Näide:
kümnendkood
852 =
1011 1000 0101
8421+3
10
Tsükliline ehk
0, 1, 2, 3, ... , 9
00, 01, 02, 03, 04, 05, 06, 07, 08, 09, / 19,
peegeldunud
18, 17, 16, 15, 14, 13, 12, 11, 10, / 20, 21,
kümnendkood
22, 23, ...
11
Tsükliline ehk
0, 1
0 - 0000 6 - 0101 11 - 1110
peegeldunud
1 - 0001 7 - 0100 12 -
1010 kahendkood;
2 - 0011 8 - 1100 13 - 1011
Gray kood
3 - 0010 9 - 1101 14 -
1001 4 - 0110 10 -
1111 15 - 1000
5 - 0111 16 - 0000
12
Ühikkood
1
1, 11, 111, 1111, 11111
13
Vigu avastav
Lubatud Keelatud
kood
000 001
110111d = 2
011 010
101 100
100101 110 111
010011 00000113
14
Vigu avastav
Lubatud Keelatud
Koodid 001, 010 ja 100 parandatakse
ja korrigeeriv
001
koodiks 000
kood
000 010
d = 3
100
110
Koodid 110, 011 ja 101 parandatakse
111 011
koodiks 111
101
1.1.3. Kümnendarvude teisendamine kahend-, kaheksand- ja kuueteistkümnendarvudeksKümnendarvu teisendamiseks kahendarvuks kasutatakse joonisel 1.4
näidatud skeemi. Arv
115 jagatakse tulbas arvuga
2 ning eraldatakse
jagamise jääk 1. Jagamise tulemus
57
kirjutatakse esialgse arvu alla. Seejärel korratakse kirjeldatud tegevust seni, kuni jagamise
tulemuseks saadakse arv
1. Jagamise jääkidest moodustub eraldi
tulp , mis sisaldab
arve 1 ja 0.
Lugedes selles tulbas olevaid sümboleid alt üles leitakse lähtearvule 115 vastav
kahendarv 1110011.
Nagu joonisel näidatud, saab sama toiminguga leida ka kaheksand- või
kuueteistkümnendarve.
115=?
=1 110 011
=111 0011
2
2
=163 8
=73
=73H
16
JääkJääkJääk115 /2
1
115 /8
3
115 /16
3
7
7
57
1
14
6
28
0
1
1
14
0
7
1
3
1
1
1
Joonis 1.4. Kümnendarvude teisendamine kahend-, kaheksand- ja
kuueteistkümnendarvudeks
14
Märksa lihtsam on kümnendarve teisendada kaheksand- ja kuueteistkümnendarvudeks
kahendkoodi abil. Selleks tuleb kümnendarv teisendada
esmalt kahendarvuks ning jaotada
selle kohad triaadideks või tetraadideks, olenevalt sellest kas soovitakse leida kaheksand-
või kuueteistkümnendkoodi. Edasi kodeeritakse kahendarvu iga triaadi eraldi vastava
kaheksandarvu või tetraadi kuueteistkümnendarvu sümboliga.
Arvude teisendamist ühest
süsteemist teise näitab tabel 1.2, kuhu on koondatud mõned
kümnend-, kahend-, kuuetistkümnend- ja kahend-kümnendkoodis ehk
BCD-koodis arvud.
15
Tabel 1.2
Arvude teisendamine
Kümnendarv
Kahendarv
Kuueteist-
BCD-kood
kümnendarv
0
0
0
0000
1
01
1
0001
2
10
2
0010
3
11
3
0011
4
100
4
0100
5
101
5
0101
6
110
6
0110
7
111
7
0111
8
1000
8
1000
9
1001
9
1001
10
1010
A
0001 0000
11
1011
B
0001 0001
12
1100
C
0001 0010
13
1101
D
0001 0011
14
1110
E
0001 0100
15
1111
F
0001 0101
16
1 0000
10
0001 0110
17
1 0001
11
0001 0111
18
1 0010
12
0001 1000
19
1 0011
13
0001 1001
20
1 0100
14
0010 0000
126
111 1110
7E
0001 0010 0110
127
111 1111
7F
0001 0010 0111
128
1000 0000
80
0001 0010 1000
510
1 1111 1110
1FE
0101 0001 0000
511
1 1111 1111
1FF
0101 0001 0001
512
10 0000 0000
200
0101 0001 0010
1.1.4. Informatsiooni hulk ja signaali vigaArvsignaalis sisalduva informatsiooni hulga ja signaali vea vahel on olemas kindel
sõltuvus .
Arvsignaali bittide arv
n ehk kahendarvu järkude arv määrab signaali diskreetsusastmete
(diskreetide) arvu
N = 2
n. Signaali kodeerimisveaks loetakse maksimaalselt ühe diskreedi
väärtus. Seega on 10-
bitise kahendsignaali viga 1/1024 ≅0,1 %.
16
1.2. Loogikafunktsioonid ja loogikalülitusedning nende esitusviisid1.2.1. LoogikatehtedLoogikalülituste
projekteerimine , talitlus ja selle analüüs põhineb loogikaalgebral (
Boole 'i
algebra ). Muutujatel saab siin olla ainult kaks väärtust 0 - väär ja 1 - tõene. Seepärast
nimetatakse seda loogikat ka
binaarloogikaks. Loogilisi muutujaid tähistatakse ladina
tähestiku tähtedega.
Sõltumatuid muutujaid (
sisendeid ) nimetatakse argumentideks, neist sõltuvaid muutujaid
aga funktsioonideks.
Loogikafunktsiooni kõik argumendid on loogilised muutujad, millel
on kaks väärtust 0 ja 1. Kõiki loogikafunktsioone väljendavad kolm põhitehet: loogiline
korrutamine , loogiline
liitmine ja loogiline
eitus .
Loogiline korrutamine (NING). NING-funktsioon on võrdne ühega ainult juhul, kui kõik
argumendid on võrdsed ühega.
Tehte tähistamiseks kasutatakse nii harilikku korrutus-
märki ( • ) kui ka loogilise korrutamise eritähist - katust (∧). Loogilist korrutamist
nimetatakse ka konjunktsiooniks.
Loogiline liitmine (VÕI). VÕI-funktsioon on üks siis, kui kas või üks argumentidest
võrdub ühega. VÕI-tehte tähistamiseks kasutatakse kas pluss (+) märki või loogilise
liitmise eritähist - V tähe kujulist märki (∨ ). Loogilist liitmist nimetatakse ka disjunktsiooniks.
Loogiline eitus (EI). EI-funktsioonil on argumendi vastandväärtus. Kui argument on 1, siis
funktsioon võrdub 0 ning vastupidi. EI-tehet tähistatakse kriipsuga sümboli peal, näiteks
argumendi
x eitus on
x . Loogilist eitust nimetatakse ka inversiooniks.
Loetletud kolm loogikatehet moodustavad
loogiliselt täieliku süsteemi, mida rakendades
saab realiseerida mis tahes loogikafunktsiooni. Kõiki kolme
loogika põhifunktsiooni on
loogikaalgbra reeglite alusel võimalik realiseerida ainult üht tüüpi loogikaelementide kas
NING-EI või VÕI-EI abil. Järelikult võib NING-EI- ja VÕI-EI-elemente ning tehteid
nendega nimetada
universaalseteks loogikaelementideks ja -teheteks.
Lisaks põhifunktsioonidele leiavad kasutamist mitmed loogika tüüpfunktsioonid, nagu
alternatiiv ,
ekvivalentsus , implikatsioon jt. Niisuguste funktsioonide ja elementide
olemasolu lihtsustab loogikalülituste sünteesi. Loogikafunktsioonidest ja loogika
tüüpelementidest annab ülevaate tabel 1.3.
Keerukamaid loogikalülitusi, mis koosnevad paljudest loogikaelementidest ning on ette
nähtud kindlate funktsioonide täitmiseks, nimetatakse
funktsionaalseteks
loogikalülitusteks, mille hulka võib lugeda ka tabelis 1.3 toodud mäluelemendi.
17
Tabel 1.3
Loogikafunktsioonid ja -elemendid
Nr
Loogika-
Loogika-
Loogikafunktsiooni
Loogikafunktsiooni
Loogika-
funktsiooni funktsiooni
kontaktaseskeem
matemaatiline
elemendi
nimetus
selgitus esitus
tähis
1
2
3
4
5
6
1.
NING
Lüli
väljundis on
y
y =
x1⋅
x2 ⋅
x3
x1
x1
x2
x3
signaal 1, kui
x2
y
signaal 1 on tema
y =
x1∧
x2 ∧
x3
x3
1. ning 2. ning 3.
y
ning jne
sisendis 2.
VÕI
Lüli väljundis on
y
y =
x1+
x2 +
x3
x1
signaal 1, kui
x1
x2
1
y
signaal 1 on tema
x2
y =
x1∨
x2 ∨
x3
x3
1. või 2. või 3.
x3
või jne sisendis
y
3.
EI
Lüli väljundis on
y
y =
xx
1
signaal 1, kui
x
y
tema sisendis on
signaal 0 ja
y
vastupidi
4.
NING-EI
Väljundis on
y
y =
x1⋅
x2 ⋅
x3
x1
x1
x2
x3
signaal 0, kui
x2
y
kõigis sisendites
y =
x1∧
x2 ∧
x3
x3
on signaal 1
y
y =
x1⋅
x2 ⋅
x3
5.
VÕI-EI
Väljundis on
y
y =
x1+
x2 +
x3
x1
1
signaal 0, kui kas
x1
x2
y
või ühes sisendis
x2
y =
x1∨
x2 ∨
x3
x3
on signaal 1
x3
y
y =
x1+
x2 +
x3
18
Tabeli 1.3 järg
1
2
3
4
5
6
6.
Ekvi-
Väljundis on
y
y =
x1⋅
x2 +
x1⋅
x2
x1
x1
x2
y
valent-
signaal 1 ainult
x2
sus
siis, kui
x1
x2
sisenditel on
ühesugused
y
väärtused
7.
Välistav
Väljundis on
y
y =
x1⋅
x2 +
x1⋅
x2
x1
M2
x1
x2
y
VÕI
signaal 1 ainult
siis, kui sisendite
x2
1⊕
x1
x2
yxx2
olek on erinev
y
8.
Impli-
Väljundis on
y
= 1+
x1
x1
yxx2
1
katsioon
signaal 0 ainult
y
siis, kui
x2 = 1 ja
x2
x2
x1 = 0.
Loogiline
y
järeldus
9.
Keeld
Väljund võrdub
y
y =
x ⋅
ux
x
u
sisendiga
x, kui
y
signaal
u on 0.
u
y
Sinaali
u = 1
korral on väl-
jundis signaal 0
sõltumata
sisendist
x10. Mälu
Sisendiga
x1
y
y = (
x1+
y') ⋅
x2
Q
x1
lülitatakse
x2
S
T
väljund olekusse
y
Q
1 ning see olek
R
säilib, kuni seda
y
ei
muudeta sisendiga
x2
19
1.2.2. LoogikaseadusedLoogikaseadusteks nimetatakse tavaliselt
binaarloogika algebra ehk Boole' i algebra seadusi.
Algebraks nimetatakse üldjuhul elementide hulka, millega tehakse tehteid,
kusjuures nende
tehete aluseks on kindlad reeglid ehk
aksioomid . Aksioomid määravad ära algebra
põhitehete omadused ja seosed. Kuna nüüdismatemaatikas on palju algebra liike
(universaalalgebra,
hulgaalgebra , loogikaalgebra), siis kehtivad neis ka erinevad
tehted ja
aksioomid. Boole'i algebra elementideks on binaarloogika
signaalid (argumendid)
väärtustega 0 ja 1. Nende signaalidega saab
sooritada kõiki loogikatehteid ning moodustada
suvalisi loogikafunktsioone.
Loogikatehete kohta kehtivad järgmised
binaarloogika
aksioomid:
1. Argumentide
järjekorda võib
tehtes muuta
a + b = b + a.
(1.3)
2.
Sulgusid võib avada ehk funktsiooni võib teisendada loogiliste osakorrutiste
summaks
a(b + c) = ab + ac.
(1.4)
3. Funktsiooni võib teisendada loogiliste osasummade korrutiseks
a + bc = (a + b)(a + c).
(1.5)
4.
Argumendi ja tema eituse loogiline korrutis võrdub nulliga ega muuda loogilise
summa väärtust
a+
a ⋅
a =
a .
(1.6)
5.
Suvalise argumendi ja tema eituse loogiline summa võrdub alati ühega
a +
a =
b +
b = 1.
(1.7)
6.
Suvalise argumendi ja tema eituse loogiline korrutis võrdub alati nulliga
a ⋅
a =
b ⋅
b = 0.
(1.8)
Loogikatehete ja aksioomide põhjal leitakse kahendarvude kohta kehtivad järgmised
reeglid:
0 = 1; 1 = 0;
0 ⋅ 0 = 0; 0 ⋅1 = 0; 1⋅ 0 = 0; 1⋅1 = 1;
(1.9)
20
0 + 0 = 0; 0 + 1 = 1; 1+ 0 = 1; 1+ 1 = 1.
21
Aksioomide põhjal tuletatakse peamised loogikaseadused:
1.
Domineerimisseadus I. Suvalise muutujate hulga
konjunktsioon on null
(tühihulk), kui kas või ainult üks muutujatest võrdub nulliga
0 ⋅
a ⋅
b ⋅
cL= 0.
(1.10)
2.
Domineerimisseadus II. Suvalise muutujate hulga
disjunktsioon on üks
(
universaalhulk ), kui kas või ainult üks muutujatest võrdub ühega
1 +
a +
b +
c+L= 1.
(1.11)
3.
Idempotentsus- ehk samaväärsusseadus (kehtib ka kolme ja enama
muutuja kohta).
Argumendi loogiline korrutamine või liitmine iseendaga ei muuda tulemi
väärtust
a ⋅
a =
a;
a +
a =
a.
(1.12)
4.
Eituse eitamise seadus. Argumendi väärtus tema kahekordsel eitamisel ei muutu
a =
a.
(1.13)
5.
Komplementaarsus - ehk täiendiseadus. Argumendi ja tema eituse ehk täiendi
loogiline korrutis on null, loogiline summa üks
a ⋅
a = 0;
a +
a = 1.
(1.14)
6.
Kommutatiivsusseadus. Argumentide järjekorda loogikatehetes võib muuta
a ⋅
b =
b ⋅
a;
a +
b =
b +
a.
(1.15)
7.
Assotsiatiivsusseadus. Mitme argumendi loogilist korrutamist ja loogilist liitmist
võib sooritada suvalises järjekorras või samaaegselt
a ⋅ (
b ⋅
c) = (
a ⋅
b)⋅
c =
a ⋅
b ⋅ ;
ca + (
b +
c) = (
a +
b) +
c =
a +
b + .
c(1.16)
8.
Distributiivsusseadus (
sulgude avamise seadus). Argumentide loogilist summat
võib loogiliselt korrutada argumendiga
a või korrutada esmalt kõiki argumente
a-ga ning
seejärel need korrutised loogiliselt liita. Argumentide loogilisele korrutisele võib liita
argumendi
a või esmalt liita loogiliselt kõikidele argumentidele
a ning seejärel need
summad loogiliselt korrutada. Kui esimene teisendus vastab sulgude
avamisele
arvude algebras, siis teine on
rakendatav üksnes loogikaalgebras
a ⋅ (
b +
c) =
a ⋅
b +
a ⋅ ;
c22
a +
b ⋅
c = (
a +
b)⋅ (
a +
c).
(1.17)
23
9.
Absorbtsiooni - ehk neelduvusseadused. Kui kahe argumendi loogilist summat, kus
üheks argumendiks on
a, korrutada sama argumendiga
a, siis teine argument
neeldub
ning tulemiks on samuti
a. Sama kehtib ka siis, kui korrutatavaid summasid
on
rohkem ning kui kõigis neis sisaldub ühe argumendina
a. Seadus on rakendatav nii
summade korrutiste kui ka korrutiste summade kohta. Kui osasummas või osakorru-
tises sisaldub argumendi
a eitus (
inversioon ), on tulemiks
a ja teise argumendi
korrutis
ab või summa
a+ba ⋅ (
a +
b) =
a;
a ⋅ (
a +
b)⋅ (
a +
c)L(
a +
w) =
a;
a +
a ⋅
b =
a;
a +
a ⋅
b +
a ⋅
c+L+
a ⋅
w =
a;
(1.18)
a ⋅ (
a +
b) =
a ⋅ ;
ba +
a ⋅
b =
a +
b.
10.
Kleepimisseadus. Kui üks loogiline korrutis sisaldab argumenti
b ja teine selle eitust,
siis nende korrutiste loogilisel summeerimisel argument koondub. Kui üks loogiline
summa sisaldab argumenti
b ja teine selle eitust, siis nende summade loogilisel
korrutamisel argument koondub
a ⋅
b +
a ⋅
b =
a;
(
a +
b)⋅(
a+
b)= ;
a(1.19)
Üldised kleepimisseadused:
a ⋅
b +
a ⋅
c +
b ⋅
c =
a ⋅
b +
a ⋅
c;
(
a +
b)⋅(
a +
c)⋅(
b +
c)= (
a +
b)⋅(
a +
c);
(1.20)
(
a +
b)⋅(
a +
c)=
a⋅
c +
a ⋅ .
b11.
De Morgani seadused. Argumentide loogilise korrutise eitus võrdub nende
argumentide eituste loogilise
summaga . Argumentide loogilise summa eitus
võrdub nende argumentide eituste loogilise korrutisega. De Morgani seadusi
rakendades saab
asendada loogilise liitmistehte loogilise korrutamisega ning
vastupidi loogilise korrutamise tehte loogilise liitmisega
a ⋅
b =
a +
b ;
a +
b =
a ⋅
b ;
a ⋅
b ⋅
cL
w =
a +
b +
c +L+
w;
(1.21)
a +
b +
c+L+
w =
a ⋅
b ⋅
cL
w.
Üldistatud De Morgani ehk
Shannoni seadus
f (
a, ,
b ,
c L ,
w ,
⋅ +) =
f (
a,
b,
c,L,
w,+, )⋅.
(1.22)
24
Loogikaseadusi saab tõestada loogika tõeväärtustabelitega või relee-kontaktskeemide abil.
De Morgani seaduste tõestus loogika tõeväärtustabelite abil on toodud tabelis 1.4.
Tabel 1.4
ababababa +
b0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
aba+ba +
babab0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
Loogikaseaduste tõestamisel kontaktskeemide abil joonistatakse võrrandite vasak- ja
parempoolsete
avaldiste alusel välja kontaktskeemid ning võrreldakse neid omavahel.
Avatud kontakt vastab signaalile 0 ning suletud kontakt signaalile 1. Kontaktide
jadaühendus vastab loogilisele konjunktsioonile (loogiline NING-funktsioon), kontaktide
rööpühendus aga disjunktsioonile (loogiline VÕI-funktsioon). Avanevale kontaktile vastab
inversioon ehk loogiline EI-funktsioon. Näiteks saab De Morgani seaduste tõestuse esitada
kontaktskeemide abil järgmiselt:
a)b)a b = a + bKaaba = 0kba = 1c)a = 1a + b = a baKa = 0abbk25
Joonis 1.5. De Morgani seaduse tõestus kontaktskeemide abil
Boole'i ehk loogikafunktsioonide teisendamiseks eraldatakse nende hulgast nn
elementaarfunktsioonid. Nendeks on esiteks kõik mõeldavad kahe muutuja funktsioonid,
sealhulgas
eespool vaadeldud inversioon, disjunktsioon ja konjunktsioon; kahe muutuja
funktsioone on kokku 16 (tabel 1.5). Teiseks kuuluvad elementaarfunktsioonide hulka kõik
rohkem kui kahe argumendiga funktsioonid, milles argumendid on omavahel seotud kas
ainult disjunktsiooni- või ainult konjunktsioonitehtega.
Tabel 1.5
a
b
f0
f1
f2
f3
f4
f5
f6
f7
f8
f9
f10 f11 f12 f13 f14 f15
"0"
ab⊕ ∨
ba"1"
ab
ba
ba
ab
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Boole'i funktsiooni standardesituseks on tema
normaalkuju . Loogikafunktsiooni
normaalkuju koosneb
elementaarkonjunktsioonidest (konjunktsioonitehte abil seotud
otsestest või inverteeritud muutujatest, kus iga muutuja esineb vaid üks kord). Kui
loogikafunktsioon on esitatud elementaarkonjunktsioonide disjunktsioonina, nimetatakse
esitusviisi funktsiooni
disjunktiivseks normaalkujuks (DNK). Vähem kasutatakse
loogikafunktsiooni
konjunktiivset normaalkuju (KNK), mil funktsioon esitatakse
elementaardisjunktsioonide konjunktsioonina. Kui funktsiooni disjunktiivse normaalkuju
iga elementaarkonjunktsioon sisaldab kõiki muutujaid, nimetatakse funktsiooni esitusviisi
tema
täielikuks disjunktiivseks normaalkujuks (TDNK). Täielikku disjunktiivset
normaalkuju on
hõlpus leida loogikafunktsiooni oleku- ehk tõeväärtustabelist.
1.2.3. Loogikalülituste süntees ja minimeerimineLoogikalülituste konstrueerimisel on oluline lülitust võimalikult lihtsustada, mis vähendab
lülituse hinda ja koostamise töömahtu. Seepärast tuleb juba loogikalülituste sünteesil
funktsioone kindlate kriteeriumide järgi minimeerida. Kõige enam on läbi töötatud
loogikafunktsioonide
täielike disjunktiivsete
normaalkujude minimeerimismeetodid.
Tavaliselt on eesmärgiks leida minimaalse pikkusega loogikafunktsiooni algebraline
avaldis ,
milles on minimaalne arv sisendmuutujate
tähiseid , näiteks
minimaalne disjunktiivne
normaalkuju ehk
MDNK. Loogikafunktsioonide minimeerimiseks kasutatakse 1) vahetut
26
lihtsustamist, 2) lihtsustamist
Karnaugh kaardi abil, 3) Quine - Mc Cluskey meetodit,
4) Blake' i meetodit jms.
Karnaugh kaart on loogikafunktsiooni tõeväärtustabeli ehk olekutabeli erikuju, mida
kasutatakse funktsiooni minimeerimiseks. Karnaugh kaart on ruudu- või ristkülikukujuline
lahterdatud tabel. Lahtrite arv sõltub funktsiooni sisendmuutujate (argumentide) arvust
n
ning vastab muutujate kombinatsioonide arvule 2
n. Kahe, kolme ja nelja muutuja
funktsiooni Karnaugh kaardid on joonisel 1.6. Muutujad ja funktsiooni väärtsused
paigutatakse tabelisse nii, et võimalik oleks esitada kõiki muutujate kombinatsioone. See
eeldab muutujate erilist paigutust, nagu on näidatud joonisel. Klambriga hõivatud alas on
muutujal otsene, väljaspool klambrit aga inverteeritud väärtus. Karnaugh
kaarti saab
koostada loogikafunktsiooni tõeväärtustabeli või algebralise võrrandi järgi.
Karnaugh kaardi iseloomulikuks omaduseks on, et funktsiooni väärtused erinevad kõrvuti
asuvates lahtrites vaid ühe muutuja poolest, s. t naaberlahtrisse minekul muudab
(inverteerib) oma olekut vaid üks sisendmuutuja. Seejuures loetakse naabriteks ka kaardi
äärmised
vasakpoolsed ja äärmised parempoolsed ning ülemised ja alumised
lahtrid .
Naaberlahtreid, mis erinevad vaid ühe muutuja poolest, kasutatakse loogikafunktsiooni
minimeerimiseks.
a)b)c)cdbbcaaabJoonis 1.6. Karnaugh kaardid kahe (
a), kolme (
b) ja nelja muutuja (
c)
loogikafunktsiooni jaoks
On antud loogikafunktsiooni
z = f(a, b, c) täielik disjunktiivne normaalkuju
z =
ab c +
abc +
ab c +
abc +
abc.
(1.23)
Avaldist saab lihtsustada, kui tuua muutujad sulgude ette, kuid see ei kindlusta soodsaima
lahenduse saamist. Loogikalülituse minimeerimiseks on otstarbekas kasutada Karnaugh
kaarti (joonis 1.7), millele vastab
olekutabel 1.6, kus on toodud kõigile võimalikele
sisendsignaalide kombinatsioonidele vastavad väljundsignaali(de) väärtused. Karnaugh
27
kaardil moodustatakse ühtedega täidetud ruutudest ristkülikukujulised lahtrid suurusega 1,
2, 4, 8, ...
ruutu , taotledes et
ruudud oleksid nii suured kui võimalik. Kontuurid võivad
üksteisega ka kattuda.
Seejärel kirjutatakse loogikafunktsiooni avaldis disjunktiivsel normaalkujul, milles igale
kontuurile vastab elementaarkonjunktsioon muutujatest, mis terve kontuuri jaoks on kas
inverteerimata või inverteeritud.
Tabel 1.6
Funktsiooni 1.23 olekutabel
a
b
c
z
Vaadeldava kaardi tarvis saab kirjutada
loogikafunktsiooni järgmisel kujul:
0
0
0
1
z =
ab +
ac +
bc +
ab c . (1.24)
0
0
1
0
0
1
0
0
Kui tuua muutujad sulgude ette, saab
0
1
1
1
avaldise tähtede arvu veelgi vähendada
1
0
0
0
1
0
1
1
z =
a(
b +
c) +
bc +
ab c. (1.25)
1
1
0
1
1
1
1
1
Sellele avaldisele vastab loogikalülitus
joonisel 1.8.
a bc& a(b+c)c1 b+cb1& bc10101 aa0111& a b c1 bJoonis 1.7. Funktsiooni Karnaugh
1 ckaart
Joonis 1.8. Funktsioonile vastav loogikalülitus
28
Quine - Mc Cluskey meetodi kohaselt määratakse
kõigepealt esmased ehk lihtimplikandid
ning seejärel eraldatakse neist olulised lihtimplikandid. Minimeerimise tulemusena saadakse
funktsiooni minimaalne disjunktiivne või konjunktiivne normaalkuju.
29
1.3. Funktsionaalsed loogikalülitused1.3.1. TrigeridTriger (
flip -flop) on kahe stabiilse
olekuga loogikalülitus. Ühte olekutest tähistatakse
numbriga 1, teist numbriga 0.
Trigeri olek vastab tema väljundsignaalile. Sõltuvalt
sisendsignaalist säilitab triger endise oleku või muudab seda hüppeliselt. Loogikalülituste
koostamise lihtsustamiseks on
trigeril tavaliselt kaks väljundit: otsene, mida tähistatakse
tähega
Q, ja inversne
Q . Tööpõhimõtte järgi jaotatakse
trigereid seadesisenditega ehk
RS-trigeriteks, loendussisenditega ehk
T-trigeriteks, andmesisenditega ehk
D-trigeriteks ning
universaalsisenditega ehk
JK-trigeriteks. Kui trigeri oleku muutmine toimub kas või ühe
sisendi kaudu täiendava sünkroniseerimissignaali abil, nimetatakse trigerit sünkroonseks
vastupidisel juhul aga asünkroonseks. Sõltuvalt tööpõhimõttest ning ehitusest liigitatakse
trigereid ühe- või kahetaktilisteks ning tähistatakse vastavalt
T või
TT-ga.
Trigerite põhilised
skeemid ning tähised on tabelis 1.7
Tabel 1.7
Trigerite skeemid ja tähised
Tüüp
Olekutabel
Tingmärk
Skeem
Asünk-
S R QQt QRt+11QS&QSTrooonne 0 0 1 1
RS-triger 0 0 0 0
Q 0 1 1 0
R 1 0 1 1
1Q&Q 1 0 0 1
SR 1 1 1 x
1 1 0 x
Sünk-
S R QQSt Qt+1&STroonne
0 0 1 1
&QRS-triger 0 0 0 0
CQC 0 1 1 0
R 1 0 1 1
R&&Q 1 0 0 1
R 1 1 1 x
1 1 0 x
RTabeli 1.7 järg
30
SSünk-
S R Qt Qt+1roonne
0 0 1 1
&&SQ&&Qkahe-
0 0 0 0
SQtaktiline 0 1 1 0
STTCRS-triger 0 1 0 0
C&&Q&&Q 1 0 1 1
QRR 1 0 0 1
1 1 1 x
R&R 1 1 0 x
Sünk-
J K QQt Qt+1JTTroonne
0 0 1 1
&Ckahe-
0 0 0 0
JQQSTTtaktiline
0 1 1 0
KCCJK-triger 0 1 0 0
QR 1 0 1 1
K& 1 0 0 1
1 1 1 0
1 1 0 1
QD-triger
D QQDt Qt+1STTDT 0 0 0
CC 0 1 0
QQR 1 0 1
C1 1 1 1
T-triger
AsünkroonneQQSTTTTTCQTRQ&SünkroonneQQSTTTTTTCCQQRC&31
Asünkroonse ühetaktilise RS-trigeri saab koostada VÕI-EI- või NING-EI-elementidega,
mis ühendatakse nii, et moodustuks positiivne tagasiside. Seepärast on trigeril võimalik vaid
kaks stabiilset olekut, kus ühe elemendi väljundis on signaal 1 ja teise elemendi väljundis 0.
Trigeri otsene väljund
seatakse olekusse 1, kui sisendisse
S (
set) antakse signaal 1. Otsene
väljund seatakse olekusse 0, kui sisendisse
R (
reset ) antakse signaal 1. Juhul kui sisendite
S ja
R signaalid on 0-d, säilitab triger väljundis oma endise oleku. Kui mõlemasse sisendisse
antakse korraga signaal 1, muutuvad nii otsene kui ka inverteeritud
väljundsignaal määramatuks, mistõttu niisugune signaalikombinatsioon pole lubatud.
RS-trigereid
nimetatakse ka
seadesisenditega trigeriteks.
Sünkroonne ühetaktiline RS-triger erineb asünkroonsest
trigerist selle poolest, et trigeri
olek muutub vaid kindlail sünkroimpulssidega määratud ajahetkeil. Lisaks infosisenditele
S
ja
R on tal veel sünkroniseerimissisend
C (
clock ). Trigeril võivad olla korraga nii
sünkroonsed kui ka mittesünkroonsed
sisendid . Sünkroniseeritud infosisend toimib hetkel,
mil saabub sünkroniseerimissignaal.
Kahetaktiline RS-triger koosneb kahest järjestikku lülitatud ühetaktilisest trigerist.
Ühetaktilise trigeri puuduseks on, et ta ei võimalda samaaegselt infot vastu võtta ja
edastada, sest tema väljund muutub kohe pärast
sisendsignaali saabumist. Järelikult on info
sisestamise hetkel väljundi olek ebamäärane, s. t pole teada, kas sealt loetakse trigeri
eelmist või järgmist olekut. Probleemi lahendab kahetaktiliste sünkroonsete trigerite
kasutamine. Trigeri esimese ja teise astme sünkroniseerimissignaal on pool perioodi
nihutatud. Seega kirjutatakse sünkroniseerimissignaali esimese poolperioodi jooksul info
sisendist trigeri esimesse astmesse ning samal ajal on väljundist võimalik lugeda trigeri
eelmisele taktile vastavat olekut. Teise poolperioodi jooksul viiakse info trigeri
esimesest astmest teise, mille järel triger on valmis järgmisteks infovahetusteks. Kahetaktilise trigeri
oleku muutumine toimub pärast sünkroniseerimissignaali lõppu, s. t tema tagafrondiga.
Kahetaktiliste trigeritega saab koostada suvalisi loogikaskeeme, sealhulgas ühendada trigeri
väljund kokku sisendiga. Peale sünkroniseeritud sisendite võivad kahetaktilisel
RS-trigeril
olla ka mittesünkroniseeritud sisendid. Seadesisenditega
RS-trigerid on aluseks teiste
trigerilülituste koostamisel.
Loendussisendiga T-trigeril on vaid üks infosisend
T (
trigger , toggle), kus iga järgnev
sisendimpulss 1 muudab trigeri oleku vastupidiseks. Signaali 0 korral olek ei muutu.
T-triger
realiseerib loogikafunktsiooni
Q(
t + )
1 = (
Q t )
T (
t )∨
Q (
t)
T (
t).
(1.26)
See funktsioon vastab loogikafunktsioonile alternatiiv ehk
summeerimine mooduli 2 järgi.
Asünkroonse
T-trigeri saab koostada kahetaktilisest
RS-trigerist, kui rakendada seal
täiendavaid tagasisidesid ning kasutada sisendina
T sünkroniseerimissisendit
C.
Sünkroonse
T-trigeri saamiseks tuleb
RS-trigeri sisendisse lülitada loogikaelemendid NING.
T-trigerite põhiliseks kasutusalaks on loendurid.
Andmesisendiga D-triger on samuti nagu
T-triger ühe infosisendiga. Trigeri
väljundsignaal
kordab sisendsignaali, kuid see toimub ajaliselt sünkroniseerimisimpulsside
perioodi (ühetaktilise trigeri korral poole perioodi) võrra hiljem. Seega võimaldab
D-triger
lühiajaliselt säilitada informatsiooni, mis paljude loogikaseadmete juures on väga oluline.
32
D-trigeri saab koostada
RS-trigerist, kui juhtida selle
S- ja
R- sisendeid korraga,
S- sisendit otse ja
R-sisendit läbi inverteri. Sel juhul töötab triger ainult seaderež iimis, s. t tal puudub
hoiderež iim. Ühist sisendit tähistatakse tähega
D (
data, delay).
D-triger töötab vastavalt
loogikafunktsioonile
Q(
t + )
1 =
D(
t).
(1.27)
Universaalsed JK-trigerid on
lihtsate täiendustega muudetavad nii seade-, loendus- kui ka
andmesisenditega trigeriteks. Sisendid
J (
jump ) ja
K (
key) vastavad sisenditele
S ja
R, s. t
signaal 1 sisendis
J viib trigeri olekusse 1 ning signaal 1 sisendis
K olekusse 0 sõlutumata
sellest, mis olekus triger varem oli. Erinevalt
RS-trigerist võib
JK-trigeri sisenditesse
J ja
K
anda korraga signaalid 1, mis muudab trigeri oleku vastupidiseks. Seega toimib
JK-triger
niisugusel juhul nagu loendussisendiga
T-triger.
JK-triger toimib vastavalt loogika-
funktsioonile
Q(
t + )
1 =
K (
t)
Q(
t)∨
J (
t)
K (
t)∨
J (
t)
Q(
t) .
(1.28)
1.3.2. RegistridRegistriks nimetatakse trigeritest koosnevat
seadet , mis võimaldab
salvestada , säilitada ning
taasesitada infot ühe sõna kaupa. Lisaks nihutatakse registri abil infosõna
bitte vasakule või
paremale. Sõna nihutamisega muundatakse rööpkoodis esitatud info jadakoodiks ning
vastupidi jadakoodis esitatud info rööpkoodiks. Sõna pikkus sõltub registri trigerite arvust
ning võib olla väga erinev. Enam on levinud 8-, 16-, 24- ja 32-bitised registrid, mis vastavad
sõnapikkusele 1, 2, 3 ja 4
baiti . Registri põhimõtteskeem on joonisel 1.9.
Registrit juhitakse
signaalidega vastuvõtt ehk
kirjutus (
write) ja 0-seade (
reset). Signaaliga
write kirjutatakse
sisendite
A0...An informatsioon
registrisse , signaaliga
reset aga kustutatakse sealt. Juhul
kui info kirjutatakse trigeritesse mõlema sisendi
S ja
R kaudu parakoodis (otse ja
inverteeritult), pole
eelnenud informatsiooni kustutamine (
reset) vajalik ning registril
puudub vastav juhtimissisend.
a)
b)
AnA1A000QQQRG11S TTS TTS TTCCC22QQQRRRnRRRResetCWriteRnJoonis 1.9.
Register : a) põhimõtteskeem, b) tähis
33
Nihkeregistri
koostamiseks kasutatakse nii
RS-,
D- kui ka
JK-trigereid.
RS-trigeritega
nihkeregistri skeem on joonisel 1.10. Trigeri otsene ja inverteeritud väljund ühendatakse
järgmise trigeri seadesisenditega
S ja
R. Seega toimub iga taktiga infosõna
nihutamine ühe
biti võrra. Sõltuvalt sellest kuidas trigerid omavahel ühendatakse, nihkub infosõna kas
paremale või vasakule. Iga
takti keskel nihutab sünkrosignaal info trigerite esimestest
astmetest teistesse.
c(t1)C(t2)QQ i+1STSTccQQRRQQ iSTSTccQQRRQQ i-1STSTccQQRRQQi-2i-2Joonis 1.10. Nihkeregister
1.3.3. LoenduridLoenduriks nimetatakse impulsside loendamiseks ette nähtud loogikalülitust. Loendureid
kasutatakse nii automaatikaseadmetes kui ka arvutustehnikas. Energeetikas tarvitatakse
loendure näiteks elektriarvestites, elektriajamite asendiandurites jm. Loendure liigitatakse
summeerivateks (päripidi loendavateks), lahutavateks (
tagurpidi loendavateks) ja
reversiivseteks. Sõltuvalt signaali ülekande viisist loenduri trigerite vahel jaotatakse
loendure jada- ja rööpülekandega loenduriteks.
Jadaülekandega loendur koosneb järjestikku lülitatud
T-trigeritest (joonis 1.11). Iga
sisendimpulss
x lülitab oma tagafrondiga ahela esimese trigeri ringi. Iga kahe sisendimpulsi
järel lülitub trigeri väljund korraks sisse ja välja, s. t tema väljundimpulsside muutumise
sagedus on kaks korda väiksem kui sisendimpulssidel. Võib öelda, et loendussisendiga
34
triger
jagab impulsside sageduse kahega. Ahela teise trigeri väljundis on sagedus 4 korda,
kolmanda trigeri väljundis 8 korda, neljanda trigeri väljundis 16 korda jne väiksem.
Jadaülekandega loenduri puuduseks on signaali ülekandel tekkiv hilistumine
th, mis
suureneb koos loenduri
astmete arvuga. Suure loendusastmete arvu ning taktiimpulsside
sageduse korral võib hilistumine ületada takti kestuse. Sel juhul ei vasta loenduri
väljundsignaal enam tegelikult loendatud impulsside arvule ning süsteemis tekib viga. Vea
vältimiseks tuleb vähendada taktiimpulsside sagedust, mis omakorda
alandab kogu seadme
töökiirust.
Rööpülekandega loendurit kasutatakse suure töökiirusega
seadmetes . Võrreldes
jadaülekandega loenduriga toimub trigeritevaheline signaalide ülekanne kõigi astmete jaoks
korraga ning seetõttu ei sõltu hilistumine loenduri astmete arvust. Rööpülekandega loenduri
skeem ja signaalidiagramm on joonisel 1.12.
Rööpülekandega loenduri iseärasuseks on, et sisendimpulsid antakse kõikidele trigeritele
korraga ning eelmiste astmete väljundid lülitatakse järgmiste astmete trigerite sisenditesse.
Nii valmistatakse järgmised
astmed ette ümberlülitumiseks, mis toimub sisendimpulsi
saabumisel sõltumatult sellest, kus ahela osas triger asub. Lülituse puuduseks on, et ahela
trigerite arvu suurenemisel kasvab ka vajalik sisendite arv ning skeemi
keerukus . Seepärast
pole rööpülekandega loenduril tavaliselt rohkem kui 4...5 astet. Rööpülekandega loenduri
eeliseid saab kasutada juhul, kui lülitada ta rühmaülekandega loenduri skeemi.
Rühmaülekandega loendur koosneb mitmest 4-järgulisest rööpülekandega loendurist, mille
vahel kasutatakse signaali jadaülekannet. Tänu sellele väheneb loenduri
summaarne hilistumine 4 korda.
a)
Q1Q2Q3Q4QQQQTTTTTTTT Impulsid TTTTQQQQRRRRResetb)
TtQ1tQ2tQ3tQ4t ht35
Joonis 1.11. Jadaülekandega loendur: a) skeem, b) signaalidiagramm
a)
Q1Q2Q3Q41111 & TT& TT& TT& TT1 J1 JJJCCCC111 &&&&KKKK111RRRRResetImpulsidb)
TtQ1tQ2tQ3tQ4tthJoonis 1.12. Rööpülekandega loendur: a) skeem, b) signaalidiagramm
Reversiivloendur loendab impulsse nii päri- kui ka vastupidi. Loendussuuna muutumine
toimub sõltuvalt sellest, kas ülekandeks kasutatakse trigeri otsest või inverteeritud signaali.
Trigerite väljundsignaalide kommuteerimiseks rakendatakse kõigi astmete vahel täiendavat
2NING-VÕI-EI-loogikalülitust (joonis 1.13).
36
Q1Q2Q3P1P2P3VastupidiSSSTT&1TT&1TT&1JJJImpulsidCCC&&&KKKRRRPäripidiKeeldResetJoonis 1.13, a. Reversiivloenduri põhimõtteskeem
NulliminetAlginfo
salvestamine t Loendamine
või keeldtVastupiditTtQ1tQ2tQ3tQ4tJoonis 1.13, b. Reversiivloenduri signaalidiagramm
1.3.4. Summaatorid Summaatoriks nimetatakse arvuti loogikalülitust, mis on ette nähtud arvkoodide
aritmeetiliseks summeerimiseks. Mitmejärgulise kahendarvu
summaator koosneb mitmest
ühejärgulisest summaatorist. Arvu summeerimisel tuleb lisaks kahe summeeritava arvu
vastavatele järkudele liita nendega ka nooremate järkude summeerimisel tekkinud ülekanne.
Seega on ühejärgulisel summaatoril kolm sisendit ning kaks väljundit. Summaatori
loogikatabeli ning loogikafunktsiooni saab tuletada tavapärasest arvude
tulba liitmise
skeemist:
37
CCCC4
3
2
1
aaaa3
2
1
0
bbbb3
2
1
0
SSSSS4
3
2
1
0
CCCC4
3
2
1
Vastavalt liitmise skeemile ning loogikale leitakse kõigile sisendite kombinatsioonidele
väljundite väärtused ning esitatakse need tabelina. Seda tabelit 1.8 nimetatakse summaatori
loogikatabeliks.
Tabel 1.8
Summaatori loogikatabel
aibiPiSiPi+10
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
Loogikatabeli põhjal kirjutatakse väljundite jaoks loogikafunktsioonid:
S =
a ⋅
b ⋅
C ∨
a ⋅
b ⋅
C ∨
a ⋅
b ⋅
C ∨
a ⋅
b ⋅
C ;
(1.29)
iiiiiiiiiiiiCa b Ca b Ca b Ca b C .
(1.30)
i+1 =
⋅ ⋅ ∨ ⋅ ⋅ ∨ ⋅ ⋅ ∨ ⋅ ⋅
iiiiiiiiiiiiViimase avaldise saab lihtsustada
kujule Ca ba Cb C .
(1.31)
i+1 =
⋅ ∨ ⋅ ∨ ⋅
iiiiiiVastavalt võrranditele (1.29) ja (1.31) koostatakse ühejärgulise (ühebitise) kahend-
summaatori
loogikaskeem (joonis 1.14). Samas on näidatud ka summaatori tingmärk.
38
a)
aabbC Ciiiiii&&1S ib)
&SiaiSMS&biCi+ 1CCi&&C1i+1&Joonis 1.14. Ühebitine täissummaator: a) loogikaskeem, b) tingmärk
Mitmejärgulised kahendsummaatorid jagunevad:
1) jadaülekandega,
2) rööpülekandega ja
3) rühmaülekandega summaatoriteks.
Jadaülekandega summaatoris moodustatakse väljundsignaal arvukohtade järjestikku
summeerimisega, alates kõige nooremast (parempoolsest) kuni kõige vanema ehk
vasakpoolsemani välja. Seega moodustatakse arvu summa ja ülekandesignaalid kõige
nooremas kohas ning alles pärast seda summeeritakse arvude järgmised kohad. Arvukoha
summeerimiseks ja ülekande moodustamiseks kulub teatud aeg, mida ülekande seisukohalt
võib vaadelda hilistumisena. Kuna ülekanne toimub järjestikku, siis aeglustab see
summaatori tööd. Suure kohtade arvu korral on koguhilistumine võrdne hilistumiste
summaga üksikutes kohtades.
SSSi-1ii+1aSM SaSM SaSM SbbbCCCCCCCCi-1ii+2i+1abababi-1i-1iii+1i+139
Joonis 1.15. Jadaülekandega kahendsummaatori loogikaskeem
Rööpülekandega summaatorid töötavad palju kiiremini kui jadaülekandega summaatorid.
Mitmekohalise kahendarvu summeerimisel moodustatakse ülekanne korraga kõigi kohtade
jaoks. Seetõttu ei kulu ülekandeks lisaaega ning summaator töötab kiiremini kui
jadaülekande korral. Rööpülekandega summaatori tööpõhimõte on järgmine.
Ülekanne
i+1 järku on avaldatav võrrandiga
C=
a ⋅
b ∨
C a ∨
bi+
(1.32)
iii (
i1
iÜlekanne
i järku on omakorda avaldatav võrrandiga
C =
a⋅
b ∨
C a ∨
b(1.33)
ii 1
−
i 1
−
i 1
− (
i 1
−
i− ).
1
Nii jätkates saab kirjutada ülekande
avaldised summaatori kõigi kohtade jaoks kuni
noorema kohani välja. Kui asendada seejärel
ülekanded , alates kõige nooremast, vastavate
avaldistega, siis
C=
a ⋅
b ∨
a ⋅
b ababababi+1
iii−1
i−1 (
∨
ii ) ∨
⋅
i −2
i−2 (
∨
ii )(
∨
i−1
i−1 ) ∨
∨ L∨
a ⋅
b ababL
abC a ∨
b a∨
ba ⋅
ba ∨
b0 (
ii )(
i 1
−
L
i 1
− )
( 2 2 )( 1 1).
1
1 (
∨
ii )(
∨
i−1
i−1 )
( ∨
2
2 ) ∨
(1.34)
Valemi (1.34) järgi võib
konstrueerida skeemi, mis moodustab ülekanded summaatori
kõigi kohtade jaoks korraga. Suure kohtade arvu puhul muutub skeem aga
sedavõrd keeruliseks, et rööpülekandega summaatori ehitamine osutub ebaotstarbekaks. Seepärast
rakendatakse rööpülekande põhimõtet kombineeritult koos jadaülekandega. Vastavaid
summaatoreid nimetatakse
rühmaülekandega summaatoriteks.
1.3.5. KommutaatoridKommutaatorid jagunevad multipleksoriteks ja demultipleksoriteks. Nende tööpõhimõtte
paremaks mõistmiseks on joonisel 1.16 näidatud kommutaatorite kontaktaseskeemid.
Multipleksoril on mitu sisendit ja üks väljund. Sisendid jagunevad infosisenditeks ja
juhtsisenditeks, kusjuures infosisendite arv määrab ära juhtsisendite arvu ning vastupidi.
Vastavalt juhtsignaalile kommuteeritakse multipleksori väljundisse signaal ühest
infosisendist. Kommuteeritavate infosisendite arv võrdub 2
n, kus
n on juhtsisendite arv.
Järelikult saab kahe juhtsisendiga ehk kahebitise koodiga kommuteerida 4 sisendit,
kolme juhtsisendiga 8 sisendit jne.
40
Nelja ja kaheksa sisendiga multipleksori tööd
kirjeldavad loogikavõrrandid :
Yx u ux u ux u ux u u1− =
4
0 1 0
1 1 0
2 1 0
3 1 0,
(1.35)
Yx u u ux u u ux u u ux u u u1 8
− =
+L
0 2 1 0
1 2 1 0
2 2 1 0
3 2 1 0
L+
x u u u +
x u u u +
x u u u +
x u u u4 2 1 0
5 2 1 0
6 2 1 0
7 2 1 0 .
(1.36)
Demultipleksoril on üks infosisend ja mitu väljundit. Juhtsisendite arv sõltub väljundite
arvust ja vastupidi. Vastavalt juhtsignaalile kommuteeritakse infosisendi signaal ühte
väljundisse. Väljundite arv on 2
n, kus
n on juhtsisendite arv. Nelja väljundiga
demultipleksori tööd kirjeldavad järmised loogikavõrrandid:
Y =
xu u0
1 0,
Yxu u1
1 0,
Yxu u2
1 0 ,
Yxu u3
1 0.
(1.37)
Kaheksa väljundiga demultipleksori tööd kirjeldavad
võrrandid :
Y =
xu u u0
2 1 0,
Yxu u u4
2 1 0 ,
Y =
xu u u1
2 1 0,
Yxu u u5
2 1 0 ,
Y =
xu u u2
2 1 0 ,
Yxu u u6
2 1 0,
(1.38)
Y =
xu u u3
2 1 0,
Yxu u u7
2 1 0 .
Kommutaatorite loogikaskeemid on joonisel 1.17. Enam kasutatakse multipleksorit ja
vähem demultipleksorit. Multipleksori väljundfunktsioon (võrrandid 1.35 ja 1.36) on
esitatud loogikafunktsiooni täielikul disjunktiivsel normaalkujul. Järelikult saab piisava arvu
sisenditega multipleksori abil realiseerida suvalisi loogikafunktsioone. Kolme muutuja
loogikafunktsiooni realiseerimiseks tuleb kasutada multipleksorit
K1-4, nelja muutuja
funktsiooni jaoks
K1-8 ja viie muutuja funktsiooni korral
K1-16.
a)
b)
u3 u2 u1 u0u3 u2 u1 u0U0U0X0U0U0Y0U1U1X1U1U1Y1U2YXU2X2U2U2Y2U3U3X3U3U3Y341
Joonis 1.16. Kommutaatorite kontaktskeemid: a)
multipleksor , b) demultipleksor
a)
b)
U1U111U0U011Y0&&X0&&Y1YXX1Y2&&X2&&Y3X3Joonis 1.17. Kommutaatorite loogikaskeemid: a) multipleksor, b) demultipleksor
1.3.6. Aritmeetika-loogikaplokkAritmeetika-loogikaplokk (
ALU - arithmetic logic unit ) on ette nähtud aritmeetika- ja
loogikateheteks kahendarvudega (joonis 1.18) [1]. Kõik
aritmeetikatehted sooritatakse arvude või nende täiendkoodide summeerimisega ja nihutamisega. Peamised
loogikatehted on NING, VÕI, EI ja Mod2, mille täitmiseks on
ALU-s vastavad
loogikalülitused.
Erinevate tehete selekteerimiseks on aritmeetika-loogikaplokil kommutaator
MUX.
Mitmebitiste operandide
A =
an, an-1 ... a1, a0, ja
B = bn, bn-1 ... b1, b0 ning bittide
MSB
(
most significant bit) ja
CI (
carry in) summeerimisel kombinatsioonsummaatoriga
saadakse kahendsumma
S = sn, sn-1...s1, s0 ning ülekandebitid
CO (
carry out) ja
LSB
(
least significant bit). Ülekandebitt
CI tähistab ülekannet kõrgemast bitist
madalamasse ja
CO vastupidi madalamast bitist kõrgemasse. Mitmebitise
ALU madalaima ja kõrgeima
biti sisendmuutujad on vastavalt
LSB ehk madalaim
bitt (viimane oluline bitt) ja
MSB ehk
kõrgeim bitt (kõige tähtsam bitt). Loogikatehetel ülekannet ei esine.
Multipleksor valib etteantud juhtkoodi
u2
u1
u0 järgi ühe funktsionaalsetest sisenditest ja
suunab selle tulemi väljundisse
Fi. Näiteks koodi 101 puhul
Fi =
Si (kahendliitmine
ülekandega
Ci+1), koodi 011 puhul
Fi = aiÙbi jne. Koodi 000 puhul
Fi = 0 ja koodi 111
puhul
Fi = 1.
42
Aritmeetikatehete operandide ja tulemite salvestamiseks kasutatakse registreid.
Kahendsõnad suunatakse registritest
ALU sisenditesse ja
ALU väljundist registritesse
multipleksorite ja demultipleksorite abil (joonis 1.18, c).
Otstarbekas on registreerida ka tehte tulemi teisi tunnuseid, nagu ületäitumine, nulltulem,
negatiivne tulem jms. Selleks kasutatakse mikroprotsessoris olekuregistrit.
Teheteks mitmebitiste kahendarvudega kasutatakse ka vastava bittide arvuga
ALU-sid.
Mitmebitise
ALU saab koostada ühebitistest
ALU-dest.
ALU loogikaskeem ja lihtsustatud
tähis on joonisel 1.18.
a)b)
C i+1MSBCO1ABALUFa1i+1MUXCILSBCiSMaibic)
&RG0FiRG11RG2RG3a1iM2MUXALU0DMUXU0MUXU1U2Joonis 1.18. Aritmeetika-loogikaplokk: a) loogikaskeem, b) tingmärk,
c) kasutamine koos kommutaatorite ja registritega
1.3.7. Koodrid ja dekoodrid43
Dekooder on
lülitus , mis on ette nähtud etteantud sisendkoodi muundamiseks soovitud
väljundkoodiks. Ta tunneb ära sisestatava kahendarvu ja annab siganaali vastavasse
väljundisse (joonis 1.19). Dekoodri ülesanneteks on muundada kahendkoodis arv
niisuguseks koodiks, millega saab aktiveerida nõutava mälupesa, juhtida number- või
tähtindikaatorit (joonis 1.20 ja 1.21), tunda ära mitmesuguseid kodeeritud signaale jne.
Kuna dekoodri väljundisse ühendatavad
seadmed on erinevad, siis kasutatakse nende
juhtimiseks ka erinevaid dekoodreid. Näiteks on indikaatoritest levinumad 7-segmendilised
vedelkristall - ja valgusdioodindikaatorid ning 10-numbrilised huumlahendusindikaatorid.
Seitsmesegmendilise indikaatori
dekoodril on reeglina 4 sisendit ning 7 väljundit,
kümnenumbrilisel aga 4 sisendit ja 10 väljundit. Üldjuhul on dekoodril nii mitu sisendit
n,
kui mitu kohta on sisendisse antaval kahendarvul. Maksimaalne väljundite arv võrdub
kombinatsioonide arvuga 2
n. Dekoodreid koostatakse peamiselt NING-elementidest.
a)
b)
xxxxxx001122&F0x 0DC0
1&Fx 1213x 2415x&F026C7&Fx31&F14&F5x2&F61&F7 Joonis 1.19. Kolmebitine kahendsignaali dekooder
a) loogikaskeem, b) tingmärk
Suure sisendite arvu korral kasutatakse dekodeerimiseks nn kaskaadlülitust, kus esimese
astme dekooder aktiveerib ühe teise astme dekoodri ning see omakorda ühe väljundi.
Kahendkoodi dekoodri tööd kirjeldavad harilikult järgmised võrrandid:
F =
x x ...
xx0
1 2
n 1
−
n ,
44
F =
x x ...
xx1
1 2
n 1
−
n ,
F =
x x ...
xx2
1 2
n 1
−
n ,
(1.39)
. . .Fnx x ...
xx .
2
1
−
1 2
n 1
−
nSeitsmesegmendilise indikaatori dekooder peab sisendisse antud kahendkoodi kohaselt
lülitama sisse indikaatori segmendid nii, et
hakkaks helendama arvule vastav
kümnendnumber. Dekoodril on neli sisendit ja
seitse väljundit. Kaheksandat,
komasegmenti, dekoodriga ei juhita. Kuna
segment a ei helendu numbrite 1 ja 4
korral, siis võib kirjutada, et
a =
x x x x3 2 1 0 +
x x x x3 2 1 0
(1.40)
Analoogilised avaldised saab kirjutada ka kõigi ülejäänud segmentide kohta.
+DC 001CT1022G123A12425326
7
8
9Joonis 1.20. Dekoodri kasutamine kümnenumbrilise
huumlahendusindikaatori juhtimiseks
45
abx002DCabffx112ggex222d
hecx332chdJoonis 1.21. Dekoodri kasutamine seitsmesegmendilise indikaatori juhtimiseks
46
1.4. Homogeensed struktuurid ja loogilised maatriksidLoogikaseadmete koostamiseks kasutatakse peale põhielementide (NING, VÕI, EI) ka
universaalseid loogikalülitusi. Need on loogilised polüfunktsionaalsed ehk
mitmeotstarbelised
lülitused , mille abil realiseeritakse suvalisi binaarloogika funktsioone.
Universaalseteks loogikalülitusteks on kommutaatorid, programmeeritavad loogilised
maatriksid (
PLM - programmable logic matrix ) ja mälud. Ühetaolise ja korrapärase ehituse
tõttu nimetatakse neid ka homogeenseteks pooljuhtstruktuurideks. Üldjuhul nimetatakse
homogeenseks polüfunktsionaalsetest elementidest koosnevat
ühesuguste korduvate
(iteratiivsete) sidemetega struktuuri. Polüfunktsionaalseteks nimetatakse elemente, mis
realiseerivad mitmeid loogikafunktsioone. Soovitava funktsiooni valikuks peab
polüfunktsionaalset elementi saama häälestada. Häälestamine toimub mitmeti: nii vajalike
elementidevaheliste ühenduste lisamisega kui ka olemasolevate ühenduste katkestamisega.
Näiteks olgu püsimälud ja programmeeritavad loogilised maatriksid (
PLM). Samuti on
olemas ümberprogrammeeritavad püsimälud ja loogilised maatriksid.
Struktuurielementide
ühetaolisus on tehnikaseadmete oluline näitaja, see võimaldab
lihtsustada seadmete valmistamist, suurendada nende töökindlust ning alandada hinda.
Lihtsatest ühetaolistest elementidest valmistatud regulaarsete sidemetega süsteemid
lahendavad väga keerulisi ülesandeid. Homogeense struktuuriga pooljuhtlülitusi
kasutatakse arvutustehnikas laialt.
1.4.1. Loogilised maatriksidLoogikafunktsioone esitatakse enamasti nn
disjunktiivsel normaalkujul, s. t funktsioon
avaldatakse loogiliste korrutiste loogilise summana, mis ei sisalda sulgusid. Niisuguste
loogikafunktsioonide realiseerimiseks kasutatakse
loogilisi maatrikseid, mille
struktuuriskeem on joonisel 1.22, a, põhimõtteskeem joonisel 1.22, b. Antud lülituses
jagunevad maatriksid omakorda NING- ja VÕI-maatriksiteks. Mõlemat liiki maatriksid
kujutavad endast ristuvate siinide süsteemi, kus üksikjuhtmeid saab ristumiskohal
omavahel ühendada või vastupidi olemasoleva ühenduse katkestada. Joonisel 1.22, b on
rõht- ja püstjuhtmete ühenduskohad tähistatud punktiga. Tegelik ühendamine toimub aga
pooljuhtelementidega, millest sagedamini kasutatakse dioode. Seepärast nimetatakse
dioodidel põhinevaid maatrikseid
dioodmaatriksiteks.
Joonisel 1.22 näidatud
maatriks M1 realiseerib NING-funktsiooni ja selle töö toimub
järgmiselt. Sisendsignaalid
u0 ...
uk saabuvad maatriksi
Ml püstjuhtmetele. Loogiliste EI-
elementide abil leitakse nende signaalide inversioonid. Maatriksi
M1 rõhtjuhtmeid
toidetakse takistite kaudu alalispingega +
E. Kui sisendsignaaliga püstjuhe on dioodi kaudu
ühenduses rõhtjuhtmega, nagu näidatud joonisel 1.22, b, siis kõrge sisendpotentsiaali ehk
loogilise l korral jääb diood
suletuks ning kõrge potentsiaal säilib ka rõhtjuhtmetes. Kui
47
sisendisse saabub madala potentsiaaliga signaal ehk loogiline 0, siis läbib dioodi vool,
takistil tekib pingelang ning maatriksi rõhtjuhtme potentsiaal langeb samuti loogilise 0
tasemeni.
Kui ühe rõhtjuhtmega on samaaegselt ühendatud mitu sisendsignaalidega püstjuhet, siis
säilib rõhtjuhtmes kõrge, s. o loogilisele l vastav potentsiaal vaid juhul, kui kõigis
püstjuhtmetes on samuti kõrge potentsiaal. Vastupidisel juhul, kui kas või ühes neist on
madal potentsiaal, langeb rõhtjuhtme potentsiaal samuti 0. Seega realiseerib iga rõhtjuhe
loogilist NING-funktsiooni, mille sisendite arv vastab püstjuhtmetega ühendatud dioodide
arvule. Maatriksi erinevate võimalike NING-funktsioonide arv vastab aga rõhtjuhtmete
arvule. Nagu jooniselt näha, saab suhteliselt lihtsa maatriksiga, mil on
homogeenne struktuur, asendada suurt hulka diskreetseid loogikaelemente.
a)
U0U1UkX1&X21Maatriks M1Maatriks M2Y0 Y1Yn b)
U0U1UkR2R1M1M2++ EY0 Y1YnJoonis 1.22. Programmeeritav loogiline maatriks (
PLM):
a) struktuuriskeem, b) põhimõtteskeem
48
Maatriksi
M1 väljundsignaalideks on
konjunktsioonid , mis on omakorda disjunktiivse ehk
VÕI-maatriksi
M2 sisendsignaalideks. Maatriksis
M2 kasutatakse rõht- ja püstjuhtmete
ristumiskohtadel ühenduselementidena transistore, mille
kollektorid on ühendatud
toiteallika plussklemmiga, baasid maatriksi rõhtjuhtmetega ja emitterid püstjuhtmetega.
Püstjuhtmed on takistite kaudu ühenduses ka toiteallika 0-klemmiga. Juhul kui maatriksi
Ml
väljundist saabub transistori baasile kõrge potentsiaaliga signaal 1, siis transistor
avaneb ja
toiteallika plussklemm ühendatakse läbi transistori maatriksi
M2 püstjuhtmega.
Takistit R2
läbib vool, mis tekitab takistil
pingelangu . Pingelang takistil ongi maatriksi
M2
väljundsignaaliks. Järelikult, kui kas või üks maatriksi püstjuhtmetega ühenduses olevatest
transistoridest on avatud, tekib väljundis kõrge potentsiaaliga enk loogilisele l vastav
signaal. See tähendab, et maatriksi
M2 iga püstjuhe realiseerib loogilist VÕI-funktsiooni,
mille maksimaalne võimalike sisendite arv vastab rõhtjuhtmete arvule. Maatriksi
M2 poolt
realiseeritavate erinevate VÕI-funktsioonide arv võrdub aga püstjuhtmete arvuga.
Kasutatavate sisendite arv ning funktsioonide sisu valitakse
maatriksite häälestamisel, s. o
vastavate ühenduste tegemisega dioodide ja transistoride ahelates. Seega saab loogiliste
maatriksite abil lihtsalt realiseerida suure sisendite arvuga disjunktiivsel normaalkujul
esitatud loogilisi funktsioone, kusjuures üleminek
ühelt funktsioonide hulgalt teisele on
suhteliselt lihtne.
Tehnoloogiliselt saab maatrikseid valmistada mitmeti. Kasutatakse maatrikseid, mille
loogikafunktsioonid on ühenduselementide paigutusega fikseeritud juba maatriksi
valmistamise käigus. Samuti on olemas maatriksid, kus loogikafunktsioone määravad
ühendused teeb maatriksi kasutaja. Niisuguses maatriksis on
potentsiaalsed võimalused
suvalise loogikafunktsiooni realiseerimiseks, kui muutujate arv ei ületa maatriksi
sisendjuhtmete arvu. Kasutamise lihtsustamiseks on maatriksis olemas ka kõik
ühenduselemendid. See, kuidas on tehtud vajalikud ühendused, sõltub maatriksi
valmistamise tehnoloogiast.
Üksikelementidest koostatud maatriksi ühendusi saab teha näiteks pistikutega
kommutatsiooniväljas. Valdav osa loogilisi maatrikseid toodetakse integraallülitustena ning
oma ehituselt sarnanevad need pooljuhtpüsimälule. Vajalikud ühendused tehakse maatriksi
programmeerimisel, milleks kasutatakse spetsiaalseid arvutitega juhitavaid
programmaatoreid. On olemas nii ühekordselt programmeeritavaid kui ka
ümberprogrammeeritavaid maatrikseid. Maatriksite ja püsimälude tüüpilised elemendid on
näidatud joonisel 1.23,
a, b, c.
a)
b)
c)
+VTVD1 VD2VT Sular Joonis 1.23. Ümberprogrammeeritavates püsimäludes ja maatriksites kasutatavaid elemente:
49
a) sular emitteriahelas, b) elektrilise läbilöögiga lühistatav
pn-
siire ,
c) laengukandjaga
MOS-transistor
Ühenduselemendina võib kasutada transistori (joonis 1.23, a), mille emitteriahelas on sular.
Loogilise maatriksi programmeerimisel põletatakse sular läbi ning ühendus katkeb.
Allesjäänud ühendused tagavad maatriksi programmikohase töö. Ühenduse
läbipõletamisvool on 20...30 mA.
Vajalikke elektrilisi ühendusi saab tekitada ka joonisel 1.23, b näidatud kahe vastulülituse
dioodiga. Normaalses olukorras selline dioodipaar voolu ei juhi. Ühenduse tekitamiseks
antakse juhtmele kõrgendatud pinge, mille tulemusena dioodi
VD2 pn-siire lüüakse
elektriliselt läbi ning rõht- ja püstjuhtmete vahel tekib dioodi
VDl kaudu ühendus. Mõlemal
juhul on tegemist ühekordselt programmeeritavate maatriksitega, sest ühenduselementide
taastamine pole võimalik.
1.4.2. Ümberprogrammeeritavad maatriksidÜmberprogrammeeritavates maatriksites kasutatakse ühenduselemendina ujuvpaisuga
MOS-transistore (joonis 1.23, c). Ujuvpaisul elektriline ühendus puudub ning see on ette
nähtud laengu säilitamiseks. Transistori pais on ühendatud rõhtjuhtmega,
suue püstjuhtmega
ning läte toiteallika miinusklemmiga. Lähteolekus läbib
paisu ergastamisel transistori vool.
Programmeerimisel antakse püstjuhtmele 25...50 V pingeimpulss, mille tulemusena ujuvpais
saab negatiivse laengu. Ujuvpais säilitab laengu ning transistori avamiseks tuleb paisule anda
tavalisest märksa kõrgemat pinget.
Hariliku juhtpinge korral jääb transistor suletuks ja vool
transistori ei läbi. Transistori
algolek taastub , kui tema siirdeid kiiritada 30...100 sekundit
ultraviolettkiirgusega. Selleks on maatriksi või
püsimälu integraallülituse keres
ultraviolettkiirgust läbilaskev ava.
Programmeeritavad maatriksid võimaldavad realiseerida nii disjunktiivsel normaalkujul
esitatud loogikafunktsioone kui ka keerukamaid näiteks sulgusid sisaldavaid avaldisi. Sel
juhul realiseeritakse maatriksiga kõigepealt sulgudes olev funktsioon ning antakse sellele
vastav väljundsignaal tagasi maatriksi vabasse sisendisse, kus edasi koos teiste
sisendsignaalidega moodustatakse lõplik väljundsignaal. Põhimõtteliselt saab nii realiseerida
ka mitmekordsete sisemiste sulgudega loogikafunktsioone.
50
1.5. MäludMäluks nimetatakse informatsiooni salvestamiseks (kirjutamiseks), säilitamiseks ja
lugemiseks ettenähtud seadmeid. Mälu iseloomustab mälu maht Kbaitides, Mbaitides või
Ksõnades, infosõna pikkus bittides või baitides ning mälu töökiirus, s.t mälu poole
pöördumise aeg mikrosekundites. Mälusid liigitatakse sõltuvalt tööpõhimõttest ning
kasutusviisist. Üks võimalikke mälude
liigitusi on joonisel 1.24 [1].
Muutmälu on seade informatsiooni (programmide, lähte- ja vaheandmete ning tulemite)
lühiajaliseks salvestamiseks, säilitamiseks, otsinguks ning lugemiseks. Muutmälud
jagunevad staatilisteks ja dünaamilisteks muutmäludeks.
MäludMuutmäluPüsimäluRAMROM Program -Ümberprog-Staatiline Dünaamiline meeritavrammeeritavValmistajaKasutajapooltpooltJoonis 1.24. Pooljuhtmälude liigitus
Püsimälu kasutatakse programmide ning andmete pikaajaliseks säilitamiseks ja
lugemiseks. Püsimälud jagunevad ühekordselt programmeeritavateks ja
ümberprogrammeeritavateks püsimäludeks. Ühekordselt programmeeritavaid mälusid
liigitatakse sõltuvalt sellest, kas need programmeeritakse tehases mälukiibi valmistaja poolt
või programmeerib neid kiibi kasutaja.
Ümberprogrammeeritavaid püsimälusid saab
kasutaja vajaduse korral
kustutada ja uuesti programmeerida.
Muut- ja püsimälude töökiirus peab olema võimalikult suur.
51
1.5.1. MuutmäludMuutmälude (
RAM - random access memory ) põhiliigiks on pooljuhtmälud, mis
koosnevad trigeritest või muudest mäluelementidest. Muutmälud on toitepingest sõltuvad
ning jagunevad kahte liiki, staatilisteks ja dünaamilisteks.
Staatilises muutmälus kasutatakse iga infobiti salvestamiseks ühte trigerit, mis säilitab
infot seni, kuni säilib
toitepinge . Kuna staatilises mälus säilib salvestatud informatsioon ka
pärast mälust lugemist, püsides seal toitepinge olemasolu korral kui tahes kaua, siis
nimetatakse niisugust mälu staatiliseks.
Lihtsaima staatilise muutmälu struktuur on joonisel 1.25. Mälul on 1024 aadressi ja tema
kogumaht on 1024 bitti ehk 1024 pesa. Iga bitt on salvestatud trigerisse ning triger valitakse
rea- ja veerudekoodri abil. Mälu juhtimiseks kasutatakse järgmisi signaale:
R/W = 1, (
read/write) määrab ära lugemisrežiimi;
R/W = 0, määrab ära kirjutusrežiimi;
CS = 0, (
chip select ) lubab mälukiibist bitte lugeda (
D0) või sellesse kirjutada (
D1);
CS = 1, mäluelement on süsteemi tööst välja lülitatud ning ei reageeri aadressi
A9...
A0
koodile ega signaalile
R/W.
Staatilise muutmälu struktuur ja kiibi tähis on joonisel 1.25.
Andmesõna pikkuseks on
tavaliselt 8, 16, 32 jne bitti. Vastavalt andmesõna pikkusele valitakse ka mäluelementide
ühendamisviis.
a)
b)
0A0DIA064 ridaRAMA1Rea-16 veergu A2dekooderA9A364 x 16 = 1024 bitti DOA463R / WA5CS0115DODISisendi-&Veeru sisend-väljundR / WväljundiCSjuhtimine015VeerudekooderA6A7A8A9Joonis 1.25. Staatiline muutmälu: a) struktuuriskeem, b) kiibi tähis
52
Dünaamilises muutmälus säilib info
MOSFET-transistori paisu mahtuvuse
elektrilaenguna. Tavaliselt säilib see laeng lekkevoolu tõttu väga lühikest aega. Seepärast
tuleb info säilitamiseks laengut perioodiliselt näiteks iga 2 ms järel uuendada
(regenereerida). Dünaamiline muutmälu on staatilise mäluga võrreldes
lihtsama ehitusega
(ühe biti salvestamiseks läheb vaja umbes kaks korda vähem elemente), suurema
toimekiirusega ning tarvitab tööks vähem energiat. Dünaamilise muutmälu elemendi skeem
on joonisel 1.26.
Siin YCWRSiin XC2VT1VT2VT3C1VT4REGD+E Joonis 1.26. Dünaamilise mäluelemendi skeem
Mäluna toimib transistori
VT2 paisuahela
mahtuvus C1. Info kirjutatakse mällu ja loetakse
sealt siini
Y kaudu (signaal
D). Enne info lugemist antakse signaal
REG, mis avab
transistori
VT4, ning mahtuvus
C2 (siini
Y parasiitmahtuvus) laetakse allikast +
E. Seejärel
antakse siinile
X kirjutuse/lugemise sünkrosignaal
CWR, mis avab transistori
VT3, kuid ei
saa avada transistori
VT2.
Kui mäluelement säilitab olekut 1, siis on mahtuvus
C1 laetud ja transistor
VT2 on avatud.
Sel juhul tühjeneb mahtuvus
C2 läbi avatud transistoride
VT2, VT3 ja signaali
D 0-nivoo
näitab, et mälus säilitati signaali 1 (inversne väljund). Kui mäluelement säilitab olekut 0, siis
on mahtuvus
C1 tühjenenud,
VT2 suletud ja signaal
CWR ei põhjusta mahtuvuse
C2
tühjenemist. Signaali
D kõrge nivoo näitab , et mälus säilitati olekut 0 (inversne väljund).
Dünaamilisi muutmälusid regenereeritakse harilikult regenereerimissignaaliga
REG ja koos
sellega toimub mälu kõigi ridade järjestikune adresseerimine. Tavaline lugemine ega
kirjutamine pole regenereerimise ajal võimalik, samuti ei saa regenereerimist alustada
lugemise ega kirjutamise tsükli ajal. Regenereerimishetke kindlaksmääramine, kõigi
rea-
aadresside etteandmine, lugemise ja kirjutamise
blokeerimine jms
operatsioonid teevad
dünaamiliste pooljuhtmälude kasutamise võrreldes staatiliste mäludega keeruliseks, sest
nad nõuavad lisaelemente. Dünaamiliste muutmälude eeliseks on väike hind ja
võimsustarve. Neid saab valmistada väga suure integratsiooniastmega, mis võimaldab toota
53
suure mälumahuga
kiipe . Seepärast ehitatakse arvutite ja mikroprotsessorsüsteemide
suuremad mäluseadmed tavaliselt dünaamilistest mälukiipidest.
Kõigi muutmälude üheks oluliseks puuduseks on salvestise hävinemine toitepinge
väljalülitumisel. Selle puuduse vältimiseks kasutatakse avariitoidet (katkematu toite
allikaid )
ning muid mäluseadmeid, kus informatsioon säilib teatud aja ka ilma toitepingeta.
1.5.2. PüsimäludPüsimälu (
ROM - read only memory) on mõeldud korduvaks informatsiooni lugemiseks.
Info on salvestanud püsimällu kas pooljuhtmälukiibi valmistaja või kasutaja. Info salves-
tamist püsimällu nimetatakse püsimälu programmeerimiseks. Püsimälude tähtsamad ala-
liigid on järgmised: 1) programmeeritav püsimälu (
PROM - programmable read only
memory), 2) ümberprogrammeeritav püsimälu (
EPROM - erasable programmable read
only memory); 3) elektriliselt kustutatav ümberprogrammeeritav püsimälu (
EEPROM -
electrically erasable programmable read only memory).
Programmeeritavat püsimälu programmeeritakse kas tehases integraallülituse
valmistamise käigus vastavate tehnoloogiliste maskidega või mikroprotsessorsüsteemi
koostaja poolt spetsiaalsete programmaatorite abil. Esimest liiki
PROM on tavaliselt
masstoode, sest tehases salvestatakse sinna
enamkasutatavad püsiandmed nagu
standardkoodide teisendustabelid, keerukamate funktsioonide tabelesitused jms. Tarbija
salvestab püsimällu tarbijaprogramme või juhtseadme mikroprogramme.
Ümberprogrammeeritava püsimälu (joonis 1.27) programmeerib kasutaja
programmaatoriga, kuid salvestatud informatsiooni on võimalik hiljem kustutada ning
püsimälu uuesti ehk ümber programmeerida. Mälu kustutatakse kas elektriliselt või
ultraviolettkiirguse abil. Püsimäludes kasutatakse samu elemente kui ümberprogram-
meeritavates loogilistes maatriksites. Vaatamata sellele et
EPROM-i sisu saab hiljem muuta,
on püsimälu ümberprogrammeerimine tülikas ning seepärast tuleb püsimäluprogramme
hoolikalt kontrollida ja siluda ning alles siis salvestada.
54
A00D0D1Dekooder256 x 4 Puhver D2A7255D3__CS Programmeerimine
(kustutamine)Joonis 1.27. Ümberprogrammeeritava püsimälu struktuuriskeem
1.6. Diskreetsed automaadid1.6.1. Diskreetsete automaatide olemusAutomaatide teooria põhineb diskreetsetel olekuvõrranditel. Enamikul juhtimisobjektidel
on lõplik arv diskreetseid
olekuid . Seepärast nimetatakse nende juhtseadmeid lõplikeks
automaatideks.
Lõplike automaatide teooria on aluseks erinevate diskreetsete juht-
seadmete, sealhulgas arvutite ja robotite juhtseadmete väljatöötamisel. Lõplike automaatide
uurimiseks pole tingimata vaja füüsilise automaadi olemasolu. Kõige enam kasutatakse
nende uurimiseks mitmesuguseid matemaatilisi
mudeleid , mida nimetatakse
abstraktseteks automaatideks. Kuna abstraktseid automaate saab kirjeldada
algoritmikeelte abil, siis tuleneb sellest abstraktsete automaatide ning algoritmikeelte
ekvivalentsus, s. t neid keeli on võimalik asendada abstraktsete automaatidega ja vastupidi.
Üheks levinumaks ja kõige üldisemaks abstraktseks automaadiks on nn
Turingi masin.
Selle esitas 1936. a inglise
loogik A M Turing. Masina tähtsus põhineb Turing-Churchi
teesil, mille kohaselt igasuguse
algoritmi infotöötluse võib sooritada Turingi
masinaga . See
väide ei ole matemaatiliselt tõestatav, sest algoritmi infotöötluse mõiste pole matemaatiline,
vaid intuitiivne. Katsed leida algoritmilisi protsesse kajastav
formaalne eeskiri , mis oleks
võimsam kui Turingi masin, on olnud edutud. Seepärast loetakse tänapäeval algoritmilisteks
teisendusteks vaid teisendusi, mida saab teostada Turingi masinaga.
Abstraktne Turingi
masin on olnud aluseks arvutiteooria, programmeerimiskeelte ja keeletranslaatorite
loomisel, ta on võimaldanud teoreetiliselt uurida juhtimisülesannete lahendatavust, s. t
määrata nende kuulumist algoritmiliste protsesside hulka jms. Universaalseteks
infotöötlusseadmeteks on füüsilised arvutid, mille näol abstraktne Turingi masin on
realiseerunud tegelikkuses. Järelikult on kõiki algoritmidega esitatavaid juhtimisprotsesse
võimalik teostada arvutiga.
Automaatide
teoorias vaadeldakse ka mitmeid lihtsamaid väiksema üldistusastmega
abstraktsete automaatide mudeleid, mis võivad olla aluseks ühtede või teiste juhtseadmete
väljatöötamisel. Niisuguste automaatide näiteks on
Mealy ja
Moore 'i automaadid.
Diskreetsete automaatide projekteerimisel on neli
etappi . Automaadi loomine algab
süsteemse projekteerimisega, mille käigus koostatakse automaadi struktuur, leitakse
55
põhilised
plokid , määratakse nende otstarve ning funktsioonid.
Süsteemse
projekteerimise tulemuseks peab olema automaadi struktuuriskeem ning üksikute
plokkide
algoritmid . Seega minnakse
abstraktselt automaadilt üle struktuursele automaadile.
Järgmisel,
loogilise projekteerimise etapil toimub automaadi loogiline süntees, tema
sisemiste
olekute minimeerimine ning automaadi ja selle plokkide funktsionaalskeemi
koostamine. Üld- algoritmi järgi valitakse iga ploki ehitusviis ning loogikaelementide baas.
Loogilisel projekteerimisel määratakse ka riist- ja tarkvara
vahekord juhtseadmes. Loogiline
projekteerimine peab andma automaadi kõikide plokkide funktsionaalskeemid ning nende
struktuuri kirjeldused. Selleks kasutatakse automaatide loogiliseks sünteesiks ettenähtud
erikeeli.
Kolmandaks etapiks on automaadi
tehniline projekteerimine, mille käigus
lahendatakse kolm põhiülesannet: valitakse elemendid (integraallülitused), koostatakse
nende
paigutus - ja ühendusskeem trükiplaatidel ning trükiplaatide ja pistikühenduste
paigutusskeem juhtseadme kapis. Erijuhul võib tehniline projekteerimine tähendada ka
spetsiaalse integraallülituse väljatöötamist. Tehnilise projekteerimise tulemuseks on
juhtautomaadi tehniline
dokumentatsioon , mille põhjal saab valmistada juhtautomaadi.
Automaadi loomise
viimaseks etapiks on
tehnoloogiline projekteerimine. Selle käigus
lahendatakse trükiplaatide valmistamise tehnoloogiaga, karkasside ja kappide
valmistamisega, seadmete
kontrolliga jms seotud probleeme. Tehnoloogilise
projekteerimise tulemusel valmib dokumentatsioon, mille põhjal võib alustada
juhtautomaatide saritootmist. Juhtautomaadi riist- ning tarkvara projekteerimise ja
valmistamise etappidest annab ülevaate joonis 1.28.
Matemaa-ProgrammiKõrgkeelesMasinakoodistilinestruktuurprogrammprogramm algoritm Süsteem-ValmisKeeledTranslaatorid programmid automaat Abstraktne Struktuurne Loogiline TehnilineautomaatautomaatautomaatautomaatSüsteemneLoogilineTehnilineTehnoloogilineprojekteerimineprojekteerimineprojekteerimineprojekteerimineJoonis 1.28. Juhtautomaadi projekteerimine ja valmistamine
Juhtautomaadi kirjeldamist on otstarbekas alustada abstraktse automaadi
tundmaõppimisest. Automaati vaadeldakse kui musta kasti
A (joonis 1.29), tema sisend- ja
väljundsignaale aga kui tähestiku tähti. Kuna automaat on diskreetne, siis on abstraheeritud
ka aja kulg, mis võib omandada vaid diskreetseid järjestikuseid väärtusi, näiteks
t = 0, 1, 2,
.... Üldjuhul on niisugune automaat
A kirjeldatav
§
sisendtähestikuga ehk sisendsignaalide
hulgaga ; (1.41)
56
§
väljundtähestikuga ehk väljundsignaalide hulgaga
;(1.42)
§
olekutähestikuga ehk olekusignaalide hulgaga
;(1.43)
§
siirdefunktsiooniga S = f (xk; ui);(1.44)
§
väljundfunktsiooniga V = f (xk; ui);
(1.45)
§ automaadi
algolekuga xo, mis vastab hetkele
to = 0.
Juhtautomaat U ( t )Y ( t )AX ( t )Joonis 1.29. Abstraktne automaat
Siirde- ja väljundfunktsioonid määravad automaadi oleku
X(t+l) ja väljundsignaali
Y(t+l)
hetkel
(t+l) sõltuvalt olekust
X(t) ja sisendsignaalist
U(t) hetkel
t. Kui automaadi sisendite
ja väljundite arv on suurem kui üks, võib signaali
U, Y ja
X vaadelda kui vektoreid või
mitmetähelisi sõnu. Abstraktse automaadi töötamisel toimub sisendsõnade muutumine
väljundsõnadeks, kusjuures protsessis etendab olulist osa automaadi sisemine olek antud
hetkel. Iga järgmine olek oleneb eelmisest. Et väljundsignaalide ja olekute
vahetumine toimuks soovitud korrapärasusega, tuleb automaadi mällu salvestada programm ning ette
anda algolek hetkel
t = 0. Kuigi kõigi diskreetsete automaatide
olekud ja signaalid
muutuvad diskreetsetel hetkedel, liigitatakse automaadid sõltuvalt nende ajalisest
käitumisest sünkroonseteks ja asünkroonseteks.
Sünkroonsetes automaatides toimivad sisendsignaalid täpselt fikseeritud hetkedel, automaadi sisemine olek muutub aga ajal, mil
sisendsignaalide toime puudub. Ajahetkede fikseerimiseks on sünkroonses automaadis
olemas taktiimpulsside generaator.
Asünkroonsetes automaatides toimub olekute
muutumine suvalistel hetkedel, mis on määratud ainult sisendsignaalide muutumisega.
Automaadi olek mingil hetkel sõltub sellel samal hetkel saabuvatest sisendsignaalidest ning
automaadi eelnenud olekutest. Kuna olekute muutumise hetked pole fikseeritud, siis
puudub asünkroonsetes automaatides taktiimpulsside generaator. Mäluga automaatide
väljundsignaalid sõltuvad nii sisendsignaalidest kui ka olekutest. Niisuguste automaatide
hulka kuuluvad paljud seadmed, alates lihtsatest funktsionaalsetest loogikalülitustest nagu
trigerid, loendurid ja registrid kuni mikroprotsessorite ja arvutiteni välja. Juhul kui
automaadil puudub mälu, on tal ainult üks sisemine olek ning automaati kirjeldab täielikult
väljundfunktsioon. Mäluta diskreetseid seadmeid nimetatakse
loogilisteks
kombinatsiooniskeemideks. Praktikas on sellisteks skeemideks dekoodrid,
kommutaatorid, summaatorid jms.
57
Võib luua ka automaadi, millel sisendid puuduvad või mille sisendsignaalid ei muutu.
Niisuguseid automaate nimetatakse
autonoomseteks, kõiki ülejäänuid aga
mitteautonoomseteks. Autonoomsete automaatide töö on täielikult määratud nende
sisemiste olekutega e programmiga ning ei sõltu informatsioonist väljaspool automaati.
Peale loetletud automaatide on olemas veel mitmed spetsialiseeritud diskreetsed
automaadid; neist tähtsam on
mikroprogrammautomaat.
Mikroprogrammautomaadi idee esitas M V
Wilkes 1951. aastal. Ta võttis selle kasutusele
universaalarvuti töö juhtimiseks. Kui tavaliselt arvuti ise juhib mingit protsessi, siis
mikroprogrammautomaadi korral on tegemist automaadiga, mis juhib teist automaati, s. o
arvutit ennast. Mikroprogrammjuhtimise põhimõtteid on rakendatud ka robotite ja
tööpinkide juhtseadmetes.
Abstraktse automaadi matemaatilise
kirjeldamise tulemuseks võivad olla: 1) algoritmide
graaf- ja plokkskeemid, 2) siirde-, väljundi- ja olekutabelid, 3) loogikavõrrandid, 4) auto-
maatide loogilise sünteesi algoritmikeelne kirjeldus või mõni teine esitusviis. Algoritmi
praktiliseks teostamiseks saab kasutada kahte peamist võimalust: algoritmi realiseerimist
aparaadiks või
programmiks. Esimesel juhul on tulemuseks seade, teisel juhul
programm. Seadme valmistamiseks kasutatakse mitmesuguseid pneumaatilisi, elektrilisi,
optilisi või elektroonseid elemente.
Sealjuures peab eelnevalt olema teada automaadi
struktuur, mille aluseks on homogeenne või mittehomogeenne arvutuskeskkond (tehniline
baas). Algoritmi programmilisel teostamisel tuleb koostada programm, mis on käskude
jada, kusjuures need
käsud määravad ära kõik juhtimiseks vajalikud operatsioonid, tehted
lähteandmete ja vahetulemustega ning järgmise käsu aadressi. Programmi füüsiliseks
kandjaks sobivad mitmesugused homogeensed struktuurid (mälud). Programmi
töötlemiseks: käskude lugemiseks, dešifreerimiseks ja täitmiseks kasutatakse mingit
universaalset diskreetset automaati, näiteks mikroprotsessorit. Programmi koostamist
nimetatakse algoritmi
programmiliseks modelleerimiseks, selle aparatuurset
realiseerimist aga algoritmi
aparatuurseks modelleerimiseks.
1.6.2. Algoritmide aparatuurne realiseerimineAutomaatide aparatuurne realiseerimine algab automaadi matemaatilisest kirjeldusest,
näiteks siirde- ja väljunditabelitest.
Siirde- ja
väljunditabelid erinevad
kombinatsiooni -
skeemide olekutabelitest selle poolest, et nad kajastavad ka automaadi olekute ajalist
muutumist. Siirdetabelist 1.9 näeb, milline on automaadi olek järgmisel taktil, kui on teada
automaadi senine olek
x ja sisendsignaal
u. Uus olek leitakse sisendsignaali
ui ja
olekusignaali
xk põhjal tabeli 1.9 vastavate veergude ja tulpade ristumiskohalt. Väljundi-
tabel 1.10 võimaldab määrata automaadi väljundsignaali
yj, kui on teada tema olek ja
sisendsignaal.
Tabel 1.9
Automaadi siirdetabel
58
Xk
X0
X1
X2
X3
X4
Ui
U0
X1
X2
X3
X0
U1
X3
X0
X0
X4
U2
X4
X3
X1
Tabel 1.10
Automaadi väljunditabel
Xk
X0
X1
X2
X3
X4
Ui
U0
Y0
Y5
Y3
Y4
U1
Y2
Y0
Y4
Y1
U2
Y3
Y2
Y0
Struktuurne automaat erineb abstraktsest selle poolest, et tal on teatud kindel arv
sisendeid ja väljundeid, milles toimivad etteantud viisil kodeeritud sisend- ja
väljundsignaalid. Lisaks sellele jagab struktuurne süntees automaadi kaheks - mäluks ja
kombinatsiooniskeemiks. Automaadi mälu koosneb mäluelementidest. Viimastena saab
kasutada kahe sisendiga
D-trigereid, neist koostatud registreid, etteantud mälumahuga püsi-
või muutmälusid, ketasmälusid jms mäluseadmeid.
Algoritmide aparatuursest realiseerimisest parema ettekujutuse saamiseks vaadelgem
struktuursete ja loogiliste automaatide sünteesi konkreetse näite
varal . Selleks sobib
tsüklilise positsioonjuhtimisega manipulaatori juhtautomaadi lihtsustatud mudel. Olgu
tegemist silindrilises koordinaadistikus töötava manipulaatoriga, mida positsioonitakse
teekonnalülitite abil. Niisuguste manipulaatorite töötsoon ja võimalikud liikumised on
näidatud joonisel 1.30. Positsioonimispunktid on tähistatud ringide ja vastava numbriga.
e
ü
e
v
p
2
4
a
t
h
1
3
6
8
R2
5
7
R1
ϕ
Joonis 1.30. Manipulaatori töötsoon, võimalikud liikumised ja
positsioonimispunktid
59
Manipulaatori kolm lüli liiguvad kokku kuues suunas: edasi, tagasi, vasakule, paremale, üles
ja alla, mida joonisel tähistavad nooled ja sõnade algustähed.
Ajami liikumissuunda määrav
käsk on juhtautomaadi väljundsignaaliks. Sisendsignaalideks on positsioonimispunktidesse
paigutatud teekonnalülitite signaalid. Iga võimalikku liikumist piiravad kaks teekonnalülitit:
püstsihis liikumist all ja
üleval , pöördliikumist paremal ja vasakul ning radiaalsuunalist
liikumumist ees ja taga asuvad
lülitid . Seega on kokku kuus teekonnalülitit, mida
tähistatakse tähtedega
ü (ülemine lüliti),
a, v, p, e ja t.
Manipulaatori positsioonimispunkte nimetatakse manipulaatori olekuteks, sest neile
vastavad manipulaatori lülide eri asendid. Juhtseade peab
võimaldama punktide vahel
suvalist tsüklilist liikumist. Näiteks saab esemete teisaldamiseks kasutada tsüklit 1, 2, 6, 2, 1,
3, 4, 8, 4, 3 ning edasi jälle 1, 2, 6, ... jne. Lihtsuse huvides ei ole siin arvestatud
manipulaatori seiskamise ja haaratsi juhtimise käske. Oletatakse, et esemete
haaramine ja
vabastamine toimub positsioonimispunktis liikumissuuna muutumisel ilma
peatumispausita.
Reaalne juhtseade peab väljastama käske tehnoloogiaseadmetele ning võtma
neilt vastu
signaale. Seega on
tegelikud juhtseadmed palju keerukamad kui siin vaadeldav juhtseade.
Lihtsustused on vajalikud juhtautomaadi tööpõhimõtte paremaks mõistmiseks. Selguse
huvides on otstarbekas näidet veelgi lihtsustada ning kirjeldada manipulaatori liikumist
üksnes
tasapinnal . Joonisel 1.31 on kasutatud samu tähiseid mis ruumilise liikumise mudeli
juures. Lisaks on toodud väljundsignaalide, olekute ja sisendsignaalide koodid.
Väljundsignaalide koodid on tähistatud rasvaselt, kusjuures vastavaid
liikumisi näitavad
nooled. Sisendeid tähistavad liikumise piirikud ning nende kõrval on näidatud koodid.
Oletagem, et manipulaator töötab tsükliga 1, 2, 1, 3, 4, 3 ning edasi jälle 1, 2, 1, ... jne.
Manipulaatori liikumist kirjeldavat skeemi võib vaadelda kõigi eespool loetletud lihtsustuste
korral ka juhtautomaadi graafskeemina, mis määrab roboti töö algoritmi. Graafskeemi järgi
saab koostada juhtautomaadi siirde- ja väljunditabelid (tabelid 1.11 ja 1.12). Arusaadavuse
huvides on tabelis nooltega näidatud roboti
töötsükkel . Siirdetabelis esitatud automaadi
olekud vastavad tema mälu olekutele. Kokku on tabelisse
kantud nelja liiki signaalide
koodid. Need on sisend- ja väljundsignaalide ning mälu sisendi ja väljundi ehk eelmise ja
järgmise oleku koodid. Viimaseid tähistatakse tähtedega
D ja
M (joonis 1.32).
60
e(00)Kõik koodid on kahekohalised.
p(11)Nende
nooremat ehk parem-
v(10)poolset kohta tähistab vastavalt
u(01)(11)0
, y0
, D0 või
M0; vanemat ehk
t(01)vasakpoolset kohta aga
u2e(00)4l
, yl
, Dl
või
Ml. Tühjad lahtrid tabelis on
p(11)tingitud sellest, et vaadeldav
v(10)liikumine ei hõlma manipu-
13(00)(10)t(01)laatori kõiki võimalikke liikumisi
ning alati pole ka kõigile tabeli
lahtritele vastavad tegevused
Joonis 1.31. Manipulaatori töötsükli graafskeem
võimalikud.
Tabel 1.11
Automaadi siirdetabel
X k+1
X (M)
M
M
k
1
0
01
10
11
u i
00
u
u
1
0
00
00
10
01
10
00
10
01
D1
D0
11
11
Tabel 1.12
Automaadi väljunditabel
Yj
X
(M)
M
M
k
1
0
u
01
10
11
i
00
u
u
1
0
00
10
00
01
10
00
10
01
Y
Y
1
0
11
11
61
UnYmLoogikaU0Y0kombinatsiooni-MrskeemDrM0D0MäluT0 DCTr DCJoonis 1.32. Struktuurne automaat
Manipulaatori liikumise, s. o juhtautomaadi programmeerimiseks tuleb tema olekud
salvestada mällu. Kuna olekut kirjeldab kahekohaline kahendarv, siis
piisab mälust, mis
koosneb kahest
D-trigerist (joonis 1.32). Automaadi loogiline süntees seisneb tema loogika
kombinatsiooniskeemi väljatöötamises. Selleks on vaja automaadi siirde- ja väljunditabelite
põhjal koostada automaadi tööd kirjeldavad loogikafunktsioonid. Nende funktsioonide all
mõeldakse väljundsignaale
y0,
yl,
D0 ja
Dl, mis on sisendite
u0,
ul,
M0 ja
Ml funktsioonid.
Püstitatud ülesande võib lahendada kahel viisil. Esiteks võib luua universaalse loogilise
automaadi, mis peale ühenduste tegemist on võimeline
sooritama ükskõik millist antud
tabelis kirjeldatud tegevust. Ainsaks
tingimuseks on, et signaalide arv ja
tabelite mõõtmed
ei muutuks. Sel juhul on tegemist automaadi aparatuurse liiasusega, mis võimaldab
automaati vajaduse korral ümber häälestada. Teiseks võib koostada
loogikaskeemi , mille
korral automaat täidab ainult üht konkreetset tabelis näidatud tegevust. Sel juhul on
tegemist eriotstarbelise automaadiga, mille tööd pole võimalik muuta.
Loogikafunktsioonide esitamiseks on otstarbekas siirde- ja väljunditabelist üle minna
olekutabelitesse. Lihtsamal juhul võib need funktsioonid avaldada ka vahetult siirde- ja
väljunditabelitest. Olekutabelisse koondatakse kõik sisendsignaalide ning neile vastavate
väljundsignaalide väärtused. Tabelite 1.11 ja 1.12 põhjal koostatud automaadi olekutabelis
(tabel 1.13) on näiteks neli sisendsignaali ja neli väljundsignaali. Sisendsignaalid võivad
esinevad 16 kombinatsioonis, kuigi eespool toodud näite puhul oli tegemist vaid 6
kombinatsiooniga.
Tabel 1.13
Automaadi olekutabel
Sisendid
Väljundid
U0
U1
M0
M1
D0
D1
Y0
Y1
0
0
0
0
0
0
0
1
62
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
Olekutabeli 1.13 järgi kirjutatakse välja automaadi loogikavõrrandid, kusjuures arvesse
võetakse ainult need sisendsignaalide kombinatsioonid, mille korral väljundsignaal võrdub
ühega. Nii saadakse
D =
u u M M ∨
u u M M0
0 1
0
1
0 1
0
1,
D =
u u M M ∨
u u M M ∨
u u M M1
0 1
0
1
0 1
0
1
0 1
0
1,
(1.46)
y =
u u M M ∨
u u M M ∨
u u M M0
0 1
0
1
0 1
0
1
0 1
0
1,
y =
u u M M ∨
u u M M1
0 1
0
1
0 1
0
1.
Võrrandite (1.46) põhjal saab konstrueerida juhtautomaadi loogikaskeemi. Et skeem
kujuneks võimalikult lihtsaks, tuleb loogikafunktsioonid minimeerida. Võrranditest on
näha, et eri funktsioonid sisaldavad ühesuguseid loogilisi osakorrutisi, mis lihtsustab
oluliselt juhtautomaadi loogikat. Minimeerimisega seotud probleeme vaadeldi lähemalt
punktis 1.2.3.
Nendega on võimalik tutvuda ka kirjanduse abil. Oluline on, et kui tahetakse luua roboti
juhtseade, mis juhiks manipulaatori töötsooni ulatuses kõiki täiturseadme
mehhanismide ja
ajamite võimalikke liikumisi, siis peab juhtautomaat sisaldama vahendeid sisendsignaalide
suvalistele kombinatsioonidele vastavate loogikafunktsioonide realiseerimiseks. Antud
juhul peab niisugune automaat koosnema vähemalt 16 loogilisest NING-elemendist ja
neljast VÕI-elemendist. Igal NING-elemendil olgu vähemalt 4 sisendit ja igal VÕI-
elemendil kuni 8 sisendit. Lisaks vajatakse signaalide inverteerimiseks EI-elemente. Kui
automaadiga soovitakse realiseerida ainult ühte algoritmi näiteks tabelitega 1.11 ... 1.13
esitatut, siis automaadi loogikaskeem lihtsustub ning piisab kuuest NING- ja neljast VÕI-
elemendist. Sellise automaadi loogikaskeem on joonisel 1.33.
63
CLC&1D0D T
C&D11D T
C&&u1y010u&111y1&KV1KV2MMMMu u u u1 1 0 01 1 0 0Joonis 1.33. Juhtautomaadi loogikaskeem
Automaadil on kaks sisendit ja kaks väljundit. Manipulaatori juures kasutatakse aga nelja
täiturit, näiteks kontaktoreid, mis lülitavad ajameid liikuma edasi - tagasi või paremale ja
vasakule. Kasutatakse ka nelja teekonnalülitit. Et ühendada juhtseade manipulaatoriga,
tuleb sisendsignaalid kodeerida ning väljundsignaalid dekodeerida. Täiturite juhtimiseks on
neid vaja võimendada. Kuna mäluelementideks on sünkroonsed
D-trigerid, vajatakse
automaadi tööks taktiimpulsse.
Viimased saadakse taktiimpulsside generaatorist. Skeemil
on kasutatud NING- ja VÕI-elemente. Kuna integraallülitustena toodetakse peamiselt
NING-EI- ja VÕI-EI-elemente, siis võib automaadi tegelik skeem joonisel 1.33 esitatust
veidi erineda.
Loogikaelementide sisendites olevaid kommutatsioonivälju
KV1 ja
KV2 saab valmistada
ümberhäälestatavatena, kus ühendused tehakse näiteks pistikute abil. Ühendusskeemi
muutmisel muutub juhtautomaadi töö algoritm. Sama otstarvet täidab ka
ümberprogrammeeritav loogiline maatriks. Automaadi häälestamist võib tinglikult nimetada
programmeerimiseks. Vaadeldud põhimõttel töötavad lihtsate tsükliliste positsioon-
juhtimisega robotite ja muutumatu töötsükliga autooperaatorite juhtseadmed. Antud skeem
on koostatud ühe konkreetse algoritmi jaoks.
Maatriksitel põhinevat loogikalülitust saab hõlpsasti muuta juhtautomaadiks, kui lisada
mäluregister. Niisuguse juhtautomaadi struktuur on joonisel 1.34. Ka see, et
juhtautomaate võib lülitada järjestikku, kinnitab maatriksitega juhtautomaatide
universaalsust. Keeruline loogikafunktsioon realiseeritakse sel juhul mitmeastmeliselt,
64
kasutades vahemuutujaid. Selliseid automaate kasutatakse sageli keerukate juhtseadmete
sisemiste protsesside mikroprogrammjuhtimiseks.
uu0kz0&M11M2RGNING-maatriksVÕI-maatrikszgyyonJoonis 1.34. Programmeeritavate maatriksitega realiseeritud automaat
65
1.6.3. Programm- ja mikroprogrammjuhtimineSüsteemide keerukuse teatud tasemel on juhtimise lihtsustamiseks otstarbekas rakendada
hierarhilist struktuuri. Vastavalt sellele võib keeruka automaadi jagada
juht- ja
operatsiooniautomaadiks. Niisuguse automaadi struktuur koos juhtimisobjektiga on
näidatud joonisel 1.35. Operatsiooniautomaat väljastab käsusignaale manipulaatorile ja
tehnoloogiaseadmetele. Juhtautomaat korraldab operatsiooniautomaadi tööd. Arvutis on
operatsiooniautomaadiks
protsessor , juhtautomaadiks aga protsessori tööd juhtiv
mikroprogrammautomaat. Operatsiooniautomaadi iseärasuseks on suur väljundsignaalide
arv. Juhtautomaadil tuleb lahendada keerukaid loogikaülesandeid.
uy00Operatsiooni-JuhtautomaatJuhtimisobjektautomaatuykAmBTagasisideJoonis 1.35. Keerulise automaadi jagamine juht- ja operatsiooniautomaadiks
Robotsüsteem töötab kaheastmelise juhtimise seisukohalt järgmiselt. Süsteemi töötsükkel
koosneb üksikutest tööoperatsioonidest, nagu manipulaatori lülide liikumine ühest
positsioonimispunktist teise, detaili haaramine või vabastamine, tööpingi sisselülitamine
jne. Iga taolise näiliselt lihtsa operatsiooni täitmiseks peab roboti juhtseade tegema rohkesti
elementaartehteid: sisendsignaalidest sõltuvalt vastu võtma loogilisi otsuseid, leidma
etteantud positsioonimispunkti ja tegeliku asendi erinevuse, moodustama juhtimis- ja
indikatsioonisignaalid. Juhtseadme töös tähendab see mitmesuguste aritmeetika- ja
loogikaülesannete lahendamist ning seadmete (aritmeetika-loogikaploki registrite)
üksikasjalikku juhtimist. Seega tuleb roboti iga tööoperatsiooni jaoks täita juhtimisalgoritm,
mis sisaldab sadu elementaartehteid. Roboti juhtimine ja programmeerimine
elementaartehete kaupa on äärmiselt ebamugav ning aeganõudev. Peale selle vajatakse väga
kõrge kvalifikatsiooniga spetsialiste, kes
tunnevad põhjalikult seadme ehitust. Hoopis
mugavam on koostada robotsüsteemi töö algoritm manipulaatori ja tehnoloogiaseadmete
üksikute tööoperatsioonide kaupa. Sel juhul peavad aga juhtseadmetes olema realiseeritud
kõigi võimalike töö- e väljundoperatsioonide algoritmid. Juhtimine taandub siis vajalike
algoritmide valikule ning nende järjestuse määramisele. Neid algoritme on võimalik
realiseerida nn jäiga loogikaga, s.o vastavate loogikaskeemide abil, või mällu salvestatud e
programmeeritava loogika abil. Viimasel juhul nimetatakse igale väljundoperatsioonile
vastavat alamprogrammi mikroprogrammiks ja igale sisemisele elementaaroperatsioonile
vastavat tehet mikrokäsuks. Mikroprogramme realiseerivat juhtseadme osa nimetatakse aga
mikroprogrammjuhtimisega automaadiks. Seega on mikroprogrammjuhtimine üldise
programmjuhtimise (mida nimetatakse vahel ka makroprogrammjuhtimiseks) alumiseks
tasandiks. Kui makroprogrammid koostab peamiselt robotsüsteemi kasutaja, siis
mikroprogrammid koostab enamasti seadet valmistav tehas ning need kuuluvad seadme
riistvara (püsivara) juurde. Analoogiliselt on jaotatud programmjuhtimise ülesanded
arvutis. Kasutajaprogramme töötleb protsessor, mille tööd korraldab juhtautomaat. Kui
66
tehnoloogilist protsessi või robotsüsteemi juhib arvuti või mitmeraalijuhtseade, siis võib
programmjuhtimise hierarhiaastmete arv olla 3 ja enamgi.
Mikroprogrammjuhtimise peamised eelised on järgmised.
1. Paindlikkus, s.t võime valida programmeerimiseks mitmesuguseid makrokäsustikke;
võime imiteerida teisi juhtseadmeid ning kasutada nende tarkvara.
2.
Projekteerimise, valmistamise ja kasutamise lihtsus, mis tuleneb struktuuri
homogeensusest ning hierarhilise programmjuhtimise põhimõttest.
Loetletud eelistel on reaalselt olemas piirid, mille ulatuses neid saab kasutada. Väga lihtsate
süsteemide korral võib aparatuurselt realiseeritud juhtseade osutuda efektiivsemaks kui
mikroprogrammidel põhinev seade.
Mikroprogrammjuhtimisel põhinevaid automaate kasutati kõigepealt elektronarvuti töö
juhtimiseks. Wilkesi loodud mikroprogrammjuhtimisega automaat põhines loogilistel
maatriksitel, registritel ja dekoodril e dešifraatoril (joonis 1.36). Igal töötaktil peab
automaat moodustama uue mikrokäsu aadressi ning väljastama täidetavale mikrokäsule
vastava juhtsõna. Uue mikrokäsu aadress moodustatakse maatriksis
M2 ning see
edastatakse teatud viivitusega mikrokäsu aadressiregistrisse. Sünkroonsignaali saabumisel
aadress dekodeeritakse dešifraatoris
DC, mis ergastab käsule vastava rõhtjuhtme
(joonis 1.36) maatriksites
Ml ja
M2. Seega vastab igale rõhtjuhtmele üks mikrokäsk, nende
koguarv on aga määratud mikrokäsu kahendaadressi kohtade arvuga
n ja võrdub 2
n. Käsule
vastavalt ergastatakse punktidega märgistatud kohtades maatriksi püstjuhtmed ning
moodustatakse juhtsõna
y0 ...
ym. Maatriksis
M2 moodustatakse aga uue mikrokäsu
aadress. See salvestatakse jällegi aadressiregistrisse. Uue mikrokäsu täitmine algab järgmisel
taktil pärast seda, kui saabub uus sünkroimpulss. Maatriksite
Ml ja
M2 programmeerimine
võimaldab moodustada vajalikke mikrokäske ning väljastada neid algoritmile vastavas
järjekorras, kusjuures saab korduvalt tagasi pöörduda ühe või teise käsu juurde. Niisugune
mikrokäskude jada moodustabki mikroprogrammi.
Viivitus DCMikro-
käsu
aad-
ressi-
regis-
terM1M2y ... y0mJoonis 1.36. Wilkesi mikroprogrammautomaat
67
Küllalt suurte maatriksite korral täidab automaat mitmeid mikroprogramme, mis kõik
koosnevad
kindlast käsustikust valitud mikrokäskudest, kuid mille järjestus
mikroprogrammides on erinev. Igale makrokäsule vastava mikroprogrammi täitmine algab
sel juhul kindlast mikrokäsu aadressist ning jätkub kuni mikroprogrammi lõpuni
automaatselt. Iga järgmine makrokäsk käivitab uue mikroprogrammi.
Mikroprogramme saab salvestada ka pooljuhtmällu. Mälul põhineva mikroprogramm-
automaadi struktuur on näidatud joonisel 1.37. Mikrokäsu aadress salvestatakse aadressi-
registrisse. Aadressi dešifreerimisel leitakse mälus sellele vastav mikrokäsk, mis sisaldab
järgmise mikrokäsu aadressikoodi ja antud mikrokäsule vastava mikrooperatsiooni koodi.
Mikrokäsk loetakse mälust käsuregistrisse. Sealt edasi läheb aadressikood dešifraatorisse
DC. Aadressikoodi ja väljast
saabuva juhtkäsu alusel moodustatakse dešifraatoris
sünkroimpulsi saabumisel järgmise mikrokäsu aadress, mis salvestatakse
aadressiregistrisse. Käsuregistrist väljastatakse seadme juhtimiseks vajalik
mikrooperatsiooni kood. Kuigi mikroprogrammautomaate realiseeritakse nii mälude kui ka
programmeeritavate loogiliste maatriksite baasil, on eri automaatidel veidi isesugused
omadused. Mälumassiivi dešifraator on jäiga loogikaga,
PLM- maatriks
Ml aga
paindliku loogikaga.
PLM realiseerib loogikafunktsiooni
yi = f(xi) disjunktiivset normaalkuju, mälu
aga selle funktsiooni tõeväärtustabelit. Sellest tingituna on mäludega lihtsam realiseerida
lihtsa loogika ja suure väljundite arvuga funktsioone.
PLM-i on otstarbekas kasutada seal,
kus on tegemist suhteliselt keerukate loogikafunktsioonidega, ning juhul kui väljundite arv
ei ole väga suur.
DCMäluAadressi-
registerA
daressMikrokäskidekooDCderDekooderKäsuregisterJuhtsignaalVäljundsignaalJoonis 1.37. Mälul põhinev mikroprogrammautomaat
68
1.6.4. Algoritmide programmiline realiseerimineJuhtseadmete riistvara ja tarkvara duaalsusest (ühildatavusest ja asendatavusest) tuleneb, et
juhtalgoritme saab realiseerida nii aparatuursete (riistvara) kui ka programmiliste (tarkvara)
vahenditega. Esimesel juhul on realisatsiooni tulemuseks
aparatuurne automaat, teisel
juhul
programmiautomaat.
Programmiautomaat kujutab endast mõnes algoritmikeeles esitatud programmi, mis on ette
nähtud protsessi või seadme juhtimiseks. Programmi salvestamiseks ja töötlemiseks läheb
aga vaja universaalset riistvaraautomaati. Tänapäeval on niisugusteks automaatideks
mikroprotsessoritel põhinevad üldotstarbelised arvutid, raalid ja raalisüsteemid. Juhtraalide
mälu maht, töökiirus, sisendite ja väljundite arv, väline kuju ning hind on väga erinevad.
Kasutatakse nii odavaid binaarsüsteemide juhtimiseks mõeldud programmeeritavaid
kontrollereid kui ka keerukaid, hierarhilise või hajusstruktuuriga mitmeraalijuhtseadmeid.
Vaatamata mikroprotsessorsüsteemide mitmekesisusele on eri tüüpi protsessorite ehituses
ja tööpõhimõttes palju sarnast.
69
2. MIKROPROTSESSORID2.1. Mikroprotsessorite ja -arvutite ehitus2.1.1. PõhimõistedArvutiks või
raaliks nimetatakse universaalset programmjuhtimisega infotöötlusseadet,
millega sooritatakse kõiki tuntud aritmeetika- ja loogikatehteid. Nimetus arvuti on
õigustatud juhul, kui põhiliseks infotöötluse viisiks on arvutustehted või tekstid.
Teistsuguse infotöötluse korral on seadet otstarbekas nimetada raaliks, eristamaks
juhtimisülesannete lahendamiseks mõeldud eriseadmeid
bürooarvutitest. Universaalset
juhtseadet nimetatakse
juhtraaliks.
Eespool vaadeldud
mikroprogrammautomaat võimaldab protsesside tsüklilist juhtimist,
kuid seda on väga tülikas rakendada universaalse infotöötlusseadmena eriti siis, kui tuleb
sooritada aritmeetika- ja loogikatehteid. Nendeks operatsioonideks on ette nähtud
aritmeetika-loogikaplokk (
ALU - arithmetic-logic unit).
Aritmeetika-loogikaploki
põhifunktsioonideks on mitmekohaliste kahendarvude summeerimine, nende nihutamine
vasakule või paremale, loogiline eitus ehk inversioon, loogiline liitmine (disjunktsioon),
loogiline korrutamine (konjunktsioon) ning loogiline alternatiiv ehk VÄLISTAV VÕI.
Nende põhifunktsioonide kombineerimisega ning rakendamisega kindlas järjekorras
sooritatakse kõiki tuntud aritmeetika- ja loogikatehteid. Näiteks toimub kahendarvude
korrutamine järjestikuste summeerimis- ja nihkeoperatsioonide abil. Elementaartehete
sooritamise
järjekord on määratud arvutuste (näiteks korrutamise) algoritmiga, mida
täidetakse vastavalt mällu salvestatud programmile. Seejuures juhitakse arvutusprotsessi
ehk aritmeetika-loogikaploki, mälu ja registrite tööd mikroprogrammautomaadi abil.
Protsessoriks nimetatakse funktsionaalselt
terviklikku , aritmeetika- ja loogika-
operatsioonideks ette nähtud seadet, mis sooritab tehteid mälus paiknevate käskude järgi.
Peale aritmeetika-loogikaploki kuulub protsessori koosseisu mitu registrit ning
juhtautomaat näiteks mikroprogrammautomaat. Registrid on ette nähtud operandide ja
vahetulemite ajutiseks salvestamiseks. Juhtautomaat korraldab aritmeetika-loogikaploki ja
registrite tööd mällu salvestatud programmi kohaselt.
Mikroprotsessoriks nimetatakse ühel või mitmel integraallülitusel ehk kiibil (
chip) asuvat
protsessorit. Ühel kiibil asuvat mikroprotsessorit nimetatakse ka
monoliitprotsessoriks.
Juhul kui protsessor koosneb mitmest kiibist ja igal kiibil olev osaprotsessor töötleb
kahendsõna teatud kohti, on tegemist
silpprotsessoriga. Arvuti mäluseade koostatakse
tavaliselt eraldi integraallülitustest. Mõnikord on aga mälu paigutatud
protsessoriga ühele
kiibile ning nad moodustavad koos sisendite ja väljunditega ühekiibiarvuti.
Ühekiibiarvuteid kasutatakse peamiselt lokaalseks juhtimiseks, eriti seal kus on oluline
seadme
kompaktsus ja kus ei vajata suuremahulist mälu.
70
Arvuti või
juhtraal (
juhtarvuti ) koosneb protsessorist, mälust, informatsiooni
sisestamiseks ja väljastamiseks mõeldud liidestest ning sisend- väljundseadmetest. Arvuti
plokkskeem ehk nn J von Neumanni klassikalise digitaalarvuti struktuur on kujutatud
joonisel 2.1, kus
keskprotsessor (
CPU - central processor unit) on eraldatud punktiiriga.
Arvuti põhiosade funktsioonid ja koostöö on korraldatud järgmiselt:
1.
ALU sooritab aritmeetika-loogikatehteid.
2. Mäluseadmes salvestatakse tööks vajalik info (andmed, tulemused ja programmid).
3. Sisend-väljundseade on lähteandmete sisestamiseks ja tulemuste väljastamiseks. Seade
sisaldab puhverregistreid ning loogika- ja muid lülitusi välisseadmetega ühendamiseks.
4. Juhtseade, mis võib olla realiseeritud mikroprogrammiautomaadina, juhib aritmeetika-
loogikaploki tööd, annab juhtsignaale mälu- ja sisend-väljundseadmetele. Juhtseade
korraldab juhtkäskude järgi andmete sisestamist, tehete sooritamist
ALU-s, andme-
vahetust
ALU ja mäluseadme vahel, andmete väljastust jne.
Keskprotsessor CPUSisend-AndmedAndmedAritmeetika-Mälu-väljund-loogika-seadeseade plokk , ALU Aadressid AadressidJuhtinfoKäsudJuhtseadeVäline juhtimineJoonis 2.1. Digitaalarvuti klassikaline J von Neumanni struktuur
Nüüdisaegse arvutiteooria rajaja J von Neumanni loodud arvutistruktuuri peamiseks
iseärasuseks on see, et programmi käsud ja arvutusteks vajalikud andmed paiknevad ühises
mälus ning protsessor kasutab neid ühel ja samal viisil. Sõltuvalt programmist võib arvuti
ise muuta käskude täitmise järjekorda.
Programm on mingi tegevuse formaliseeritud
eeskiri. Programm koosneb üksikutest instruktsioonidest, mida nimetatakse
käskudeks.
Programmi täidetakse arvutis üksikute käskude kaupa. Keerukamad programmid jagunevad
alamprogrammideks, mida arvuti võib ühe programmi jooksul täita korduvalt.
71
2.1.2. Arvuti põhiplokid ja siinidMikroprotsessorite ja arvutite ehitus sõltub sellest, kuidas nende eri osad:
ALU, registrid,
mälu, sisend-väljundliidesed jms on ühendatud tervikuks. Juhtseadme protsessori, mälu ja
sisend-väljundliideste vahel kasutatakse ühenduseks
siine (
bus). Sõna
bus tähendab inglise
keeles mitmejuhilist ühendust, millega saab omavahel liita palju süsteemi komponente.
Juhtseadme siin koosneb mitmest paralleelsest juhist, mis ühendavad elektriliselt
juhtseadme erinevaid osi. Siinid jagunevad aadressi-, andme- ja juhtsiinideks. Aadressi- ja
andmesiinid on tavaliselt 8- või 16-soonelised, nende kaudu edastatakse korraga ühe- või
kahebaidine sõna.
Arvutites kasutatakse nii kolmesiinilist aadressi- (
A - address), andme- (
D - data) ja
juhtsiiniga (
C - control ) kui ka kahesiinilist, s. o ühise aadressi ja andmesiiniga ning eraldi
juhtsiiniga süsteemi. Vastavad struktuurid on joonistel 2.2 ja 2.3.
Aadressisiini 8 biti abil saab edastada aadresse 0...255, mis sobib väga väikese mälu või
näiteks sisend- ja väljundliideste adresseerimiseks. Kõik sisend- ja väljundliidesed ning
mälu on ühendatud siiniga, millele protsessor väljastab aadressi. Iga
liides või mälu
reageerib kohe, kui ta oma aadressi ära tunneb, s. t kui protsessor siini kaudu tema poole
pöördub; muud liidesed sel juhul ei reageeri. Suuremate mälude adresseerimiseks on vaja
16- või enamasoonelist siini. Otseselt adresseeritavate mälupesade arv võrdub muutmälu
pesade (baitide) arvuga ehk mälu mahuga. 16-bitise aadressisiini korral saab otseselt
adresseerida 216 = 65535 baiti = 64 Kbaiti; (220 = 1 Mbait).
Kui mingi sisendseade tuvastab siinil oma aadressi, väljastab ta
andmesiinile oma
mäluregistri bittide olekud. Kui protsessor
saadab andmesiinile väljastamiseks kaheksa bitti,
antakse need bitid väljundliidese kaudu edasi väljundseadmetele. Samuti toimub
andmesiini kaudu andmevahetus protsessori ja mälu vahel.
Juhtsiini kaudu edastatakse
signaale, mida kasutatakse arvuti töö juhtimiseks ja kontrolliks. Näiteks määravad juhtsiini
kaudu edastatavad signaalid
R (
read) ja
WR (
write), kas mälu poole pöördutakse info
lugemiseks või kirjutamiseks.
Aadressid ja andmed on siinil väga lühikest aega. Nii saab ühe ja sama siiniga edastada
kogu nõutava info paljudelt sisenditelt protsessorisse ja vastupidi protsessorist paljudesse
väljunditesse, lugeda mälust käske ning salvestada sinna vajalikku infot.
Kesk-MäluSisend-protsessorväljund-
seadmedCPUADR/WADC Aadressisiin AndmesiinJuhtsiinJoonis 2.2. Kolmesiinilise mikroarvuti struktuur
72
Kesk-MäluSisend-protsessorväljund-
seadmedCPUR/WA DC A DJuhtsiinAadressi-andmesiinJoonis 2.3. Kahesiinilise mikroarvuti struktuur
Kaasaegsed arvutid ja juhtimissüsteemid põhinevad magistraalstruktuuril, mille
universaalset
ühissiini nimetatakse ka universaalseks kanaliks (joonis 2.4).
ÜhissiinADCADR/WADRADCKesk-MuutmäluPüsimäluSisend-protsessorväljund-
seadmedCPURAMROMJoonis 2.4. Ühissiiniga arvuti struktuur
Siinis edastatakse andmeid mõlemas suunas, s. t signaalide vastuvõtt ja väljastamine
toimub samu
juhtmeid pidi. Selleks kasutatakse kolmeolekulisi kahesuunalisi puhvreid.
Joonisel 2.5 on reversiivne andmete edastus siinilt
A seadmele
B kahesuunalise puhvri
abil.
Siin A Võimendi 1Andmed AAndmed BSeade BVõimendi 2Juhtimine:0 - suund A > B1 - suund B > A 73
Joonis 2.5. Kahesuunaline
värat Juhtsignaali 0 korral edastab võimendi
DA1 andmeid siinilt
A seadmele
B. Juhtsignaali 1
korral muutub aktiivseks võimendi
DA2 ning andmevoog kulgeb seadmelt
B siinile
A.
Samal ajal kui üks võimenditest on aktiivne, on teine võimendi suure sisetakistusega
olekus. Seda olekut nimetatakse suletud ehk kolmandaks olekuks, mis tähendab, et see ei
võrdu 1 ega 0-ga.
2.1.3. TöötsüklidArvuti töötab mällu salvestatud programmi järgi. Protsessor loeb mälust programmi käske
ning täidab neid käskude sisu alusel. Programmi täitmine toimub tsükliliselt käskude kaupa.
Käsu täitmiseks peab protsessor
pöörduma mälu poole, lugema sealt käsukoodi,
dekodeerima selle, võtma vastu käsu
sisule vastavad loogilised otsused, väljastama
juhtsignaalid kõigile arvuti komponentidele, leidma uue käsu aadressi ning salvestama selle
aadressiregistrisse. Järgmise käsu täitmisel kordub kõik enam-vähem samas järjekorras.
Erinevused käskude täitmisel on tingitud nende
erinevast sisust. Ühe käsu täitmiseks
kuluvat ajavahemikku nimetatakse
käsutsükliks. Programmi täitmine ning protsessori ja
mälu vaheline töö on korraldatud tsükliliselt, kusjuures töö tulemusi väljastatakse
perioodiliselt (joonis 2.6). Programmi käsud on mälus järjestikku, nii nagu need on
kirjutatud ka käsitsi koostatud programmilistile. Iga käsk vajab mälus ruumi, mis sõltub
käsu baitide arvust.
Arvuti töö on sünkroniseeritud taktiimpulssidega. Taktiimpulsid saadakse
impulsigeneraatorist. Töö stabiilsuse
suurendamiseks ning
reaalajas töötamiseks rakenda-
takse impulsigeneraatoris kvartsresonaatorit. Tänu sellele suudab arvuti täita ka kella
funktsioone.
Tsükkel ProgrammimäluAlgus........MäluKäsk 1 S 1.0Käsk 2 S 1.1Käsk 3 V 4.0Käsk 4 S 1.2Käsk 5 S 1.3ProtsessorKäsk 6 V 4.1Käsk 7 LõppTulemid........ LõppJoonis 2.6. Arvuti töötsükkel
Joonis 2.7. Käskude
paiknemine mälus
74
Takt (
T) on lühim
ajavahemik , mille jooksul arvuti suudab sooritada elementaartehte.
Kestuselt järgmiseks ajavahemikuks on arvutis masinatsükkel (
M).
Masinatsükli
jooksul võib arvuti valida mälust käsusõna, lugeda mälust või kirjutada infosõna mällu,
lugeda andmesõna sisendist või salvestada tulemisõna väljundisse, katkestada
põhiprogrammi täitmine või teha mingi muu operatsioon. Eri liiki masinatsüklite arv on
määratud protsessori juhtalgoritmiga. Mikroprotsessoril
Intel 8080 on 10 erinevat
masinatsüklit. Masinatsükliteks on näiteks käsu valik, mälu lugemine, mällu kirjutamine,
pinumälu lugemine, pinumällu kirjutamine, sisendi lugemine, väljundisse kirjutamine,
katkestuse lubamine , otsemällupöördumise lubamine jms. Ühe masinatsükli kestus on
sõltuvalt sisust 3...5 takti. Käsu täitmiseks kulub 1...3 masinatsüklit. Käsutsükli
ajadiagrammi näide on joonisel 2.8. Vastavalt käsule kirjutatakse operand ühest mälu
piirkonnast teise. Esimese masinatsükli
M1 ajal määratakse operatsiooni- ehk tehtekood,
s. t mida teha. Teise masinatsükli
M2 ajal loetakse operand mälust protsessorisse.
Kolmanda masinatsükli
M3 ajal kirjutatakse operand muutmälu pessa, mille aadress on
protsessori registris. Programmi käsud asuvad järjestikustes mälupesades. Seepärast
tuleb järgmise käsu poole pöördumiseks suurendada aadressi vastavalt käsu pikkusele
ühe, kahe või kolme võrra.
ΦTTTTTTTTTT1234123123M 1M 2M 3(Operatsiooni kood)(Lugemine mälust)(Mällu kirjutamine)KäsutsükkelJoonis. 2.8. Keskprotsessori käsutsükli ajadiagramm
Arvutit, mille põhiülesandeks on seadmete või protsesside juhtimine, nimetatakse
juhtraaliks. Juhul kui juhtraali protsessor käib korduvalt töötsükli kaupa kõik
programmimällu kirjutatud käsud algusest lõpuni läbi, s. t pöördub tsükliliselt vastava
aadressiga mälupesade poole, on tegemist
tsüklilise programmjuhtimisega. Programmi
lugemist algusest lõpuni nimetatakse
programmi tsükliks. Aega, mis kulub
programmitsükli läbimiseks, nimetatakse
programmi tsükliajaks. Selle kestus sõltub
juhtraali töökiirusest ning juhtkäskude olemusest. Lihtsamate tsüklilise
programmjuhtimisega
juhtraalide ehk programmeeritavate kontrollerite
tsükliaeg koosneb
kolmest üksteisele
järgnevast osast:
1. Protsessor pärib kõigi sisendite olekuid ning salvestab need vahemällu.
Vastav päringuprogramm on salvestatud kontrolleri juhtimissüsteemi.
2. Protsessor töötleb kasutajaprogrammi. Ta loeb käske; täidab neid selles
järjekorras, nagu need on programmimälus; pärib sisendite, ajareleede jms olekuid
ning moodustab lõpptulemi, millega juhitakse väljundeid.
3. Protsessor saadab väljundite uued olekud väljundikaardile.
Kokkuvõtteks võib öelda, et arvuti töö on korraldatud tsükliliselt, kusjuures
tsüklid moodustavad
hierarhia : programmitsükkel, käsutsükkel, masinatsükkel, takt.
75
76
2.2. Mikroprotsessori tööpõhimõte2.2.1. Protsessori ehitusMikroarvutite ja juhtraalide kasutaja (
programmeerija ) ei pea teadma riistvara
üksikasjalikku ehitust, kuid tal peab olema selge
ettekujutus protsessori ja arvuti
tööpõhimõttest. Ta peab teadma arvuti põhilisi koostisosi ning signaale, koode või käske,
millega arvuti tööd juhitakse. Kõige olulisem on tunda mikroarvuti käsustikku, sest
üksikutest käskudest koostatakse kõik kasutajale vajalikud programmid.
Mikroarvuti käsustik sõltub protsessori tüübist. On olemas
fikseeritud käsustikuga
protsessorid ning ka sellised, mille käsustiku võib kasutaja oma soovi kohaselt välja
mõelda. See tähendab, et mikroprotsessori
seesmine juhtautomaat on kasutaja poolt
programmeeritav või ümberprogrammeeritav. Teisiti öeldes, on olemas protsessorid, mille
seesmise juhtautomaadi programmeerib kiibi valmistaja (tehas), ning on olemas
protsessorid, mille juhtautomaadi mikroprogrammid salvestab kasutaja. Viimaste hulka
kuuluvad tavaliselt silpprotsessorid.
Protsessorid eristuvad üksteisest töödeldava kahendsõna pikkuselt (8-, 16- ja 32-bitised),
sisemiste registrite arvult ja
tähenduselt , info
adresseerimise viisi ning käskude
sümboolika ja koodide poolest. Seepärast ei ole ühe mikroarvuti masinakeeles programmid otseselt
ülekantavad teisele
arvutile . Ometi on eri mikroarvutite ehituses ja programmeerimises
palju
sarnasusi , mis võimaldavad ühe arvuti juures omandatud kogemusi rakendada ka
teiste arvutitega töötamisel.
Programmeerija jaoks tuleks koostada juhtraali või programmeeritava kontrolleri mudel,
kus on ära näidatud kõik programmeerijale
ligipääsetavad riistvara osad. Nendeks on
aritmeetika-loogikaplokk,
akumulaator , üldotstarbelised ehk üldregistrid ning mälu.
Programmeerija peab tundma mälu aadressiruumi, millistesse pesadesse saab kirjutada
programme , kus asuvad juhtseadme süsteemsed programmid ning millised aadressid on
reserveeritud andmete salvestamiseks.
Joonisel 2.9 on näidatud kolme siiniga 8-bitise mikroprotsessori (
Intel 8080) ehitus ning
põhilised komponendid. Mälu aadresside ja käskude kodeerimiseks kasutatakse antud juhul
kuueteistkümnendarve. Märkigem, et mõne teist tüüpi protsessori korral kasutatakse ka
kaheksandarve. Programmistile on kättesaadavad 10 registrit, neist kuus 8-bitist üldregistrit,
8-bitine akumulaator ja tunnuste register ning 16-bitised registrid
SP ja
PC. Üldotstarbelised
8-bitised registrid on tähistatud tähtedega
B, C, D, E, H, L. Neid võib kasutada ka paariviisi
B & C, D & E ja H & L, s. t kolme 16-bitise registrina. Registripaare tähistatakse paari
esimese registri tähise järgi, s. t
B&C = B,
D&E = D ja H&L = H. A tähistab akumulaatorit,
SP pinumälu
viita ja
PC käsuloendurit.
INC/DEC on kasvatamis-/kahandamislülitus
(
increment/decrement).
77
AndmesiinAndmepuhverEnnistam.RESETSisemine andmesiinJ Sünkroni-F1U seerimineF2HSYNCR.TVR1VR2TRKRValmisolek READY AMUXU OoteolekWAITBCT DMA HOLD DEO juhtimineHLDAKäsuMHLKatkestusteINTDCAALUSPA juhtimineINTEAPCT LugemineRDINC/DECKirjutamineWR10 korr.JuhtsignaalidJuhtsiinAadressisiinJoonis 2.9. Mikroprotsessori registrid ja siinid
2.2.2. Registrid ja nende otstarveMikroprotsessor sisaldab mitmeid registreid, mida kasutatakse tehte tulemite või tehte
vahetulemite lühiajaliseks salvestamiseks, selleks et tulemid oleksid kiiresti saadaval
järgmisteks teheteks.
Akumulaator on protsessori üheks kõige tähtsamaks registriks, kuhu enne tehte
sooritamist viiakse üks operandidest ning kuhu salvestatakse automaatselt aritmeetika-
loogikaploki tulem.
Pinumälu viit ehk
pinuviit säilitab muutmälu selle piirkonna aadressi, mida jooksvalt
kasutatakse pinumäluna.
Käsuloenduri (
PC - program counter või
IP - instruction pointer) ülesandeks on
säilitada programmi järgmise käsu aadressi. Selle järgi võib käsuloendurit nimetada ka
käsuviidaks (vrd pinuviit) või programmiloenduriks. Standardsel 8-bitisel mikroprotsessoril
on 16-bitine
käsuloendur , millega täidetakse programmi, mille pikkus mälus ei ületa 65 535
käsku.
Juurdekasvulülitus võimaldab suurendada või vähendada programmiloenduri sisu ühe
võrra ning programmeerida selle abil loendureid ja korraldada järjestikku protsesside
juhtimist.
Üldregistreid B, C, D, E, H, L kasutatakse programmi operandide, vahetulemite või
aadresside ajutiseks säilitamiseks.
78
Peale nime on igal registril veel kindel kolmebitine kahendkood, mis sisaldub tehtekoodis ja
võimaldab käsuga vahetult vastava registri poole pöörduda.
B 000,
C - 001,
D 010,
E - 011,
H 100,
L - 101,
M 110,
A - 111,
kus
M tähistab mälupesa, mille aadressiks on registripaaris
H&L olev kood.
Registrite
kasutamisel tuleb arvestada, et andmesõna normaalseks pikkuseks on 8 bitti,
aadressisõna pikkuseks aga 16 bitti. Vastavalt sellele salvestatakse andmeid harilikult
8-bitistesse registritesse ning üksnes erijuhul kasutatakse topeltpikkusega 16-bitist
andmesõna. Registrite arv ning otstarve on eri protsessoritel erinev. Näitena on tabelis 2.1
protsessoriperekonna
Intel 8086 ja 80386 registrite loetelu.
Tabel 2.1
Protsessoriperekonna
Intel 8086, 80386 registrid
Üldregistrid (
General Purpose Register)
Segmendiregistrid (
Segment Registers)
AH/AL AX (EAX) Accumulator
CS
Code Segment
BH/BL BX (EBX)
Base DS
Data Segment
CH/CL CX (ECX) Counter
SS
Stack Segment
DH/DL DX (EDX) Data
ES
Extra Segment
(FS)
386 and newer
(Exx) indicates 386+ 32 bit register
(GS)
386 and newer
Viidaregistrid (
Pointer Registers)
Pinumälu registrid (
Stack Registers)
SI (ESI) Source Index
SP (ESP) Stack Pointer
DI (EDI) Destination Index
BP (EBP) Base Pointer
IP
Instruction Pointer
Olekuregistrid (
Status Registers)
FLAGS Status Flags (see FLAGS)
Eriregistrid (
Special Registers, 386+ only)
CR0
Control Register 0
DR0
Debug Register 0
CR2
Control Register 2
DR1
Debug Register 1
CR3
Control Register 3
DR2
Debug Register 2
DR3
Debug Register 3
TR4
Test Register 4
DR6
Debug Register 6
TR5
Test Register 5
DR7
Debug Register 7
TR6
Test Register 6
TR7
Test Register 7
Registrite kasutamine
Register Default Segment
Valid Overrides
BP
SS
DS, ES, CS
SI or DI
DS
ES, SS, CS
79
DI strings
ES
None SI strings
DS
ES, SS, CS
Programmi käsk loetakse mälust
käsuregistrisse, kus seda hoitakse seni, kuni
käsudekooder ta ära tunneb. Käsu järgi määrab juhtautomaat protsessori masinatsükli
ning realiseerib algoritmi. Algoritmi täitmiseks väljastab
juhtautomaat signaalid protsessori
funktsionaalsetele osadele:
ALU-le, registritele jms. Juhtautomaadi algoritm määrab ära,
millist operatsiooni täidetakse ning kuidas toimivad protsessori üksikud osad. Järgmise
käsu täitmiseks kirjutatakse käsuloendurisse uus aadress.
Olekuregistri sisu oleneb aritmeetika-loogikaplokis sooritatava tehte tulemusest. Näiteks
kui tehte tulemusena saadakse null, s. t tulemi kõik bitid on
nullid , siis fikseeritakse
olekuregistris nn nulli tunnus ehk
lipp (
F - flag). Selleks on registris eraldatud üks bitt -
nulltunnuse bitt ehk nullbitt (
Z - zero ), mis tunnuse olemasolu korral viiakse olekusse
Z = 1.
Kui arvude liitmisel toimub vanemast bitist ülekanne, siis fikseeritakse ülekande tunnus
(
C - carry) ning tunnuste registri
C-bitt viiakse olekusse
C = 1. Seda registrit nimetatakse ka
lippude registriks. Protsessorites kasutatakse erineva lippude arvuga olekuregistreid
Olekuregistri sisu järgi toimub siirdekäskude täitmine. Sõltuvalt keskprotsessori
(
CPU - central processor unit) tüübist kasutatakse täiendavalt
tingimuslike siirete plokki ,
mis universaalarvutis
Pentium on edasi arendatud
järgmist käsku prognoosivaks
plokiks. Sel viisil
saavutatakse arvuti töökiiruse suurenemine.
Enamkasutatavatel lippudel on järgmine tähendus:
S (
N) (
sign ) negatiivne tulem. Lipp seatakse
S = 1, kui registri sisu on pärast käsu
täitmist negatiivne. 8-bitises registris võib märgiga arve kujutada piirkonnas
-(27) = -128 kuni (27 -1) = 127;
Z (
zero) nulltulem. Lipp seatakse
Z = 1, kui registri sisu on 0; lipp pööratakse
Z = 0,
kui registri sisu ei ole 0;
AC (
auxiliary carry) abi- ehk dekaadülekanne. Lipp seatakse
AC = 1, kui on ülekanne
registri madalamast poolbaidist kõrgemasse poolbaiti, s. t kolmandast bitist
neljandasse (registri bitid nummerdatakse paremalt vasakule). Seda tunnust
kasutatakse kümnendaritmeetika kahend-kümnendkoodis teheteks;
P (
parity ) paaristulem. Lipp seatakse
P = 1, kui registri ühtede summa on paaris, ja
P = 0, kui summa on paaritu;
CY (
carry) ülekanne. Lipp seatakse
CY = 1, kui oli ülekanne registri seitsmendast bitist.
Kui ülekannet ei olnud, siis
CY = 0.
T (
trap) püünisetunnus. Kui T = 1, s. t lipp on seatud, siis toimub programmi
katkestus pärast
jooksva käsu täitmist ja siire püüniseks nimetatavasse
80
eriprogrammi. Seda lippu kasutatakse peamiselt programmi silumisel.
Lippude tähistena võib kasutada ka mitmeid teisi tähti. Mikroprotsessori
Intel 8086 ja
80386 lippudest annab ülevaate tabel 2.2.
Tabel 2.2
Protsessoriperekonna
Intel 8086, 80386 olekuregister
¦11¦10¦F¦E¦D¦C¦B¦A¦9¦8¦7¦6¦5¦4¦3¦2¦1¦0¦
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ +--- CF Carry Flag
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ +--- 1
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ +--- PF Parity Flag
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ +--- 0
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ +--- AF Auxiliary Flag
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ +--- 0
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ +--- ZF Zero Flag
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ +--- SF Sign Flag
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ +--- TF Trap Flag (Single Step)
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ +--- IF Interrupt Flag
¦ ¦ ¦ ¦ ¦ ¦ ¦ +--- DF Direction Flag
¦ ¦ ¦ ¦ ¦ ¦ +--- OF Overflow flag
¦ ¦ ¦ ¦ +-----
IOPL I/O Privilege Level (286+ only)
¦ ¦ ¦ +----- NT Nested
Task Flag (286+ only)
¦ ¦ +----- 0
¦ +----- RF Resume Flag (386+ only)
+------ VM Virtual Mode Flag (386+ only)
Registreid
A (akumulaator) ja
F (lipud) vaadeldakse mõnikord registripaarina,
programmi
olekuregistrina. Eriline tähtsus on seejuures registril
F, mis on ette nähtud tulemitunnuste
salvestamiseks.
Protsessori olekusõna (
PSW - processor status word).
Protsessor genereerib iga
masinatsükli esimese takti jooksul andmesiinile protsessori olekusõna, mis iseloomustab
masinatsüklit ja sisaldab protsessori töö kohta täpsemat infot. Protsessori olekusõna
salvestatakse protsessori välisesse olekuregistrisse ning seda kasutatakse liiteseadmete
juhtimiseks.
2.2.3. Ajadiagrammid81
Protsessori töö ajalist
kulgu iseloomustavad ajadiagrammid, mille põhjal saab hinnata ühe
või teise operatsiooni elementaartehete järjekorda ning operatsiooni sooritamise kestust.
Joonistel 2.11 ja 2.12 on protsessori ja mälu koostööd iseloomustavad ajadiagrammid.
Mälust lugemisel sooritab protsessor järgmised elementaartehted:
1)
juhtsignaal
RD/WR viiakse olekusse
RD (
read), mis tähendab lugemist,
2)
mälupesa aadressisõna, kust soovitakse lugeda infot,
saadetakse aadressisiinile,
3)
kiibivaliku siganaaliga
CS (
chip select) avatakse juurdepääs mällu,
4)
loetakse mälupesa sisu väljundisse (andmesiinile).
Mällu
kirjutamisel sooritatakse järgmised elementaartehted:
1)
mälupesa aadressisõna, kuhu soovitatakse kirjutada infot, saadetakse
aadressisiinile,
2)
kiibivaliku signaaliga
CS (
chip select) avatakse juurdepääs mällu,
3)
juhtsignaal
RD/WR viiakse olekusse
WR (
write), mis tähendab kirjutamist,
4)
mällu kirjutatav infosõna saadetakse mälu sisendisse (andmesiinile).
Protsessori, mälu ja välisseadmete töö ajaliseks korraldamiseks kasutatakse sünkroni-
seerimist.
TaktiimpulsidTaktiimpulsidAadressAadressRD/WRRD/WRCSCSVäljundSisendttttttttttt012301234Joonis 2.10. Mälust lugemise ajadiagramm
Joonis 2.11. Mällu kirjutamise ajadiagramm
2.2.4. Käsu- ja andmevormingudArvuti töötab
programmjuhtimise põhimõttel. Programmeerimine toimub käskudega.
Käsk sisaldab informatsiooni selle kohta,
missugust tehet tuleb täita. Informatsiooni, mida
arvutis töödeldakse, nimetatakse
andmeteks. Andmete töötluseeskirja nimetatakse
82
algoritmiks. Algoritmi saab esitada plokk- ja graafskeemina või ka programmina. Käskude
jadana esitatud algoritmi nimetatakse
programmiks. Programm ja andmed salvestatakse
mällu, kus need on protsessorile kergesti kättesaadavad. Arvuti töö seisneb programmi
automaatses täitmises.
Käsus sisalduv informatsioon on määratud
käsuvorminguga. Käsuvormingu peamised
osad on
tehte- ehk
operatsioonikood ja
aadressid. Tehtekood näitab, missugust tehet on
vaja sooritada, aadressid näitavad tehete operandide
asukohta mälus, s. o mälupesa
asukohta või registri nime. Mälus paiknevate käskude või andmete poole pöördumist
nimetatakse
adresseerimiseks. Koos aadressiga antakse info adresseerimise viisi kohta.
a)
D7 D6 D5 D4 D3 D2 D1 D0Tehtekoodb)
D7 D6 D5 D4 D3 D2 D1 D0TehtekoodD7 D6 D5 D4 D3 D2 D1 D0Operandc)
D7 D6 D5 D4 D3 D2 D1 D0TehtekoodAadressi noorem bait D7 D6 D5 D4 D3 D2 D1 D0või 1. operandAadressi vanem baitD7 D6 D5 D4 D3 D2 D1 D0või 2. operandJoonis 2.12. Käsuvormingu näited:
a) ühebaidine käsk, b) kahebaidine käsk, c) kolmebaidine käsk
Täidetava funktsiooni järgi võib arvuti käsud jaotada järgmistesse rühmadesse: 1) andme-
edastuskäsud, 2) aritmeetika- ja loogikakäsud, 3) siirdekäsud, 4) alamprogrammikäsud,
5) nihkekäsud, 6) sisendi-väljundikäsud ja 7) muud erikäsud.
Käsu täitmine toimub
etappide kaupa.
Aritmeetika-loogikakäskude korral eristatakse
järgmisi
etappe : 1) käsu lugemine mälust, 2) operandide lugemine, 3) tehte sooritamine, 4)
tulemi salvestamine, 5) järgmise käsu ettevalmistamine.
Siirdekäskude puhul on olulised
1) käsu lugemine, 2) tingimuste analüüs, 3) järgmise käsu ettevalmistamine.
Andmed. Arvutid kasutavad järgmisi andmete tüüpe: arve, loogikaväärtusi,
märke ja
märgijadasid. Andmesõna pikkus avaldab olulist mõju andmete edastamisele. Mahukamate
andmete korral (näiteks ujukomaarvude kasutamisel) koosneb andmeüksus e andmesõna
mitmest (2 ... 4) arvutisõnast (8 ... 32 bitti). Arvulised andmed on enamasti
kahendsüsteemis ning esitatakse püsikoma- ja/või ujukomaarvuna (joonis 2.13).
Püsikomaarvude puhul on
koma arvu mäluvälja kindlal positsioonil. Vanematel
protsessoritüüpidel paikneb koma enamasti esimese numbrikoha ees, s. t mälus saab
kujutada vaid ühest väiksemaid püsikomaarve. Kaasaegsematel ei määrata koma arvuti
83
lülitusega ega
kanta koos numbritega mällu, vaid koma asukoht määratakse kindlaks
programmiga. Püsikomaarvude kasutamisel võib tekkida mäluvälja
ületäitumine, s. o
olukord, kus arvutustehte tulem ei mahu mäluvälja. Samuti võib esineda mäluvälja
alatäitumist, s. o olukorda, kus arvutustulem on niivõrd väike, et kujutub mäluvälja
piirides nullina. Töötamisel ujukomaarvudega ilmnevad nimetatud ebameeldivused
tunduvalt harvemini. Püsikomaarvudel määrab arvu kõrgeim koht arvu märgi; plussmärki
tähistatakse 0-ga, miinusmärki aga 1-ga. Ülejäänud bitid
esitavad kas murdarve 0, 2-15, ... 1-
2-15 või täisarve 0, 1, 2 ... 215 -1.
Negatiivseid arve esitatakse üldjuhul täiendkoodis.
Murdarvulisel kujutamisel täiendkood suurendab ehk täiendab arvu absoluutväärtust
kaheni,
täisarvulisel kujutamisel 2
n-ni, näiteks 216-ni.
Ujukomaarvude korral salvestatakse mälus lisaks märgile ja numbritele veel
eksponent (arv, mis määrab koma asukoha). Eksponent näitab, mitme numbri võrra tuleb koma
nihutada vasakule (kui eksponent 0), lähtudes algseisust,
kus koma oli vahetult esimese numbri ees. Ujukomaarvud salvestatakse enamasti
normaliseerituna, s.o
selliselt et arvu numbrikohtade jada ehk
mantissi esimene number
erineb nullist. Kui mällu suunatakse tingimusele mittevastav arv, normaliseerib arvuti selle
enne salvestamist.
Ujukomaarvu kood koosneb mantissist
M ja eksponendist
a, mis
esitavad arvu 2
aM, enamasti 0,5 ≤
M kahes arvutisõnas, kusjuures
astmenäitaja ja mantiss paiknevad teineteise suhtes erinevatel
arvutitel erinevalt.
Normaliseerimiseks nimetatakse mantissi numbrite nihutamist ja eksponendi
muutmist nii, et arvu väärtus ei muutu. Näiteks arvu 8 900 000 ujukomaesituse moodustavad märk +,
mantiss 89 (millele lisanduvad nullid) ja eksponent 7. Ujukomaarvude esitus on
analoogiline tavalisele arvude esitusele 10 astme kaudu kujul
N =
M×10
p, kus mantissi
tähistab
M ja eksponenti
p. Kui analoogiliselt talitada kahendarvuga, s. t esitada ta 2 astme
kaudu, vastab arvu kuju ujukomakahendarvule. Arve on otstarbekas esitada
ujukomaarvudena väga väikeste ja väga suurte arvude, näiteks füüsikaliste konstantide
korral ja nendega opereerimisel.
MÄRKARVU NUMBRID MÄRKMANTISSEKSPONENTMÕELDAV KOMAMÕELDAV KOMA( programmis punkt)Joonis 2.13. Püsi- ja ujukomaarvud
Loogikaandmeid esitavad arvutisõna või bitid eraldi. Vastavalt sellele töödeldakse
loogikaandmeid kas terve sõna ulatuses või sõna üksikute bittide kaupa.
Märgijadasid kasutatakse enamasti võimsates arvutites. Väikestes juhtarvutites eraldi
andmeliigina neid üldjuhul ei kasutata. Märgijadadena esitatud andmed
haaravad tavaliselt
suvalise arvu arvutisõnu. Märgi (tähe, numbri jne e tärgi) esitusüksus on bait, mis kõige
sagedamini koosneb 8 bitist.
84
Programmeerija kasutab sageli ka
kompleksarve, kuid nendega sooritatavad tehted
teisendatakse programmide abil teheteks arvude
reaal - ja imaginaarosadega.
Lisaks aritmeetilistele ehk arvandmetele salvestavad ja töötlevad arvutid suvalisi
tekstijadasid, mis on koostatud arvutile tuntud märkidest (numbrid, suurtähed,
mitmesugused erimärgid). Selliseid
tekste nimetatakse märgistringideks.
Märgistringid salvestatakse arvuti mällu
ASCII -koodis järjestikuste baitidena nii, et iga
märk hõlmab ühe baidi. Stringide hulgas eristatakse bitistringe, mis koosnevad ainult
bittidest. Bitistringidel põhineb infoloogiliste ülesannete lahendamine.
Käsu lugemisel antakse käsuloendurist ette käsu aadress. Selleks viiakse käsuloenduri sisu
aadressiregistrisse ning edastatakse aadressisiini kaudu mällu. Ühtlasi antakse mälule
lugemiskäsk. Tulemusena saadakse järjekordne käsk, mis viiakse andmesiini kaudu
protsessori käsuregistrisse. Kui käsk näeb ette tehet mingi operandiga, siis sisaldub käsus ka
operandi aadress. Kahe operandi korral antakse käsuga ette kaks aadressi.
Operandi lugemisel pöördutakse käsuga määratud mälu aadressi või registri poole ning
suunatakse sealt saadud operand protsessori registrisse. Kui
tehe tuleb sooritada kahe
operandiga, loetakse mälust ka teine operand ning viiakse samuti protsessori registrisse.
Tehe sooritatakse protsessoris (aritmeetika-loogikaplokis) käsu tehtekoodi kohaselt.
Tulem salvestatakse akumulaatorisse või kaheoperandiliste tehete korral teise operandi
asemele mälupessa.
Järjekordse käsu ettevalmistamine seisneb käsuloenduri
formeerimises. Kui programmi käske täidetakse järjestikku, siis suurendatakse
käsuloenduri sisu ühe võrra. Siirdekäskude korral suunatakse sõltuvalt lipust
käsuloendurisse siirde aadress (
Z = 1) või suurendatakse käsuloenduri sisu ühe võrra (
Z =
0). Seega sõltub tingimusest (lipust), kas programmi täitmist jätkatakse järgmisest käsust
või pöördutakse tingimussiirde käsus näidatud aadressi poole ja jätkatakse programmi
täitmist sealt. Kõiki loetletud tegevusi juhib protsessori juhtplokk.
2.2.5. Protsessori käsustikMikroarvuti programmeerimine masinakoodis või assemblerikeeles eeldab kõigi tema
käskude põhjalikku tundmist. Mikroarvutites kasutatakse erisuguseid masinakoode ja
assemblerikeeli. Seepärast tuleb lugejal täpsema teabe saamiseks pöörduda käsiraamatute
või konkreetsete arvutite ja juhtseadmete
juhendite poole. Siinkohal tutvustatakse firma
Intel 8-bitise protsessori 8080 käsustikku (vt tabel 2.3), millest hiljem on välja arenenud
hilisemate protsessoripõlvkondade 80286, 80386 ja 80486 käsustikud.
Universaal -
protsessori käsud võib jaotada rühmadesse.
Andmeedastuskäskudega saab viia infot ühest registrist teise, mälust registrisse või
vastupidi. Tüüpiliseks käsuks on näiteks
MOV r1,
r2 (
move - liikuma), mis tähendab, et info
viiakse registrist
r2 registrisse
r1.
Aritmeetika-loogikakäsud võimaldavad sooritada
vastavaid tehteid. Näiteks käsuga
ADD B liidetakse akumulaatori sisu registri
B sisule ning
tulem salvestatakse akumulaatorisse.
Siirdekäsud jaotatakse tingimusteta ja tingimuslikeks
85
siirdekäskudeks. Tingimusteta siirdekäsuks on näiteks
JMP ad (
jump), mis tõlkes tähendab
hüpet. Käsk sisaldab aadressi (
ad), kuhu tuleb käsu järgi siirduda, näiteks
JMP E5 F0.
Tingimuslikud siirdekäsud võimaldavad kontrollida tulemitunnuseid ning siirduda teatud
programmiharusse. Nende käskudega organiseeritakse programmi tsüklilist täitmist. Näiteks
käsk
JNZ ad (
jump on no zero) tähendab, et juhul kui tulem ei võrdu nulliga, tuleb siirduda
käsus näidatud aadressile. Vastupidisel juhul jätkub programmi täitmine järgmisest mällu
salvestatud käsust. Siirdekäskudega sarnased on ka
alamprogrammikäsud näiteks
CALL ad, mille kohaselt pöördutakse käsus näidatud aadressi poole, kust algab mingi
alamprogramm. Alamprogramm lõpeb käsuga
RET (
return ), mis tähendab, et tuleb
pöörduda tagasi endise aadressi poole, kus töö alamprogrammi siirdumisel katkes.
86
2.2.6. AdresseerimineOperandide adresseerimiseks kasutatakse mitut viisi: otse- ja kaudadresseerimist, suht- ja
indeksadresseerimist, vahetut adresseerimist, aga ka mitmesuguseid
kombineeritud adresseerimisviise nagu kaudset indeksadresseerimist jms. Adresseerimise viise selgitavad
joonistel 2.14 ...2.18 toodud skeemid. Käsus sisalduva teabe põhjal leitakse vajalik
mälupesa ning loetakse sealt soovitud operand. Protsessoril võib olla 10 ja enam erinevat
adresseerimisviisi.
Otseadresseerimisel antakse käsuga ette operandi aadress, mille järgi leitakse mälust
operand.
Tehtekood Otseadresseerimine Aadress A8B1MäluOperandA8B0A8B13535A8B2
A8B3Joonis 2.14. Operandi leidmine otseadresseerimise korral
Kaudadresseerimisel leitakse kõigepealt mälust operandi aadress ning seejärel teisest
mälupesast operand.
TehtekoodKaudadresseerimine Aadress 58B1Mälu58B058B1F80258B2
58B3OperandF801
F8023535F80387
Joonis 2.15. Operandi leidmine kaudadresseerimise korral
Suhtadresseerimisel antakse operandi aadress käsuloenduri (programmi jooksva aadressi)
suhtes. Operandi aadress leitakse käsuloenduri sisu ja suhtaadressi summeerimisega.
TehtekoodSuhtadresseerimine4Käsuloendur 12E512E5 + 4 = 12E9MäluOperand12E812E9353512EA
12EBJoonis 2.16. Operandi leidmine suhtadresseerimise korral
Indeksadresseerimine sarnaneb suhtadresseerimisega, kuid käsuloenduri asemel
kasutatakse baasaadressina indeksiregistris salvestatud aadressisõna.
TehtekoodIndeksadresseerimine4Indeksiregister22852285 + 4 = 2289MäluOperand228822893535228A
228BJoonis 2.17. Operandi leidmine indeksadresseerimise korral
Vahetul adresseerimisel antakse operand otse käsuga.
TehtekoodVahetu adresseerimine35Operand3588
Joonis 2.18. Operandi leidmine vahetu adresseerimise korral
2.2.7. PinumäluPinumälu ehk lihtsalt
pinu (
stack) on registrite kogum, kuhu saab lühiajaliselt salvestada
infot. Pinumälu on realiseeritud kas nihkeregistrina või kasutatakse selleks osa arvuti
muutmälust. Tuntakse kahte liiki pinumälusid:
LIFO - (
last in first out) ja
FIFO - (
first in
first out) tüüpi mälu.
LIFO-tüüpi pinu võib võrrelda padrunisalvega, kust viimasena
laaditud padruni saab kätte esimesena. Pinumälu kasutatakse koos pinumälu viidaga (
stack
pointer), mis fikseerib pinu asukoha (aadressi) üldkasutatavas muutmälus. Arvutis
kasutatakse pinumälu kõige enam selleks, et sinna
ajutiselt kirjutada protsessori registrite
sisu juhul, kui protsessor töötleb
vaheldumisi mitut algoritmi ning registrite sisu ei tohi töö
katkestamisel kaduma minna. Pinumällu salvestatakse ka protsessori olekusõna
PSW (
processor status word). Protsessori olekusõnaks on akumulaatori ja tunnuste registri
sisu ehk lihtsalt aku ja lipud. Protsessori registrite sisu kirjutatakse pinusse käsuga
PUSH
ning pinust registritesse käsuga
POP (joonis 2.19).
PUSHPOPASPAFPCHFBSP - 2PCLBCACDFDEBEHCHLDLEHLJoonis 2.19. Pinumälu ja selle kasutamine
2.2.8. Protsessori koostöö mälu ja välisseadmetegaArvuti koosneb protsessorist, mälust, sisend-väljundseadmetest ja neid kõiki ühendavast
siinide süsteemist. Mikroprotsessorsüsteemi loomisel ja programmeerimisel tuleb
saavutada nende põhikomponentide koostöö (joonis 2.20).
Mälu organiseerimine seisneb arvuti mäluseadmete ja mälupiirkondade
valikus ning
mäluväljade aadresside jaotuses.
Mäluväli on järjestikuste baitide rühm, mille pikkuseks
loetakse baitide arvu väljas ja aadressiks välja esimese baidi aadressi. Välja bitid
nummerdatakse alates vasakpoolsemast järjenumbritega 0, 1, ... jne. Fikseeritud
mäluväljadena (joonis 2.21) kasutatakse
poolsõna, sõna ja topeltsõna, mille
pikkusteks on
kaks, neli ja kaheksa baiti, kusjuures välja aadress peab jaguma pikkusega (2, 4 või 8-ga).
89
Andmesiin00001. sisend-ABCväratDE2. sisend-värat3FFFHLMälu3. sisend-I/Ovärat4000DCDC 1. väljund-ALUSPväratPC2. väljund-väratI/D3. väljund-FFFFväratAadressisiinMikroprotsessorJoonis 2.20 Mikroarvuti programmisti seisukohalt
BAITBAITBAITBAITBAITBAITBAITBAIT07 070707POOLSÕNAPOOLSÕNAPOOLSÕNAPOOLSÕNA015015SÕNASÕNA031TOPELTSÕNA063Joonis 2.21. Mäluväljad
Põhimälu struktuur. Adresseerimine võib toimuda kas
sõna- või
baitadresseeringuga,
kus vähimaks adresseeritavaks mäluüksuseks on sõna või bait (joonis 2.22).
Baitadresseering tagab mälu ökonoomse kasutamise ning võimaldab esitada käske ja
andmeid eri vormingutes. Andmeid salvestatakse muutuva ja fikseeritud pikkusega
mäluväljadele.
a)
b)
70158 70010132254376498511106131271514817166553590
Joonis 2.22. Ühe- ja kahebaidised mäluväljad ja nende adresseerimine
Igal
põhimälu baidil on
aadress (s.t järjenumber). Aadresside
numeratsioon algab nullist.
Arvuti opereerib kahendaadressidega, aadresside üleskirjutamiseks kasutatakse harilikult
16-ndsüsteemi. Sõltuvalt arvuti mudelist ja põhimälu mahust hõlmavad aadressid järgmisi
standardseid vahemikke (joonis 2.23).
00000 0101600001 1INTELINTEL........... .....161000FFF 4095808016108080........... .....0FFFF 655351610........... .....INTELINTEL1FFFF 131071INTEL1610INTEL8086........... .....808680286802863FFFF 2621431016........... .....7FFFF 5242871610........... .....FFFFF 10485751610Joonis 2.23. Erinevate protsessoritega adresseeritavad põhimälud
Andmevahetuse korraldamine hõlmab andmete sisestamise välisseadmetelt
protsessorisse ja nende väljastamise protsessorist välisseadmetesse. Sõltuvalt sellest kas
välisseade on ette nähtud andmete sisestamiseks või väljastamiseks, nimetatakse seda
sisend- või väljundseadmeks. Üldjuhul kasutatakse mõistet sisend-
väljundseadmed .
Sisend-väljundseadmeteks on näiteks klahvistik ja kuvar,
printer , magnetketasmälu,
andurid ,
täiturid ja
mõõteriistad ning mitmesugused sidekanalid. On olemas mitmeid
andmevahetuse meetodeid, mida tutvustatakse lähemalt järgmises peatükis.
91
Tabel 2.3
Universaalprotsessori INTEL 8080 käsustik0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
NOP
LXI
STA
INX
INR
DCR
MVI
RLC
DAD
LDA
DCX
INR
DCR
MVI
RRC
0
B,&
X
B
B
B
B,^
B
X
B
C
C
C,^
B
B
1
LXI
STA
INX
INR
DCR
MVI
RAL
DAD
LDA
DCX
INR
DCR
MVI
RAR
1
D,&
X
D
D
D
D,^
D
X
D
E
E
E,^
D
D
2
LXI
SHL
INX
INR
DCR
MVI
DAA
DAD
LHL
DCX
INR
DCR
MVI
CMA
2
H,&
D
H
H
H
H,^
H
D
H
L
L
L,^
3
LXI
STA
INX
INR
DCR
MVI
STC
DAD
LDA
DCX
INR
DCR
MVI
CMC
3
SP,&
SP
M
M
M,^
SP
SP
A
A
A,^
4
MOV MOV MOV MOV MOV MOV MOV MOV
MOV MOV MOV MOV MOV MOV MOV MOV
4
B,B
B,C
B,D
B,E
B,H
B,L
B,M
B,A
C,B
C,C
C,D
C,E
C,H
C,L
C,M
C,A
5
MOV MOV MOV MOV MOV MOV MOV MOV
MOV MOV MOV MOV MOV MOV MOV MOV
5
D,B
D,C
D,D
D,E
D,H
D,L
D,M
D,A
E,B
E,C
E,D
E,E
E,H
E,L
E,M
E,A
6
MOV MOV MOV MOV MOV MOV MOV MOV
MOV MOV MOV MOV MOV MOV MOV MOV
6
H,B
H,C
H,D
H,E
H,H
H,L
H,M
H,A
L,B
L,C
L,D
L,E
L,H
L,L
L,M
L,A
7
MOV MOV MOV MOV MOV MOV HLT
MOV
MOV MOV MOV MOV MOV MOV MOV MOV
7
M,B
M,C
M,D
M,E
M,H
M,L
M,A
A,B
A,C
A,D
A,E
A,H
A,L
A,M
A,A
8
ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADC
ADC
ADC
ADC
ADC
ADC
ADC
ADC
8
B
C
D
E
H
L
M
A
B
C
D
E
H
L
M
A
9
SUB
SUB
SUB
SUB
SUB
SUB
SUB
SUB
SBB
SBB
SBB
SBB
SBB
SBB
SBB
SBB
9
B
C
D
E
H
L
M
A
B
C
D
E
H
L
M
A
A ANA ANA ANA ANA ANA ANA ANA ANA
XRA
XRA
XRA
XRA
XRA
XRA
XRA
XRA
A
B
C
D
E
H
L
M
A
B
C
D
E
H
L
M
A
B ORA ORA ORA ORA ORA ORA ORA ORA
CMP
CMP
CMP
CMP
CMP
CMP
CMP
CMP
B
B
C
D
E
H
L
M
A
B
C
D
E
H
L
M
A
C RNZ
POP
JNZ
JMP
CNZ
PUS
ADI
RST
RZ
RET
JZ
CZ
CAL
ACI
RST
C
B
H
0
L
1
B
D RNC POP
JNC
OUT
CNC
PUS
SUI
RST
RC
JC
IN
CC
SBI
RST
D
D
N
H
2
N
3
D
E RPO
POP
JPO
XTH
CPO
PUS
ANI
RST
RPE
PCH
JPE
XCH
CPE
XRI
RST
E
H
L
H
4
L
G
5
H
F RP
POP
JP
DI
CP
PUS
ORI
RST
RM
SPH
JM
EI
CM
CPI
RST
F
PSW
H
6
L
7
PSW
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
N - sisend- või väljundvärati number
& - kahebaidine operand
* - kahebaidine operand-aadress
^ - ühebaidine operand
92
2.3.Andmevahetus2.3.1.Andmevahetuse meetodidArvutit ümbritseb väliskeskkond, milles arvuti töötab ning lahendab programmiga antud
ülesandeid. Keskkonnaks on arvutioperaator, sidekanalid (
arvutivõrk ), automaatseadmed
või -protsessid. Infovahetuseks kasutab arvuti mitmesuguseid välisseadmeid, millelt saab
infotöötlusprotsessi lähteandmed ning kuhu väljastab tulemid ja juhtsignaalid.
Välisseadmed jagunevad andmete allikateks e sisendseadmeteks ning andmete tarbijateks
e väljundseadmeteks.
On võimalik, et välisseade on nii andmete allikas kui ka tarbija (magnetkettaseade), sel juhul
nimetatakse teda
sisend-väljundseadmeks, sest andmevahetus toimub mõlemas suunas.
Universaalarvuti enamkasutavad välisseadmed on joonisel 2.24.
FaxMõõte-PrinterPlotterModemliides111098Skanner12LAN-võrk7Kõva- Keskseade 136Jadaliides ketas (protsessor ja mälu)CD-514RööpliidesROM1234 Klaviatuur MonitorÜmbrikketta-Hiir seadeJoonis 2.24. Universaalarvuti välisseadmed.
Automaatikasüsteemide juhtraalide korral on
esmatähtsad juhitavat protsessi raaliga
sidestavad välisseadmed e protsessiliidesed.
Andmevahetust iseloomustab kanali läbilaskevõime,
liidese standard, andmevahetuse
meetod ning andmevahetust algatav (initsieeriv) osapool. Kanali läbilaskevõimet
mõõdetakse sekundis
edastatud infohulgaga ehk boodidega. 1 bood = 1 bit/s. Vastavalt
1 Kbood = 1 Kbit/s ja 1 Mbood = 1 Mbit/s.
Andmevahetus protsessori ja välisseadmete vahel toimub sünkroonse või asünkroonse
andmevahetuse põhimõttel. Sünkroonse andmevahetuse korral juhib andmevahetust
protsessor ning välisseade töötab sünkroonselt arvuti taktigeneraatoriga. Enamik
välisseadmeid töötab autonoomselt ning pole sünkroniseeritud arvuti taktigeneraatoriga.
93
Klassikalised asünkroonse andmevahetuse meetodid on
1) kviteerimismeetod (ingl k
handshaking),
2) skaneerimismeetod,
3) katkestussignaalide meetod,
4) vektorkatkestuse meetod.
Asünkroonse andmevahetuse (joonis 2.25) korral edastatakse infot saatjalt vastuvõtjale,
kusjuures enne andmevahetuse algust on mõlemad hõivatud oma ülesannetega. Üldjuhul
on määramata hetk
ta, mil
saatja soovib andmevahetust alustada;
vastuvõtja valmisolek
andmete vastuvõtuks; aeg, mis kulub signaaalide levimiseks liinis, ja aeg, mis vastuvõtjal
kulub andmete registreerimiseks. Seepärast tuleb andmevahetuse korraldamiseks kasutada
peale andmesiini
DB ka täiendavaid juhtmeid. Küsitlussignaali
RQ (ingl k
request)
kasutatakse selleks, et algatada andmevahetust. Signaal
STROB on vastus saatja
küsitlussignaalile
RQ.
ANDMESIIN DBSaatjaRQVastuvõtjaSTROBJoonis 2.25. Asünkroonne andmevahetussüsteem
Kviteerimismeetodi korral toimub andmevahetus joonisel 2.26 näidatud ajadiagrammi
järgi. Jõudeolukorras on mõlema juhtsigaali nivoo kõrge. Hetkel
ta, kui saatja on valmis
andmete väljastamiseks, saadab ta küsitlussignaali
RQ nivoo madalaks muutmisega
vastuvõtjale andmevahetuspäringu. Signaali
RQ nivoo jääb madalaks
seniks , kuni
vastuvõtja on valmis vastuvõttu alustama, teatades sellest signaali
STROB viimisega madalale nivoole. Kui vastuvõtja on vaba, saabub vastus kiiresti. Kui aga vastuvõtja on
hõivatud, tuleb saatjal oodata kuni vastuvõtja vabanemiseni. Kui saabub vastus (
t1),
väljastab saatja (
t2) andmed liinile. Hetkel
t3
teatab ta signaali
RQ viimisega
kõrgele nivoole, et andmevahetus on alanud. Selle teate järel asub vastuvõtja andmete vastuvõtule
ning hetkel
t4, kui vastuvõtt on
lõpetatud , saadab ta sellekohase kviitungi - signaali
STROB
kõrgele nivoole viimisega, mis teatab saatjale, et andmed on vastu võetud ning hetkel
t5
lülitab vastuvõtja andmesiini välja.
Kuna andmevahetus toimub vastastikuste küsitluste ehk kviitungi vahetamistega, siis
tuleneb sellest ka meetodi nimetus. Seejuures ei ole ükski ajahetkedest jäigalt määratud,
vaid nad kujunevad vabalt vastavalt sellele, kuidas protsess loomulikult kulgeb. Nii saatja
kui vastuvõtja peavad
reageerima signaali juhuslikule muutumisele hetkeil
t1 ja
t4 saatjas
ning
ta ja
t3 vastuvõtjas. Et arvuti töötab
rangelt determineeritud programmi järgi ning on
94
enamiku ajast hõivatud, peab signaalide avastamiseks kasutama erivõtteid, näiteks
küsitlussignaali programmilist skaneerimist ja katkestussignaalide meetodit.
RQSTROBDBtttttt a12345Joonis 2.26. Kviteerimismeetodiga andmevahetuse ajadiagramm
Skaneerimismeetodil töötades tuleb avastatav signaal (näiteks
klaviatuuri küsitlussignaal
RQ) lülitada ühele arvuti sisendkanalile. Programmis nähakse ette selle kanali perioodiline
lugemine ja signaali nivoo määramine loogiliste tehetega. Skaneerimismeetodil
andmevahetuse ajadiagramm on joonisel 2.27, kus
T on skaneerimisperiood.
RQDBt aTTτTt1Joonis 2.27. Andmevahetuse ajadiagramm skaneerimismeetodil
Skaneerimismeetodi puudusteks on
§ kanali väike
tõhusus , sest küsitlussignaali avastamine toimub harva ning süsteem on
valdava aja jõudeolekus. Meetodit on otstarbekas kasutada siis, kui protsessorit vähe
koormatakse;
§ küsitlussignaali avastamine alles järjekordse skaneerimisprotseduuri ajal.
Arvestades, et hilistumine τ lühike skaneerimisperiood, mis annab protsessorile aga
märgatava lisakoormuse.
Skaneerimismeetodi eeliseks on lihtsus.
95
Katkestussignaalide meetod. Juhuslikul hetkel tekkiva signaali avastamise teiseks
võimaluseks on katkestada protsessori töö spetsiaalse sisendsignaali, nn katkestussignaali
abil. Katkestuse korral läheb protsessor põhiprogrammi täitmiselt üle katkestust ning
andmevahetust teenindava alamprogrammi
täitmisele (joonis 2.28). Pärast katkestust jätkab
ta poolelijäänud põhiprogrammi täitmist. Meetodi realiseerimiseks varustatakse protsessor
sisendiga
INT (
interrupt) ning väljundiga
INTA (
interrupt asknowledged).
Katkestuse päringusignaal
INT registreeritakse trigeriga
INTT. Peale selle kuulub
katkestussüsteemi veel vähemalt üks triger
EI (
enable interrupt), mille abil lastakse
katkestussignaale sõltuvalt olukorrast läbi või tõkestatakse. Seda trigerit juhitakse nii
aparatuuriga kui ka programmi erikäskude abil. Katkestuse võimalikkuse korral, mille kohta
võetakse vastu loogiline otsus, annab protsessor katkestust lubava signaali
INTA ja läheb
põhiprogrammilt üle katkestuse alamprogrammi täitmisele.
a)
b)
PõhiprogrammKäsuregisterSTROB&INTAKäsudekooderKatkestusKatkestuste EIDIEI
Kõik kommentaarid