Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 422

1

JOVAN OREVI

ARHITEKTURA I
ORGANIZACIJA
RAUNARA
RAUNARSKI SISTEM ZA RAD U
LABORATORIJI

ARHITEKTURA I ORGANIZACIJA
RAUNARSKOG SISTEMA

BGD, 2012.
1

SADRAJ

4SADRAJ.................................................................................................................................................................I
51

KONFIGURACIJA SISTEMA....................................................................................................................1

62

ARHITEKTURA SISTEMA........................................................................................................................5

7
8
9
10
11
12
13
14
15
16
17
18

19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

35
36
37
38
39
40

2.1
2.1.1
2.1.2
2.1.3

PROCESOR...............................................................................................................................................5

Programski dostupni registri............................................................................................................5


Tipovi podataka................................................................................................................................6
Formati instrukcija...........................................................................................................................6

2.1.3.1
2.1.3.2
2.1.3.3
2.1.3.4
2.1.3.5
2.1.3.6
2.1.3.7
2.1.3.8

2.1.4
2.1.5

Format bezadresnih instrukcija.............................................................................................................7


Format instrukcije prekida....................................................................................................................7
Format instrukcija relativnog skoka B format...................................................................................7
Format instrukcija apslolutnog skoka J format..................................................................................7
Format jednoadresnih registarskih instrukcija R format...................................................................7
Format jednoadresnih neposrednih instrukcija IB format..................................................................8
Format jednoadresnih instrukcija IW format.....................................................................................8
Format jednoadresnih memorijskih instrukcija AP format................................................................8

Naini adresiranja............................................................................................................................8
Skup instrukcija..............................................................................................................................10

2.1.5.1
Opis instrukcija...................................................................................................................................10
2.1.5.1.1
Instrukcija bez dejstva...................................................................................................................10
2.1.5.1.2
Instrukcija zaustavljanja................................................................................................................10
2.1.5.1.3
Instrukcije skoka............................................................................................................................10
2.1.5.1.3.1 Instrukcije uslovnog skoka......................................................................................................10
2.1.5.1.3.2 Instrukcija bezuslovnog skoka.................................................................................................11
2.1.5.1.3.3 Instrukcije skoka na potprogram i povratka iz potprograma...................................................11
2.1.5.1.3.4 Instrukcije prekida i povratka iz prekidne rutine....................................................................11
2.1.5.1.4
Instrukcije prenosa.........................................................................................................................11
2.1.5.1.5
Aritmetike instrukcije..................................................................................................................12
2.1.5.1.6
Logike instrukcije........................................................................................................................13
2.1.5.1.7
Instrukcije pomeranja i rotiranja...................................................................................................13
2.1.5.1.8
Instrukcije postavljanja indikatora u PSW....................................................................................14
2.1.5.2
Kodiranje instrukcija..........................................................................................................................14

2.1.6
2.2
2.3
2.3.1
2.3.2
2.3.3

Mehanizam prekida........................................................................................................................17

MEMORIJA.............................................................................................................................................20
ULAZNO/IZLAZNI UREAJI.....................................................................................................................20

Registri kontrolera bez direktnog pristupa memoriji.....................................................................21


Registri kontrolera sa direktnim pristupom memoriji...................................................................22
Registri kontrolera za generisanje impulsa...................................................................................24

413

MAGISTRALA...........................................................................................................................................27

424

PROCESOR.................................................................................................................................................31

43
44
45
46
47
48
49

50
51
52
53

54
55
56
57

4.1
PROCESOR DVOB...................................................................................................................... 31
4.1.1
Operaciona jedinica.......................................................................................................................32
4.1.1.1
4.1.1.2
4.1.1.3
4.1.1.4
4.1.1.5

Blok bus..............................................................................................................................................32
Blok fetch............................................................................................................................................36
Blok addr............................................................................................................................................40
Blok exec............................................................................................................................................42
Blok intr..............................................................................................................................................50

4.1.2.1
4.1.2.2
4.1.2.3

Dijagram toka izvravanja instrukcija................................................................................................55


Algoritam generisanja upravljakih signala........................................................................................57
Struktura upravljake jedinice............................................................................................................94

4.1.2

Upravljaka jedinica......................................................................................................................55

4.2
PROCESOR JMVM.................................................................................................................... 112
4.2.1
Operaciona jedinica.....................................................................................................................113
4.2.1.1
4.2.1.2

Blok bus............................................................................................................................................114
Blok fetch..........................................................................................................................................116

58
59
60

61
62
63
64

65
66
67
68
69
70
71

72
73
74
75

76
77
78
79
80
81
82

83
84
85
86

875
88
89
90
91
92
936
94
95
96
97
98
99

100
101
102
103

104
105
106
107
108
109
110
111
112

113
114
115
116

117
118
119
120
121

4.2.1.3
4.2.1.4
4.2.1.5

Blok addr..........................................................................................................................................119
Blok exec..........................................................................................................................................122
Blok intr............................................................................................................................................128

4.2.2.1
4.2.2.2
4.2.2.3

Dijagram toka izvravanja instrukcija..............................................................................................131


Algoritam generisanja upravljakih signala......................................................................................131
Struktura upravljake jedinice..........................................................................................................168

4.2.2

Upravljaka jedinica....................................................................................................................131

4.3
PROCESOR DMMM.................................................................................................................. 188
4.3.1
Operaciona jedinica.....................................................................................................................189
4.3.1.1
4.3.1.2
4.3.1.3
4.3.1.4
4.3.1.5

4.3.2

Blok bus............................................................................................................................................190
Blok fetch..........................................................................................................................................192
Blok addr..........................................................................................................................................196
Blok exec..........................................................................................................................................199
Blok intr............................................................................................................................................204

Upravljaka jedinica....................................................................................................................208

4.3.2.1
4.3.2.2
4.3.2.3

Dijagram toka izvravanja instrukcija..............................................................................................208


Algoritam generisanja upravljakih signala......................................................................................208
Struktura upravljake jedinice..........................................................................................................244

4.4.1.1
4.4.1.2
4.4.1.3
4.4.1.4
4.4.1.5

Blok bus............................................................................................................................................265
Blok fetch..........................................................................................................................................267
Blok addr..........................................................................................................................................271
Blok exec..........................................................................................................................................274
Blok intr............................................................................................................................................280

4.4.2.1
4.4.2.2
4.4.2.3

Dijagram toka izvravanja instrukcija..............................................................................................284


Algoritam generisanja upravljakih signala......................................................................................284
Struktura upravljake jedinice..........................................................................................................320

4.4
PROCESOR TMHM................................................................................................................... 263
4.4.1
Operaciona jedinica.....................................................................................................................264

4.4.2

Upravljaka jedinica....................................................................................................................284

MEMORIJA..............................................................................................................................................339
5.1
5.2
5.2.1
5.2.2
5.2.3

OPERACIONA JEDINICA................................................................................................................. 339


UPRAVLJAKA JEDINICA................................................................................................................ 341

Dijagram toka operacija..............................................................................................................341


Algoritam generisanja upravljakih signala...............................................................................342
Struktura upravljake jedinice.....................................................................................................343

ULAZNO/IZLAZNI UREAJI...............................................................................................................347
6.1
6.1.1
6.1.2

PERIFERIJA................................................................................................................................... 347

Operaciona jedinica.....................................................................................................................347
Upravljaka jedinica....................................................................................................................348

6.1.2.1
6.1.2.2
6.1.2.3

6.2
6.2.1

KONROLER PERIFERIJE BEZ DIREKTNOG PRISTUPA MEMORIJI..............................................................352

Operaciona jedinica.....................................................................................................................353

6.2.1.1
6.2.1.2

6.2.2

Dijagram toka operacija....................................................................................................................349


Algoritam generisanja upravljakih signala......................................................................................349
Struktura upravljake jedinice..........................................................................................................351
Blok registri......................................................................................................................................353
Blok interfejs....................................................................................................................................356

Upravljaka jedinica....................................................................................................................358

6.2.2.1
Upravljaka jedinica magistrale.......................................................................................................359
6.2.2.1.1
Dijagram toka operacija..............................................................................................................359
6.2.2.1.2
Algoritam generisanja upravljakih signala................................................................................361
6.2.2.1.3
Struktura upravljake jedinice.....................................................................................................364
6.2.2.2
Upravljaka jedinica periferije.........................................................................................................367
6.2.2.2.1
Dijagram toka operacija..............................................................................................................367
6.2.2.2.2
Algoritam generisanja upravljakih signala................................................................................369
6.2.2.2.3
Struktura upravljake jedinice.....................................................................................................371

6.3
6.3.1

KONTROLER PERIFERIJE SA DIREKTNIM PRISTUPOM MEMORIJI........................................................374

Operaciona jedinica.....................................................................................................................375

6.3.1.1
6.3.1.2

6.3.2

Blok registri......................................................................................................................................376
Blok interfejs....................................................................................................................................380

Upravljaka jedinica....................................................................................................................383

6.3.2.1
Upravljaka jedinica magistrale.......................................................................................................384
6.3.2.1.1
Dijagram toka operacija..............................................................................................................384
6.3.2.1.2
Algoritam generisanja upravljakih signala................................................................................386
6.3.2.1.3
Struktura upravljake jedinice.....................................................................................................389

ii

122
123
124
125
126
127
128
129

6.3.2.2
Upravljaka jedinica periferije.........................................................................................................391
6.3.2.2.1
Dijagram toka operacija..............................................................................................................392
6.3.2.2.2
Algoritam generisanja upravljakih signala................................................................................394
6.3.2.2.3
Struktura upravljake jedinice.....................................................................................................396
6.3.2.3
Upravljaka jedinica memorije.........................................................................................................398
6.3.2.3.1
Dijagram toka operacija..............................................................................................................398
6.3.2.3.2
Algoritam generisanja upravljakih signala................................................................................403
6.3.2.3.3
Struktura upravljake jedinice.....................................................................................................409

130
131
132

6.4
KONTROLER ZA GENERISANJE IMPULSA...........................................................................412
6.4.1
Operaciona jedinica.....................................................................................................................412
6.4.2
Upravljaka jedinica....................................................................................................................415

133
134
135
136
137
138
139
140

6.4.2.1
Upravljaka jedinica magistrale.......................................................................................................415
6.4.2.1.1
Dijagram toka operacija..............................................................................................................416
6.4.2.1.2
Algoritam generisanja upravljakih signala................................................................................416
6.4.2.1.3
Struktura upravljake jedinice.....................................................................................................418
6.4.2.2
Upravljaka jedinica generisanja impulsa........................................................................................419
6.4.2.2.1
Dijagram toka operacija..............................................................................................................419
6.4.2.2.2
Algoritam generisanja upravljakih signala................................................................................420
6.4.2.3
Struktura upravljake jedinice..........................................................................................................421

1417

LITERATURA...........................................................................................................................................423

142

iii

1 KONFIGURACIJA SISTEMA
143 Raunarski sistem sadri sledee module: procesor CPU, memoriju MEM, ulazno/izlazne
144ureaje U/I1 do U/I7 i ureaj za kontrolu ispravnosti rada sistema FAULT. Procesor,
145memorija i ulazno/izlazni ureaji su meusobno povezani sistemskom magistralom BUS (slika
1461). Moduli raunarskog sistema rade sinhrono na isti signal takta CLK.
147 Arhitektura procesora od programski dostupnih registara ima registre opte namene. Tipovi
148podataka sa kojima se radi su celobrojne 8-mo bitne veliine sa znakom i bez znaka. Format
149instrukcija je jednoadresni. Naini adresiranja ukljuuju registarsko direktno, registarsko
150indirektno, memorijsko direktno, memorijsko indirektno, registarsko indirektno sa pomerajem,
151bazno indeksno sa pomerajem, PC relativno sa pomerajem i neposredno adresiranje. Skup
152instrukcija ukljuuje instrukcije prenosa, aritmetike instrukcije, logike instrukcije, instrukcije
153pomeranja i rotiranja kao i instrukcije skoka. Prekidi ukljuuju unutranje i spoljanje prekide
154sa maskiranjem i prioritiranjem prekida, pri emu se kontekst procesora se uva na steku, a
155adresa prekidne rutine utvruje tehnikom vektorisanog mehanizma prekida.
156 Organizacija procesora je tako odabrana da je ine dve odvojene jedinice i to operaciona
157jedinica, koja se sastoji iz vie blokova, i upravljaka jedinica. Realizovana su etiri procesora
158identine arhitekture ali etiri razliite organizacije u kojima se razlikuju realizacije operacione i
159upravljake jedince. Ti procesori su nazvani DVOB (Direktne Veze i Oieno sa Brojaem
160upravljanje), JMVM (Jedna Magistrala i Vertikalno Mikroprogramsko upravljanje), DMMM
161(Dve Magistrale i Meovito Mikroprogramsko upravljanje) i TMHM (Tri Magistrale
162Horizontalno Mikroprogramsko upravljanje). Kod procesora DVOB operaciona jedinica ima
163direktne veze za povezivanje blokova, dok je upravljaka jedinica oiena sa brojaem koraka.
164Kod procesora JMVM operaciona jedinica ima jednu internu magistralu za povezivanje
165blokova, dok je upravljaka jedinica mikroprogramska sa verikalnim kodiranjem signala. Kod
166procesora DMMM operaciona jedinica ima dve interne magistrale za povezivanje blokova, dok
167je upravljaka jedinica mikroprogramska sa meovitim kodiranjem signala. Kod procesora
168TMHM operaciona jedinica ima tri interne magistrale za povezivanje blokova, dok je
169upravljaka jedinica mikroprogramska sa horizontalnim kodiranjem signala.
170 Procesor po linijama intr1 do intr7 dobija signale maskirajuih zahteva za prekid od
171ulazno/izlaznih ureaja U/I1 do U/I7, respektivno. Procesor po liniji inm dobija signal
172nemaskirajueg zahteva za prekid od ureaja za kontrolu ispravnosti rada sistema FAULT.
173Procesor po liniji hreq dobija signal zahteva korienja magistrale od ulazno/izlaznog ureaja
174U/I2, a po liniji hack alje signal dozvole korienja magistrale ulazno/izlaznom ureaju U/I2.
175

Memorija je kapaciteta 60K 8mobitnih rei.

176 Ulazno/izlaznih ureaja ima 7. Ulazno/izlazni ureaj U/I1 se sastoji od periferije i kontrolera
177bez direktnog pristupa memoriji povezanih paralelnim interfejsom. Ulazno/izlazni ureaj U/I2
178se sastoji od periferije i kontrolera za direktnim pristupom memoriji povezanih paralelnim
179interfejsom. Ulazno/izlazni ureaji U/I3 do U/I7 se sastoje samo od kontrolera za generisanje
180impulsa.
181

7 ...0

R D BU S

U /I 1

in tr

M EM

in tr1

FCBUS

A BU S

in tr1
in tr2
h re q

FC B U S

hack

D B U S

7 ...0

FC B U S

W R B U S

A BU S

1 5 ...0

D B U S

W R BU S

RDBUS

1 5 ...0

A B U S

R D B U S

WRBUS

D B U S

D B U S 7 ...0
RD B U S
W RB U S
FCB U S

ABUS15...0

BUS
A BU S

1 5 ...0

DBUS7...0

A B U S

in tr

U /I2

W R B U S
FC B U S

A BU S

7 ...0

in tr

in tr3

in tr4

in tr

U /I4

W R B U S

FC B U S

D B U S

FC B U S

CPU

A BU S

1 5 ...0

1 5 ...0

D B U S

7 ...0

R D BU S

7 ...0

R D B U S

W R B U S

A BU S

1 5 ...0

D B U S

U /I 3

7 ...0

R D B U S

h re q
hack

1 5 ...0

R D BU S

1 5 ...0

D B U S

U /I 5

in tr

in tr5

in tr6

in tr

U /I6

7 ...0

R D B U S

W R B U S

W R B U S

FC B U S

FC B U S

A BU S

1 5 ...0

D B U S

7 ...0

R D BU S

U /I 7

in tr

in tr7

in m

in m

FAU LT

W R B U S
FC B U S

182
183

Slika 1 Konfiguracija sistema

184 Ureaj za kontrolu ispravnosti rada sistema FAULT generie nemaskirajui prekid inm u
185sluaju otkrivanja neke neispravnosti.
186 Procesor, memorija i ulazno/izlazni ureaji su povezani asinhronom sistemskom
187magistralom koju ine adresne linije ABUS15...0, linije podataka DBUS7...0 i upravljake linije
188 RDBUS , WRBUS i FCBUS . Na magistrali mogu da se realizuju ciklus itanja i ciklus
189upisa. Procesor realizuje cikluse itanja prilikom itanja instrukcija i podataka iz memorije i
190prilikom itanja statusnih informacija i podataka iz registara kontrolera ulazno/izlaznih ureaja.

191Procesor realizuje cikluse upisa prilikom upisa podataka u memoriju i prilikom upisa
192upravljakih informacija i podataka u registre kontrolera ulazno/izlaznih ureaja. Ulazno/izlazni
193ureaj sa kontrolerom za direktan pristup memoriji realizuje ciklus itanja sa memorijom
194prilikom prenosa iz memorije u ureaj i ciklus upisa sa memorijom prilikom prenosa iz ureaja
195u memoriju.
196 Ureaj koji zapoinje neki ciklusa na magistrali naziva se gazda, a ureaj koji realizuje
197ciklus sluga. Pri ciklusu itanja gazda alje adresu na adresne linije ABUS 15...0 i signalom na
198upravljakoj liniji RDBUS startuje itanje u slugi. Po zavrenom itanju sluga alje oitani
199podatak na linije podataka DBUS7...0 i signalom na upravljakoj liniji FCBUS signalizira gazdi
200da je itanje zavreno i da je podatak raspoloiv. Pri ciklusu upisa gazda alje adresu na
201adresne linije ABUS15...0, podatak na linije podataka DBUS17...0 i signalom na upravljakoj liniji
202 WRBUS startuje upis u slugi. Po zavrenom upisu sluga signalom na upravljakoj liniji
203 FCBUS signalizira gazdi da je upis zavren.
204 Kako gazde na magistrali mogu da budu procesor i ulazno/izlazni ureaj sa kontrolerom za
205direktan pristup memoriji, postoji potreba za arbitracijom meu njima. Usvojen je pristup kod
206koga procesor ima ulogu arbitratora. Ulazno/uzlazni ureaj pre realizacije ciklusa na magistrali
207u kome je gazda signalom hreq trai dozvolu korienja magistrale od procesora, a procesor
208mu signalom hack daje dozvolu.

209

2 ARHITEKTURA SISTEMA

210 U ovoj glavi se razmatra arhitektura raunarskog sistema. Pri tome se pod arhitekturom
211raunarskog sistema podrazumevaju svi oni njegovi elementi koji treba da budu poznati da bi
212za njega mogao da se napie asemblerski program koji e se uspeno izvravati i uvek davati
213isti rezultat bez obzira na to kako je dati raunarski sistem realizovan. U okviru arhitekture
214raunarskog sistema razmatraju se arhitekture procesora, memorije i ulazno/izlaznih ureaja.
2152.1 PROCESOR
216
217
218
219
220
221
222

Arhitekturu procesora ine:


programski dostupni registri,
tipovi podataka,
formati instrukcija,
naini adresiranja,
skup instrukcija i
mehanizam prekida.

223

U daljem tekstu bie razmotren svaki od ovih elemenata arhitekture procesora.

2242.1.1 Programski dostupni registri


225
226
227
228
229
230
231
232
233

Programski dostupni registri procesora su:


programski broja PC,
akumulator AB,
akumulator AW,
32 registra opte namene GPR,
ukaziva na vrh steka SP,
programska statusna re PSW,
registar maske IMR i
ukaziva na tabelu adresa prekidnih rutina IVTP.

234 Registar PC je standardni 16-to razredni programski broja procesora. Adrese generisane na
235osnovu vrednosti registra PC su adrese 8-mo bitnih rei. Njime se mogu generisati adrese
236unutar adresnog prostora od 216 8-mo bitnih rei.
237 Registar AB je 8-mo razredni akumulator za operacije prenosa, aritmetike operacije,
238logike operacije i operacije pomeranja i rotiranja nad 8-mo bitnim veliinama u kojima se
239koristi kao implicitno izvorite i/ili odredite operanda.
240 Registar AW je 16-to razredni akumulator za operacije prenosa 16-to bitnih veliina u
241kojima se koristi kao implicitno izvorite ili odredite operanda.
242 32 registra opte namene su 16-to razredni registri koji se koriste kao registri podataka kod
243direktnog registarskog adresiranja, adresni registri kod registarskog indirektnog adresiranja,
244bazno/indeksni registri kod registarskog indirektnog adresiranja sa pomerajem, i bazni i
245indeksni registri kod bazno/indeksnog adresiranja sa pomerajem. Donjih osam razreda ovih
246registara se koristi kod direktnog registarskog adresiranja u operacijama za rad sa 8-mo bitnim
247veliinama.

248 Registar SP je standardan 16-to razredni ukaziva na vrh steka. Stek je organizovan u
249operativnoj memoriji i raste prema viim adresama. Registar SP ukazuje na poslednju zauzetu
250lokaciju na steku. Adrese generisane na osnovu vrednosti registra SP su adrese 8-mo bitnih
251rei. Njime se mogu generisati adrese unutar adresnog prostora od 216 8-mo bitnih rei.
252 Registar PSW je standardna 16-to razredni programska statusna re procesora iji razredi,
253koji se obino nazivaju indikatori, sadre bitove statusnog i upravljakog karaktera (slika 2).
15

14

13

12

11

10

L2

L1

L0

254
255
256
257
258
259
260
261
262

Slika 2 Struktura registra PSW


Bitovi statusnog karaktera su:
Nbit (indikator negative) koji se postavlja na 1 kada je rezultat operacije negativan,
Zbit (indikator zero) koji se postavlja na 1 kada je rezultat operacije nula,
Cbit (indikator carry/borrow) koji se postavlja na 1 kada je takav rezultat operacije da
postoji prenos/pozajmica u aritmetici celobrojnih veliina bez znaka,
Vbit (indikator overflow) koji se postavlja na 1 kada je takav rezultat operacije da
postoji prekoraenje u aritmetici celobrojnih veliina sa znakom i
L2, L1, L0bitovi (indikatori level) kojima se pamti nivo prioriteta tekueg programa.

263
264
265
266
267

Bitovi upravljakog karaktera su:


Tbit (indikator trap) koji se postavlja na 1 kada se zada reim rada procesora sa
prekidom posle svake instrukcije i
Ibit (indikator interrupt) koji se postavlja na 1 kada se zada reim rada procesora sa
prihvatanjem maskirajuih prekida.

268 Bitovi statusnog karaktera N, Z, C i V se postavljaju hardverski na osnovu rezultata


269izvravanja instrukcija. Bitovi statusnog karaktera L2 do L0 se postavljaju hardverski u okviru
270opsluivanja prekida i softverski kao rezultat izvravanja instrukcije povratak iz prekidne
271rutine. Bitovi upravljakog karaktera I i T se postavljaju softverski kao rezultat izvravanja
272posebnih instrukcija, hardverski u okviru opsluivanja prekida i softverski kao rezultat
273izvravanja instrukcije povratak iz prekidne rutine.
274 Registar IMR je standardni 16-to razredni registar maske za selektivno maskiranje
275maskirajuih prekida. Koriste se samo razredi 7 do 1 koji su dodeljeni prekidima koji dolaze po
276linijama 7 do 1 od ulazno/izlaznih ureaja, respektivno.
277 Registar IVTP je standardni 16-to razredni ukaziva na tabelu adresa prekidnih rutina koja
278se koristi u okviru vektorisanog mehanizma prekida. Adresa generisana na osnovu vrednosti
279registra IVTP je adresa 8-mo bitne rei.
2802.1.2 Tipovi podataka
281 Tipovi podataka koji se koriste u ovom procesoru su celobrojne 8-mo bitne veliine sa
282znakom i bez znaka, 8-mo bitne binarne rei i 16-to bitne binarne rei. Celobrojne 8-mo bitne
283veliine sa znakom i bez znaka se koriste kod operacije prenosa, aritmetikih operacija i
284operacija pomeranja i rotiranja nad 8-mo bitnim veliinama, 8-mo bitne binarne rei se koriste
285kod logikih operacija i operacija pomeranja i rotiranja i 16-to bitne binarne rei se koriste kod
286operacija prenosa.
2872.1.3 Formati instrukcija
288
289
290

U procesoru se koriste sledei formati instrukcija:


format bezadresnih instrukcija,
format instrukcije prekida,

291
292
293
294
295
296

format instrukcija relativnog skoka B format,


format instrukcija apsolutnog skoka J format,
format jednoadresnih registarskih instrukcija R format,
format jednoadresnih neposrednih instrukcija IB format,
format jednoadresnih neposrednih instrukcija IW format i
format jednoadresnih memorijskih instrukcija AP format.

2972.1.3.1 Format bezadresnih instrukcija


298

Format ovih instrukcija je dat na slici 3.


7

OC

299

Slika 3 Format bezadresnih instrukcija

300 Poljem OC se specificira operacija koja se izvrava kao i registri koji se eventualno
301implicitno koriste.
3022.1.3.2 Format instrukcije prekida
303

Format ove instrukcije je dat na slici 4.


7

0 7

OC

304

BR

Slika 4 Format instrukcije prekida

305 Poljem OC se specificira operacija prekida, a poljem BR broj ulaza u tabelu sa adresama
306prekidnih rutina. Broj ulaza je 8-mo bitna celobrojna veliina bez znaka.
3072.1.3.3 Format instrukcija relativnog skoka B format
308

Format ovih instrukcija je dat na slici 5.


7

0 7

OC

309

DISP

Slika 5 Format instrukcija relativnog skoka B format

310 Poljem OC se specificira operacija koja se izvrava, a poljem DISP pomeraj koji se sabira sa
311PC da bi se dobila adresa skoka. Pomeraj je 8-mo bitna celobrojna veliina sa znakom.
3122.1.3.4 Format instrukcija apslolutnog skoka J format
313

Format ovih instrukcija je dat na slici 6.


7

0 7

OC

314

0 7

DISPH

DISPL

Slika 6 Format instrukcija relativnog skoka J format

315 Poljem OC se specificira operacija koja se izvrava, a poljima DISPH i DISPL 8 starijih i 8
316mlaih bitova 16-to bitne adrese skoka.
3172.1.3.5 Format jednoadresnih registarskih instrukcija R format
318

Format ovih instrukcija je dat na slici 7.


7

0 7

OC

319

5 4

AM

GPR

Slika 7 Format jednoadresnih registarskih instrukcija R format

320 Poljem OC se specificira kod operacije jednoadresne instrukcije, polje AM registarsko


321direktno ili registarsko indirektno adresiranje i poljem GPR jedan od 32 registra opte namene.

10

3222.1.3.6 Format jednoadresnih neposrednih instrukcija IB format


323

Format ovih instrukcija je dat na slici 8.


7

0 7

OC

324

5 4

0 7

AM

GPR

IMM8

Slika 8 Format jednoadresnih instrukcija IB format

325 Poljem OC se specificira kod operacije jednoadresne instrukcije nad 8-mo bitnim
326veliinama, polje AM neposredno adresiranje, polje GPR se ne koristi i poljem IMM8
327neposredna 8-mo bitna veliina.
3282.1.3.7 Format jednoadresnih instrukcija IW format
329

Format ovih instrukcija je dat na slici 9.


7

0 7

OC

330

5 4

AM

0 7

GPR

0 7

IMM16H

IMM16L

Slika 9 Format jednoadresnih instrukcija IW format

331 Poljem OC se specificira kod operacije jednoadresne instrukcije nad 16-to bitnim
332veliinama, polje AM neposredno adresiranje, polje GPR se ne koristi i poljima IMM16H i
333IMM16L 8 starijih i 8 mlaih bitova neposredne 16-to bitne veliine.
3342.1.3.8 Format jednoadresnih memorijskih instrukcija AP format
335

Format ovih instrukcija je dat na slici 10.


7

0 7

OC

336

5 4

AM

0 7

GPR

0 7

HIGH

LOW

Slika 10 Format jednoadresnih instrukcija AP format

337 Poljem OC se specificira kod operacije jednoadresne instrukcije nad 8-mo bitnim
338veliinama, polje AM memorijsko direktno, memorijsko indirektno, registarsko indirektno sa
339pomerajem, bazno indeksno i PC relativno sa pomerajem adresiranje. Polje GPR se ne koristi
340kod memorijskog direktnog i memorijsko indirektnog adresiranja dok kod registarsko
341indirektnog sa pomerajem, bazno indeksnog i PC relativnog sa pomerajem adresiranja
342predstavlja registar opte namene. Polja HIGH i LOW predstavljaju 8 starijih i 8 mlaih bitova
34316-to bitne veliine koja predstavlja memorijsku adresu za memorijsko direktno i memorijsko
344indirektno adresiranje i 16-to bitni pomeraj za registarsko indirektno sa pomerajem, bazno
345indeksno i PC relativno sa pomerajem adresiranje.
3462.1.4 Naini adresiranja
347 Procesor poseduje 8 razliitih naina adresiranja. Kodiranje polja AM za razliite naine
348adresiranja i nazivi naina adresiranja dati su u tabeli 1.
349 Registarsko direktno adresiranje je adresiranje kod koga se operand nalazi u jednom od
350registara opte namene. Instrukcija sa registarskim direktnim adresiranjem ima R format
351(poglavlje 2.1.3.5). Registar opte namene je specificiran poljem GPR. U zavisnosti od toga da
352li se poljem OC instrukcije specificira operacija nad 16-to bitnim veliinama ili 8-mo bitnim
353veliinama koristi se svih 16 ili 8 mlaih razreda registra.
354 Registarsko indirektno adresiranje je adresiranje kod koga se operand nalazi u memoriji na
355adresi odreenoj sadrajem jednog od registara opte namene. Instrukcija sa registarskim
356direktnim adresiranjem ima R format (poglavlje 2.1.3.5). Polje GPR specificira registar opte
357namene. U zavisnosti od toga da li se poljem OC instrukcije specificira operacija nad 8-mo
358bitnim veliinama ili 16-to bitnim veliinama iz memorije se ita jedan ili dva bajta.
359

Tabela 1 Naini adresiranja

11

AM
000
001
010
011
100
101
110
111

Naini adresiranja
registarsko direktno
registarsko indirektno
memorijsko direktno
memorijsko indirektno
registarsko indirektno sa pomerajem
bazno indeksno sa pomerajem
PC relativno sa pomerajem
neposredno

360 Memorijsko direktno adresiranje je adresiranje kod koga se operand nalazi u memoriji na
361adresi datoj u samoj instrukciji. Instrukcija sa registarskim direktnim adresiranjem ima AP
362format (poglavlje 2.1.3.8). Polje GPR se ne koristi. Polja HIGH i LOW sadre starijih 8 i
363mlaih 8 bitova adrese. U zavisnosti od toga da li se poljem OC instrukcije specificira operacija
364nad 8-mo bitnim veliinama ili 16-to bitnim veliinama iz memorije se ita jedan ili dva bajta.
365 Memorijsko indirektno adresiranje je adresiranje kod koga se operand nalazi u memoriji na
366adresi odreenoj sadrajem memorijske lokacije ija je adresa data u samoj instrukciji.
367Instrukcija sa memorijskim indirektnim adresiranjem ima AP format (poglavlje 2.1.3.8). Polje
368GPR se ne koristi. Polja HIGH i LOW sadre starijih 8 i mlaih 8 bitova adrese sa koje se ita
369adresa operanda. U zavisnosti od toga da li se poljem OC instrukcije specificira operacija nad
3708-mo bitnim veliinama ili 16-to bitnim veliinama iz memorije se ita jedan ili dva bajta.
371 Registarsko indirektno sa pomerajem adresiranje je adresiranje kod koga se operand nalazi
372u memoriji na adresi koja se dobija sabiranjem sadraja jednog od registara opte namene i
373pomeraja. Instrukcija sa registarskim indirektnim sa pomerajem adresiranjem ima AP format
374(poglavlje 2.1.3.8). Polje GPR specificira registar opte namene. Polja HIGH i LOW sadre
375starijih 8 i mlaih 8 bitova pomeraja. U zavisnosti od toga da li se poljem OC instrukcije
376specificira operacija nad 8-mo bitnim veliinama ili 16-to bitnim veliinama iz memorije se ita
377jedan ili dva bajta.
378 Bazno indeksno sa pomerajem adresiranje je adresiranje kod koga se operand nalazi u
379memoriji na adresi koja se dobija sabiranjem sadraja dva registara opte namene i pomeraja.
380Instrukcija sa baznim indeksnim sa pomerajem adresiranjem ima AP format (poglavlje 2.1.3.8).
381Polje GPR specificira adresu sa koje se ita registar opte namene koji se koristi kao bazni
382registar, dok se registar opte namene koji se koristi kao indeksni registar ita sa prve sledee
383adrese. Polja HIGH i LOW sadre starijih 8 i mlaih 8 bitova pomeraja. U zavisnosti od toga
384da li se poljem OC instrukcije specificira operacija nad 8-mo bitnim veliinama ili 16-to bitnim
385veliinama iz memorije se ita jedan ili dva bajta.
386 PC relativno sa pomerajem adresiranje je adresiranje kod koga se operand nalazi u memoriji
387na adresi koja se dobija sabiranjem sadraja programskog brojaa PC i pomeraja. Instrukcija sa
388PC relativnim sa pomerajem adresiranjem ima AP format (poglavlje 2.1.3.8). Polje GPR se ne
389koristi. Polja HIGH i LOW sadre starijih 8 i mlaih 8 bitova pomeraja. U zavisnosti od toga
390da li se poljem OC instrukcije specificira operacija nad 8-mo bitnim veliinama ili 16-to bitnim
391veliinama iz memorije se ita jedan ili dva bajta.
392 Neposredno adresiranje je adresiranje kod koga se operand nalazi u samoj instrukciji.
393Instrukcija sa neposrednim adresiranjem u zavisnosti od toga da li se poljem OC instrukcije
394specificira operacija nad 8-mo bitnim veliinama ili 16-to bitnim veliinama ima IB format
395(poglavlje 2.1.3.6) ili IW format (poglavlje 2.1.3.7). U oba sluaja polje GPR se ne koristi. U
396sluaju IB formata polje IMM8 predstavlja 8-mo bitni podatak, a u sluaju IW formata polja
397IMM16H i IMM16L sadre starijih 8 i mlaih 8 bitova 16-to bitnog podatka.

12

3982.1.5 Skup instrukcija


399 U ovom poglavlju se, najpre, daje opis instrukcija, a zatim tabelarni pregled kodiranja
400instrukcija.
4012.1.5.1 Opis instrukcija
402
403
404
405
406
407
408
409
410

Instrukcije procesora se mogu svrstati u sledeih osam grupa:


instrukcija bez dejstva,
instrukcija zaustavljanja,
instrukcije skoka,
instrukcije prenosa,
aritmetike instrukcije,
logike instrukcije,
instrukcije pomeranja i rotiranja,
instrukcije postavljanja indikatora u PSW,

4112.1.5.1.1 Instrukcija bez dejstva


412 Instrukcija NOP ne proizvodi nikakvo dejstvo. Format ove instrukcije je dat u poglavlju
4132.1.3.1. Ova instrukcija ne utie na indikatore N, Z, C i V registra PSW.
4142.1.5.1.2 Instrukcija zaustavljanja
415 Instrukcija HALT zaustavlja izvravanje instrukcija. Format ove instrukcije je dat u
416poglavlju 2.1.3.1. Ova instrukcija ne utie na indikatore N, Z, C i V registra PSW.
4172.1.5.1.3 Instrukcije skoka
418
419
420
421
422

Instrukcije skoka se svrstavaju u sledee grupe:


instrukcije uslovnog skoka,
instrukcije bezuslovnog skoka,
instrukcije skoka na potprogram i povratka iz potprograma i
instrukcija prekida i povratka iz prekidne rutine

4232.1.5.1.3.1 Instrukcije uslovnog skoka


424 Instrukcije uslovnog skoka BEQL disp, BNEQL disp, BNEG disp, BNNEG disp, BOVF
425disp, BNOVF disp, BCAR disp, BNCAR disp, BGRT disp, BGRTE disp, BLSS disp,
426BLSSE disp, BGRTU disp, BGRTEU disp, BLSSU disp i BLSSEU disp realizuju relativni
427skok sa pomerajem disp u odnosu na programski broja PC ukoliko je uslov specificiran
428kodom operacije ispunjen (tabela 2). Pomeraj disp je 8-mo bitna celobrojna veliina sa
429znakom. Format ovih instrukcija je dat u poglavlju 2.1.3.3. Ni jedna od ovih instrukcija ne
430utie na indikatore N, Z, C i V registra PSW.

13

10

431

Tabela 2 Instrukcije uslovnog skoka


Instrukcija
BEQL
BNEQL
BNEG
BNNEG
BOVF
BNOVF
BCAR
BNCAR
BGRT
BGRTE
BLSS
BLSSE
BGRTU
BGRTEU
BLSSU
BLSSEU

Znaenje
skok na jednako
skok na nejednako
skok na N = 1
skok na N = 0
skok na V = 1
skok na V = 0
skok na C = 1
skok na C = 0
skok na vee nego (sa znakom)
skok na vee nego ili jednako (sa znakom)
skok na manje nego (sa znakom)
skok na manje nego ili jednako (sa znakom)
skok na vee nego (bez znaka)
skok na vee nego ili jednako (bez znaka)
skok na manje nego (bez znaka)
skok na manje nego ili jednako (bez znaka)

Uslov
Z=1
Z=0
N=1
N=0
V=1
V=0
C=1
C=0
(N V) Z = 0
NV=0
(N V) = 1
(N V) Z = 1
CZ=0
C=0
C=1
CZ=1

4322.1.5.1.3.2 Instrukcija bezuslovnog skoka


433 Instrukcija bezuslovnog skoka JMP a realizuje skok na adresu a koja je data u samoj
434instrukciji. Format ove instrukcije je dat u poglavlju 2.1.3.4. Ova instrukcija ne utie na
435indikatore N, Z, C i V registra PSW.
4362.1.5.1.3.3 Instrukcije skoka na potprogram i povratka iz potprograma
437 Instrukcija JSR a realizuje skok na potprogram tako to uva vrednost programskog
438brojaa PC na steku i realizuje skok na adresu a koja je data u samoj instrukciji. Format ove
439instrukcije je dat u odeljku 2.1.3.4.
440 Instrukcija RTS realizuje povratak iz potprograma tako to restaurira vrednost
441programskog brojaa PC vrednou sa steka. Format ove instrukcije je dat u poglavlju 2.1.3.1.
442

Ni jedna od ovih instrukcija ne utie na indikatore N, Z, C i V iz registra PSW.

4432.1.5.1.3.4 Instrukcije prekida i povratka iz prekidne rutine


444 Instrukcija INT br programskim putem realizuje prekid i skok na prekidnu rutinu ija se
445adresa nalazi u ulazu br tabele sa adresama prekidnih rutina. Ulaz br je 8-mo bitna celobrojna
446veliina bez znaka. Format ove instrukcije je dat u poglavlju 2.1.3.2.
447 Instrukcija RTI realizuje povratak iz prekidne rutine tako to restaurira vrednosti
448programske statusne rei PSW i programskog brojaa PC vrednostima sa steka. Format ove
449instrukcije je dat u poglavlju 2.1.3.1.
450

Ni jedna od ovih instrukcija ne utie na indikatore N, Z, C i V iz registra PSW.

4512.1.5.1.4 Instrukcije prenosa


452 Instrukcija LDB src prenosi sadraj 8-bitnog operanda src u akumulator AB. Kao operand
453src, u sluaju registarskog direktnog adresiranja, se koristi samo 8 mlaih razreda adresiranog
454registra opte namene. Formati ove instrukcije zavise od specificiranog naina adresiranja i dati
455su u poglavljima 2.1.3.5, 2.1.3.6 i 2.1.3.8. Istrukcija postavlja indikatore N i Z registra PSW
456saglasno vrednosti koja se upisuje u akumulator AB, dok se indikatori C i V registra PSW
457postavljaju na 0.
458 Instrukcija LOADW src prenosi sadraj 16-bitnog operanda src u akumulator AW. Formati
459ove instrukcije zavise od specificiranog naina adresiranja i dati su u poglavljima 2.1.3.5,
4602.1.3.7 i 2.1.3.8. Instrukcija ne utie na indikatore N, Z, C i V registra PSW.

14

11

461 Instrukcija STB dst prenosi sadraj akumulatora AB u 8-bitni operand dst. Kao operand dst,
462u sluaju registarskog direktnog adresiranja, se koristi samo 8 mlaih razreda adresiranog
463registra opte namene. Formati ove instrukcije zavise od specificiranog naina adresiranja i dati
464su u poglavljima 2.1.3.5 i 2.1.3.8. Instrukcija ne utie na indikatore N, Z, C i V registra PSW.
465 Instrukcija STW dst prenosi sadraj akumulatora AW u 16-bitni operand dst. Formati ove
466instrukcije zavise od specificiranog naina adresiranja i dati su u poglavljima 2.1.3.5 i 2.1.3.8.
467Instrukcija ne utie na indikatore N, Z, C i V registra PSW.
468 Instrukcija POPB prenosi sadraj 8-bitnog operanda sa vrha steka u akumulatora AB.
469Format ove instrukcije dat je u poglavlju 2.1.3.1. Istrukcija postavlja indikatore N i Z registra
470PSW saglasno vrednosti koja se upisuje u akumulator AB, dok se indikatori C i V registra
471PSW postavljaju na 0.
472 Instrukcija POPW prenosi sadraj 16-bitnog operanda sa vrha steka u akumulatora AW.
473Format ove instrukcije dat je u poglavlju 2.1.3.1. Instrukcija ne utie na indikatore N, Z, C i V
474registra PSW.
475 Instrukcija PUSHB prenosi sadraj akumulatora AB u 8-bitni operand na vrh steka. Format
476ove instrukcije dat je u poglavlju 2.1.3.1. Instrukcija ne utie na indikatore N, Z, C i V registra
477PSW.
478 Instrukcija PUSHW prenosi sadraj akumulatora AW 16-bitni operand na vrh steka. Format
479ove instrukcije dat je u poglavlju 2.1.3.1. Instrukcija ne utie na indikatore N, Z, C i V registra
480PSW.
481 Instrukcija LDIVTP prenosi sadraj registra IVTP u akumulator AW. Format ove
482instrukcije dat je u poglavlju 2.1.3.1. Instrukcija ne utie na indikatore N, Z, C i V registra
483PSW.
484 Instrukcija STIVTP prenosi sadraj akumulatora AW u registar IVTP. Format ove
485instrukcije dat je u poglavlju 2.1.3.1. Instrukcija ne utie na indikatore N, Z, C i V registra
486PSW.
487 Instrukcija LDIMR prenosi sadraj registra IMR u akumulator AW. Format ove instrukcije
488dat je u poglavlju 2.1.3.1. Instrukcija ne utie na indikatore N, Z, C i V registra PSW.
489 Instrukcija STIMR prenosi sadraj akumulatora AW u registar IMR. Format ove instrukcije
490dat je u poglavlju 2.1.3.1. Instrukcija ne utie na indikatore N, Z, C i V registra PSW.
491 Instrukcija LOADSP prenosi sadraj registra SP u akumulator AW. Format ove instrukcije
492dat je u poglavlju 2.1.3.1. Instrukcija ne utie na indikatore N, Z, C i V registra PSW.
493 Instrukcija STORESP prenosi sadraj akumulatora AW u registar SP. Format ove
494instrukcije dat je u poglavlju 2.1.3.1. Instrukcija ne utie na indikatore N, Z, C i V registra
495PSW.
4962.1.5.1.5 Aritmetike instrukcije
497 Instrukcija ADD src sabira celobrojnu 8-bitnu veliinu koja se nalazi u akumulatoru AB sa
498operandom src koji je celobrojna 8-bitna veliina, a rezultat koji je celobrojna 8-bitna veliina
499smeta u akumulator AB. Kao operand src, u sluaju registarskog direktnog adresiranja, se
500koristi samo 8 mlaih razreda adresiranog registra opte namene. Formati ove instrukcije
501zavise od specificiranog naina adresiranja i dati su u poglavljima 2.1.3.5, 2.1.3.6 i 2.1.3.8.
502 Instrukcija SUB src oduzima operand src koji je celobrojna 8-bitna veliina od celobrojne
5038-bitne veliine koja se nalazi u akumulatoru AB, a rezultat koji je celobrojna 8-bitna veliina
504smeta u akumulator AB. Kao operand src, u sluaju registarskog direktnog adresiranja, se

15

12

505koristi samo 8 mlaih razreda adresiranog registra opte namene. Formati ove instrukcije
506zavise od specificiranog naina adresiranja i dati su u poglavljima 2.1.3.5, 2.1.3.6 i 2.1.3.8.
507 Instrukcija INC inkrementira celobrojnu 8-bitnu veliinu koja se nalazi u akumulatoru AB i
508rezultat koji je celobrojna 8-bitna veliina smeta u akumulator AB. Format instrukcije dat je u
509poglavlju 2.1.3.1.
510 Instrukcija DEC dekrementira celobrojnu 8-bitnu veliinu koja se nalazi u akumulatoru AB i
511rezultat koji je celobrojna 8-bitna veliina smeta u akumulator AB. Format instrukcije dat je u
512poglavlju 2.1.3.1.
513 Istrukcije postavljaju indikatore N, Z, C i V registra PSW saglasno dobijenoj vrednosti koja
514se upisuje u akumulator AB.
5152.1.5.1.6 Logike instrukcije
516 Instrukcija AND src izraunava logiko I 8-bitne veliine koja se nalazi u akumulatoru AB i
517operanda src koji je 8-bitna veliina, a rezultat koji je 8-bitna veliina smeta u akumulator AB.
518Kao operand src, u sluaju registarskog direktnog adresiranja, se koristi samo 8 mlaih razreda
519adresiranog registra opte namene. Formati ove instrukcije zavise od specificiranog naina
520adresiranja i dati su u poglavljima 2.1.3.5, 2.1.3.6 i 2.1.3.8.
521 Instrukcija OR src izraunava logiko ILI 8-bitne veliine koja se nalazi u akumulatoru AB i
522operanda src koji je 8-bitna veliina, a rezultat koji je 8-bitna veliina smeta u akumulator AB.
523Kao operand src, u sluaju registarskog direktnog adresiranja, se koristi samo 8 mlaih razreda
524adresiranog registra opte namene. Formati ove instrukcije zavise od specificiranog naina
525adresiranja i dati su u poglavljima 2.1.3.5, 2.1.3.6 i 2.1.3.8.
526 Instrukcija XOR src izraunava logiko EKSLUZIVNO ILI 8-bitne veliine koja se nalazi u
527akumulatoru AB i operanda src koji je 8-bitna veliina, a rezultat koji je 8-bitna veliina smeta
528u akumulator AB. Kao operand src, u sluaju registarskog direktnog adresiranja, se koristi
529samo 8 mlaih razreda adresiranog registra opte namene. Formati ove instrukcije zavise od
530specificiranog naina adresiranja i dati su u poglavljima 2.1.3.5, 2.1.3.6 i 2.1.3.8.
531 Instrukcija NOT izraunava logiku NEGACIJU 8-bitne veliine koja se nalazi u
532akumulatoru AB, a rezultat koji je 8-bitna veliina smeta u akumulator AB. Format instrukcije
533dat je u poglavlju 2.1.3.1.
534 Istrukcije postavljaju indikatore N i Z registra PSW saglasno vrednosti koja se upisuje u
535akumulator AB, dok se indikatori C i V registra PSW postavljaju na 0.
5362.1.5.1.7 Instrukcije pomeranja i rotiranja
537 Instrukcija ASR pomera sadraj 8-bitne veliine koja se nalazi u akumulatoru AB udesno za
538jedno mesto, a rezultat koji je 8-bitna veliina smeta u akumulator AB. Pri pomeranju razred
539AB7 ostaje nepromenjen, a u indikator C registra PSW se upisuje sadraj razreda AB0. Format
540instrukcije dat je u poglavlju 2.1.3.1.
541 Instrukcija LSR pomera sadraj 8-bitne veliine koja se nalazi u akumulatoru AB udesno za
542jedno mesto, a rezultat koji je 8-bitna veliina smeta u akumulator AB. Pri pomeranju u razred
543AB7 se upisuje 0, a u indikator C registra PSW se upisuje sadraj razreda AB 0. Format
544instrukcije dat je u poglavlju 2.1.3.1.
545 Instrukcija ROR pomera sadraj 8-bitne veliine koja se nalazi u akumulatoru AB udesno
546za jedno mesto, a rezultat koji je 8-bitna veliina smeta u akumulator AB. Pri pomeranju u
547razred AB7 se upisuje sadraj razreda AB0, a u indikator C registra PSW se upisuje sadraj
548razreda AB0. Format instrukcije dat je u poglavlju 2.1.3.1.

16

13

549 Instrukcija RORC pomera sadraj 8-bitne veliine koja se nalazi u akumulatoru AB udesno
550za jedno mesto, a rezultat koji je 8-bitna veliina smeta u akumulator AB. Pri pomeranju u
551razred AB7 se upisuje sadraj indikatora C registra PSW, a u indikator C registra PSW se
552upisuje sadraj razreda AB0. Format instrukcije dat je u poglavlju 2.1.3.1.
553 Instrukcija ASL pomera sadraj 8-bitne veliine koja se nalazi u akumulatoru AB ulevo za
554jedno mesto, a rezultat koji je 8-bitna veliina smeta u akumulator AB. Pri pomeranju u razred
555AB0 se upisuje 0, a u indikator C registra PSW se upisuje sadraj razreda AB 7. Format
556instrukcije dat je u poglavlju 2.1.3.1.
557 Instrukcija LSL pomera sadraj 8-bitne veliine koja se nalazi u akumulatoru AB ulevo za
558jedno mesto, a rezultat koji je 8-bitna veliina smeta u akumulator AB. Pri pomeranju u razred
559AB0 se upisuje 0, a u indikator C registra PSW se upisuje sadraj razreda AB 7. Format
560instrukcije dat je u poglavlju 2.1.3.1.
561 Instrukcija ROL pomera sadraj 8-bitne veliine koja se nalazi u akumulatoru AB ulevo za
562jedno mesto, a rezultat koji je 8-bitna veliina smeta u akumulator AB. Pri pomeranju u razred
563AB0 se upisuje sadraj razreda AB7, a u indikator C registra PSW se upisuje sadraj razreda
564AB7. Format instrukcije dat je u poglavlju 2.1.3.1.
565 Instrukcija ROLC pomera sadraj 8-bitne veliine koja se nalazi u akumulatoru AB ulevo
566za jedno mesto, a rezultat koji je 8-bitna veliina smeta u akumulator AB. Pri pomeranju u
567razred AB0 se upisuje sadraj indikatora C registra PSW, a u indikator C registra PSW se
568upisuje sadraj razreda AB7. Format instrukcije dat je u poglavlju 2.1.3.1.
569 Istrukcije postavljaju indikatore N i Z registra PSW saglasno vrednosti koja se upisuje u
570akumulator AB, dok se indikator V registra PSW postavlja na 0.
5712.1.5.1.8 Instrukcije postavljanja indikatora u PSW
572 Instrukcija INTD postavlja nulu u razred I registra PSW. Format instrukcije je dat u
573poglavlju 2.1.3.1.
574 Instrukcija INTE postavlja jedinicu u razred I registra PSW. Format instrukcije je dat u
575poglavlju 2.1.3.1.
576 Instrukcija TRPD postavlja nulu u razred T registra PSW. Format instrukcije je dat u
577poglavlju 2.1.3.1.
578 Instrukcija TRPE postavlja jedinicu u razred T registra PSW. Format instrukcije je dat u
579poglavlju 2.1.3.1.
580

Ni jedna od ovih instrukcija ne utie na indikatore N, Z, C i V registra PSW.

5812.1.5.2 Kodiranje instrukcija


582
583
584
585

Kodiranje instrukcija je izvreno na takav nain da bitovi:


OC76 predstavljaju etiri grupe od 64 instrukcije,
OC53 predstavljaju osam podgrupa od 8 instrukcija i
OC20 predstavljaju instrukciju u okviru podgrupe instrukcija.

586

Kodiranje etiri grupe instrukcija G0 do G3 je dato u tabeli 3.

587

Tabela 3 Kodiranje etiri grupe instrukcija


OC76
00
01
10
11

17

Oznaka
G0
G1
G2
G3

14

Napomena
Koristi se
Ne koristi se
Ne koristi se
Ne koristi se

588 Kodiranje osam podgrupa instrukcija G0_PG0 do G0_PG7 u okviru grupe instrukcija G0 je
589dato u tabeli 4.
590
Tabela 4 Kodiranje osam podgrupa instrukcija iz grupe G0
OC53 Oznaka Napomena
Instrukcija bez dejstva (poglavlje 2.1.5.1.1), instrukcija zaustavljanja (poglavlje
000 G0_PG0
2.1.5.1.2) i instrukcije postavljanja indikatora u PSW (poglavlje 2.1.5.1.8)
Instrukcija bezuslovnog skoka (poglavlje 2.1.5.1.3.2), instrukcije skoka na potprogram i
001 G0_PG1 povratka iz potprograma (poglavlje 2.1.5.1.3.3), instrukcija prekida i povratka iz
prekidne rutine (poglavlje 2.1.5.1.3.4)
010 G0_PG2 Instrukcije uslovnog skoka (poglavlje 2.1.5.1.3.1)
011 G0_PG3 Instrukcije uslovnog skoka (poglavlje 2.1.5.1.3.1)
100 G0_PG4 Instrukcije prenosa (poglavlje 2.1.5.1.4)
101 G0_PG5 Instrukcije prenosa (poglavlje 2.1.5.1.4)
110 G0_PG6 Aritmetike instrukcije (poglavlje 2.1.5.1.5) i logike instrukcije (poglavlje 2.1.5.1.6)
111 G0_PG7 Instrukcije pomeranja i rotiranja (poglavlje 2.1.5.1.7)

591 Kodiranje instrukcija u okviru osam podgrupa instrukcija G0_PG0 do G0_PG7 je dato u
592tabelama 5 do 12. U svakoj tabeli su date binarne vrednosti tri najmlaa bita OC20 polja koda
593operacije kojima se odreuje instrukcija unutar date podgrupe instrukcija, oznaka za svaku
594instrukcije, duina instrukcije u bajtovima i poglavlje u kome je opisana svaka instrukcija.
595 Kodiranje podgrupe instrukcija G0_PG0 koju ine instrukcija bez dejstva (poglavlje
5962.1.5.1.1), instrukcija zaustavljanja (poglavlje 2.1.5.1.2) i instrukcije postavljanja indikatora u
597PSW (poglavlje 2.1.5.1.8) je dato u tabeli 5.
598

Tabela 5 Kodiranje podgrupe instrukcija G0_PG0


OC20
000
001
010
011
100
101
110
111

Oznaka Duina
NOP
1
HALT
1
INTD
1
INTE
1
TRPD
1
TRPE
1

Poglavlje
2.1.5.1.1
2.1.5.1.2
2.1.5.1.8
2.1.5.1.8
2.1.5.1.8
2.1.5.1.8

599 Kodiranje podgrupe instrukcija G0_PG1 koju ine instrukcija bezuslovnog skoka (poglavlje
6002.1.5.1.3.2), instrukcije skoka na potprogram i povratka iz potprograma (poglavlje 2.1.5.1.3.3)
601i instrukcije prekida i povratka iz prekidne rutine (poglavlje 2.1.5.1.3.4) je dato u tabeli 6.

18

15

602

Tabela 6 Kodiranje podgrupe instrukcija G0_PG1


OC20
000
001
010
011
100
101
110
111

Oznaka
JMP
JSR
RTS
INT
RTI
-

Duina
3
3
1
1
1
-

Poglavlje
2.1.5.1.3.2
2.1.5.1.3.3
2.1.5.1.3.3
2.1.5.1.3.4
2.1.5.1.3.4
-

603 Kodiranje podgrupe instrukcija G0_PG2 koju ine instrukcije uslovnog skoka (poglavlje
6042.1.5.1.3.1) je dato u tabeli 7.
605

Tabela 7 Kodiranje podgrupe instrukcija G0_PG2


OC20
000
001
010
011
100
101
110
111

Oznaka
BEQL
BNEQL
BNEG
BNNEG
BOVF
BNOVF
BCAR
BNCAR

Duina
2
2
2
2
2
2
2
2

Poglavlje
2.1.5.1.3.1
2.1.5.1.3.1
2.1.5.1.3.1
2.1.5.1.3.1
2.1.5.1.3.1
2.1.5.1.3.1
2.1.5.1.3.1
2.1.5.1.3.1

606 Kodiranje podgrupe instrukcija G0_PG3 koju ine instrukcije uslovnog skoka (poglavlje
6072.1.5.1.3.1) je dato u tabeli 8.
608

Tabela 8 Kodiranje podgrupe instrukcija G0_PG3


OC20
000
001
010
011
100
101
110
111

Oznaka
Duina
BGRT
2
BGRTE
2
BLSS
2
BLSSE
2
BGRTU
2
BGRTEU
2
BLSSU
2
BLSSEU
2

Poglavlje
2.1.5.1.3.1
2.1.5.1.3.1
2.1.5.1.3.1
2.1.5.1.3.1
2.1.5.1.3.1
2.1.5.1.3.1
2.1.5.1.3.1
2.1.5.1.3.1

609 Kodiranje podgrupe instrukcija G0_PG4 koju ine instrukcije instrukcije prenosa (poglavlje
6102.1.5.1.4) je dato u tabeli 9.
611

Tabela 9 Kodiranje podgrupe instrukcija G0_PG4


OC20
000
001
010
011
100
101
110
111

Oznaka Duina Poglavlje


LDB
2, 3 ili 4 2.1.5.1.4
LDW
2 ili 4
2.1.5.1.4
STB
2 ili 4
2.1.5.1.4
STW
2 ili 4
2.1.5.1.4
POPB
1
2.1.5.1.4
POPW
1
2.1.5.1.4
PUSHB
1
2.1.5.1.8
PUSHW
1
2.1.5.1.8

612 Kodiranje podgrupe instrukcija G0_PG5 koju ine instrukcije instrukcije prenosa (poglavlje
6132.1.5.1.1) je dato u tabeli 10.

19

16

614

Tabela 10 Kodiranje podgrupe instrukcija G0_PG5


OC20
000
001
010
011
100
101
110
111

Oznaka
LDIVTP
STIVTP
LDIMR
STIMR
LDSP
STSP
-

Duina Poglavlje
1
2.1.5.1.6
1
2.1.5.1.6
1
2.1.5.1.6
1
2.1.5.1.6
1
2.1.5.1.8
1
2.1.5.1.8
-

615 Kodiranje podgrupe instrukcija G0_PG6 koju ine aritmetike instrukcije (poglavlje
6162.1.5.1.5) i logike instrukcije (poglavlje 2.1.5.1.6) je dato u tabeli 11.
617

Tabela 11 Kodiranje podgrupe instrukcija G0_PG6


OC20
000
001
010
011
100
101
110
111

Oznaka
ADD
SUB
INC
DEC
AND
OR
XOR
NOT

Duina Poglavlje
2, 3 ili 4 2.1.5.1.6
2, 3 ili 4 2.1.5.1.6
1
2.1.5.1.6
1
2.1.5.1.6
1
2.1.5.1.8
1
2.1.5.1.8
1
2.1.5.1.8
1
2.1.5.1.8

618 Kodiranje podgrupe instrukcija G0_PG7 koju ine instrukcije pomeranja i rotiranja
619(poglavlje 2.1.5.1.7) je dato u tabeli 12.
620

Tabela 12 Kodiranje podgrupe instrukcija G0_PG7


OC20
000
001
010
011
100
101
110
111

Oznaka
ASR
LSR
ROR
RORC
ASL
LSL
ROL
ROLC

Duina
1
1
1
1
1
1
1
1

Poglavlje
2.1.5.1.6
2.1.5.1.6
2.1.5.1.6
2.1.5.1.6
2.1.5.1.8
2.1.5.1.8
2.1.5.1.8
2.1.5.1.8

6212.1.6 Mehanizam prekida


622 Zahteve za prekid mogu da generiu:
623 sedam kontrolera periferija po linijama intr7 do intr1 da bi signalizirali spremnost za
624
prenos podataka (maskirajui prekidi),
625 jedan ureaj raunara koji kontrolie ispravnost napona napajanja (nemaskirajui
626
prekidi),
627 procesor, kao rezultat otkrivene nekorektnosti u izvravanju tekue instrukcije (nelegalan
628
kod operacije i nelegalno adresiranje),
629 procesor, ako je zadat takav reim rada procesora, kroz postavljanje indikatora T u
630
programskoj statusnoj rei PSW, da se posle svake instrukcije skae na odreenu
631
prekidnu rutinu i
632 procesor kao rezultat izvravanja instrukcije prekida INT.
633Prekidi pod i se nazivaju spoljanji, a pod , i unutranji.
634 Izvravanje svake instrukcije pored faza itanje instrukcije, formiranje adrese operanda i
635izvravanje operacije sadri i fazu opsluivanje prekida. Na poetku faze opsluivanje prekida
636vri se provera da li je u toku izvravanja prethodne tri faze tekue instrukcije generisan neki
637od navedenih zahteva za prekid. Ukoliko nije, vraa se na fazu itanje instrukcije sledee

20

17

638instrukcije. Ukoliko jeste, izvravanje tekue instrukcije se produava sa koracima faze


639opsluivanje prekida. Opsluivanje prekida se sastoji iz dve grupe koraka.
640 U okviru prve grupe koraka na steku se uva deo konteksta procesora i to programski
641broja PC i programska statusna re PSW.
642 U okviru druge grupe koraka se na osnovu sadraja IV tabele (Interrupt Vector table) i
643broja ulaza u IV tabelu realizuje skok na prekidnu rutinu. Pretpostavlja se da se u postupku
644inicijalizacije celog sistema u memoriji kreira IV tabela sa 256 ulaza u kojima se nalaze adrese
645prekidnih rutina za sve vrste prekida, a da se njena poetna adresa upisuje u poseban registar
646procesora oznaen sa IVTP (Interrupt Vector Table Pointer). Skok na prekidnu rutinu se
647realizuje tako to se na osnovu broja ulaza u IV tabelu koji se formira za prekid najvieg nivoa
648prioriteta i sadraja registra IVTP iz IV tabele ita adresa prekidne rutine i upisuje u
649programski broja PC.
650
651
652
653

Broj ulaza u IV tabelu se dobija na vie naina i to:


predstavlja fiksnu vrednost za prekide iz take i generie ga sam procesor,
predstavlja fiksnu vrednost za prekide iz taaka , i i generie ga sam procesor i
specificiran je adresnim delom instrukcije INT za prekid iz take .

654 Ulazi 0 do 3 i 9 do 15 u IV tabeli su rezrvisani za adrese prekidnih rutina za sledee vrste


655prekida:
656 0 prekid zbog reima rada sa prekidom posle svake instrukcije,
657 1 nemaskirajui prekid,
658 2 prekid zbog greke u adresiranju,
659 3 prekid zbog greke u kodu operacije,
660 9 do 15 maskirajui prekidi po linijama intr1 do intr7, respektivno.
661Ulazi 4 do 8 i 15 do 255 u IV tabeli su slobodni za adrese prekidnih rutina za prekide izazvane
662instrukcijom INT.
663 Vie prekida se moe javiti istovremeno, a moe se prihvatiti samo jedan zahtev za prekid i
664skoiti na njegovu prekidnu rutinu. Zato su zahtevima za prekid dodeljeni prioriteti, pa se od
665generisanih zahteva za prekid prihvata onaj zahtev za prekid koji je meu njima najvieg
666prioriteta. Redosled zahteva za prekid po opadajuim prioritetima je sledei: najvii je , zatim
667redom , , i na kraju najnii je . Prekidi pod koji dolaze od kontrolera periferija
668mogu se javiti istovremeno pa se i oni prihvataju po redosledu opadajuih prioriteta. Poto
669svaki kontroler periferije ima posebnu liniju u procesoru za slanje svog zahteva za prekid, na
670osnovu pozicije linije se odreuje prioritet datog zahteva za prekid. Zbog toga se radi
671odreivanja broja ulaza, po opadajuim proritetima redom proveravaju generisani zahtevi za
672prekid i utvruje koji je to zahtev za prekid koji se u tekuoj instrukciji prihvata i na osnovu
673toga odreuje broj ulaza.
674 Kako je memorijska re 8-mo bitna veliina a adresa prekidne rutine 16-to bitna veliina, to
675svaki ulaz u IV tabeli zauzima po dve susedne memorijske lokacije. Zbog toga se najpre broj
676ulaza mnoenjem sa dva pretvara u pomeraj, pa zatim pomeraj sabira sa sadrajem registra
677IVTP i na kraju dobijena vrednost koristiti kao adresu sa koje se ita adresa prekidne rutine i
678upisuje u registar PC.
679 U okviru koraka kojima se realizuje skok na prekidnu rutinu se jo i
680 briu indikatori I i T registra PSW kod prekida svih vrsta i
681 upisuje u bitove L2 do L0 registra PSW nivo prioriteta prekidne rutine na koju se skae u
682
sluaju maskirajueg prekida.
683Time se kod prekida svih vrsta u prekidnu rutinu ulazi sa reimom rada u kome su maskirani
684svi maskirajui prekidi i u kome nema prekida posle svake instrukcije, a u sluaju maskirajuih
685prekida prekidna rutina se izvrava sa odgovarajuim nivoom prioriteta.
21

18

686 Povratak iz prekidne rutine se realizuje instrukcijom RTI. Ovom instrukcijom se sa steka
687restauriraju registri PSW i PC.
688 Za maskirajue prekide postoji u procesoru poseban registar IMR koji se naziva registar
689maske. Od 16 razreda ovog registra koristi se samo tri. Svakoj liniji po kojoj mogu da se alju
690zahtevi za prekid od periferija pridruen je poseban razred registra maske. Zahtev za prekid
691koji stie po odreenoj liniji u procesoru e biti opsluen jedino ukoliko se u odgovarajuem
692razredu registra maske nalazi vrednost 1. Instrukcijom STIMR se u registar maske IMR
693upisuje odgovarajua vrednost. Time se programskim putem selektivno dozvoljava ili
694zabranjuje opsluivanje maskirajuih prekida.
695 Maskirajui zahtevi za prekid, bez obzira na to da li su selektivno maskirani sadrajem
696registra maske ili ne, mogu se svi maskirati bitom maske I u registru PSW. Instrukcijama INTE
697i INTD u ovaj razred registra PSW upisuju se vrednosti 1 ili 0, respektivno. Time se
698programski putem dozvoljava ili zabranjuje opsluivanje maskirajuih prekida koji nisu
699selektivno maskirani sadrajem registra maske IMR.
700 Postoji mogunost da se zada takav reim rada procesora da se posle svake izvrene
701instrukcije skae na odreenu prekidnu rutinu. Ovakav reim rada procesora se naziva prekid
702posle svake instrukcije. U njemu se procesor nalazi ukoliko je u razredu T registra PSW
703vrednost 1. Instrukcijama TRPE i TRPD u ovaj razred registra PSW upisuju se vrednosti 1 ili
7040, respektivno. Time se programskim putem dozvoljava ili ne reim rada procesora prekid
705posle svake instrukcije.
706 U skupu instrukcija postoji instrukcija INT kojom se moe programskim putem izazvati
707prekid i skok na eljenu prekidnu rutinu. Prekidna rutina na koju treba skoiti odreuje se
708adresnim delom ove instrukcije koji sadri broj ulaza u tabelu adresa prekidnih rutina.
709Izvravanje ove instrukcije realizuje sve ono to je nabrojano u okviru hardverskog dela
710opsluivanja zahteva za prekid, s tim to je broj ulaza u tabeli adresa prekidnih rutina dat
711samom instrukcijom.
712 Kada procesor izvrava prekidnu rutinu moe stii novi zahtev za prekid. Na ovaj zahtev za
713prekid moe se reagovati na sledee naine:
714 prekida se izvravanje tekue prekidne rutine i skae na novu prekidnu rutinu ili
715 ne prekida se izvravanje prekidne rutine, ve se zahtev za prekid prihvata tek po
716
zavretku prekidne rutine i povratku u prekinuti program.
717Procesor reaguje na oba naina u zavisnosti od situacije u kojoj se nalazi. Ta situacija zavisi od
718itavog niza elemenata kao to su:
719 ima vie tipova zahteva za prekid,
720 kod ulaska u bilo koju prekidnu rutinu briu se razredi I i T u registru PSW,
721 programskim putem se moe, upisivanjem vrednosti 0 ili 1 u razrede I i T, odrediti kada
722
e se reagovati na maskirajue prekide i prekidati program posle svake instrukcije, a
723
kada ne i
724 maskirajui prekidi su ureeni po prioritetima.
725 Pri normalnom funkcionisanju procesora generiu se samo maskirajui zahtevi za prekid. Da
726bi zahtev za maskirajui prekid bio prihvaen potrebno je da bude ispunjen svaki od sledeih
727uslova:
728 da je odgovarajui bit u registru maske IMR postavljen,
729 da je razred I u registru PSW postavljen,
730 da je nivo prioriteta kontrolera periferije koji je uputio zahtev za prekid vei od nivoa
731
prioriteta tekueg programa.

22

19

732Prekidanje izvravanja tekue prekidne rutine i skok na novu prekidnu rutinu naziva se
733gnedenje prekida.
7342.2 MEMORIJA
735 Arhitekturu memorije ine 8-mo bitne programski dostupne memorijske lokacije kapaciteta
73660K rei, koje zauzimaju opseg od 0 do EFFFh memorijskog adresnog prostora. Iz
737memorijskih lokacija se ita i u memorijske lokacije se upisuje instrukcijama LDB i LDW
738(poglavlje 2.1.5.1.4), ADD i SUB (poglavlje 2.1.5.1.5), AND, OR i XOR (poglavlje 2.1.5.1.6),
739STB i STW (poglavlje 2.1.5.1.4) uz korienje registarskog indirektnog adresiranja,
740memorijskog direktnog adresiranja, memorijskog indirektnog adresiranja, registarskog
741indirektnog adresiranja sa pomerajem, bazno indeksnog adresiranja i PC relativnog sa
742pomerajem adresiranja radi formiranja adrese memorijske lokacije (poglavlje 2.1.5.1.4). Iz
743memorijskih lokacija se ita i u memorijske lokacije se upisuje instrukcijama POPB, POPW,
744PUSHB i PUSHW (poglavlje 2.1.5.1.4), JSR i RTS (poglavlje 2.1.5.1.3.3) i INT (poglavlje
7452.1.5.1.3.4) uz korienje sadraja ukazivaa na vrh steka SP kao adrese memorijske lokacije
746(poglavlje 2.1.1).
7472.3 ULAZNO/IZLAZNI UREAJI
748 Arhitekturu ulazno/izlaznih ureaja ine 8-mo bitni programski dostupni registri kontrolera
749ulazno/izlaznih ureaja kapaciteta 4K rei, koji zauzimaju opseg od F000h do FFFFh
750memorijskog adresnog prostora. Iz registara kontrolera se ita i u registre kontrolera se upisuje
751na identian naina na koji se ita iz memorijskih lokacija i upisuje u memorijske lokacije
752(poglavlje 2.2). Dozvoljeno je itanje iz svih registara kontrolera i upisivanje u sve registre
753kontrolera. Adresa registra kontrolera se dobija na identian nain na koji se dobija adresa
754memorijske lokacije (poglavlje 2.2).
755 Adresiranje pojedinih registara kontrolera se obezbeuje preko tri komponente koje
756formiraju adrese registara (slika 11): adresiranje ulazno-izlaznog adresnog prostora (UIP),
757adresiranje ureaja u ulazno-izlaznom adresnom prostoru (UIU) i adresiranje registara unutar
758adresiranog ureaja (UIUR).
15

12 11

UIP

759

6 5

UIU

UIUR

Slika 11 Formiranje adrese registara kontrolera periferije

760 Usvojeno je da je za ulazno-izlazni adresni prostor rezervisano najviih 2 12 adresa te je


761sadrzaj polja UIP jednak 1111b. Ova vrednost polja UIP je ista za sve ulazno-izlazne ureaje i
762njihove registre. Polje UIU je irine 6 bita, to omoguava adresiranje do 2 6 ulazno-izlaznih
763ureaja. Ova vrednost se postavlja mikroprekidaima pri povezivanju ulazno-izlaznog ureaja
764na raunarski sistem. Poljem UIUR se adresira do 2 6 registara unutar ulazno-izlaznog ureaja.
765Ovakav format adresiranja registara ulazno-izlaznih ureaja je usvojen za sve ureaje.
766 U ovom odeljku se razmatraju programski dostupni registri kontrolera bez direktnog
767pristupa memoriji, kontrolera sa direktnim pristupom memoriji i kontrolera za generisanje
768impulsa.
7692.3.1 Registri kontrolera bez direktnog pristupa memoriji
770

Programski dostupni registri kontrolera su CR, SR i DR (slika 12).


7

CR
7

upravljaki registar
0

SR
7

23

statusni registar
0

20

DR

771

registar podatka

Slika 12 Programski dostupni registri kontrolera bez direktnog pristupa memoriji

772 Registar CR je upravljaki registar irine 8 bita od kojih se koriste samo najmlaa 3 bita.
773Ovaj registar se koristi da se programskim putem upisivanjem odgovarajuih vrednosti
774kontroler startuje i zadaje reima rada i da se kontroler zaustavlja. Bitovi registra CR su:
775 CR0 koji vrednou
776
0 ukazuje da je zadat reim rada sa izlaznom periferijom i
777
1 ukazuje da je zadat reim rada sa ulaznom periferijom,
778 CR1 koji vrednou
779
0 ukazuje da zadat reim rada bez generisanjem prekida i
780
1 ukazuje da zadat reim rada sa generisanjem prekida i
781 CR2 koji vrednou
782
0 ukazuje da je kontroler zaustavljen i
783
1 ukazuje da je kontroler startovan.
784 Bit CR0 se prilikom startovanja kontrolera postavlja na neaktivnu vrednost da bi se zadao
785reim rada sa izlaznom periferijom i na aktivnu vrednost da bi se zadao reim rada sa ulaznom
786periferijom. Kada se zada reim rada sa izlaznom periferijom, programskim putem se podatak
787najpre prenosi iz memorije u registar DR kontrolera, a potom kontroler prenosi podatak iz
788registra DR u izlaznu periferiju. Kada se zada reim rada sa ulaznom periferijom, kontroler
789najpre prenosi podatak iz ulazne periferije u registar DR, a potom se podatak prenosi
790programskim putem iz registra DR u memoriju. Bit CR2 se referie kao bit ulaz.
791 Bit CR1 se prilikom startovanja kontrolera postavlja na neaktivnu vrednost da bi se zadao
792reim rada bez generisanja prekida i na aktivnu vrednost da bi se zadao reim rada sa
793generisanjem prekida. Reim rada bez generisanja prekida se zadaje u sluaju organizacije
794ulaza/izlaza sa ispitivanjem bita SR0 statusnog registra kontrolera. Reim rada sa generisanjem
795prekida se zadaje u sluaju organizacije ulaza/izlaza sa prekidom. Kada prilikom ulaza ili izlaza
796registar DR postane raspoloiv, na ta ukazuje aktivna vrednost bita SR 0 statusnog registra
797kontrolera, prekid se ne generie ukoliko je bit CR 1 neaktivan i generie ukoliko je bit CR 1
798aktivan. Bit CR1 se referie kao bit prekid.
799 Bit CR2 se programskim putem postavlja na aktivnu vrednost da bi se startovao kontroler i
800na neaktivnu vrednost da bi se zaustavio kontroler. Kontroler koji je startovan za reim rada sa
801ulaznom periferijom, prenosi podatke iz periferije u registar DR, a kontroler koji je startovan
802za reim rada sa izlaznim ureajem prenosi podatke iz registra DR u periferiju. Kontroler koji
803je zaustavljen prekida prenos podataka. Bit CR2 se referie kao bit start.
804 Registar SR je statusni registar irine 8 bita od kojih se koristi samo najmlai bit. Ovaj
805registar se koristi da se programskim putem itanjem njegovog sadraja dobijaju informacije o
806stanju u kome se nalazi kontroler. Bit statusnog registra je:
807 SR0 koji vrednou
808
0 ukazuje da registar DR nije raspoloiv i
809
1 ukazuje da je registar DR raspoloiv.
810 Bit SR0 se postavlja na aktivnu i neaktivnu vrednost po odreenim pravilima u zavisnosti od
811toga da li je prilikom startovanja kontrolera zadat reim sa ulaznom ili izlaznom periferijom.
812Bit SR0 se referie kao bit spremnost.
813 Ukoliko je prilikom starovanja kontrolera u bit CR 0 upisana neaktivna vrednost, ime je
814zadat reim rada sa izlaznom periferijom, kontroler postavlja bit SR 0 na aktivnu vrednost koja
815slui kao indikacija da je registar DR raspoloiv da se programskim putem u njega upie

24

21

816podatak. Prilikom upisa podatka u registar DR kontroler postavlja bit SR 0 na neaktivnu


817vrednost koja slui kao indikacija da registar DR vie nije raspoloiv da se programskim putem
818u njega upie novi podatak. Kontroler po zavretku prenosa podatka iz registra DR u izlaznu
819periferiju postavlja bit SR0 na aktivnu vrednost koja slui kao indikacija da je registar DR
820ponovo raspoloiv da se programskim putem u njega upie podatak.
821 Ukoliko je prilikom starovanja kontrolera u bit CR 0 upisana aktivna vrednost, ime je zadat
822reim rada sa ulaznom periferijom, kontroler postavlja bit SR 0 na neaktivnu vrednost koja slui
823kao indikacija da registar DR nije raspoloiv da se programskim putem iz njega ita podatak.
824Kontroler po zavretku prenosa podatka iz ulazne periferije u registar DR postavlja bit SR 0 na
825aktivnu vrednost koja slui kao indikacija da je registar DR raspoloiv da se programskim
826putem iz njega ita podatak. Prilikom itanja podatka iz registra DR kontroler postavlja bit SR 0
827na neaktivnu vrednost koja slui kao indikacija da registar DR vie nije raspoloiv da se
828programskim putem iz njega ita podatak. Kontroler po zavretku prenosa sledeeg podatka iz
829ulazne periferije u registar DR postavlja bit SR 0 na aktivnu vrednost koja slui kao indikacija
830da je registar DR ponovo raspoloiv da se programskim putem iz njega ita podatak..
831 Registar DR je registar podatka irine 8 bita. Ovaj registar se koristi kao prihvatni registar
832za podatke koje razmenjuju kontroler i procesor. Slanje podatka u izlazni ureaj se realizuje
833programskim putem izvravanjem instrukcija koje upisuju podatak u registar DR. Unos
834podatka iz ulaznog ureaja se realizuje programskim putem izvravanjem instrukcija koje itaju
835podatak iz registra DR.
836 U tabeli 13 su date relativne adrese svih programski dostupnih registara kontrolera bez
837direktnog pristupa memoriji u okviru opsega od 64 adrese datog kontrolera.
838

Tabela 13 Relativne adrese registara kontrolera bez direktnog pristupa memoriji


Registar
CR
SR
DR

Adresa
0
1
2

8392.3.2 Registri kontrolera sa direktnim pristupom memoriji


840

Programski dostupni registri kontrolera su CR, SR, WCR i AR (slika 13).


7

CR
7

upravljaki registar
0

SR
15

8 7

statusni registar
0

WCR
15

registar broja rei

8 7

AR

841

adresni registar

Slika 13 Programski dostupni registri kontrolera sa direktnim pristupom memoriji

842 Registar CR je upravljaki registar irine 8 bita od kojih se koriste samo najmlaa 4 bita.
843Ovaj registar se koristi da se programskim putem upisivanjem odgovarajuih vrednosti
844kontroler startuje i zadaje reima rada i da se kontroler zaustavlja. Bitovi registra CR su:
845 CR0 koji vrednou
846
0 ukazuje da je zadat reim prenosa memorija izlazna periferija i
847
1 ukazuje da je zadat reim prenosa ulazna periferija - memorija,
848 CR1 koji vrednou
849
0 ukazuje da zadat reim rada bez generisanjem prekida i
850
1 ukazuje da zadat reim rada sa generisanjem prekida,

25

22

851
852
853
854
855
856

CR2 koji vrednou


0 ukazuje da je kontroler zaustavljen i
1 ukazuje da je kontroler startovan i
CR3 koji vrednou
0 ukazuje da je zadat reim rada sa pojedinanim prenosom i
1 ukazuje da je zadat reim rada sa paketskim prenosom.

857 Bit CR0 se prilikom startovanja kontrolera i zadavanja reima rada postavlja na neaktivnu
858vrednost da bi se zadao reim prenosa memorija izlazna periferija i na aktivnu vrednost da bi
859se zadao reim prenosa ulazna periferija memorija. Kada se zada reim prenosa memorija
860izlazna periferija kontroler samostalno prenosi podatke iz memorije u izlaznu periferiju, a kada
861se zada reim prenosa ulazna periferija memorija kontroler samostalno prenosi podatke iz
862ulazne periferije u memoriju. Bit CR0 se referie kao bit ulaz.
863 Bit CR1 se prilikom startovanja kontrolera i zadavanja reima postavlja na neaktivnu
864vrednost da bi se zadao reim rada bez generisanja prekida i na aktivnu vrednost da bi se zadao
865reim rada sa generisanjem prekida. Reim rada bez generisanja prekida se zadaje u sluaju
866organizacije prenosa podataka sa ispitivanjem bita SR0 statusnog registra kontrolera. Reim
867rada sa generisanjem prekida se zadaje u sluaju organizacije prenosa podataka sa prekidom.
868Kada se obavi kompletan prenos podataka bit SR 0 statusnog registra kontrolera se postavlja na
869aktivnu vrednost. Tom priliko se prekid ne generie ukoliko je bit CR 1 neaktivan i generie
870ukoliko je bit CR1 aktivan. Bit CR1 se referie kao bit prekid.
871 Bit CR2 se programskim putem postavlja na aktivnu vrednost da bi se startovao kontroler i
872na neaktivnu vrednost da bi se zaustavio kontroler. Kontroler koji je startovan za reim rada sa
873ulaznom periferijom, prenosi podatke iz periferije u memoriju, a kontroler koji je startovan za
874reim rada sa izlaznom periferijom prenosi podatke iz memorije u periferiju. Kontroler koji je
875zaustavljen prekida prenos podataka. Bit CR2 se referie kao bit start.
876 Bit CR3 se prilikom startovanja kontrolera postavlja na neaktivnu vrednost da bi se zadao
877reim rada sa pojedinanim prenosom i na aktivnu vrednost da bi se zadao reim rada sa
878paketskim prenosom. Reim rada sa pojedinanim prenosom se normalno koristi prilikom rada
879sa sporim ulazno/izlaznim ureajima. U ovom sluaju kontroler za svaki podatak trai
880magistralu od procesora, po dobijanju magistrale prenosi jedan podatak i potom vraa
881magistralu procesoru. Reim rada sa paketskim prenosom se normalno koristi prilikom rada sa
882brzim ulazno/izlaznim ureajima. U ovom sluaju kontroler trai magistralu od procesora samo
883jedanput pre prenosa bloka podataka, po dobijanju magistrale prenosi ceo blok podataka i na
884kraju prenosa celog bloka podataka vraa magistralu procesoru. Bit CR 2 se referie kao bit
885paket.
886 Registar SR je statusni registar irine 8 bita od kojih se koriste samo najmlai bit SR 0. Ovaj
887registar se koristi da se programskim putem itanjem njegovog sadraja dobijaju informacije o
888stanju u kome se nalazi kontroler. Bit statusnog registra je:
889 SR0 koji vrednou
890
0 ukazuje da prenos podataka nije obavljen do kraja i
891
1 ukazuje da je prenos podataka obavljen do kraja.
892 Bit SR0 se postavlja na neaktivnu vrednost prilikom startovanja kontrolera i na aktivnu
893vrednost kada kontroler obavi prenos podataka do kraja. Bit SR0 se referie kao bit kraj.
894 Registar WCR je registar broja rei koje treba preneti irine 16 bita. Pre startovanja i
895zadavanja reima rada kontrolera potrebno je u okviru inicijalizacije kontrolera upisati u
896registar WCR sadraj koji predstavlja veliinu bloka podataka koji treba preneti. Prilikom

26

23

897prenosa svakog podatka kontroler izmeu ostalog dekrementira sadraj registra WCR. Sadraj
898nula registra WCR je indikacija da je obavljen kompletan prenos bloka podataka to se
899registruje postavljanjem bita SR0 na aktivnu vrednost.
900 Registar AR je adresni registar irine 16 bita koji se koristi izvorini adresni registar za
901adresiranje izvorinog podatka u memoriji u reimu prenosa memorijaizlazni periferija i
902odredini adresni registar za adresiranje odredinog podatka u memoriji u reimu prenosa
903ulazna periferija memorija. Pre startovanja i zadavanja reima rada kontrolera potrebno je u
904okviru inicijalizacije kontrolera upisati u registar AR poetnu adresu memorije odakle treba
905krenuti sa oitavanjem podataka u reimu prenosa memorijaizlazni periferija i upisivanjem
906podataka u reimu prenosa ulazna periferija memorija. Sadraj registra AR se po prenosu
907svakog podatka inkrementira. Time se blok podataka prenosi iz susednih memorijskih lokacija
908poev od memorijske lokacije ija je adresa odreena sadrajem registra AR u izlaznu periferiju
909ili iz ulazne periferije u susedne memorijske lokacije poev od memorijske lokacije ija je
910adresa odreena sadrajem registra AR onoliko puta koliko je to odreeno sadrajem registra
911WCR.
912 U tabeli 14 su date relativne adrese svih programski dostupnih registara kontrolera sa
913direktnim pristupom memoriji u okviru opsega od 64 adrese datog kontrolera.
914

Tabela 14 Relativne adrese registara kontrolera sa direktnim pristupom memoriji


Registar
CR
SR
WCR158
WCR70
AR158
AR70

Adresa
0
1
4
5
6
7

9152.3.3 Registri kontrolera za generisanje impulsa


916

Programski dostupni registri kontrolera su CR i WCR (slika 14).


7

CR
15

8 7

WCR

917

upravljaki registar
0

registar ekanja

Slika 14 Programski dostupni registri kontrolera za generisanje impulsa

918 Registar CR je upravljaki registar irine 8 bita od kojih se koristi samo bit CR 2. Ovaj
919registar se koristi da se programskim putem upisivanjem odgovarajuih vrednosti kontroler
920startuje i da se kontroler zaustavlja. Bit registra CR je:
921 CR2 koji vrednou
922
0 ukazuje da je kontroler zaustavljen i
923
1 ukazuje da je kontroler startovan.
924 Bit CR2 se programskim putem postavlja na aktivnu vrednost da bi se startovao kontroler i
925na neaktivnu vrednost da bi se zaustavio kontroler. Kontroler koji je startovan za reim rada sa
926ulaznom periferijom, prenosi podatke iz periferije u memoriju, a kontroler koji je startovan za
927reim rada sa izlaznom periferijom prenosi podatke iz memorije u periferiju. Kontroler koji je
928zaustavljen prekida prenos podataka. Bit CR2 se referie kao bit start.
929 Registar WCR je 16-to razredni registar ekanja u kome se uva vreme, zadato kao broj
930perioda signala takta, koje treba da protekne od trenutka startovanja kontrolera do trenutka
931generisanja signala prekida trajanja jedna perioda signala takta.

27

24

932
U tabeli 15 su date relativne adrese svih programski dostupnih registara kontrolera sa
933direktnim pristupom memoriji u okviru opsega od 64 adrese datog kontrolera.
934

Tabela 15 Relativne adrese registara kontrolera kontrolera za generisanje impulsa


Registar
CR
WCR158
WCR70

Adresa
0
2
3

935

28

25

936

3 MAGISTRALA

937 U ovoj glavi se razmatra organizacija sistemske magistrale BUS. Najpre se daje struktura
938magistrale, zatim arbitracija na magistrali i na kraju ciklusi na magistrali.
939 Sistemska magistrala je asinhrona magistrala, koja slui za povezivanje modula raunarskog
940sistema i to procesora CPU, memorije MEM i ulazno/izlaznih ureaja U/I. Preko magistrale se
941prenose sadraji izmeu registara procesora, memorijskih lokacija i registara ureaja. Ceo tok
942prenosa nekog sadraja izmeu dva modula naziva se ciklus na magistrali. Modul koji
943zapoinje ciklus na magistrali naziva se gazda (master), a modul sa kojim gazda realizuje ciklus
944naziva se sluga (slave). Gazda moe da bude procesor i ureaj sa direktnim pristupom
945memoriji. Sluga moe da bude memorija i ureaji bez i sa direktnim pristupom memoriji.
946Procesor ita sadraje memorijskih lokacija i upisuje sadraje u memorijske lokacije prilikom
947itanja instrukcija i operanada i upisa rezultata kao sastavnog dela izvravanja instrukcija.
948Pored toga procesor ita sadraje registara ureaja i upisuje sadraje u registre ureaja
949prilikom izvravanja instrukcija kojima se dobija status ureaja, vri inicijalizacija ureaja,
950zadaje reim rada i vri startovanje i zaustavljanje ureaja i vri prenos podataka izmeu
951procesora i ureaja i obratno. Ureaj sa direktnim pristupom memoriji itaju itaju sadraje
952memorijskih lokacija i upisuju sadraje u memorijske lokacije u okviru prenosa podataka iz
953memorije u izlazni ureaj i iz ulaznog ureaja u memoriju.
954 Na magistrali mogu da se realizuju dva tipa ciklusa izmeu gazde i sluge i to ciklus itanja i
955ciklus upisa. Za njihovu realizaciju koriste se tri grupe linija i to adresne linije ABUS15...0, linije
956podataka DBUS7...0 i upravljake linije RDBUS , WRBUS i FCBUS . Po adresnim linijama
957ABUS15...0 gazda alje slugi adresu memorijske lokacije ili registra ureaja sa koje treba oitati
958sadraj kod ciklusa itanja ili na kojoj treba upisati sadraj kod ciklusa upisa. Po linijama
959podataka DBUS7...0 sluga alje gazdi oitani sadraj u sluaju ciklusa itanja i gazda alje slugi
960sadraj koji treba upisati u sluaju ciklusa upisa. Po upravljakoj liniji RDBUS gazda alje
961signal kojim u slugi startuje ciklus itanja. Po upravljakoj liniji WRBUS gazda alje signal
962kojim u slugi startuje ciklus upisa. Po upravljakoj liniji FCBUS sluga u sluaju oba ciklusa
963alje signal gazdi kao indikaciju da je on svoj deo ciklusa zavrio. U sluaju ciklusa itanje to je
964i indikacija da se na linijama podataka DBUS7...0 nalazi sadraj koji gazda treba da upie u svoj
965prihvatni registar.
966 Gazde na magistrali modu da budu procesor i ureaj sa direktnim pristupom memoriji. Kako
967je dozvoljeno da u jednom trenutku ili procesor ili ureaj bude gazda magistrale, potrebno je
968pre svakog ciklusa na magistrali realizovati arbitraciju pristupa magistrali izmeu procesora i
969ureaja. Arbitracija je tako izvedena da procesor ima funkciju arbitratora i da je magistrala
970normalno u posedu procesora. S toga ureaj svaki put kada kao gazda treba da zapone ciklus
971itanja ili upisa na magistrali najpre od procesora trai dozvolu korienja magistrale.
972 Ureaj trai od procesora dozvolu korienja magistrale postavljanjem signala hreq na
973aktivnu vrednost. Ovde se mogu javiti dve situacije. Prva situacija se javlja ako procesor nije
974ve zapoeo ciklus na magistrali. Tada je magistrala slobodna i procesor moe odmah,
975postavljanjem signala hack na aktivnu vrednost, da ureaju da dozvolu da kao gazda zapone
976svoj ciklus. Druga situacija se javlja ako je procesor ve zapoeo ciklus na magistrali. Tada
977magistrala nije slobodna i procesor mora najpre da zavri zapoeti ciklus na magistrali pa da
978tek onda, postavljanjem signala hack na aktivnu vrednost, da ureaju dozvolu da kao gazda
979zapone svoj ciklus.

29

980 Kada je procesor dao magistralu ureaju mogu se javiti dve situacije. Prva situacija se javlja
981ako u toku ciklusa na magistrali u kojoj je ureaj gazda procesor nema potrebu da koristi
982magistralu. U ovoj situaciji ureaj produava sa svojim ciklusom, a zavretak svog ciklusa
983signalizira procesoru postavljanjem signala hreq na neaktivnu vrednost. Tada procesor
984postavlja signal dozvole hack na neaktivnu vrednost. Ovim je magistrala vraena procesoru.
985Druga situacija se javlja ako u toku ciklusa na magistrali u kojoj je ureaj gazda procesor ima
986potrebu da koristi magistralu. I u ovoj situaciji ureaj produava sa svojim ciklusom, pri emu
987procesor ne sme da zapone svoj ciklus ve mora da eka dok sve dok zavretak svog ciklusa
988ureaj ne signalizira procesoru postavljanjem signala hreq na neaktivnu vrednost. Tada
989procesor postavlja signal dozvole hack na neaktivnu vrednost. Ovim je magistrala vraena
990procesoru. S toga procesor sada moe da krene sa realizacijom svog ciklusa na magistrali.
991 Svi moduli raunarskog sistema su povezani na adresne linije, linije podatak i upravljake
992linije magistrale preko bafera sa tri stanja. Pri tome na linije magistrale odgovarajue sadraje
993mogu preko bafera sa tri stanja da putaju samo modul koji je trenutno gazda i modul koji kao
994sluga sa njim realizuje ciklus na magistrali. Svi ostali moduli svoje bafere sa tri stanja dre u
995stanju visoke impedanse i ne optereuju linije magistrale.
996 Vremenski oblici signala ABUS15...0, DBUS7...0, RDBUS i FCBUS koje na magistrali
997razmenjuju gazda i sluga prilikom realizacije ciklusa itanja dati su na slici 15. Signali su
998predstavljeni logikim vrednostima jedan i nula, kao i stanjem visoke impedanse koje je
999predstavljeno linijom po sredini izmeu logike vrednosti jedan i nula. Uz vremenske oblike
1000signala na magistrali dat je i signal takta CLK koji je zajedniki za gazdu i slugu. Signali su dati
1001za vremenski period od takta t i do takta t j u kome jedan modul kao gazda sa drugim modulom
1002kao slugom realizuje ciklus itanja. Van datog vremenskog perioda signali su oseneni. Tada je
1003magistrala ili slobodna i sve linije magistrale su u stanju visoke impedanse ili zauzeta od strane
1004neka dva modula i vrednosti signala na linijama magistrale odgovaraju trenutnom stanju ciklusa
1005na magistrali koji se realizuje izmeu ta dva modula.

1006
1007

A
D
RD
FC

C
B
B
B
B

LK
U S
U S
U S
U S

ti

t i+ 1

t j-1

tj

A
D
RD
FC

C
B
B
B
B

LK
U S
U S
U S
U S

ti

tj

Slika 15 Vremenski oblici signala za ciklus itanja

1008 Po dobijanju magistrale gazda zapoinje ciklus itanja tako to na signal takta t i otvara
1009bafere sa tri stanja preko kojih alje adresu na adresne linije magistrale ABUS15...0 i postavlja
1010upravljaki signal RDBUS na vrednost 0. Sve sluge dekoduju sadraj sa adresnih linija
1011magistrale ABUS15...0 i samo u slugi koji je sadraj sa adresnih linija ABUS15...0 prepoznao kao
1012svoju adresu upravljaki signal RDBUS startuje ciklus itanja. Za itanje sadraja na strani
1013sluge potrebno je neodreeno vreme koje se u optem sluaju razlikuje od sluge do sluge. Zato
1014gazda ostaje u stanju ekanja sve dok sluga ne zavri sa itanjem. Po zavrenom itanju sluga
1015na signal takta t j-1 istovremeno otvara bafere sa tri stanja preko kojih alje oitani sadraj na
1016linije podataka magistrale DBUS7...0 i postavlja upravljaki signal FCBUS na vrednost 0. Po
1017detektovanju vrednosti 0 signala FCBUS gazda na signal takta t j upisuje sadraj sa linija
1018podataka magistrale DBUS7...0 u svoj prihvatni registar. Pored toga na isti signal takta gazda
1019zatvara svoje bafere sa tri stanja, pa adresne linije magistrale ABUS15...0 i upravljaka linija
1020magistrale RDBUS prelaze u stanje visoke impedanse. Prelazak upravljake linije magistrale
1021 RDBUS u stanje visoke impedanse je indikacija slugi da zatvori svoje bafere sa tri stanja, pa
1022linije podataka magistrale DBUS7...0 i upravljaka linija magistrale FCBUS prelaze u stanje
1023visoke impedanse. Time je ciklus itanja na magistrali zavren.

30

28

1024 Vremenski oblici signala na slici 15 levo odgovaraju ciklusu itanja iz memorijskih lokacija
1025za koje je uzeto da vreme pristupa traje odreen broj perioda signala takta. U sluaju ciklusa
1026itanja iz registara kontrolera ulazno/izlaznih ureaja uzeto je da vreme pristupa traje samo
1027jednu perioda signala takta, pa se vremenski oblici signala sa slike15 levo redukuju na
1028vremenske oblike signala sa slike 15 desno.
1029 Vremenski oblici signala ABUS15...0, DBUS7...0, WRBUS i FCBUS koje na magistrali
1030razmenjuju gazda i sluga prilikom realizacije ciklusa upisa dati su na slici 16. Nain
1031predstavljanja signala je isti kao i kod ciklusa itanja.

1032
1033

A
D
W R
FC

C
B
B
B
B

LK
U S
U S
U S
U S

ti

t i+ 1

t j-1

tj

A
D
W R
FC

C
B
B
B
B

LK
U S
U S
U S
U S

ti

tj

Slika 16 Vremenski oblici signala za ciklus upisa

1034 Po dobijanju magistrale gazda zapoinje ciklus upisa tako to na signal takta t i otvara bafere
1035sa tri stanja preko kojih alje adresu na adresne linije magistrale ABUS15...0 , podatak na linije
1036podataka magistrale DBUS7...0 i postavlja upravljaki signal WRBUS na vrednost 0. Sve sluge
1037dekoduju sadraj sa adresnih linija magistrale ABUS15...0 i samo u slugi koji je sadraj sa
1038adresnih linija ABUS15...0 prepoznao kao svoju adresu upravljaki signal WRBUS startuje
1039ciklus upisa sadraja sa linija podataka magistrale DBUS7...0. Za upis sadraja na strani sluge
1040potrebno je neodreeno vreme koje se u optem sluaju razlikuje od sluge do sluge. Zato
1041gazda ostaje u stanju ekanja sve dok sluga ne zavri sa upisom. Po zavrenom upisu sluga na
1042signal takta t j-1 otvara bafer sa tri stanja preko koga postavlja upravljaki signal FCBUS na
1043vrednost 0. Po detektovanju vrednosti 0 signala FCBUS gazda na signal takta t j zatvara svoje
1044bafere sa tri stanja, pa adresne linije magistrale ABUS15...0, linije podataka magistrale DBUS7...0 i
1045upravljaka linija magistrale WRBUS prelaze u stanje visoke impedanse. Prelazak upravljake
1046linije magistrale WRBUS u stanje visoke impedanse je indikacija slugi da zatvori svoj bafere
1047sa tri stanja, pa upravljaka linija magistrale FCBUS prelazi u stanje visoke impedanse. Time
1048je ciklus upisa na magistrali zavren.
1049 Vremenski oblici signala na slici 16 levo odgovaraju ciklusu upisa u memorijske lokacije za
1050koje je uzeto da vreme pristupa traje odreen broj perioda signala takta. U sluaju ciklusa
1051upisa u registre kontrolera ulazno/izlaznih ureaja uzeto je da vreme pristupa traje samo jednu
1052perioda signala takta, pa se vremenski oblici signala sa slike16 levo redukuju na vremenske
1053oblike signala sa slike 16 desno.
1054

1055

31

29

4 PROCESOR

1056

1057 U ovoj glavi se daju procesori etiri razliite organizacije i to procesor DVOB (Direktne
1058Veze i Oieno sa Brojaem koraka upravljanje), procesor JMVM (Jedna Magistrala i
1059Vertikalno Mikroprogramsko upravljanje), procesor DMMM (Dve Magistrale i Meovito
1060Mikroprogramsko upravljanje) i procesor
TMHM (Tri Magistrale i Horizontalno
1061Mikroprogramsko upravljanje).
10624.1 PROCESOR DVOB

A B U S

1 5 ...0

D B U S

7 ...0

RD B U S
W RB U S
FCB U S

h req
hack

bus
fe tc h
addr

in tr

exec
oper

in tr7
in tr6
in tr5
in tr4
in tr3
in tr2
in tr1


U/I

BUS

1063 U ovoj glavi se daje organizacija procesora CPU koji se sastoji iz operacione jedinice oper i
1064upravljake jedinice uprav (slika 17).

in m
FAU LT

u p ra v

1065
1066

CPU

Slika 17 Organizacija procesora CPU

1067 Operaciona jedinica oper je kompozicija kombinacionih i sekvencijalnih prekidakih mrea


1068koje slue za pamenje binarnih rei, izvravanje mikrooperacija i generisanje signala logikih
1069uslova upravljake jedinice uprav. Realizacija operacione jedinice je sa direktnim vezama.
1070Upravljaka jedinica uprav je kompozicija kombinacionih i sekvencijalnih prekidakih mrea
1071koje slue za generisanje upravljakih signala operacione jedinice oper na osnovu algoritama
1072operacija i signala logikih uslova. Realizacija upravljake jedinice je oiena sa brojaem
1073koraka.

32

1074

Struktura i opis operacione i upravljake jedinice se daju u daljem tekstu.

10754.1.1 Operaciona jedinica


1076 Operaciona jedinica oper (slika 17) se sastoji od sledeih blokova:
1077 blok bus,
1078 blok fetch,
1079 blok addr,
1080 blok exec i
1081 blok intr.
1082Ovi blokovi su meusobno povezani direktnim vezama.
1083 Blok bus (slika 18) slui za arbitraciju procesora i ulazno/izlaznog ureaja U/I2 sa
1084kontrolerom za direktan pristup memoriji pri korienju magistrale BUS i realizaciju ciklusa na
1085magistrali BUS. Blok fetch (slike 19, 20 i 21) slui za itanje instrukcije i smetanje u prihvatni
1086registar instrukcije. Blok addr (slika 22) slui za formiranje adrese operanda i itanje operanda.
1087Blok exec (slike 23, 24, 25 i 26) slui za izvravanje operacija. Blok intr (slike 27, 28 i 29)
1088slui za prihvatanje prekida i i formiranje adrese prekidne rutine.
1089

Struktura i opis blokova operacione jedinice oper se daju u daljem tekstu.

10904.1.1.1 Blok bus


1091 Blok bus sadri registre MAR15...0 i MDR7...0 sa multiplekserima MX1 i MX2, respektivno,
1092prihvatni registar DW15...0 i kombinacione mree za realizaciju ciklusa na magistrali BUS kada
1093je procesor gazda i za arbitraciju sa kontrolerom sa direktnim pristupom memoriji pri
1094korienju magistrale BUS (slika 18).
1095 Registar MAR150 je 16-to razredni adresni registar, iji se sadraj koristi pri realizaciji
1096ciklusa itanja ili upisa na magistrali BUS. Adresa se iz nekog od blokova operacione jedinice
1097oper preko multipleksera MX1 vodi na ulaze registra MAR150 i u njega upisuje vrednou 1
1098signala ldMAR. Sadraj registra MAR150 se inkrementira vrednou 1 signala incMAR. Ovo
1099se koristi u situacijama kada treba proitati ili upisati 16-to bitnu veliinu koja se nalazi u
1100dvema susednim 8-mo bitnim lokacijama. Tada se najpre u registar MAR 150 upisuje adresa
1101nie lokacije, a posle se inkrementiranjem dobija adresa vie lokacije. Pri realizaciji ciklusa
1102itanja ili upisa se vrednou 1 signala eMAR sadraj registra MAR150 puta kroz bafere sa tri
1103stanja na adresne linije ABUS150 magistrale BUS.
1104 Multiplekser MX1 je 16-to razredni multiplekser sa 8 ulaza. Na ulaze 0 do 5 multipleksera
1105se vode sadraji PC150, GPR150, IR150, DW150, ADD150 i SP150, a selekcija jednog od ovih
1106sadraja se realizuje binarnim vrednostima 000 do 101 upravljakih signala mxMAR2,
1107mxMAR1 i mxMAR0. Sadraj PC150 predstavlja adresu instrukcije. Sadraj GPR150
1108predstavlja adresu operanda u sluaju registarskog indirektnog adresiranja. Sadraj IR 150
1109predstavlja adresu operanda u sluaju memorijskog direktnog adresiranja. Sadraj IR 150
1110predstavlja i adresu memorijske lokacije na kojoj se nalazi adresa operanda u sluaju
1111memorijskog indirektnog adresiranja, pa se tada sa ove i prve sledee adrese ita iz memorije
1112adresa operanda i upisuje u registar DW150, tako da konano sadraj DW150 predstavlja
1113adresu operanda u sluaju memorijskog indirektnog adresiranja. Sadraj ADD150 predstavlja
1114adresu operanda u sluaju registarskog indirektnog sa pomerajem adresiranja, bazno indeksnog
1115sa pomerajem adresiranja i PC relativnog sa pomerajem adresiranja i formira se na izlazu
1116sabiraa ADD bloka add. Sadraj SP150 se koristi prilikom stavljanja sadraja na vrh steka i
1117skidanja sadraja sa vrha steka. Selektovani sadraja sa izlaza multipleksera MX1 se vodi na
1118paralelne ulaze registra MAR150.

33

32

uprav

uprav

1
2

1 5 ...0
1 5 ...0
1 5 ...0
1 5 ...0
1 5 ...0

16
16
16
16
16
16
16
16

1 5 ...0

5
4

M X 1
16

2
1
0

ld M A R
in c M A R

uprav

16
LD

m r

u p ra v
eM A R

16

M A R

16

A B U S
BU S

BU S
RD B U S

M R
C LK

M A R

IN C

8
8
8
8
8
8
8
8

LD

5
4
3

M X 2
8

2
1
0

16

FCB U S
BU S

1 5 ...0

fc C P U
u p ra v

1 5 ...8

U /I
h req
eM A R
u p ra v

C LK

fe tc h
exec

ld D W L
u p ra v

u p ra v
eM D R

D B U S
BU S

7 ...0

fe tc h
addr

7 ...0

7 ...0

m r
M R

D W

LD

M D R

hack
U /I
u p ra v

M D R
8

M R

m r
M R
C LK

M D R

M D R in

m r

D W

1 5 ...0

7 ...0

D W

w rC P U
u p ra v

C LK

LD

M D R
8

1119
1120

BU S
W RB U S

rd C P U
u p ra v

ld D W H
u p ra v

e x e c P S W 7 ...0
e x e c P S W 1 5 ...8
fe tc h
P C 7 ...0
f e t c h P C 1 5 ...8
e x e c A W 7 ...0
e x e c A W 1 5 ...8
exec
A B 7 ...0
B U S D B U S 7 ...0
u p ra v
rd C P U
ld M D

m xM D R
m xM D R
m xM D R

addr SP
addr A D D
D W
fe tc h
IR
addr G PR
fe tc h P C

m xM A R
m xM A R
m xM A R

D W

7 ...0

fe tc h
exec

Slika 18 Blok bus

1121 Registar MDR70 je 8-mo razredni registar podatka u koji se vrednou 1 jednog od signala
1122MDRin i ldMDR upisuje sadraj sa izlaza multipleksera MX2. Pri realizaciji ciklusa itanja
1123vrednou 1 signala MDRin i binarnom vrednou 000 signala mxMDR2, mxMDR1 i
1124mxMDR0 sadraj sa linija podataka DBUS70 magistrale BUS se puta kroz multiplekser MX2
1125i upisuje u registar MDR70. Pri realizaciji ciklusa upisa vrednou 1 signala ldMDR i binarnim
1126vrednostima 001 do 111 signala mxMDR2, mxMDR1 i mxMDR0 jedan od sadraja AB70,
1127AW158, AW70, PC158, PC70, PSW158 i PSW70 se puta kroz multiplekser MX2 i upisuje u
1128registar MDR70. Signal MDRin ima vrednost 1 kada signali rdCPU i fcCPU imaju vrednost
11291. Signal rdCPU ima vrednost 1 kada procesor kao gazda realizuje ciklus itanja na magistrali,
1130dok signal fcCPU ima vrednost 1 kada se na upravljakoj liniji magistrale FCBUS pojavi
1131vrednost 0 u trajanju jedna perioda signala takta kao indikacija od memorije ili nekog od
1132kontrolera kao sluge da je proitani podatak raspoloiv na linijama podataka DBUS 70
1133magistrale. Sadraj registra MDR70 se pri realizaciji ciklusa itanja vodi na ulaze registara
1134IR0, IR1, IR2 i IR3 bloka fetch i registara DW158 i DW70, dok se razredi MDR40 vode na
1135ulaze registra GPRAR40 bloka addr. Sadraj registra MDR70 se pri realizaciji ciklusa upisa
1136vrednou 1 signala eMDR puta na linije podataka DBUS70 magistrale.
1137 Multiplekser MX2 je 16-to razredni multiplekser sa 8 ulaza. Na ulaze 0 do 7 multipleksera
1138se vode sadraji DBUS70, AB70, AW158, AW70, PC158, PC70, PSW158 i PSW70, a
34

33

1139selekcija jednog od ovih sadraja se realizuje binarnim vrednostima 000 do 111 upravljakih
1140signala mxMBR2, mxMBR1 i mxMBR0. Sadraj DBUS70 se puta kod ciklusa itanja i
1141predstavlja proitanu vrednost memorijske lokacije ili registra kontrolera koja po linijama
1142podataka magistrale BUS dolazi u procesor CPU. Sadraji AB70, AW158, AW70, PC158,
1143PC70, PSW158 i PSW70 se putaju u sluaju ciklusa upisa u memorijsku lokaciju ili registar
1144kontrolera. Sadraj AB70 se puta u sluajevima u kojima se sadraj akumulatora AB70
1145upisuje, sadraji AW158 i AW70 u sluajevima u kojima se u dva ciklusa na magistrali sadraji
1146starijeg i mlaeg bajta akumulatora AW150 upisuju, sadraji PC158 i PC70 u sluajevima u
1147kojima se u dva ciklusa na magistrali sadraji starijeg i mlaeg bajta programskog brojaa
1148PC150 stavljaju na stek i sadraji PSW158 i PSW70 u sluajevima u kojima se u dva ciklusa na
1149magistrali sadraji starijeg i mlaeg bajta programske statusne rei PSW 150 stavljaju na stek.
1150Selektovani sadraja sa izlaza multipleksera MX2 se vodi na paralelne ulaze registra MDR70.
1151 Registar DW150 je 16-to razredni pomoni registar koji se koristi za prihvatanje 16-to bitne
1152veliine koja se dobija iz dve susedne 8-mo bitne memorijske lokacije u dva posebna ciklusa na
1153magistrali. Vrednou 1 signala ldDWH se u 8 starijih razreda registra DW158 upisuje sadraj
1154registra MDR70 u koji je prethodno upisan sadraj sa linija podataka DBUS 70 magistrale,
1155dok se vrednou 1 signala ldDWL u 8 mlaih razreda registra DW70 upisuje sadraj registra
1156MDR70 u koji je prethodno upisan sadraj sa linija podataka DBUS 70 magistrale. Sadraj
1157registra DW150 se potom kao 16-to bitna veliina upisuje u odgovarajui 16-to razredni
1158registar. Registar DW150 se koristi da se prihvati 16-to bitna adresa operanda u sluaju
1159memorijskog indirektnog adresiranja i da se posle upie u registar MAR150. Pored toga
1160registar DW150 se koristi da se prihvati 16-to bitni operand u sluaju instrukcije LDW koja se
1161izvrava nad 16-to bitnim veliinama i da se posle upie u registar BW150. Registar DW150 se
1162koristi i da se prihvati 16-to bitna vrednost sa steka prilikom povratka iz potprograma ili
1163prekidne rutine ili 16-to bitna vrednost adrese prekidne rutine iz tabele sa adresama prekidnih
1164rutina i da se posle upie u programski broja PC150.
1165 Kombinacione i sekvencijalne mree za realizaciju ciklusa na magistrali u kojima je procesor
1166gazda formiraju signale RDBUS i WRBUS magistrale BUS i fcCPU upravljake jedinice
1167uprav. Signali RDBUS i WRBUS se formiraju na osnovu signala rdCPU i wrCPU
1168upravljake jedinice uprav. Signal fcCPU se formira na osnovu signala FCBUS magistrale
1169BUS koji alje memorija ili kontroler kao sluga.
1170 Pri realizaciji ciklusa itanja na magistrali procesor kao gazda otvara bafere sa tri stanja za
1171adresne linije ABUS15..0 i upravljaku liniju RDBUS magistrale i na njih izbacuje adresu i
1172vrednost 0 signala itanja, respektivno, ime se u memoriji ili kontroleru kao slugi startuje
1173itanje adresirane lokacije. Memorija ili kontroler po zavrenom itanju otvara bafere sa tri
1174stanja za linije podataka DBUS7..0 i upravljaku liniju FCBUS magistrale i na njih izbacuje
1175sadraj adresirane lokacije i vrednost 0 signala zavretka operacije itanja u memoriji ili
1176kontroleru trajanja jedna perioda signala takta. Procesor prihvata sadraj sa linija podataka i
1177zatvara bafere sa tri stanja za adresne linije ABUS15..0 i upravljaku liniju RDBUS magistrale,
1178dok memorija ili kontroler po isteku jedne periode signala takta zatvara bafere sa tri stanja za
1179linije podataka DBUS7..0 i upravljaku liniju FCBUS magistrale.
1180 Pri realizaciji ciklusa upisa na magistrali procesor kao gazda otvara bafere sa tri stanja za
1181adresne linije ABUS15..0, linije podataka DBUS7..0 i upravljaku liniju WRBUS magistrale i na
1182njih izbacuje adresu, podatak i vrednost 0 signala upisa, respektivno, ime se u memoriji ili
1183kontroleru kao slugi startuje upis u adresiranu lokaciju. Memorija ili kontroler po zavrenom
1184upisu otvara bafer sa tri stanja za upravljaku liniju FCBUS magistrale i na nju izbacuje
1185vrednost 0 signala zavretka operacije upisa u memoriji ili kontroleru trajanja jedna perioda
1186signala takta. Procesor zatvara bafere sa tri stanja za adresne linije ABUS 15..0, linije podataka

35

34

1187DBUS7..0 i upravljaku liniju WRBUS magistrale, dok memorija ili kontroler po isteku jedne
1188periode signala takta zatvara bafer sa tri stanja za upravljaku liniju FCBUS magistrale.
1189 Kombinacione mree za generisanje upravljakih signala RDBUS i WRBUS magistrale
1190generiu ove signale na osnovu signala rdCPU i wrCPU upravljake jedinice uprav,
1191respektivno. Pri vrednosti 0 signala rdCPU na liniji signala RDBUS je stanje visoke
1192impedance, dok je pri vrednosti 1 signala rdCPU na liniji signala RDBUS vrednost 0. Signal
1193rdCPU ima vrednost 1 ili 0 u zavisnosti od toga da li je u memoriji ili kontroleru operacija
1194itanja u toku ili nije, respektivno. Pri vrednosti 0 signala wrCPU na liniji signala WRBUS je
1195stanje visoke impedance, dok je pri vrednosti 1 signala wrCPU na liniji signala WRBUS
1196vrednost 0. Signal wrCPU ima vrednost 1 ili 0 u zavisnosti od toga da li je u memoriji ili
1197kontroleru operacija upisa u toku ili nije, respektivno.
1198 Signal fcCPU se generie na osnovu vrednosti upravljakog signala FCBUS magistrale
1199koji alje memorija ili kontroler. Signal fcCPU ima vrednost 0 ukoliko je na liniji signala
1200 FCBUS stanje visoke impedanse ili vrednost 1 i vrednost 1 ukoliko je na liniji signala
1201 FCBUS vrednost 0. Signal FCBUS ima vrednost 0, a time signal fcCPU vrednost 1, samo u
1202trajanju jedna perioda signala takta, a generie ga memorija ili kontroler kao indikacija
1203procesoru da je zavrena operacija itanja neke lokacije memorije ili kontrolera ili operacija
1204upisa u neku lokaciju memorije ili kontrolera.
1205 Signali hreq, koji kontroler sa direktnim pristupom memoriji alje procesoru, i hack, koji
1206procesor alje kontroleru sa direktnim pristupom memoriji, se koriste za arbitracije izmeu
1207procesora i kontrolera sa direktnim pristupom memoriji oko korienja magistrale BUS.
1208 Pri realizaciji ciklusa itanja ili upisa na magistrali kontroler sa direktnim pristupom
1209memoriji kao gazda najpre procesoru alje vrednost 1 signal zahteva korienja magistrale
1210hreq i tek po dobijanju vrednosti 1 signala dozvole korienja magistrale hack od procesora
1211kree sa realizacijom ciklusa na magistrali. Ukoliko je zadat pojedinani reim prenosa
1212kontrolera sa direktnim pristupom memoriji, kontroler po zavretku prenosa jednog podatka
1213ukida zahtev korienja magistrale postavljanjem signala hreq na vrednost 0, a procesor ukida
1214dozvolu korienja magistrale postavljanjem signala hack na vrednost 0. Ovakva razmena
1215signala hreq i hack izmeu kontrolera i procesora se ponavlja pri prenosu svakog podatka
1216bloka podataka. Ukoliko je zadat paketski reim prenosa kontrolera sa direktnim pristupom
1217memoriji, kontroler ne ukida vrednost 1 signala zahteva korienja magistrale hreq dok traje
1218prenos celog bloka podataka, pa procesor dri vrednost 1 signala dozvole korienja
1219magistrale hack sve vreme dok traje prenos bloka podataka. Tek po zavretku prenosa celog
1220bloka podataka kontroler ukida zahtev korienja magistrale postavljanjem signala hreq na
1221vrednost 0, a procesor ukida dozvolu korienja magistrale postavljanjem signala hack na
1222vrednost 0.
1223 Pri realizaciji ciklusa itanja ili upisa na magistrali procesor kao gazda najpre proverava da li
1224je magistrala data kontroleru sa direktnim pristupom memoriji ili nije na ta ukazuju vrednosti
12251 i 0 signala hack, respektivno. Ukoliko signal hack ima vrednost 1, procesor eka da najpre
1226kontroler zavri sa korienjem magistrale i postavi signal hreq na vrednost 0, pa tek poto
1227signal hack postavi na vrednost 0 kree sa realizacijom ciklusa na magistrali. Ukoliko signal
1228hack ima vrednost 0, procesor odmah kree sa realizacijom ciklusa na magistrali.
1229 Vrednost 1 signala eMAR je indikacija da procesor trenutno realizuje neki od svojih ciklusa
1230na magistralu, pa zato procesor i pored vrednosti 1 signal hreq dri vrednost 0 signala hack i
1231time ne daje kontroleru sa direktnim prisrupom memorini dozvolu korienja magistrale.
1232Vrednosti 0 signala eMAR je indikacija da procesor trenutno ne realizuje neki od svojih ciklusa
1233na magistrali, pa zato procesor pri vrednosti 1 signala hreq daje kontroleru dozvolu korienja
1234magistrale postavljanjem signala hack na vrednost 1.

36

35

12354.1.1.2 Blok fetch


1236 Blok fetch sadri registar PC15...0 sa multiplekserom MX, registre IR0, IR1, IR2 i IR3 (slika
123719), dekodere DC1 do DC11 signala logikih uslova operacija i naina adresiranja (slika 20) i
1238kombinacione mree signala logikih uslova duina instrukcija (slika 21).
u p ra v m x P C

IR
addr A D D
bus D W

2 3 ...8
1 5 ...0

16
16
16

1 5 ...0

m xPC

3
2

16

M X

u p ra v

16
u p ra v in c P C
u p ra v ld P C

IN C

m r
PC

LD

16
bus M D R
8
C LK

ld IR 0
u p ra v

ld IR 2
u p ra v

1239
1240

M R

IR

3 1 ...2 4

bus M D R
8
C LK

ld IR 1
u p ra v

exec

M R

1 5 ...8

m r

C LK

ld IR 3
u p ra v

bus
addr
exec

M R

IR

bus M D R
8

m r

IR

7 ...0

IR 1

LD

7 ...0

IR 2

LD

P C 1 5 ...0
bus
addr

m r

bus M D R
8
C LK

C LK

7 ...0

IR 0

LD

M R

2 3 ...1 6

7 ...0

m r
M R

IR 3

LD

addr
in tr

IR

7 ...0

bus
addr
exec

Slika 19 Blok fetch (prvi deo)

1241 Registar PC150 je 16-to razredni programski broja iji sadraj predstavlja adresu
1242memorijske lokacije poev od koje treba proitati jedan do etiri bajta instrukcije (slika 19).
1243Adresa skoka u programu se iz nekog od blokova operacione jedinice oper preko
1244multipleksera MX vodi na ulaze registra PC150 i u njega upisuje vrednou 1 signala signala
1245ldPC. Sadraj registra PC150 se inkrementira vrednou 1 signala incPC. Ovo se koristi
1246prilikom itanja svakog bajta instrukcije koji se nalaze u susednim 8-mo bitnim lokacijama.
1247Sadraj registra PC150 se koristi u bloku addr i za formiranje adrese memorijske lokacije kada
1248se za adresiranje operanda koristi PC relativno adresiranje.
1249 Multiplekser MX je 16-to razredni multiplekser sa 4 ulaza. Na ulaze 0 do 2 multipleksera se
1250vode sadraji DW150, ADD150 i IR238, koji predstavljaju adrese skoka za upis u registar
1251PC150. Selekcija jednog od ovih sadraja se realizuje binarnim vrednostima 00 do 10
1252upravljakih signala mxPC1 i mxPC0. Sadraj DW150 predstavlja ili vrednost koja se restaurira
1253sa steka prilikom izvravanja instrukcija povratka iz potprograma ili povratka iz prekidne
1254rutine ili adresu prekidne rutine koja se ita iz tabele sa adresama prekidnih rutina prilikom
1255opsluivanja prekida. Sadraj ADD150 predstavlja adresu skoka koja se dobija sabiranjem
1256sadraja programskog brojaa i pomeraja prilikom izvravanja instrukcija uslovnog skoka.
1257Sadraj IR238 predstavlja adresu skoka koja se uzima iz instrukcije prilikom izvravanja
1258instrukcija bezuslovnog skoka ili skoka na potprogram.

37

36

1259 Registri IR0, IR1, IR2 i IR3 su 8-mo razredni registri koji formiraju razrede 3124, 23
126016, 158 i 70, respektivno, prihvatnog registra instrukcije IR 310. Instrukcije mogu, u
1261zavisnosti od formata instrukcije, da budu duine 1, 2, 3 ili 4 bajta (poglavlje 2.1.3). Saglasno
1262formatu instrukcije prvi, drugi, trei i etvrti bajt instrukcije se smetaju redom u registre IR0,
1263IR1, IR2 i IR3. Paralelan upis sadraja prihvatnog registra podatka MDR7...0 u jedan od
1264registara IR0, IR1, IR2 i IR3 se realizuje vrednou 1 jednog od signala ldIR0, ldIR1, ldIR2 i
1265ldIR3, respektivno. Razredi IR3124 se uvek upisuju i njihov sadraj predstavlja kod operacije.
1266Broj preostalih razreda koji se upisuju zavisi od koda operacije, a u sluaju aritmetikih i
1267logikih operacija, i od naina adresiranja i njihov sadraj ima razliito znaenje (poglavlje
12682.1.3).
1269 Dekoderi DC1 do DC12 se koriste za dekodovanje istrukcija i formiranje signala logikih
1270uslova operacija NOP, ... , ROLC i naina adresiranja regdir, ..., imm (slika 20) saglasno
1271nainu kodiranja instrukcija (poglavlje 2.1.5.2) i naina adresiranja (poglavlje 2.1.4).
1272 Dekoder DC1 slui za formiranje signala etiri grupe operacija G0, G1, G2 i G3 (tabela 3).
1273Dekoder DC2 slui za formiranje signala osam podgrupa operacija G0_PG0 do G0_PG7 grupe
1274G0 (tabela 4). Dekoder DC3 slui za formiranje signala NOP, HALT, INTD, INTE, TRPD i
1275TRPE podgrupe operacija G0_PG0 (tabela 5). Dekoder DC4 slui za formiranje signala JMP,
1276JSR, RTS, INT i RTI podgrupe operacija G0_PG1 (tabela 6). Dekoder DC5 slui za
1277formiranje signala BEQL, BNEQL, BNEG, BNNEG, BOVF, BNOVF, BCAR i BNCAR
1278podgrupe operacija G0_PG2 (tabela 7). Dekoder DC6 slui za formiranje signala BGRT,
1279BGRTE, BLSS, BLSSE, BGRTU, BGRTEU, BLSSU i BLSSEU podgrupe operacija
1280G0_PG3 (tabela 8). Dekoder DC7 slui za formiranje signala LDB, LDW, STB, STW,
1281POPB, POPW, PUSHB i PUSHW podgrupe operacija G0_PG4 (tabela 9). Dekoder DC8
1282slui za formiranje signala LDIVTP, STIVTP, LDIMR, STIMR, LDSP i STSP podgrupe
1283operacija G0_PG5 (tabela 10). Dekoder DC9 slui za formiranje signala ADD, SUB, INC,
1284DEC, AND, OR, XOR i NOT podgrupe operacija G0_PG6 (tabela 11). Dekoder DC10 slui
1285za formiranje signala ASR, LSR, ROR, RORC, ASL, LSL, ROL i ROLC podgrupe
1286operacija G0_PG7 (tabela 12).
1287 Dekoder DC11 slui za formiranje signala regdir, regind, memdir, memind, regindpom,
1288bxpom, bcpom i imm naina adresiranja (tabela 1).
1289 Kombinacione mree signala logikih uslova greka operacije, greka adresiranja i duine
1290instrukcija formiraju signale koji ukazuje da li postoji greka u proitanoj instrukciji i ukoliko
1291ne postoji kolika je duina instrukcije u bajtovima (slika 21).

38

37

IR
IR
IR

29
28
27

2
1
0

STA RT
exec

D C2

IR
IR
IR

26
25
24

24

G 0_PG 1

24

U SH W
U SH B
O PW
O PB
TW
TB
D W
D B

IR
IR
IR

26
25
24

25
24

2
1
0

D C 10

1292
1293

G 0_PG 7

R
R
L
A
R
R
L
A

O LC
O L
SL
SL
O RC
O R
SR
SR

uprav
exec

26

R
F
G
L

uprav

A
R
V
F
E
G
Q
L

IR
IR
IR

26
25
24

D C8

7
6
5
4
3
2
1
0

IR
IR
IR

23
22
21

2
1
0

D C11

7
6
5
4
3
2
1
0

2
1
0

D C6

7
6
5
4
3
2
1
0

B
B
B
B
B
B
B
B

L
L
G
G
L
L
G
G

SSEU
SSU
RTEU
RTU
SSE
SS
RTE
RT

G 0_PG 3

G 0_PG 5
G 0_PG 5
STSP
LD SP
S T IM R
L D IM R
S T IV T P
L D IV T P

7
6

IR
IR
IR

26
25
24

2
1
0

D C9

G 0_PG 5

IR
IR
IR

2
1
0

G 0_PG 4

7
6
5
4
3
2
1
0

C
A
O
V
N
E
E
Q

7
6
5
4
3
2
1
0

N O T
X O R
O R
A N D
D EC
IN C
SU B
A D D

G 0_PG 6

im m
pcpom
bxpom
re g in d p o m
m e m in d
m e m d ir
re g in d
re g d ir

uprav

25

D C7

P
P
P
P
S
S
L
L

uprav
exec

26

2
1
0

N
C
N
O
N
N
N
E

G 0_PG 2

IR
IR
IR

7
6
5
4
3
2
1
0

D C5

B
B
B
B
B
B
B
B

25

2
1
0

7
6
5
4
3
2
1
0

uprav

26

G 0_PG 0

24

D C4

IR
IR
IR

TRPE
TRPD
IN T E
IN T D
G 0_PG 03
G 0_PG 02
H A L T u p ra v
N O P u p ra v

25

2
1
0

uprav

26

IR
IR
IR

G 0_PG 1
G 0_PG 1
RTI
IN T
RTS
JS R
JM P
G 0_PG 1

D C3

G 0

7
6
5
4
3
2
1
0

2
1
0

7
6
5
4
3
2
1
0

uprav

3
2
1
0

7
6
5
4
3
2
1
0

uprav

G
G
G
G

G
G
G
G
G
G
G
G

D C1

3
2
1
0

_P
_P
_P
_P
_P
_P
_P
_P

30

1
0

0
0
0
0
0
0
0
0

uprav
exec

31

G
G
G
G
G
G
G
G

IR
IR

7
6
5
4
3
2
1
0

Slika 20 Blok fetch (drugi deo)

1294 Signal logikog uslova greka operacije gropr ima vrednost 1 ukoliko se u razredima IR 31...24
1295nae binarna vrednost koja nije dodeljena ni jednoj od operacija iz skupa instrukcija. To se
1296deava kada je vrednost 1 nekog od signala grupa G1, G2 i G3 koje se ne koriste za kodiranje
1297operacija ili nekog od signala iz podgrupa grupe G0 koji ne odgovaraju ni jednoj od operacija.
1298 Signal logikog uslova greka adresiranja gradr ima vrednost 1 ukoliko se kao odredite
1299koristi neposredno adresiranje. To se deava samo ukoliko je u operacijama upisa STB ili STW
1300specificirano neposredno adresiranje pa signal imm ima vrednost 1.

39

38

G
G
G
G
G
G
G

0
0
0
0
0
0
0

_
_
_
_
_
_
_

P
P
P
P
P
P
P

G 3
G 2
G 1
G 57
G 56
G 17
G 16
G 10
G 03
G 02

G 0_PG 3
G 0_PG 2
IN T
JS R
JM P

1301
1302

STB
STW

u p ra v
g ro p r

u p ra v
l2 _ b rn c h
u p ra v
l3 _ ju m p
u p ra v
s to re

u p ra v
g rad r

STB
STW
im m

X O R
O R
A N D
SU B
A D D
STW
STB
LD W
LD B

u p ra v
l2 _ a rlo g

G 0_PG 7
N O T
D EC
IN C
G 0_PG 5
PU SH W
PU SH B
PO PW
PO PB
RTI
RTS
G 0_PG 0

X O
O
A N
SU
A D
LD

R
R
D
B
D
B

u p ra v
l1

u p ra v
l3 _ a r lo g

im m

re g d ir
re g in d

Slika 21 Blok fetch (trei deo)

1303 Signal logikog uslova duina instrukcije jedan bajt l1 svojom vrednou 1 odreuje da je
1304duina instrukcije jedan bajt, a vrednou 0 da je duina instrukcije dva, tri ili etiri bajta.
1305Signal l1 ima vrednost 1 ukoliko se radi o nekoj od instrukcija iz podgrupa 0, 2 ili 5 grupe nula
1306ili o instrukcijama RTS, RTI, POPB, POPW, PUSHB ili PUSHW iz ostalih podgrupa grupe
1307nula, dok u ostalim situacijama ima vrednost 0.
1308 Signali logikih uslova duina instrukcije dva bajta l2_brnch i l2_arlog svojom vrednou 1
1309odreuju da je duina instrukcije dva bajta, a vrednou 0 da je duina instrukcije tri ili etiri
1310bajta. Signal l2_brnch ima vrednost 1 ukoliko se radi o nekoj od instrukcija uslovnog skoka iz
1311podgrupa 2 ili 3 ili o instrukciji prekida INT iz podgrupe 1 grupe 0. Signal l2_arlog ima
1312vrednost 1 ukoliko se radi o nekoj od aritmetikih, logikih ili instrukcija prenosa XOR, OR,
1313AND, SUB, ADD, STW, STB, LDW ili LDB za koju je specificirano registarsko direktno
1314adresiranje, pa signal regdir ima vrednost 1, ili registarsko indirektno adresiranje, pa signal
1315regind ima vrednost 1.
1316 Signali logikih uslova duina instrukcije tri bajta l3_jump i l3_arlog svojom vrednou 1
1317odreuju da je duina instrukcije tri bajta, a vrednou 0 da je duina instrukcije etiri bajta.
1318Signal l3_jump ima vrednost 1 ukoliko se radi o instrukcijama bezuslovnog skoka JMP ili
1319skoka na potprogram JSR. Signal l3_arlog ima vrednost 1 ukoliko se radi o nekoj od
1320aritmetikih, logikih ili instrukcija prenosa XOR, OR, AND, SUB, ADD ili LDB za koju je
1321specificirano neposredno adresiranje, pa signal imm ima vrednost 1.
1322 Signal logikog uslova store svojom vredou 1 odreuje da se radi o nekoj od instrukcija
1323STB ili STW kojima se upisuje u memoriju.
13244.1.1.3 Blok addr
1325 Blok addr sadri registre opte namene GPR sa adresnim registrom registara opte namene
1326GPRAR40 i multiplekserom MX1, sabira ADD sa multiplekserima MX2 i MX3, pomoni
1327registar CW150 i ukaziva na vrh steka SP150 (slika 22).

40

39

A B 7 ...0
exec

IN C

m r

exec
A W 1 5 ...0
16

16

4 ...0

M R

G PRA R

LD

16

G PRA R

M X 1

u p ra v
in c S P
decSP
u p ra v

D I 1 5 ...0
4 ...0

G PR

4 ...0

IN C

m r
M R

SP

D EC

16

w rG P R
u p ra v

W R

1 5 ...0

16

G PR

1 5 ...0

16

A D D

1 5 ...0

1 5 ...0

16

m xG PR
u p ra v

16

C LK

D O

exec A W

bus
exec

u p ra v
ld S P

LD
C LK

S P 1 5 ...0
bus

A D D

1 5 ...0

16

bus
fe tc h

1 5 ...0

16

1
0

uprav

m xA D D A
m xA D D A

16

M X 2
0

uprav

16
1

m xA D D B
m xA D D B

16 16 16 16
in tr IV T P
G PR
fe tc h P C

in tr IV T D S P
fe tc h IR
G PR

1 5 ...0
1 5 ...0

16
ld C W
u p ra v

1328
1329

LD

CW

1 5 ...0
1 5 ...0
1 5 ...0

fe tc h IR 2 3
I R 2 3 ...1 6
fe tc h

1 5 ...0

CW
16
A D D

16 16 16 16

1 5 ...0

C LK

M X 3
0

8
8

1 5 ...8
7 ...0

16

u p ra v
in c G P R A R
ld G P R A R
u p ra v

bus M D R
5

1 5 ...8
7 ...0

8
8

M R

m r
1 5 ...0

Slika 22 Blok addr

1330 Registri opte namene GPR su realizovani kao registarski fajl sa 32 registra irine 16 bita.
1331Adresa registra opte namene koji se ita ili u koji se upisuje odreena je sadrajem registra
1332GPRAR40 iji se sadraj vodi na adresne linije A40 registarskog fajla GPR. Sadraj koji se
1333upisuje vodi se sa izlaza multipleksera MX1 na ulazne linije podataka DI 150 registarskog fajla,
1334a sadraj koji se ita GPR150 pojavljuje se na izlaznim linijama podataka DO150 registarskog
1335fajla. Vrednostima 1 i 0 signala wrGPR na upravljakoj liniji WR registarskog fajla realizuje se
1336upis u registarski fajl i itanje iz registarskog fajla, respektivno.
1337 Adresni registar registara opte namene GPRAR40 je 5-to razredni registar iji se sadraj
1338koristi kao adresa registra registarskog fajla prilikom upisa u registarki fajl i itanja iz
1339registarskog fajla. U registar GPRAR40 se vrednou 1 signala ldGPRAR upisuju razredi
13404...0 prihvatnog registra podatka MDR70 bloka bus. Ovo se koristi samo u fazi itanja
1341instrukcije i to prilikom itanja drugog bajta instrukcije. Tada ova grupa bitova, ukoliko se radi
1342o aritmetikim ili logikim instrukcijama sa adresiranjima koja koriste registre opte namene,
1343predstavlja adresu registra opte namene. Sadraj registra GPRAR40 se inkrementira
1344vrednou 1 signala incGPRAR, to se koristi samo ukoliko se radi o bazno indeksnom sa

41

40

1345pomerajem adresiranju. Tada se registar opte namene ija je adresa zadata bitovima 4...0
1346drugog bajta instrukcije koristi kao bazni registar, a registar opte namene sa prve sledee
1347adrese kao indeksni registar. Sadraj registra GPRAR40 se vodi na adresne linije A40
1348registarskog fajla GPR.
1349 Multiplekser MX1 je 16-to razredni multiplekser sa 2 ulaza. Na ulaze 0 i 1 multipleksera se
1350vode sadraji registara AB70 i AW150, pri emu je sadraj registra AB70 proiren nulama do
1351duine 16 bita. Selekcija jednog od ova dva sadraja se realizuje binarnim vrednostima 0 i 1
1352upravljakog signala mxGPR. Ovo se korisi u instrukcijama prenosa STB i STW sadraja
1353akumulatora AB70 i AW150, respektivno, kada je registarskim direktnim adresiranjem kao
1354odredite specificiran neki od registara opte namene. Selektovani sadraj se vodi na ulazne
1355linije podataka DI150 registarskog fajla GPR.
1356 Sabira ADD je 16-to razredni sabira koji se koristi za formiranje16-to bitne vrednosti koja
1357moe da bude adresa sa koje treba da se proita adresa prekidne rutine, adresa sa koje treba da
1358se proita ili na kojoj treba da se upie operand i adresa skoka. Sabiranje se realizuje nad
1359sadrajima koji sa izlaza multipksera MX2 i MX3 dolaze na ulaze A150 i B150 sabiraa ADD.
1360Sadraj ADD150 sa izlaza sabiraa se vodi u blok bus radi upisa u adresni registar MAR150 i u
1361blok fetch radi upisa u programski broja PC150, dok se u bloku addr upisuje u registar CW15
13620.
1363 Multiplekser MX2 je 16-to razredni multiplekser sa 4 ulaza. Na ulaze 0 do 3 multipleksera
1364se vode sadraji IVTP150, GPR150, PC150 i CW150. Selekcija jednog od ovih sadraja se
1365realizuje binarnim vrednostima 00 do 11 upravljakih signala mxADDA1 i mxADDA0. Sadraj
1366sa izlaza multipleksera MX2 se vodi na ulaze A150 sabiraa ADD.
1367 Multiplekser MX3 je 16-to razredni multiplekser sa 4 ulaza. Na ulaze 0 do 3 multipleksera
1368se vode sadraji IVTDSP150, IR150, GPR150 i IR2316 proiren znakom do duine 16 bita.
1369Selekcija jednog od ovih sadraja se realizuje binarnim vrednostima 00 do 11 upravljakih
1370signala mxADDB1 i mxADDB0. Sadraj sa izlaza multipleksera MX3 se vodi na ulaze B 150
1371sabiraa ADD.
1372 Sadraji IVTP150 i IVTDSP150 se putaju kroz multipleksere MX2 i MX3, respektivno, da
1373bi se njihovim sabiranjem na izlazu sabiraa ADD dobila adresa sa koje treba da se proita
1374adresa prekidne rutine. Pri tome je IVTP150 sadraj registra koji ukazuje na poetak tabele sa
1375adresama prekidnih rutina i IVTDSP150 pomeraj u odnosu na poetak tabele formiran na
1376osnovu broja ulaza u tabelu. Rezultat sabiranja se upisuje u registar MAR150.
1377 Sadraji GPR150 i IR150 se putaju kroz multipleksere MX2 i MX3, respektivno, da bi se
1378njihovim sabiranjem u sluaju registarskog indirektnog sa pomerajem adresiranja na izlazu
1379sabiraa ADD dobila adresa sa koje treba da se proita ili na kojoj treba da se upie operand.
1380Pri tome je GPR150 sadraj registra opte namene ija je adresa zadata instrukcijom i IR 150
1381pomeraj. Rezultat sabiranja se upisuje u registar MAR150. Ovi sadraji se putaju kroz
1382multipleksere i sabiraju i u sluaju baznog indeksnog sa pomerajem adresiranja, pri emu se
1383rezultat sabiranja upisuje u registar CW150.
1384 Sadraji CW150 i GPR150 se putaju kroz multipleksere MX2 i MX3, respektivno, da bi se
1385njihovim sabiranjem u sluaju baznog indeksnog sa pomerajem adresiranja na izlazu sabiraa
1386ADD dobila adresa sa koje treba da se proita ili na kojoj treba da se upie operand. Pri tome
1387je CW150 sadraj pomonog registra u kome se nalazi prethodno dobijena suma registra opte
1388namene, koji se koristi kao bazni registar i koji se ita sa adrese zadate instrukcijom, i
1389pomeraja, dok je GPR150 sadraj registra opte namene koji se koristi kao indeksni registar i
1390koji se ita sa prve sledee adrese u odnosu na adresu zadatu instrukcijom. Rezultat sabiranja
1391se upisuje u registar MAR150.

42

41

1392 Sadraji PC150 i IR150 se putaju kroz multipleksere MX2 i MX3, respektivno, da bi se
1393njihovim sabiranjem u sluaju PC relativnog sa pomerajem adresiranja na izlazu sabiraa ADD
1394dobila adresa sa koje treba da se proita ili na kojoj treba da se upie operand. Pri tome je
1395PC150 sadraj programskog brojaa i IR 150 pomeraj. Rezultat sabiranja se upisuje u registar
1396MAR150.
1397 Sadraji PC150 i IR2316 proiren znakom do duine 16 bita se putaju kroz multipleksere
1398MX2 i MX3, respektivno, da bi se njihovim sabiranjem na izlazu sabiraa ADD u sluaju
1399instrukcija uslovnog skoka dobila adresa skoka. Pri tome je PC 150 sadraj programskog
1400brojaa i IR2316 proiren znakom do duine 16 bita pomeraj u odnosu na tekuu vrednost
1401programskog brojaa. Rezultat sabiranja se vodi u blok fetch u kome se puta kroz
1402multiplekser MX i upisuje u registar PC150.
1403 Registar CW150 je 16-to razredni pomoni registar u kome se u sluaju baznog indeksnog
1404sa pomerajem adresiranja uva suma registra opte namene, koji se koristi kao bazni registar, i
1405pomeraja. Ova suma se dobija sa izlaza sabiraa ADD i u registar CW 150 upisuje vrednou 1
1406signala ldCW. Sadraj registra CW150 se vodi na ulaze multipleksera MX2.
1407 Registar SP150 je 16-to razredni ukaziva na vrh steka iji sadraj predstavlja adresu
1408memorijske lokacije prilikom upisa na stek i itanja sa steka. U registar SP 150 se vrednou 1
1409signala ldSP u fazi izvravanja instrukcije prenosa upisuje sadraj 16-to razrednog akumulatora
1410AW15...0. Sadraj registra SP150 se inkrementira i dekrementira vrednostima 1 signala incSP i
1411decSP. Ovo se koristi pri upisu na stek i itanju sa steka. Sadraj registra SP 150 se vodi u
1412registar MAR150 bloka bus pri upisu i itanju sa steka i u akumulator AW15...0 u fazi izvravanja
1413instrukcije prenosa LDSP.
14144.1.1.4 Blok exec
1415 Blok exec sadri aritmetiko logiku jedinicu ALU, registre AB7...0 i BB7...0, multipleksere
1416MX1, MX2, MX3 i MX4, kodere DC1 i DC2, registre AW150 i BW150, multipleksere MX5 i
1417MX6 (slika 23), registar PSW15...0, flip-flop START (slika 24), kombinacione mree za
1418formiranje signala postavljanja indikatora N, Z, C i V (slika 25) i kombinacione mree za
1419formiranje signala rezultata operacija eql, ..., nneg i brpom (slika 26).
1420 Aritmetiko logika jedinica ALU realizacije etiri aritmetike i etiri logike
1421mikrooperacije nad sadrajima registara AB7...0 i BB7...0 (slika 23). Mikrooperacija koju treba
1422realizovati se specificira vrednou 1 ili jednog od upravljakih signala add, sub, inc i dec za
1423jednu od aritmetikih mikrooperacija sabiranja, oduzimanja, inkementiranja i dekrementiranja,
1424respektivno, ili jednog od upravljakih signala and, or, xor i not za jednu od logikih
1425mikrooperacija I, ILI, ekskluzivno ILI i komplementiranja, respektivno. Rezultat realizovane
1426mikrooperacije se dobija na linijama ALU7...0. Na ulaz C0 je dovedena vrednost 0, pri emu je
1427vrednost signala C0 bitna samo u sluaju aritmetikih mikrooperacija, dok ta vrednost nije bitna
1428u sluaju logikih mikrooperacija. U sluaju aritmetikih mikrooperacija sabiranja i
1429inkrementiranja na izlazu C8 se dobija prenos, a u sluaju aritmetikih mikrooperacija
1430oduzimanja i dekrementiranja na izlazu C8 se dobija komplement pozajmice. Podrazumeva se
1431takva realizacija ALU da prenosa ima ili nema ukoliko se radi o mikrooperacijama sabiranja i
1432inkrementiranja i na izlazu C8 je vrednost 1 ili 0, respektivno, i da pozajmice ima ili nema
1433ukoliko se radi o mikrooperacijama oduzimanja i dekrementiranja i na izlazu C 8 je vrednost 0 ili
14341, respektivno. U sluaju logikih mikrooperacija signal na izlazu C8 nema smisla.

43

42

not
xor
or
and

uprav
A B

C LK
SH R
IR

PSW C
A B 0
0
A B 7

RO R
RO
LS
A S

2
1

ld B B
u p ra v
uprav

m xB B
m xB B

7 ...0

IR

CD 1

fetch

16

A W

1 5 ...0

A W

LD

RO LC
RO L
LSL
A SL

2
1

M X 4

IL

0
1

2
1

CD 2

1
0

B W

1 5 ...0

B W

LD

C LK

16
2

m xB W
m xB W

M X 6
0

16 16 16 16

1 5 ...0

IV T P

1 5 ...0

addr G PR
bus D W

intr

1 5 ...0

IM R

1435
1436

7 ...0

16 16 16 16
B W
addr SP

fe tc h
I R 1 5 ...8

PSW C
A B 7
0
0

ld B W
u p ra v

CLK

M X 5
0

16

uprav

uprav

7 ...0

in tr
bus
addr

16
m xA W
m xA W

C LK

M X 2

C
R
R
R

addr G PR
bus M D R

M X 3
1

B B

LD

fetch

8
B B

7 ...0

7 ...0

B B

M X 1

8
A LU

ld A W
u p ra v

m r

8
0

dec
in c
sub
add

u p ra v
ld A B
shl
u p ra v

LD
SH L
M R IL

A B

m xA B
u p ra v

8
u p ra v
shr

A LU

7 ...0

7 ...0


uprav

A LU

1 5 ...0

1 5 ...0
1 5 ...0

fe tc h
I R 1 5 ...0

Slika 23 Blok exec (prvi deo)

1437 Registar AB7...0 je 8-mo razredni akumulator koji se koristi kao implicitno izvorite i
1438odredite u aritmetikim, logikim i pomerakim instrukcijama. Sadraj sa izlaza multipleksera
1439MX1 se vodi na ulaze registra AB7...0 i u njega upisuje vrednou 1 signala ldAB. Sadraj
1440registra AB7...0 se pomera udesno za jedno mesto vrednou 1 signala shR. Tada se u najstariiji
1441razred registra AB7 upisuje signal IR koji dolazi sa izlaza multipleksera MX3. Sadraj registra
1442AB7...0 se pomera ulevo za jedno mesto vrednou 1 signala shL. Tada se u najmlai razred
1443registra AB0 upisuje signal IL koji dolazi sa izlaza multipleksera MX4. Sadraj registra AB 7...0
44

43

1444se vodi na ulaze ALU gde se koristi kao prvi izvorini operand u sluaju aritmetikih i logikih
1445operacija.
1446 Multiplekser MX1 je 8-mo razredni multiplekser sa 2 ulaza. Na ulaze 0 i 1 multipleksera se
1447vode sadraji ALU70 i BB70 koji se putaju kroz multiplekser i upisuju u registar AB70.
1448Selekcija jednog od ovih sadraja se realizuje binarnim vrednostima 0 i 1 upravljakog signala
1449mxAB. Sadraj ALU70 predstavlja rezultat aritmetike ili logike operacije koje kao odredite
1450implicitno koriste registar akumulatora AB70. Sadraj BB70 predstavlja operand koji se u fazi
1451izvravanja instrukcije LDB prebacuje iz prihvatnog registra operanda BB 70 u registar
1452akumulatora AB70.
1453 Registar BB7...0 je 8-mo razredni prihvatni registar u koji se privremeno smeta izvorini
1454operand specificiran adresnim delom svih instrukcija sa jednoadresnim formatom. Sadraj sa
1455izlaza multipleksera MX2 se vodi na ulaze registra BB7...0 i u njega upisuje vrednou 1 signala
1456ldBB. Sadraj registra BB7...0 se vodi na ulaze ALU, gde se koristi kao drugi izvorini operand
1457u sluaju aritmetikih i logikih instrukcija, i na ulaze multipleksera MX1 kroz koji se proputa
1458i upisuje u registar AB7...0 u sluaju instrukcije LDB.
1459 Multiplekser MX2 je 8-mo razredni multiplekser sa 4 ulaza. Na ulaze 0 do 2 multipleksera
1460se vode sadraji GPR70, MDR70 i IR158 koji se putaju kroz multiplekser i upisuju u registar
1461BB70. Selekcija jednog od ovih sadraja se realizuje binarnim vrednostima 00 do 10
1462upravljakih signala mxBB1 i mxBB0. Sadraj GPR70 je operand u sluaju registarskog
1463direktnog adresiranja, MDR70 je operand u sluaju memorijskih adresiranja i IR158 je operand
1464u sluaju neposrednog adresiranja.
1465 Multiplekser MX3 je 1-no razredni multiplekser sa 4 ulaza. Na ulaze 0 do 3 multipleksera se
1466dovode signali AB7, 0, AB0 i PSWC koji se putaju kroz multiplekser i po liniji IR upisuju u
1467razred AB7 registra AB7...0 pri realizaciji neke od etiri instrukcije pomeranja i rotiranja za jedno
1468mesto udesno sadraja registra AB7...0. Selekcija jednog od ova etiri signala se realizuje
1469binarnim vrednostima 00 do 11 sadraja sa izlaza kodera CD1. Signal AB7 se puta za
1470instrukciju aritmetikog pomereranja udesno kada signal operacije ASR ima vrednost 1. Signal
14710 se puta za instrukciju logikog pomereranja udesno kada signal operacije LSR ima vrednost
14721. Signal AB0 se puta za instrukciju rotiranja udesno kada signal operacije ROR ima vrednost
14731. Signal PSWC se puta za instrukciju rotiranja kroz indikator PSWC udesno kada signal
1474operacije RORC ima vrednost 1.
1475 Multiplekser MX4 je 1-no razredni multiplekser sa 4 ulaza. Na ulaze 0 do 3 multipleksera se
1476dovode signali 0, 0, AB7 i PSWC koji se putaju kroz multiplekser i po liniji IL upisuju u
1477razred AB0 registra AB7...0 pri realizaciji neke od etiri instrukcije pomeranja i rotiranja za jedno
1478mesto ulevo sadraja registra AB7...0. Selekcija jednog od ova etiri signala se realizuje binarnim
1479vrednostima 00 do 11 sadraja sa izlaza kodera CD2. Signal 0 se puta za instrukciju
1480aritmetikog pomereranja ulevo kada signal operacije ASL ima vrednost 1. Signal 0 se puta
1481za instrukciju logikog pomereranja ulevo kada signal operacije LSL ima vrednost 1. Signal
1482AB7 se puta za instrukciju rotiranja ulevo kada signal operacije ROL ima vrednost 1. Signal
1483PSWC se puta za instrukciju rotiranja kroz indikator PSWC ulevo kada signal operacije
1484ROLC ima vrednost 1.
1485 Koder CD1 je koder sa etiri ulaza i dva izlaza koji na izlazima daje binarnu vrednost 00 do
148611 u zavisnosti od toga koji od signala operacija pomeranja i rotiranja udesno za jedno mesto
1487ASR, LSR, ROR i RORC ima vrednost 1. Ukoliko signal operacije aritmetikog pomeranja
1488udesno ASR koji je povezan na ulaz 0 kodera ima vrednost 1, na izlazima kodera se pojavljuje
1489binarna vrednost 00, koja omoguuje da se kroz multiplekser MX1 na liniju IR registra AB 7...0
1490pusti signal AB7. Ukoliko signal operacije logikog pomeranja udesno LSR koji je povezan na
1491ulaz 1 kodera ima vrednost 1, na izlazima kodera se pojavljuje binarna vrednost 01, koja
1492omoguuje da se kroz multiplekser MX1 na liniju IR registra AB7...0 pusti signal 0. Ukoliko
45

44

1493signal operacije rotiranja udesno ROR koji je povezan na ulaz 2 kodera ima vrednost 1, na
1494izlazima kodera se pojavljuje binarna vrednost 10, koja omoguuje da se kroz multiplekser
1495MX1 na liniju IR registra AB7...0 pusti signal AB0. Ukoliko signal operacije rotiranja udesno
1496kroz indikator PSWC RORC koji je povezan na ulaz 3 kodera ima vrednost 1, na izlazima
1497kodera se pojavljuje binarna vrednost 11, koja omoguuje da se kroz multiplekser MX1 na
1498liniju IR registra AB7...0 pusti signal PSWC.
1499 Koder CD2 je koder sa etiri ulaza i dva izlaza koji na izlazima daje binarnu vrednost 00 do
150011 u zavisnosti od toga koji od signala operacija pomeranja i rotiranja ulevo za jedno mesto
1501ASL, LSL, ROL i ROLC ima vrednost 1. Ukoliko signal operacije aritmetikog pomeranja
1502ulevo ASL koji je povezan na ulaz 0 kodera ima vrednost 1, na izlazima kodera se pojavljuje
1503binarna vrednost 00, koja omoguuje da se kroz multiplekser MX2 na liniju IL registra AB7...0
1504pusti signal 0. Ukoliko signal operacije logikog pomeranja ulevo LSL koji je povezan na ulaz
15051 kodera ima vrednost 1, na izlazima kodera se pojavljuje binarna vrednost 01, koja omoguuje
1506da se kroz multiplekser MX2 na liniju IL registra AB7...0 pusti signal 0. Ukoliko signal operacije
1507rotiranja ulevo ROL koji je povezan na ulaz 2 kodera ima vrednost 1, na izlazima kodera se
1508pojavljuje binarna vrednost 10, koja omoguuje da se kroz multiplekser MX2 na liniju IL
1509registra AB7...0 pusti signal AB7. Ukoliko signal operacije rotiranja ulevo kroz indikator PSWC
1510ROLC koji je povezan na ulaz 3 kodera ima vrednost 1, na izlazima kodera se pojavljuje
1511binarna vrednost 11, koja omoguuje da se kroz multiplekser MX2 na liniju IL registra AB 7...0
1512pusti signal PSWC.
1513 Registar AW15...0 je 16-to razredni akumulator koji se koristi kao implicitno izvorite u
1514instrukcijama prenosa STW, PUSHW, STIVTP, STIMR i STSP i implicitno odredite u
1515instrukcijama prenosa LDW, POPW, LDIVTP, LDIMR i LDSP. Sadraj sa izlaza multipleksera
1516MX5 se vodi na ulaze registra AW15...0 i u njega upisuje vrednou 1 signala ldAW. Sadraj
1517registra AW15...0 se vodi u blok addr gde se, ukoliko se izvrava instrukcija prenosa STW sa
1518zadatim direktnim registarskim adresiranjem, upisuje u adresirani registar registarskog fajla
1519GPR i ukoliko se izvrava instrukcija STSP upisuje u registar SP 15...0 i u blok intr gde se,
1520ukoliko se izvrava instrukcija STIVTP ili STIMR, upisuje u registre IVTP 15...0 ili IMR15...0,
1521respektivno. Sadraji mlaih 8 razreda AW7...0 i starijih 8 razreda AW15...8 vode se i u blok bus
1522radi upisa u registar MDR7...0. Ovo se radi kada se sadraj registra AW15...0, ukoliko se izvrava
1523instrukcija prenosa STW sa zadatim nekim od memorijskih adresiranja ili instrukcija prenosa
1524PUSHW, upisuje u memoriju.
1525 Multiplekser MX5 je 16-to razredni multiplekser sa 4 ulaza. Na ulaze 0 do 3 multipleksera
1526se vode sadraji BW150, SP150, IVTP150 i IMR150. Selekcija jednog od ovih sadraja se
1527realizuje binarnim vrednostima 00 do 11 upravljakih signala mxAW1 i mxAW0. Sadraj sa
1528izlaza multipleksera MX5 se vodi na ulaze registra AW150. Sadraj BW150 se puta kroz
1529multiplekser u sluaju instrukcije LDW, sadraj SP 150 u sluaju instrukcije LDSP, sadraj
1530IVTP150 u sluaju instrukcije LDIVTP i sadraj IMR150 u sluaju instrukcije LDIMR.
1531 Registar BW15...0 je 16-to razredni prihvatni registar u koji se privremeno smeta izvorini
1532operand specificiran adresnim delom instrukcije prenosa LDW. Sadraj sa izlaza multipleksera
1533MX6 se vodi na ulaze registra BW15...0 i u njega upisuje vrednou 1 signala ldBW. Sadraj
1534registra BW15...0 se vodi na ulaze multipleksera MX5 kroz koji se puta i upisuje u registar
1535AW15...0 u sluaju instrukcije LDW.
1536 Multiplekser MX6 je 16-to razredni multiplekser sa 4 ulaza. Na ulaze 0 do 2 multipleksera
1537se vode sadraji GPR150, DW150 i IR150. Selekcija jednog od ovih sadraja se realizuje
1538binarnim vrednostima 00 do 10 upravljakih signala mxBW1 i mxBW0. Sadraj sa izlaza
1539multipleksera MX6 se vodi na ulaze registra BW150. Sadraj GPR150 je operand u sluaju
1540registarskog direktnog adresiranja, sadraj DW150 je operand u sluaju memorijskih
1541adresiranja i sadraj IR150 je operand u sluaju neposrednog adresiranja.

46

45

1542 Registar PSW15...0 je 16-to razredni registar koji sadri indikatore programske statusne rei
1543procesora (slika 24). Registar PSW15...0 se sastoji od flip-flopova PSWI, PSWT, PSWL2,
1544PSWL1, PSWL0, PSWV, PSWC, PSWZ i PSWN, koji predstavljaju razrede PSW15.14 i PSW6...0,
1545respektivno, dok razredi PSW13...7 ne postoje.
1546 Flip-flop PSWI sadri indikator interrupt. Flip-flop PSWI se postavlja na vrednost 1
1547vrednou 1 signala stPSWI u okviru faze izvravanje instrukcije INTE i na vrednost 0
1548vrednou 1 signala clPSWI u okviru faze izvravanje instrukcije INTD kao i u okviru faze
1549opsluivanje prekida svih instrukcija ukoliko je tokom izvravanja instrukcije stigao zahtev za
1550prekid pa se prolazi kroz ovu fazu.
1551 Flip-flop PSWT sadri indikator trap. Flip-flop PSWT se postavlja na vrednost 1 vrednou
15521 signala stPSWT u okviru faze izvravanje operacije instrukcije TRPE i na vrednost 0
1553vrednou 1 signala clPSWT u okviru faze izvravanje operacije instrukcije TRPD kao i u
1554okviru faze opsluivanje prekida svih instrukcija ukoliko je tokom izvravanja instrukcije stigao
1555zahtev za prekid pa se prolazi kroz ovu fazu.
1556 Flip-flopovi PSWL2 do PSWL0 sadre indikatore level. U flip-flopove PSWL2 do PSWL0 se
1557vrednou 1 signala ldL u okviru faze opsluivanje prekida za prekide od ulazno/izlaznih
1558ureaja upisuju vrednosti signala prl2 do prl0, ime se ovi flip-flopovi postavljaju na vrednost
1559nivoa prioriteta ulazno/izlaznog ureaja na iju se prekidnu rutinu prelazi.
1560 Flip-flop PSWV sadri indikator overflow. U flip-flop PSWV se vrednou 1 signala ldV u
1561okviru faze izvravanje operacije odreenih instrukcija (odeljak 2.1.5) upisuje vrednost signala
1562V.
1563 Flip-flop PSWC sadri indikator carry/borrow. U flip-flop PSWC se vrednou 1 signala
1564ldC u okviru faze izvravanje operacije odreenih instrukcija (odeljak 2.1.5) upisuje vrednost
1565signala C.
1566 Flip-flop PSWZ sadri indikator zero. U flip-flop PSWZ se vrednou 1 signala ldZ u
1567okviru faze izvravanja operacije odreenih instrukcija (odeljak 2.1.5) upisuje vrednost signala
1568Z.
1569 Flip-flop PSWN sadri indikator negative. U flip-flop PSWN se vrednou 1 signala ldN u
1570okviru faze izvravanje operacije odreenih instrukcija (odeljak 2.1.5) upisuje vrednost signala
1571N.
1572

47

46

ld P S W H u p ra v

ld P S W L u p ra v

u p ra v
s tP S W I

in tr
PSW I

ld N
u p ra v
N

C LK

M D R
bus

c lP S W I
u p ra v

M D R
bus

m r

u p ra v
s tP S W T

in tr
PSW T

M D R
bus

c lP S W T
u p ra v

Z
R

M D R
bus

m r

7
6
5
4
3
2
1
0

PSW L2
PSW L1
PSW L0
PSW V
PSW C
PSW Z
PSW N

5
4
3
2
1
0
9
8

C
1
1
1
1
1
1

bus
PSW
8

M D R
bus
15 8

7 0

in tr p rl0
M D R
bus

m r
S

in tr p rl1

TSTA RT

1573
1574

c lS T A R T
u p ra v

fe tc h
u p ra v
STA RT

M D R
bus

m r

PSW C

m r
S

PSW V

m r
S

in tr
PSW L

in tr
PSW L

in tr
PSW L

C LK
R

m r
Q

C LK
R

m r
S

in tr p rl2

C LK

PSW Z

m r

M D R
bus

C LK

ld L
u p ra v
bus
PSW
8

C LK

ld V
u p ra v

M D R
bus

PSW N

C LK

ld C
u p ra v

PSW I
PSW T
0
0
0
0
0
0

C LK

ld Z
u p ra v

C LK

C LK
R

m r

Slika 24 Blok exec (drugi deo)

1575 U razrede PSW15.14 koji predstavljaju 2 najstarija razreda registra PSW 15...0 se vrednou 1
1576signala ldPSWH upisuje sadraj razreda MDR7.6 prihvatnog registra podatka MDR7...0 bloka
1577bus, dok se u razrede PSW6...0 koji predstavljaju 7 najmlaih razreda registra PSW15...0
1578vrednou 1 signala ldPSWL upisuje sadraj razreda MDR6...0 prihvatnog registra podatka
1579MDR7...0. Ovo se koristi prilikom izvravanja instrukcije RTI da se sadrajem sa vrha steka
48

47

1580restaurira sadraj registra PSW15...0. Sadraji 2 najstarija razreda PSW15.14, 7 najmlaih razreda
1581PSW6...0 i vrednosti 0 za nepostojee razrede PSW 13...7 registra PSW15...0 se vode posebno kao 8
1582starijih razreda PSW15...8 i 8 mlaih razreda PSW7...0 registra PSW15...0 u blok bus u kome se
1583upisuju u prihvatni registar podatka MDR7...0. Ovo se koristi prilikom opsluivanja zahteva za
1584prekida da se sadraj registra PSW15...0 stavi na vrh steka.

fetch
fetch

D
C
B
C
C

A B
B B
A LU

7
7
7

7
7
7

7
7
7
7
7

A D D

fetch

fetch

B
B
B
B
B
B
B
B

A D
IN
SU
D E

C8
A SR
LSR
RO R
RO RC
A B 0
A SL
LSL
RO L
RO LC
A B 7

LD B
PO PB
A D D
SU B
IN C
D EC
A N D
O R
X O R
N O T
A SR
LSR
R O R
RO RC
A SL
LSL
RO L
RO LC
A
A
A
A
A
A
A
A

1590
1591

N
7

A B

fetch

1585 Flip-flop START svojom vrednou 1 omoguuje izvravanje instrukcija, dok vrednou 0
1586zaustavlja. U flip-flop START se upisuje vrednost 1 vrednou 1 signala TSTART koja se
1587generie ili pri ukljuenju napajanja ili aktiviranjem tastera START. U flip-flop se upisuje
1588vrednost 0 vrednou 1 signala clSTART koja se generie u okviru faze izvravanje operacije
1589instrukcije HALT.

A D D

SU B
V
V

SU B

IN C
D EC

IN C

D EC

Slika 25 Blok exec (trei deo)

1592
Kombinacione mree signala postavljanja indikatora N, Z, C i V se sastoje od logikih
1593elemenata (slika 25). Na izlazima kombinacionih mrea se formiraju signali koji se upisuju u
1594flip-flopove PSWN, PSWZ, PSWC i PSWV programske statusne rei u okviru izvravanja
1595odreenih instrukcija (odeljak 2.1.5). Signal N ima vrednost koja odgovara vrednosti razreda
1596AB7 ukoliko jedan od signala operacija LDB, ..., ROLC ima vrednost 1, dok u svim ostalim
1597situacijama signal N ima vrednost 0. Signal Z ima vrednost 1 ukoliko svi razredi registra AB7...0
1598imaju vrednost 0 i ukoliko jedan od signala operacija LDB, ..., ROLC ima vrednost 1, dok u
1599svim ostalim situacijama signal Z ima vrednost 0. Signal C ima vrednost koja odgovara
1600vrednosti signala C8 ukoliko jedan od signala operacija ADD ili INC ima vrednost 1 i vrednost
1601koja odgovara invertovanoj vrednosti signala C8 ukoliko jedan od signala operacija SUB ili
1602DEC ima vrednost 1. Pored toga signal C ima vrednost koja odgovara vrednosti signala AB0
49

48

1603ukoliko jedan od signala operacija ASR, LSR, ROR ili RORC ima vrednost 1 i vrednost koja
1604odgovara vrednosti signala AB7 ukoliko jedan od signala operacija ASL, LSL, ROL ili ROLC
1605ima vrednost 1. U svim ostalim situacijama signal C ima vrednost 0. Signal V ima vrednost
1606koja odgovara vrednosti jednog od signala VADD, VSUB, VINC i VDEC, ukoliko jedan od signala
1607operacija ADD, SUB, INC ili DEC ima vrednost 1, respektivno, dok u svim ostalim
1608situacijama signal V ima vrednost 0. Signal VADD ima vrednost 1 ukoliko signali AB7 i BB7
1609imaju vrednost 0 i signal ALU7 ima vrednost 1 ili ukoliko signali AB7 i BB7 imaju vrednost 1 i
1610signal ALU7 vrednost 0. Signal VSUB ima vrednost 1 ukoliko signali ALU7 i BB7 imaju
1611vrednost 0 i signal AB7 vrednost 1 ili ukoliko signali ALU7 i BB7 imaju vrednost 1 i signal AB7
1612ima vrednost 0. Signal VINC ima vrednost 1 ukoliko signal AB7 ima vrednost 0 i signal ALU7
1613ima vrednost 1. Signal VDEC ima vrednost 1 ukoliko signal AB7 ima vrednost 1 i signal ALU7
1614ima vrednost 0.
PSW Z
PSW N
PSW V
PSW Z
PSW C
PSW Z

PSW C

ls s u , c a r
g rte u , n c a r

ls s
g r te

PSW V

ovf
novf

ls s e
g rt

PSW N

neg
nneg

ls s e u
g r tu

ncar
car
novf
ovf
nneg
neg
neql
eql

1615
1616

eql
neql

ls s e u
ls s u
g r te u
g rtu
ls s e
ls s
g r te
g rt

7
6
5
4

M X 7

3
2
1
0

IR 26 IR 25 IR

fe tc h

7
6
5

M X 8

27

fe tc h
2

IR 26 IR 25 IR

fe tc h

24

u p ra v
b rp o m

IR

1
0

M X 9

24

Slika 26 Blok exec (etvrti deo)

1617 Kombinacione mree za formiranje signala rezultata operacija eql, ..., nneg i brpom se
1618sastoje od logikih elemenata i multipleksera MX7, MX8 i MX9 (slika 26). Logikim
1619elementima se na osnovu sadraja flip-flopova PSWN, PSWZ, PSWC i PSWV programske
1620statusne rei formiraju signali eql, ..., nneg. Multiplekserima MX7, MX8 i MX9 se na osnovu
1621razreda IR27...24 prihvatnog registra instrukcije kojima se specificira kod operacije instrukcije
1622uslovnog skoka BEQL, ..., BNNEQ selektuje jedan od signala eql, ..., nneg i pojavljuje kao
1623signal brpom koji se koristi u upravljakoj jedinici uprav da bi se prilikom izvravanja
1624instrukcija uslovnog skoka utvrdilo da li je uslov za skok ispunjen ili nije. Selekcija jednog od
1625signala eql, ..., nneg i formiranje signala brpom se realizuje na osnovu kodiranja
1626odgovarajuih kodova operacija instrukcija uslovnog skoka BEQL, ..., BNNEQ. Kodiranje
1627instrukcija je tako realizovano da se razredom IR 27 selektuje jedna od dve podgrupe G0_PG2
1628(poglavlje 2.1.5.1.3.1) i G0_PG3 (poglavlje 2.1.5.1.3.1) instrukcija uslovnog skoka (tabela 4),

50

49

1629dok se razredima IR26...24 unutar selektovane podrupe selektuje odgovarajua instrukcija (tabele
16307 i 8).
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645

Signali rezultata operacija eql, ..., nneg imaju sledee znaenje:


eql rezultat nula,
neq rezultat razliit od nule,
grt rezultat vei od nule u aritmetici sa znakom,
gre rezultat vei od nule ili jednak nuli u aritmetici sa znakom,
lss rezultat manji od nule u aritmetici sa znakom,
leq rezultat manji od nule ili jednak nuli u aritmetici sa znakom,
grtu rezultat vei od nule u aritmetici bez znaka,
greu rezultat vei od nule ili jednak nuli u aritmetici bez znaka,
lssu rezultat manji od nule u aritmetici bez znaka,
lequ rezultat manji od nule ili jednak nuli u aritmetici bez znaka,
neg razred PSWN aktivan,
nng razred PSWN nije aktivan,
ovf razred PSWV aktivan i
nvf razred PSWV nije aktivan.

1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660

Signali rezultata operacija eql, ..., nvf se realizuju prema sledeim izrazima:
eql = PSWZ,
neq = PSWZ ,
grt = ((PSWN PSWV ) PSWZ ) ,
gre = (PSWN PSWV ) ,
lss = PSWN PSWV,
leq = (PSWN PSWV) + PSWZ,
grtu = PSWC + PSWZ ,
greu = PSWC ,
lssu = PSWC,
lequ = PSWC + PSWZ,
neg = PSWN,
nng = PSWN ,
ovf = PSWV i
nvf = PSWV .

16614.1.1.5 Blok intr


1662 Blok intr sadri logiki ILI element za formiranje signala prekida prekid, kombinacione i
1663sekvencijalne mree za prihvatanje unutranjih prekida i spoljanjih nemaskirajuih i
1664maskirajuih prekida, registar IMR15...0 (slika 27), kombinacione prekidake mree za
1665formiranje signala spoljanjih maskirajuih prekida printr (slika 28), kombinacione i
1666sekvencijalne mree za formiranje pomeraja za tabelu sa adresama prekidnih rutina IVTDSP15...0
1667i registar IVTP15...0 (slika 29).
1668 Logiki ILI element za formiranje signala prekida prekid daje vrednost 1 signala prekida
1669prekid ukoliko barem jedan od signala prekida ima vrednost 1 (slika 27). To moe da bude
1670neki od signala unutranjih prekida i to PRINS za prekid zbog izvravanja instrukcije prekida
1671INT, PRCOD za prekid zbog itanja instrukcije sa nepostojeim kodom operacije i PRADR
1672za prekid zbog itanja instrukcije sa neposrednim adresiranjem za odredini operand, zatim
1673signal spoljanjeg prekida PRINM zbog generisanja nemaskirajueg prekida, potom signal
1674spoljanjeg prekida printr zbog prisustva nekog od maskirajuih prekida i na kraju signal koji
1675predstavlja I funkciju signala unutranjeg prekida PSWT usled prekida zbog zadatog reim
1676rada procesora prekid posle svake instrukcije i komplementa signala operacije povratka iz
1677prekidne rutine RTI. Treba uoiti da time to se uzima I funkciju signala PSWT i
51

50

1678komplementa signala RTI se obezbeuje da reim rada prekid posle svake instrukcije nije
1679dozvoljen za instrukciju povratka iz prekidne rutine RTI .
1680 Kombinacione i sekvencijalne mree za prihvatanje unutranjih prekida se sastoje od flip1681flopova PRINS, PRCOD i PRADR.
u p ra v
s tP R IN S

u p ra v
P R IN S

u p ra v
s tP R C O D

C LK

c lP R IN S
u p ra v

c lP R C O D
u p ra v

U /I 6
in tr6

ld IM R
u p ra v
R

16

P R IN T R

U /I2
in tr 2

c lIN T R

m r
S

P R IN T R

P R IN T R

c lIN T R

m r

IM R

1 5 ...0

exec

U /I1
in tr 1

c lIN T R

P R IN S
PRCO D
PRA D R
P R IN M
p r in tr
exec
PSW T
RTI
fe tc h

u p ra v
p re k id

p rl2
p rl1
p rl0

P R IN T R

P R IN T R

U /I4
in tr 4

P R IN T R

P R IN T R

m r
S

C LK
R

c lIN T R

m r
7

1
1
0

C LK

C LK

C LK
R

m r
M R

m r

U /I5
in tr 5

m r

C LK
R

1 5 ...0

IM R

LD

c lIN T R

1682
1683

c lP R A D R
u p ra v

P R IN M

C LK

c lIN T R

exec A W
16

C LK

c lIN T R

m r

U /I 3
in tr3

u p ra v
PRA D R

C LK

m r

C LK

c lP R IN M
u p ra v

u p ra v
s tP R A D R

C LK

m r

FAU LT
in m

u p ra v
PR CO D

D C

7
6
5
4
3
2
1
0

c lIN
c lIN
c lIN
c lIN
c lIN
c lIN
c lIN

T
T
T
T
T
T
T

R
R
R
R
R
R
R

U /I7
in tr 7

m r
Q

C LK

5
3

6
4

c lIN T R

m r

c lIN T R
u p ra v

Slika 27 Blok intr (prvi deo)

1684 Flip-flop PRINS pamti unutranji prekid izazvan izvravanjem instrukcije prekida INT. Ovaj
1685flip-flop se postavlja na vrednost 1 vrednou 1 signala stPRINS u fazi izvravanje operacije
1686instrukcije prekida INT i na vrednost 0 vrednou 1 signala clPRINS u fazi opsluivanje
1687prekida.
1688 Flip-flop PRCOD pamti unutranji prekid zbog itanja instrukcije sa nepostojeim kodom
1689operacije. Flip-flop PRCOD se postavlja na vrednost 1 vrednou 1 signala stPRCOD koji se
1690generie u fazi itanje instrukcije ukoliko je u bloku fetch otkriven nepostojei kod operacije i
1691formirana vrednost 1 signala grop (slika 21). Flip-flop PRCOD se postavlja na vrednost 0
1692vrednou 1 signala clPRCOD u fazi opsluivanje prekida.

52

51

1693 Flip-flop PRADR pamti unutranji prekid zbog korienja neposrednog adresiranja za
1694odredini operand. Flip-flop PRADR se postavlja na vrednost 1 vrednou 1 signala stPRADR
1695koji se generie u fazi itanje instrukcije ukoliko je u bloku fetch otkriveno korienje
1696neposrednog adresiranja za odredini operand i formirana vrednost 1 signala gradr (slika 21).
1697Flip-flop PRADR se postavlja na vrednost 0 vrednou 1 signala clPRADR u fazi opsluivanje
1698prekida.
1699 Signali PRINS, PRCOD i PRADR se koriste u upravljakoj jedinici uprav kao signali
1700logikih uslova u fazi opsluivanje prekida.
1701 Kombinacione i sekvencijalne mree za prihvatanje spoljanjih nemaskirajuih i maskirajuih
1702prekida se sastoje od flip-flopova PRINM, PRINTR1 do PRINTR7 i dekodera DC.
1703 Flip-flop PRINM slui za prihvatanje spoljanjeg nemaskirajueg prekida inm. Prekid inm
1704dolazi od ureaja FAULT kao impuls i pamti se u flip-flopu PRINM. Flip-flop PRINM se
1705postavlja na vrednost 0 vrednou 1 signala clPRINM u fazi opsluivanje prekida.
1706 Flip-flopovi PRINTR1 do PRINTR7 slue za prihvatanje spoljanjih maskirajuih prekida
1707intr1 do intr7. Prekidi intr1 do intr7 koji dolaze od ulazno/izlaznih ureaja U/I kao impuls pamte
1708se u flip-flopovima za prihvatanje prekida PRINTR 1 do PRINTR7, respektivno. Sadraji flip1709flopova PRINTR1 do PRINTR7 se koriste u fazi opsluivanje prekida. Kada se u fazi
1710opsluivanje prekida prihvati neki od maskirajuih prekida, odgovarajui flip-flop PRINTR 1 do
1711PRINTR7 se postavi na vrednost 0. Postavljanje flip-flopova PRINTR1 do PRINTR7 na
1712vrednost 0 se realizuje vrednou 1 signala clINTR1 do clINTR7, respektivno. Postavljanje
1713odgovarajueg flip-flopa PRINTR1 do PRINTR7 na vrednost 0 se realizuje tako to se generie
1714vrednost 1 signala clINTR. S obzirom da signali prl2 do prl0 daju binarnu vrednost jedne od
1715linija intr1 do intr7 po kojoj je prihvaeni prekid stigao, ovi signali se koriste da selektuju
1716odgovarajui flip-flop PRINTR1 do PRINTR7 koji se vrednou 1 signala clINTR postavlja na
1717vrednost 0.
1718 Dekoder DC u fazi opsluivanje prekida pri vrednosti 1 signala clINTR daje vrednost 1
1719jednog od signala clINTR1 do clINTR7. Koji e od signala clINTR1 do clINTR7 tada imati
1720vrednost 1 zavisi od vrednosti signala prl2 do prl0 koji daju binarnu vrednost linije intr1 do intr7
1721po kojoj je prihvaeni zahtev za prekid stigao.
1722 Registar maske IMR150 slui za pojedinano maskiranje spoljanjih maskirajuih prekida
1723intr1 do intr7. Prekidima intr1 do intr7 odgovaraju razredi IMR1 do IMR7 registra maske IMR15
17240, dok se preostali razredi ne koriste. Upis sadraja sa linija AW150 se obavlja ukoliko signal
1725ldIMR ima vrednost 1. Upis u registar IMR150 se realizuje samo kod izvravanja instrukcije
1726STIMR, koja slui za upis sadraja akumulatora AW15...0 u registar procesora IMR150.
1727 Kombinacione prekidake mree za formiranje signala spoljanjih maskirajuih prekida
1728printr se sastoji od logikih ILI i I elemenata, kodera CD i komparatora CMP (slika 28).
1729 Signal maskirajueg prekida printr ima vrednost 1 ukoliko signali imrprintr, acc i PSWI
1730imaju vrednosti 1. Signal imrprintr ima vrednost 1 ukoliko barem jedan od signala irm1 do
1731irm7 ima vrednost 1. Ovo e se desiti ukoliko se barem u jednom od flip-flopova PRINTR 1 do
1732PRINTR7 (slika 27) nalazi vrednost 1 i ukoliko je u odgovarajuem razredu IMR 1 do IMR7
1733registra maske IMR15...0 takoe vrednost 1. Signal acc na izlazu komparatora CMP ima
1734vrednost 1 ukoliko je prioritet pristiglog spoljanjeg maskirajueg zahteva za prekid najvieg
1735prioriteta koji nije maskiran vii od prioriteta tekueg programa. Prioritet pristiglog spoljanjeg
1736maskirajueg zahteva za prekid najvieg prioriteta koji nije maskiran odreen je signalima prl2
1737do prl0 na izlazu kodera prioriteta CD, dok je prioritet tekueg programa odreenog signalima
1738PSWL2 do PSWL0 registra PSW15...0 (slika 28). Signal PSWI dolazi sa izlaza odgovarajueg
1739razreda registra PSW15...0 i njegovim vrednostima 1 i 0 se dozvoljavaju i maskiraju svi
1740maskirajui prekidi, respektivno (slika 24).
53

52

IM
IM
IM
IM
IM
IM
IM

R
R
R
R
R
R
R

P
P
P
P
P
P
P

1
2
3
4
5
6
7

R
R
R
R
R
R
R

ir m
ir m
ir m
ir m
ir m
ir m
ir m

im rp rin tr
u p ra v
p rin tr

IN
IN
IN
IN
IN
IN
IN

T
T
T
T
T
T
T

R
R
R
R
R
R
R

1
2
3
1
2
3
3

7
6
5
4
3
2
1

PSW I
exec
7

acc

5
2

CD
1

1741
1742

2
1
0

b
b
b

2
1
0

CM P

p rl2
p rl1
p rl0

a2
a1
a0


exec

PSW L
PSW L
PSW L

exec

A >B

Slika 28 Blok intr (drugi deo)

1743 Kombinacione i sekvencijalne mree za formiranje pomeraja IVTDSP15...0 za tabelu sa


1744adresama prekidnih rutina se sastoje od kodera CD1 i CD2, i registra BR 7...0 sa multiplekserom
1745MX (slika 29).
1746 Koder CD1 slui za formiranje broja ulaza u tabelu sa adresama prekidnih rutina za
1747unutranje prekide, spoljanji nemaskirajui prekid i unutranji prekid zbog zadatog reima
1748rada prekid posle svake instrukcije. Ovi prekidi su odreeni signalima na izlazima flip-flopova
1749PSWT za unutranji prekid usled zadatog reima rada prekid posle svake instrukcije, PRINM
1750za spoljanji nemaskirajui prekid, PRADR za unutranji prekid zbog korienja neposrednog
1751adresiranja za odredini operand i PRCOD za unutranji prekid zbog itanja instrukcije sa
1752nepostojeim kodom operacije. Signali sa izlaza flip-flopova PSWT, PRINM, PRADR i
1753PRCOD dovedeni su na ulaze 0 do 3 kodera prioriteta CD1 po rastuim prioritetima. Na izlazu
1754kodera dobija se broj zahteva za prekid najvieg prioriteta binarno kodiran sa dva bita koji
1755predstavljaju dva najnia bita broja ulaza. Bitovi 2 do 7 broja ulaza imaju vrednost 0 i sa dva
1756bita na izlazu kodera CD1 formiraju 8-mo bitnu vrednost broja ulaza UINT 7...0. Ovim se
1757dobijaju brojevi ulaza od 0 do 3.
1758 Koder CD2 slui za formiranje broja ulaza u tabelu sa adresama prekidnih rutina za
1759spoljanje maskirajue prekide intr1 do i intr7. Signali spoljanjih maskirajuih prekida intr1 do
1760intr7 posle eventualnog maskiranja razredima IMR1 do IMR7 registra maske IMR15...0 pojavljuju
1761se kao signali irm1 do irm7 (slika 28). Ovi signali se vode na ulaze 1 do 7 kodera prioriteta
1762CD2 po rastuim prioritetima. Na izlazu kodera dobija se broj zahteva za prekid najvieg
1763prioriteta binarno kodiran sa tri bita koji predstavljaju tri najnia bita broja ulaza. Bit 3, koji
1764ima vrednost 1 i bitovi 4 do 15, koji imaju vrednost 0, sa tri bita na izlazu kodera CD2
1765formiraju 8-mo bitnu vrednost broja ulaza UEXT 7...0. Ovim se dobijaju brojevi ulaza od 9 do
176615.

54

53

irm
irm
irm
irm
irm
irm
irm

7
6
5
4
3
2
1

7
6
5
4
3
2
1
0

0
0
CD 1

3
2
1
0

1
0

1
CD 2

3
2
1
0

2
1
0

exec A W

3
2
1
0

...
...

PRCO D
PRA D R
P R IN M
PSW T
exec

...
...

U IN T
8

7 0

U EX T
8

1767
1768

C LK
LD

8
8
8
8

m x B R 0 u p ra v

3
2

M X

1
0

8
C LK

ld B R
u p ra v

m r
M R

B R

LD

8
0

1 5 ...0

B R

1 5 ... 9 8 ... 1

1 6 IV T D S P
addr

m r

IV T P
16

U I N T 7 ...0
U E X T 7 ...0
I R 2 3 ...1 6
fe tc h

7 0

16
CLK
ld IV T P
u p ra v

u p ra v m x B R

M R

7 ...0

0
1
1 5 ...0

I V T P 1 5 ...0
addr

Slika 29 Blok intr (trei deo)

1769 Registar BR7...0 sa multiplekserom MX slui za selekciju i pamenje broja ulaza u tabelu sa
1770adresama prekidnih rutina (slika 29). Upis sadraja sa izlaza multipleksera MX u registar BR7...0
1771se obavlja vrednou 1 signala ldBR. Sadraj registra BR7...0 se u fazi opsluivanje prekida
1772koristi za formiranje pomeraja IVTDSP 15...0 za ulazak u tabelu sa adresama prekidnih rutina.
1773Kako adresa prekidne rutine zauzima dve susedne memorijske lokacije, to se pomeraj
1774IVTDSP15...0 dobija pomeranjem sadraja registra BR7...0 za jedno mesto ulevo. Formirani
1775pomeraj IVTDSP15...0 se preko multipleksera MX3 vodi na ulaze B15...0 sabiraa ADD bloka
1776addr.
1777 Multiplekser MX je 8-mo razredni multiplekser sa 4 ulaza. Na ulaze 0 do 2 multipleksera se
1778vode sadraji IR2316, UEXT70 i UINT70, koji predstavljaju brojeve ulaza u tabelu sa
1779adresama prekidnih rutina za instrukciju prekida INT, za spoljanje maskirajue prekide, i za
1780za unutranje prekide i spoljanji nemaskirajui prekid, respektivno. Selekcija jednog od ovih
1781sadraja se realizuje binarnim vrednostima 00 do 10 upravljakih signala mxBR1 i mxBR0.
1782Sadraj IR2316 se proputa kroz multiplekser za instrukciju prekida INT, UEXT 70 za
1783spoljanje maskirajue prekide i UINT70 za unutranje prekide i spoljanji nemaskirajui
1784prekid. Sadraj sa izlaza multipleksera MX se vodi na ulaze registra BR70.
1785 Registar IVTP15...0 je ukaziva na tabelu sa adresama prekidnih rutina i sadri poetnu adresu
1786tabele. Upis sadraja sa linija AW150 u registar IVTP15...0 se obavlja vrednou 1 signala
1787ldIVTP. Upis u registar IVTP15...0 se realizuje samo kod izvravanja instrukcije STIVTP, koja
1788slui za upis sadraja akumulatora AW15...0 u registar procesora IVTP150. Sadraj registra
1789IVTP15...0 se vodi u akumulator AW15...0. Upis u akumulator AW150 se realizuje samo kod
1790izvravanja instrukcije LDIVTP, koja slui za upis sadraja registra IVTP 15...0 u akumulator
1791AW15...0. Pored toga sadraj registra IVTP 15...0 se preko multipleksera MX2 vodi na ulaze A15...0
1792sabiraa ADD bloka addr.
1793 U fazi opsluivanje prekida sadraji registra IVTP 15...0 i pomeraja IVTDSP15...0 se preko
1794multipleksera MX2 i MX3 vode na ulaze sabiraa ADD bloka addr gde se njihovim sabiranjem
1795dobija adresa sa koje se ita adresa prekidne rutine i upisuje u PC15...0.

55

54

17964.1.2 Upravljaka jedinica


1797 U ovom odeljku se daju dijagram toka izvravanja instrukcija, algoritam generisanja
1798upravljakih signala i struktura upravljake jedinice uprav.
17994.1.2.1 Dijagram toka izvravanja instrukcija
1800 Dijagram toka izvravanja instrukcija je predstavljen operacionim i uslovnim blokovima
1801(slika 30). U operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U
1802uslovnim blokovima se nalaze opisi logikih uslova koji definiu grananja algoritma.
1803 U poetnom koraku dijagram toka izvravanja instrukcija vri se provera da li je procesor
1804zaustavljen ili ne. Ako je procesor zaustavljen ostaje se u poetnom koraku i eka startovanje
1805procesora. Ako procesor nije zaustavljen prelazi se na korake u kojima se realizuje faza itanje
1806instrukcije.
1807 U okviru faze itanje instrukcije najpre se ita prvi bajt instrukcije u kome se nalazi kod
1808operacije i vri provera da li je oitana instrukcija sa nepostojeim kodom operacije. Ukoliko
1809nije nastavlja se sa fazom itanje instrukcije, a ukoliko jeste prelazi na fazu opsluivanje
1810prekida.
1811 U nastavku faze itanje instrukcije proverava se da li vrednost koda operacije odgovara
1812vrednostima bezadresnih instrukcija ija je duina jedan bajt. Ukoliko nije nastavlja se sa fazom
1813itanje instrukcije, a ukoliko jeste prelazi na fazu izvravanje operacije.
1814 U nastavku faze itanje instrukcije ita se drugi bajt instrukcije i vri provera da li postoji
1815greka adresiranja. Greka adresiranja postoji samo ukoliko se radi o instrukciji upisa za koju
1816je zadato neposredno adresiranje, to se utvruje na osnovu koda operacije iz prvog bajta
1817instrukcije i naina adresiranja iz prva tri bita drugog bajta instrukcije. Ukoliko nije nastavlja se
1818sa fazom itanje instrukcije, a ukoliko jeste prelazi na fazu opsluivanje prekida.
1819 U nastavku faze itanje instrukcije proverava se da li vrednost koda operacije odgovara
1820vrednostima instrukcija uslovnog skoka ija je duina dva bajta. Ukoliko nije nastavlja se sa
1821fazom itanje instrukcije, a ukoliko jeste prelazi na fazu izvravanje operacije.
1822 U nastavku faze itanje instrukcije proverava se da li vrednost koda operacije odgovara
1823vrednostima aritmetiko logikih instrukcija i da li vrednost naina adresiranja odgovara
1824vrednostima za registarsko direktno adresiranje i registarsko indirektno adresiranje ija je
1825duina dva bajta. Ukoliko nije nastavlja se sa fazom itanje instrukcije, a ukoliko jeste prelazi
1826na fazu formiranje adrese operanda.

56

55

1
1

P ro c e s o r z a u s ta v lje n

3
1

In s tru k c ija b e z d e js tv a

0
1

0
0

B e z a d re s n e in s tru k c ije
d u in e je d a n b a jt

p re k id
0

ita n je d ru g o g b a jta in s tr u k c ije

u v a n je p ro g ra m sk o g b ro ja a i
p ro g ra m s k e s ta tu s n e re i n a s te k u

G re k a a d re s ira n ja

0
1

I z v r a v a n je o p e r a c ija

0
1

In s tru k c ija z a u s ta v lja n ja


0

ita n je p rv o g b a jta in s tru k c ije


G re k a o p e ra c ije

P ro v e ra g e n e ris a n ih z a h te v a z a
p re k id p o o p a d a ju im p rio rite tim a i
u tv r iv a n je b r o ja u la z a u ta b e lu s a
a d re s a m a p re k id n ih ru tin a

In s tru k c ije u s lo v n o g s k o k a
d u in e d v a b a jta
0

A ritm e ti k o lo g i k e in s tru k c ije


d u in e d v a b a jta

ita n je a d re s e p re k id n e ru tin e i
u p is iv a n je u p r o g r a m s k i b r o ja

ita n je tre e g b a jta in s tr u k c ije


0
1

In s tru k c ije b e z u s lo v n o g s k o k a
d u in e tri b a jta
0

A ritm e ti k o lo g i k e in s tru k c ije


d u in e tri b a jta

ita n je e tv r to g b a jta in s tru k c ije


N e p o s r e d n o a d r e s ir a n je

ita n je p o d a tk a iz in s tru k c ije

R e g is ta rs k o d ir e k tn o
a d re s ira n je

1
1

In s tru k c ija u p is a u m e m o riju


0

ita n je p o d a tk a iz re g is tr a

F o rm ira n je a d re s e m e m o rijs k e
lo k a c ije
1
1

In s tru k c ija u p is a u m e m o riju


0

ita n je p o d a tk a iz m e m o rije

1827
1828

Slika 30 Dijagram toka izvravanja instrukcija

1829 U nastavku faze itanje instrukcije ita se trei bajt instrukcije i proverava se da li vrednost
1830koda operacije odgovara vrednostima instrukcija bezuslovnog skoka ija je duina tri bajta.
1831Ukoliko nije nastavlja se sa fazom itanje instrukcije, a ukoliko jeste prelazi na fazu izvravanje
1832operacije.
1833 U nastavku faze itanje instrukcije proverava se da li vrednost koda operacije odgovara
1834vrednostima aritmetiko logikih instrukcija i da li vrednosti naina adresiranja odgovara

57

56

1835vrednosti za neposredno adresiranje ija je duina tri bajta. Ukoliko nije nastavlja se sa fazom
1836itanje instrukcije, a ukoliko jeste prelazi na fazu formiranje adrese operanda.
1837 U nastavku faze itanje instrukcije ita se etvrti bajt instrukcije i prelazi na fazu formiranje
1838adrese operanda.
1839 U fazi formiranje adrese operanda se postupa razliito u zavisnosti od toga da li se radi o
1840instrukcijama upisa ili itanja operanda, a u sluaju da se radi o instrukcijama itanja operanda i
1841od toga da li se operand nalazi u instrukciji, nekom od registara opte namene ili memorijskoj
1842lokaciji. U sluaju neposrednog adresiranja operand se ita neposredno iz instrukcije i prelazi
1843na fazu izvravanje operacije. Sluaj sa neposrednim adresiranjem u operaciji upisa ne moe da
1844se javi u fazi formiranje adrese operanda, jer se provera na ovaj sluaj vri jo u fazi itanje
1845instrukcije i ukoliko se otkrije detektuje se greka adresiranja i prelazi na fazu opsluivanje
1846prekida. U sluaju direktnog registarskog adresiranja operand se ita iz registra opte namene i
1847prelazi na fazu izvravanje operacije ukoliko se ne radi o instrukciji upisa i odmah se prelazi na
1848fazu izvravanje operacije ukoliko se radi o instrukciji upisa. U svim ostalim sluajevima se radi
1849o nekom od memorijskih adresiranja, pa se saglasno specificiranom nainu adresiranja formira
1850adresa memorijske lokacije. Operand se ita iz memorijske lokacije i prelazi na fazu izvravanje
1851operacije ukoliko se ne radi o instrukciji upisa i odmah se prelazi na fazu izvravanje operacije
1852ukoliko se radi o instrukciji upisa.
1853 U fazi izvravanje operacija se postupa razliito u zavisnosti od vrednosti koda operacije. U
1854sluaju instrukcije zaustavljanja, procesor se zaustavlja i prelazi na poetni korak u kome se i
1855ostaje jer je procesor zaustavljen. U sluaju instrukcije bez dejstva odmah se prelazi na fazu
1856opsluivanje prekida. U sluaju preostalih instrukcija prelazi se na izvravanje odgovarajue
1857operacije saglasno vrednosti koda operacije i prelazi na fazu opsluivanje prekida.
1858Instrukcijama prenosa se ostvaruju prenosi iz razliitih izvorita u akumulatore procesora i
1859obrnuto. Aritmetikim instrukcijama se realizuju aritmetike operacije nad sadrajima
1860akumulatora i specificiranog operanda, a rezulta smeta u akumulator. Logikim instrukcijama
1861se realizuju logike operacije nad sadrajima akumulatora i specificiranog operanda, a rezulta
1862smeta u akumulator. Instrukcijama pomeranja i rotiranja se vre pomeranja ulevo i udesno
1863sadraja akumulatora, a rezultat smeta u akumulator. Instrukcijama skoka se realizuju
1864bezuslovni i uslovni skokovi u programu, skok na potprogram, povratak iz potprograma i
1865programski generie prekid. Instrukcijama postavljanja indikatora u PSW se zadaju ili
1866zabranjuju reim rada reakcije na maskirajue prekide i reim rada sa prekidom posle svake
1867instrukcije.
1868 U fazi opsluivanje prekida sa najpre na stek stavljaju programski broja i programska
1869statusna re. Posle toga se po opadajuim prioritetima utvruje prekid najvieg prioriteta za
1870koji je zahtev generisan i saglasno tome formira broj ulaza u tabelu sa adresam prekidnih
1871rutina. Na kraju se, sabiranjem broja ulaza pretvorenog u pomeraj i registra koji ukazuje na
1872poetnu adresu tabele sa adresama prekidnih rutina, dobija adresa sa koje se ita adresa
1873prekidne rutine, upisuje u programski broja i vraa u poetni korak. Time se kree sa fazom
1874itanje instrukcije prve instrukcije prekidne rutine.
18754.1.2.2 Algoritam generisanja upravljakih signala
1876 Algoritam generisanja upravljakih signala je formiran na osnovu dijagrama toka izvravanja
1877instrukcija (slika 30) i dat je u obliku dijagrama toka mikrooperacija, dijagrama toka
1878upravljakih signala (slike 31 do 57) i sekvence upravljakih signala po koracima (tabela 16).

58

57

1879 Dijagram toka mikrooperacija i dijagram toka upravljakih signala su dati istovremeno i
1880predstavljeni su operacionim i uslovnim blokovima. U operacionim blokovima dijagrama toka
1881mikrooperacija se nalaze mikrooperacije koje se izvravaju, dok se u operacionim blokovima
1882dijagrama toka upravljakih signala nalaze upravljaki signali neophodni za izvravanje
1883mikrooperacija. U uslovnim blokovima dijagrama toka mikrooperacija i dijagrama toka
1884upravljakih signala se nalaze signali logikih uslova.
1885 U sekvenci upravljakih signala po koracima se koriste iskazi za signale i skokove. Iskazi za
1886signale su oblika
1887 signali.
1888Ovaj iskaz sadri spisak upravljakih signala signali koji se bezuslovno generiu. Iskazi za
1889skokove su oblika
1890 br stepA,
1891 br (if uslov then stepA) i
1892 br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn).
1893Prvi iskaz sadri korak step A na koji se prelazi i u daljem tekstu se referie kao bezuslovni
1894skok. Drugi iskaz sadri signal uslov i korak stepA na koji se prelazi ukoliko signal uslov ima
1895vrednost 1 i u daljem tekstu se referie kao uslovni skok. Trei iskaz sadri signale uslov1, ...,
1896uslovn i korake stepA1, ..., stepAn i odreuje na koji od koraka step A1, ..., stepAn se prelazi u
1897zavisnosti od toga koji od signala uslov1, ..., uslovn ima vrednost 1 i u daljem tekstu se referie
1898kao viestruki uslovni skok.
1899 Objanjenja vezana za generisanje upravljakih signala su data zajedniki za dijagram toka
1900upravljakih signala i sekvencu upravljakih signala po koracima i to u okviru sekvence
1901upravljakih signala po koracima.
1902
Tabela 16 Sekvenca upravljakih signala po koracima
1903! Sekvenca upravljakih signala po koracima ima etiri celine koje odgovaraju fazama itanje
1904instrukcije, formiranje adrese operanda, izvravanje operacije i opsluivanje prekida. Faza itanje
1905instrukcije se realizuje u koracima step 00 do step18 koji su zajedniki za sve instrukcije. Faza formiranje
1906adrese operanda se realizuje u koracima step20 do step43 pri emu postoje posebni koraci za svaki nain
1907adresiranja operanda. Faza izvravanje operacije se realizuje u koracima step 50 do stepBE, pri emu
1908postoje posebni koraci za svaku operaciju. Faza opsluivanje prekida se realizuje u koracima step C0 do
1909stepE3. !
1910! itanje instrukcije !
1911! U koraku step00 se proverava vrednost signala START bloka exec koji vrednostima 0 i 1 ukazuje da li
1912je processor neaktivan ili aktivan, respektivno (slika 31). Ukoliko je procesor neaktivan ostaje se u
1913koraku step00, dok se u suprotnom sluaju prelazi na korak step01. !
1914
step00 br (if START then step00);
1915! U koracima step01 do step04 se ita prvi bajt instrukcije i smeta u razrede IR 3124 prihvatnog registra
1916instrukcije IR310. Vrednostima 0 signala mxMAR2, mxMAR1 i maMAR0 bloka bus se sadraj registra
1917PC15..0 bloka fetch puta kroz multiplekser MX1 i vrednou 1 signala ldMAR upisuje u adresni
1918registar MAR15..0 bloka bus. Pored toga, vrednou 1 signala incPC se sadraj registra PC 15..0
1919inkrementira. U koraku step02 se proverava vrednost signala hack bloka bus koji vrednostima 1 i 0
1920ukazuje da li je processor prepustio magistralu kontroleru sa direktnim pristupom memoriji ili je
1921magistrala u posedu procesora, respektivno. Ukoliko je procesor prepustio magistralu ostaje se u koraku
1922step02, dok se u suprotnom sluaju prelazi na korak step 03. U koraku step03 se realizuje itanje jednog
1923bajta i upisivanje u registar podatka MDR7..0 bloka bus. Vrednou 1 signala eMAR se sadraj registra
1924MAR150 puta na adresne linije ABUS150 magistrale BUS. Pored toga se vrednou 1 signala rdCPU
1925generie vrednost 0 signala na upravljakoj liniji RDBUS magistrale BUS, ime se u memoriji MEM
1926startuje operacija itanja. U koraku step03 se ostaje onoliko perioda signala takta koliko je neophodno
1927da se itanje realizuje. Sve vreme dok je processor u koraku step 03 adresa je prisutna na linijama
1928ABUS150 i na liniji RDBUS je vrednost 0. Po zavrenom itanju memorija MEM puta proitani
1929sadraj na linije podataka DBUS70 magistrale BUS. Radi indikacije da je sadraj na linijama DBUS 70
1930vaei memorija generie vrednost 0 signala na upravljakoj liniji FCBUS magistrale BUS. U koraku
59

58

1931step03 se proverava vrednost signala fcCPU bloka bus koji vrednostima 0 i 1 ukazuje da itanje nije
1932zavreno i da je itanje zavreno, respektivno. Ukoliko itanje nije zavreno ostaje se u koraku step 03,
1933dok se u suprotnom sluaju sadraj sa linija DBUS 70 upisuje u registar podatka MDR 7..0 i prelazi na
1934korak step04. U koraku step04 se vrednou 1 signala ldIR0 bloka fetch proitani bajt prebacuje iz
1935registra MDR7..0 bloka bus u prihvatni registar instrukcije i to u razrede IR3124 bloka bus. !
1936
step01 ldMAR, incPC;
1937
step02 br (if hack then step02);
1938
step03 eMAR, rdCPU,
1939
br (if fcCPU then step03);
1940
step04 ldIR0;

STA RT

STA RT

M A R<=PC ,
PC<=PC +1

ld M A R ,
in c P C

hack

hack

M D R <=M EM
0

e M A R , rd C P U
0

fc C P U

fc C P U

IR

3 1 ...2 4

<=M D R

ld IR 0

7 ...0

g ro p r

g ro p r

PRC O D <=1

l1

s tP R C O D

l1

1941
1942

60

0
1

13

56

60

13

56

Slika 31 itanje instrukcije (prvi deo)

1943! U koraku step05 se proverava vrednost signala gropr bloka fetch da bi se utvrdilo da li prvi bajt
1944instrukcije sadri korektnu vrednost koda operacije. U zavisnosti od toga da li signal gropr ima
1945vrednost 1 ili 0, prelazi se na korak step06 ili step07, respektivno. Ukoliko prvi bajt instrukcije sadri
1946nekorektnu vrednost koda operacije, u koraku step06 se vrednou 1 signala stPRCOD bloka intr u flip1947flop PRCOD upisuje vrednost 1 i bezuslovno prelazi na korak stepC0 radi utvrivanja adrese prekidne
1948rutine. !
1949
step05 br (if gropr then step07);
1950
step06 stPRCOD,
1951
br stepC0;
1952! U koraku step07 se proverava vrednost signala l1 bloka fetch da bi se utvrdilo da li je duina instrukcije
1953jedan ili vie bajtova. U zavisnosti od toga da li signal l1 ima vrednost 1 ili 0, prelazi se na korak step50 i
1954fazu izvravanje operacije ili step07 i produava sa itanjem bajtova instrukcije. !
1955
step07 br (if l1 then step50);
1956! U koracima step08 do step0B se ita drugi bajt instrukcije i smeta u razrede IR 2316 prihvatnog registra
1957instrukcije IR310 (slika 32). Koraci step08 do step0A u kojima se ita drugi bajt instrukcije su isti kao
1958koraci step01 do step03 u kojima se ita prvi bajt instrukcije. U koraku step 0B se signalom ldIR1 bloka
1959fetch proitani bajt prebacuje iz registra MDR 7..0 bloka bus u prihvatni registar instrukcije i to u razrede

60

59

1960IR2316 bloka bus. Istovremeno se vrednou 1 signala ldGPRADR bloka addr razredi MDR4..0 upisuju
1961u registar GPRADR4..0. Time se u registru GPRADR4..0 nalazi adresa registra opte namene. !
1962
step08 ldMAR, incPC;
1963
step09 br (if hack then step09);
1964
step0A eMAR, rdCPU,
1965
br (if fcCPU then step0A);
1966
step0B ldIR1, ldGPRADR;
60

13

56

60

M A R<=PC,
PC<=PC+1

fc C P U

1 5 ...8 < = M D R

ld IR 2

7 ...0
1

l3 _ ju m p

l3 _ ju m p

l3 _ a rlo g

ld M A R ,
in c P C

hack

hack

M D R<=M EM

eM A R , rd C P U
0

fc C P U

fc C P U

60

M A R<=PC,
PC<=PC+1

1967
1968

l3 _ a rlo g

IR

56

eM A R , rd C P U

fc C P U

13

M D R<=M EM

56

hack

IR

13

ld M A R ,
in c P C

hack

7 ...0 < = M D R
3

ld IR 3

7 ...0
13

56

60

Slika 32 itanje instrukcije (drugi deo)

1969! U koraku step0C se proverava vrednost signala gradr bloka fetch da bi se utvrdilo da li je nekorektno
1970adresiranje specificirano. Ovo se deava ukoliko se za instrukcije STB i STW specificira neposredno
1971adresiranje. U zavisnosti od toga da li signal gradr ima vrednost 1 ili 0, prelazi se na korak step0D ili
1972step0E, respektivno. Ukoliko je nekorektno adresiranje specificirano, u koraku step0D se vrednou 1
1973signala stPRADR bloka intr u flip-flop PRADR upisuje vrednost 1 i bezuslovno prelazi na korak
1974stepC0 radi utvrivanja adrese prekidne rutine. !

61

60

1975
step0C br (if gradr then step0E);
1976
step0D stPRADR,
1977
br stepC0;
1978! U koracima step0E i step0F se proverava vrednost signala l2_brnch i l2_arlog bloka fetch da bi se
1979utvrdilo da li je duina instrukcije dva ili vie bajtova. Iz koraka step 0E se u zavisnosti od toga da li
1980signal l2_brnch ima vrednost 1 ili 0, prelazi na korak step50 i fazu izvravanje operacije ili step0F i
1981proveru vrednosti signala l2_arlog. Iz koraka step0F se u zavisnosti od toga da li signal l2_arlog ima
1982vrednost 1 ili 0, prelazi na korak step20 i fazu formiranje adrese operanda ili step10 i produava sa
1983itanjem bajtova instrukcije.!
1984
step0E br (if l2_brnch then step50);
1985
step0F br (if l2_arlog then step20);
60

13

56

60

M A R<=PC,
PC<=PC+1

56

13

56

hack

M D R<=M EM

eM A R , rd C P U
0

fc C P U

fc C P U

IR

13

ld M A R ,
in c P C

hack

1 5 ...8 < = M D R

ld IR 2

7 ...0
1

l3 _ ju m p

l3 _ ju m p

0
0
1

l3 _ a rlo g

l3 _ a rlo g

M A R<=PC,
PC<=PC+1

ld M A R ,
in c P C

hack

hack

M D R<=M EM
0

eM A R , rd C P U
0

fc C P U
1

IR

1986
1987

60

fc C P U
1

7 ...0 < = M D R
3

ld IR 3

7 ...0
13

56

60

Slika 33 itanje instrukcije (trei deo)

1988! U koracima step10 do step12 se ita trei bajt instrukcije i smeta u razrede IR 158 prihvatnog registra
1989instrukcije IR310 (slika 33). Koraci step10 do step12 u kojima se ita trei bajt instrukcije su isti kao
1990koraci step01 do step03 u kojima se ita prvi bajt instrukcije.!
1991
step10 ldMAR, incPC;
1992
step11 br (if hack then step11);
1993
step12 eMAR, rdCPU,
1994
br (if fcCPU then step12);
1995! U koraku step13 se vrednou 1 signala ldIR2 bloka fetch proitani bajt prebacuje iz registra MDR7..0
1996bloka bus u prihvatni registar instrukcije i to u razrede IR158 bloka bus. !
1997! U koracima step13 i step14 se proverava vrednost signala l3_jump i l3_arlog bloka fetch da bi se
1998utvrdilo da li je duina instrukcije tri ili etiri bajta. Iz koraka step 13 se u zavisnosti od toga da li signal
1999l3_jump ima vrednost 1 ili 0, prelazi na korak step50 i fazu izvravanje operacije ili step14 i proveru
2000vrednosti signala l3_arlog. Iz koraka step14 se u zavisnosti od toga da li signal l3_arlog ima vrednost 1
62

61

2001ili 0, prelazi na korak step20 i fazu formiranje adrese operanda ili step15 i produava sa itanjem etvrtog
2002bajta instrukcije.!
2003
step13 ldIR2,
2004
br (if l3_jump then step50);
2005
step14 br (if l3_arlog then step20);
2006! U koracima step15 do step17 se ita etvrti bajt instrukcije i smeta u razrede IR 70 prihvatnog registra
2007instrukcije IR310 (slika 33). Koraci step15 do step17 u kojima se ita etvrti bajt instrukcije su isti kao
2008koraci step01 do step03 u kojima se ita prvi bajt instrukcije. U koraku step0B se vrednou 1 signala
2009ldIR3 bloka fetch proitani bajt prebacuje iz registra MDR 7..0 bloka bus u prihvatni registar instrukcije i
2010to u razrede IR70 bloka bus. Iz koraka step18 se bezuslovno prelazi na korak step20 i fazu formiranje
2011adrese operanda. !
2012
step15 ldMAR, incPC;
2013
step16 br (if hack then step16);
2014
step17 eMAR, rdCPU,
2015
br (if fcCPU then step17);
2016
step18 ldIR3,
2017
br step20;
2018! Formiranje adrese operanda !
2019! U korak step20 se dolazi iz koraka step0F, step14 i step18 ukoliko se radi o instrukcijama duine dva, tri i
2020etiri bajta koje zahtevaju da se do operanda doe saglasno specificiranom nainu adresiranja (slika 34).
2021Za sve instrukcije, sem instrukcija STB i STW, operand se smeta u registar BB 70 ili BW150. Operand
2022moe da bude u nekom od registara opte namene, u memorijskoj lokaciji ili samoj instrukciji. U sluaju
2023registarskog direktnog adresiranja kod koga se operand nalazi u nekom od registara opte namene ili
2024neposrednog adresiranja kod koga se operand nalazi u samoj instrukciji, ova faza se svodi na
2025prebacivanje operanda u registar BB70 ili BW150. U sluaju adresiranja kod kojih se operand nalazi u
2026memoriji, ova faza se sastoji od koraka u kojima se prvo formira adresa operanda u memoriji i zatim
2027ita operand i smeta u registar BB 70 ili BW150. Izuzetak su instrukcije STB i STW kod kojih se
2028operand upisuje. U sluaju registarskog direktnog adresiranja kod koga se operand upisuje u registar
2029opte namene, odmah se prelazi na fazu izvravanje operacije u kojoj se operand upisuje u registar opte
2030namene. U sluaju nekog od adresiranja kod kojih se operand upisuje u memoriju, u ovoj fazi se samo
2031formira adresa operanda i smeta u registar MAR 150, pa se prelazi na fazu izvravanje operacije u
2032kojoj se operand upisuje u memoriju na formiranoj adresi. Sluaj sa neposrednim adresiranjem
2033specificiranim u instrukcijama STB i STW nije dozvoljen i ne moe da se javi u ovoj fazi jer se on
2034otkriva jo u fazi itanje instrukcije i rezultuje prelaskom na fazu opsluivanje prekida. U koraku step 20
2035se realizuje viestruki uslovni skok na jedan od koraka step21, step25, , step41 u zavisnosti od toga koji
2036od signala adresiranja regdir, regind, memdir, memind, regindpom, bxpom, bcpom i imm bloka
2037addr ima vrednost 1. !
2038
step20 br (case (regdir, regind, memdir, memind, regindpom, bxpom, bcpom, imm) then
2039
(regdir, step21), (regind, step25), (memdir, step27), (memind, step29),
2040
(regindpom, step32), (bxpom, step34), (pcpom, step37), (imm, step41));
2041! Registarsko direktno adresiranje !
2042! U korak step21 se dolazi iz step20 ukoliko signal za registarsko direktno adresiranje regdir ima vrednost
20431. Ukoliko signal store bloka addr ima vrednost 1, to znai da se radi o instrukciji STB ili instrukciji
2044STW za koje nema itanja operanda, prelazi se na korak step50 i fazu izvravanje operacije. U
2045suprotnom sluaju se prelazi na korak step22 u kome se proverava vrednost signala operacije LDW.
2046Ukoliko signal LDW ima vrednost 1, prelazi se na korak step24 u kome se vrednou 1 signala ldBW
204716-to razredni sadraj adresiranog registra opte namene GPR 15...0 bloka addr upisuje u registar BW150
2048bloka exec. U suprotnom sluaju se prelazi na korak step24 u kome se vrednou 1 signala ldBB mlai
2049bajt adresiranog registra opte namene GPR 7...0 upisuje u registar BB70 bloka exec. U oba sluaja se
2050prelazi na korak step50 i fazu izvravanje operacije. !
2051
step21 br (if store then step50);
2052
step22 br (if LDW then step24);
2053
step23 ldBB,
2054
br step50;
2055
step24 ldBW,
2056
br step50;
63

62

60

13

56

60

c a s e (re g d ir, re g in d , m e m d ir,


m e m in d , re g in d p o m , b x p o m ,
p c p o m , im m )
4

8
4

10

11

10

13

56

11

re g d ir
1

LD W

LD W
0

B B <=G PR

7 ...0

ld B B

B W <=G PR

1 5 ...0

ld B W

re g in d
M A R < = G P R 1 5 ...0

re g in d
m x M A R 0, ld M A R
1

s to re

s to re

M A R < = IR
s to re

m e m d ir

m e m d ir
m x M A R 1, ld M A R

1 5 ...0
1

s to re

60

s to re

2057
2058

56

c a s e (re g d ir, re g in d , m e m d ir,


m e m in d , re g in d p o m , b x p o m ,
p c p o m , im m )

re g d ir

s to re

13

12

13

56

60

12

Slika 34 Formiranje adrese operanda (prvi deo)

2059! Registarsko indirektno adresiranje !


2060! U korak step25 se dolazi iz step20 ukoliko signal za registarsko indirektno adresiranje regind ima
2061vrednost 1. Vrednou 1 signala mxMAR0 se sadraj adresiranog registra opte namene GPR 15...0 bloka
2062addr proputa kroz multiplekser MPX1 bloka bus i vrednou 1 signala ldMAR upisuje u registar
2063MAR15...0 bloka bus. Time se u registru MAR15...0 nalazi adresa operanda za sluaj registarskog
2064indirektnog adresiranja. Ukoliko signal store bloka addr ima vrednost 1, to znai da se radi o
2065instrukciji STB ili instrukciji STW za koje nema itanja operanda, prelazi se na korak step50 i fazu
2066izvravanje operacije. U suprotnom sluaju se prelazi na korak step26 iz koga se bezuslovno prelazi na
2067korak step38 i itanje operanda. !
2068
step25 mxMAR0, ldMAR,
2069
br (if store then step50);
2070
step26 br step38;

64

63

2071! Memorijsko direktno adresiranje !


2072! U korak step27 se dolazi iz step20 ukoliko signal za memorijsko direktno adresiranje memdir ima
2073vrednost 1. Vrednou 1 signala mxMAR1 se sadraj registra IR15...0 bloka fetch puta kroz multiplekser
2074MX1 bloka bus i vrednou 1 signala ldMAR upisuje u registar MAR15...0. Time se u registru MAR15...0
2075nalazi adresa operanda za sluaj memorijskog direktnog adresiranja. Ukoliko signal store bloka addr
2076ima vrednost 1, to znai da se radi o instrukciji STB ili instrukciji STW za koje nema itanja operanda,
2077prelazi se na korak step50 i fazu izvravanje operacije. U suprotnom sluaju se prelazi na korak step28 iz
2078koga se bezuslovno prelazi na korak step38 i itanje operanda. !
2079
step27 mxMAR1, ldMAR,
2080
br (if store then step50);
2081
step28 br step38;
2082! Memorijsko indirektno adresiranje !
2083! U korak step29 se dolazi iz step20 ukoliko signal za memorijsko indirektno adresiranje memind ima
2084vrednost 1 (slika 35). Vrednou 1 signala mxMAR1 se sadraj registra IR15...0 bloka fetch proputa kroz
2085multiplekser MX1 bloka bus i vrednou 1 signala ldMAR upisuje u registar MAR15...0. Time se u
2086registru MAR15...0 nalazi adresa memorijske lokacije poev od koje treba proitati dva bajta koji
2087predstavljaju vii i nii bajt adrese operanda za sluaj memorijskog indirektnog adresiranja. itanje
2088prvog bajta se realizuje u koracima step2A i step2B, a drugog bajta u koracima step2D i step2E, na isti
2089nain kao u koracima step02 i step03, kod itanja prvog bajta instrukcije. U koraku step2C se iz registra
2090MDR7...0 bloka bus prvi bajt vrednou 1 signala ldDWH upisuje u stariji bajt registra DW15...8 bloka
2091bus, a vrednou 1 signala incMAR adresni registar MAR15...0 bloka bus inkrementira na adresu
2092sledeeg bajta. U koraku step2F se iz registra MDR7...0 bloka bus drugi bajt vrednou 1 signala ldDWL
2093upisuje u mlai bajt registra DW15...8. Na kraju se u koraku step30 vrednostima 1 signala mxMAR1 i
2094mxMAR0 sadraj registra DW15...0 koji predstavlja adresu operanda proputa kroz multiplekser MX1
2095bloka bus i vrednou 1 signala ldMAR upisuje u registar MAR15...0. Ukoliko signal store bloka addr
2096ima vrednost 1, to znai da se radi o instrukciji STB ili instrukciji STW za koje nema itanja operanda,
2097prelazi se na korak step50 i fazu izvravanje operacije. U suprotnom sluaju se prelazi na korak step31 iz
2098koga se bezuslovno prelazi na korak step38 i itanje operanda. !
2099
step29 mxMAR1, ldMAR;
2100
step2A br (if hack then step2A);
2101
step2B eMAR, rdCPU,
2102
br (if fcCPU then step2B);
2103
step2C ldDWH, incMAR;
2104
step2D br (if hack then step2D);
2105
step2E eMAR, rdCPU,
2106
br (if fcCPU then step2E);
2107
step2F ldDWL;
2108
step30 mxMAR1, mxMAR0, ldMAR,
2109
br (if store then step50);
2110
step31 br step38;
2111! Registarsko indirektno sa pomerajem adresiranje!
2112! U korak step32 se dolazi iz step20 ukoliko signal za registarsko indirektno sa pomerajem adresiranje
2113regindpom ima vrednost 1. Vrednostima 1 signala mxADDA0 i mxADDB0 se najpre kroz multipleksere
2114MX2 i MX3 na ulaze sabiraa ADD bloka addr putaju adresirani registar opte namene GPR 15...0 bloka
2115addr i pomeraj iz IR15...0 bloka fetch, a zatim se vrednou 1 signala mxMAR2 dobijeni sadraja sa
2116izlaza sabiraa ADD puta kroz multiplekser MX1 bloka bus i vrednou 1 signala ldMAR upisuje u
2117registar MAR15...0. Time se u registru MAR15...0 nalazi adresa operanda za sluaj registarskog indirektnog
2118sa pomerajem adresiranja. Ukoliko signal store bloka addr ima vrednost 1, to znai da se radi o
2119instrukciji STB ili instrukciji STW za koje nema itanja operanda, prelazi se na korak step50 i fazu
2120izvravanje operacije. U suprotnom sluaju se prelazi na korak step33 iz koga se bezuslovno prelazi na
2121korak step38 i itanje operanda. !

65

64

2122
2123
2124

step32 mxADDA0, mxADDB0, mxMAR2, ldMAR,


br (if store then step50);
step33 br step38;
60

M A R < = IR

12

m e m in d

13

56

60

m e m in d
m x M A R 1, ld M A R

1 5 ...0

hack
0

fc C P U

13

56

fc C P U
1

7 ...0 < = M D R

M A R<=D W

ld D W L

7 ...0

m x M A R 1, m x M A R 0,
ld M A R

1 5 ...0
1

s to re

s to re

M A R<=
G PR

re g in d p o m
1 5 ...0

+ IR

re g in d p o m

m x A D D A 0, m x A D D B 0,
m x M A R 2, ld M A R

1 5 ...0
1

s to re

s to re

bxpom

CW

bxpom

1 5 ...0 < =
G P R 1 5 ...0 + I R 1 5 ...0 ,
G PRA R<=G PRA R+1

m x A D D A 0, m x A D D B 0,
ld C W , in c G P R A R

M A R<=
CW

m x A D D A 1 ,m x A D D A 0,
m x A D D B 1, m x M A R 2,
ld M A R

1 5 ...0

+G PR

s to re

1 5 ...0
1

s to re

66

12

eM A R , rd C P U

60

hack
0

M D R<=M EM

2125
2126

fc C P U
ld D W H ,
in c M A R

hack

D W

hack

D W 1 5 ...8 < = M D R 7 ...0 ,


M A R<=M A R+1

56

eM A R , rd C P U
0

fc C P U

13

M D R<=M EM
0

12

12

13

56

60

Slika 35 Formiranje adrese operanda (drugi deo)

65

2127! Bazno indeksno sa pomerajem adresiranje!


2128! U korak step34 se dolazi iz step20 ukoliko signal za bazno indeksno sa pomerajem adresiranje bxpom
2129ima vrednost 1. U koraku step34 se vrednostima 1 signala mxADDA0 i mxADDB0 kroz multipleksere
2130MX2 i MX3 na ulaze sabiraa ADD bloka addr putaju adresirani registar opte namene GPR 15...0 bloka
2131addr i pomeraj iz IR15...0 bloka fetch, a zatim se vrednou 1 signala ldCW sadraj ADD15...0 sa izlaza
2132sabiraa ADD upisuje u registar CW15...0 bloka addr. Pored toga vrednou 1 signala incGPRAR bloka
2133addr se vri inkrementiranje adresnog registra GPRAR4...0 registara opte namene GPR15...0. U koraku
2134step35 se vrednostima 1 signala mxADDA1, mxADDA0 i mxADDB1 kroz multipleksere MX2 i MX3 na
2135ulaze sabiraa ADD putaju sadraji registra CW 15...0 i adresiranog registra opte namene GPR 15...0, a
2136zatim se vrednou 1 signala mxMAR2 dobijeni sadraj ADD15...0 sa izlaza sabiraa ADD puta kroz
2137multiplekser MX1 bloka bus i vrednou 1 signala ldMAR upisuje u registar MAR15...0 bloka bus. Time
2138se u registru MAR15...0 nalazi adresa operanda za sluaj bazno indeksnog sa pomerajem adresiranja.
2139Ukoliko signal store bloka addr ima vrednost 1, to znai da se radi o instrukciji STB ili instrukciji
2140STW za koje nema itanja operanda, prelazi se na korak step50 i fazu izvravanje operacije. U
2141suprotnom sluaju se prelazi na korak step36 iz koga se bezuslovno prelazi na korak step38 i itanje
2142operanda. !
2143
step34 mxADDA0, mxADDB0, ldCW, incGPRAR;
2144
step35 mxADDA1, mxADDA0, mxADDB1, mxMAR2, ldMAR,
2145
br (if store then step50);
2146
step36 br step38;
2147! PC relativno sa pomerajem adresiranje !
2148! U korak step37 se dolazi iz step20 ukoliko signal za PC relativno sa pomerajem adresiranje pcpom ima
2149vrednost 1 (slika 36). Vrednostima 1 signala mxADDA1 i mxADDB0 se najpre kroz multipleksere MX2
2150i MX3 na ulaze sabiraa ADD bloka addr putaju programski broja PC15...0 bloka fetch i pomeraj iz
2151IR15...0 bloka fetch, a zatime se vrednou 1 signala mxMAR2 dobijeni sadraj ADD15...0 sa izlaza
2152sabiraa ADD puta kroz multiplekser MX1 bloka bus i vrednou 1 signala ldMAR upisuje u registar
2153MAR15...0 bloka bus. Time se u registru MAR15...0 nalazi adresa operanda za sluaj PC relativnog sa
2154pomerajem adresiranja. Ukoliko signal store bloka addr ima vrednost 1, to znai da se radi o
2155instrukciji STB ili instrukciji STW za koje nema itanja operanda, prelazi se na korak step50 i fazu
2156izvravanje operacije. U suprotnom sluaju se prelazi na korak step 38 i itanje operanda sa adrese koja
2157se nalazi u registru MAR15...0. !
2158
step37 mxADDA1, mxADDB0, mxMAR2, ldMAR,
2159
br (if store then step50);
2160! itanje operanda !
2161! U korak step38 se dolazi iz step26 kod registarskog indirektnog adresiranja, iz step28 kod memorijskog
2162direktnog adresiranja, iz step31 kod memorijskog indirektnog adresiranja, iz step 33 kod registarskog
2163indirektnog sa pomerajem adresiranja, iz step36 kod baznog indeksnog sa pomerajem adresiranja i iz
2164step37 kod PC relativnog sa pomerajem adresiranja. U svim ovim situacijama adresa memorijske
2165lokacije sa koje treba proitati operand je sraunata u saglasnosti sa specificiranim nainom adresiranja
2166i nalazi se u registru MAR15...0 bloka bus. Za sve instrukcije za koje se ita operand iz memorije duina
2167operanda je jedan bajt sem za instrukciju LDW za koju je duina operanda dva bajta. Zbog toga se
2168najpre u koracima step38 i step39 ita jedan bajt i to na isti nain na koji se to radi u koracima step 02 i
2169step03 u kojima se ita prvi bajt instrukcije. Potom se u koraku step 3A u zavisnost od toga da li signal
2170LDW ima vrednost 0 ili 1 prelazi na korak step3B ili korak step3C, respektivno. Kroz korak step3B se
2171prolazi samo kada je duina operanda jedan bajt. Tada se vrednostima 1 signala mxBB0 i ldBB bloka
2172exec sadraj registra MDR7...0 bloka bus puta kroz multiplekser MX2 i upisuje u registar BB 7...0. Iz
2173koraka step3B se prelazi na korak step50 i fazu izvravanje operacije. Kroz korake step3C do step40 se
2174prolazi samo kada je duina operanda dva bajta. Najpre se u koraku step3C vrednou 1 signala ldDWH
2175bloka bus sadraj registra MDR7...0 upisuje u stariji bajt registra DW15..8 i vrednou 1 signala incMAR
2176inkrementira sadraj registra MAR15...0 da bi ukazivao na memorijsku lokaciju na kojoj se nalazi mlai
2177bajt 16-to razrednog operanda. Potom se u koracima step3D i step3E ita jedan bajt i to na isti nain na
2178koji se to radi u koracima step02 i step03 u kojima se ita prvi bajt instrukcije. Zatim se u koraku step3F
2179vrednou 1 signala ldDWL bloka bus sadraj registra MDR7...0 upisuje u mlai bajt registra DW 7...0.
2180Time se u registru DW15...0 nalazi 16-to bitni operand. Na kraju se u koraku step40 vrednostima 1 signala
2181mxBW0 i ldBW bloka exec sadraj registra DW15...0 puta kroz multiplekser MX6 i upisuje u registar
2182BW15...0. Iz koraka step40 se prelazi na korak step50 i fazu izvravanje operacije. !
67

66

60

10

12

pcpom

M A R < = P C + IR

13

56

60

10

hack
0

eM A R , rd C P U
0

fc C P U
1

m x B B 0, ld B B

7 ...0

D W 1 5 ...8 < = M D R 7 ...0 ,


M A R<=M A R+1

ld D W H ,
in c M A R

hack
0

eM A R , rd C P U
0

fc C P U
1

7 ...0

B W

1 5 ...0

7 ...0

ld D W L

<=D W

1 5 ...0

m x B W 0, ld B W
11

im m
1

LD W
0

2183
2184
2185
2186
2187
2188
2189
2190
2191

68

60

im m

LD W
0

B B < = IR
B W

fc C P U

<=M D R

11

hack
0

M D R<=M EM

D W

LD W
0

B B <=M D R

fc C P U
1

LD W

hack
0

M D R<=M EM
0

56

s to re

13

m x A D D A 1, m x A D D B 0,
m x M A R 2, ld M A R

1 5 ...0

s to re

12

pcpom

1 5 ...0 <

m x B B 1, ld B B

1 5 ...8

= IR

m x B W 1, ld B W

1 5 ...0

13

56

60

13

Slika 36 Formiranje adrese operanda (trei deo)


step38 br (if hack then step38);
step39 eMAR, rdCPU,
br (if fcCPU then step39);
step3A br (if LDW then step3C);
step3B mxBB0, ldBB,
br step50;
step3C ldDWH, incMAR;

67

56

2192
step3D br (if hack then step3D);
2193
step3E eMAR, rdCPU,
2194
br (if fcCPU then step3E);
2195
step3F ldDWL;
2196
step40 mxBW0, ldBW,
2197
br step50;
2198! Neposredno adresiranje !
2199! U korak step41 se dolazi iz step20 ukoliko signal za neposredno adresiranje imm ima vrednost 1. Iz
2200ovog koraka se ukoliko signal LDW ima vrednost 1 prelazi na korak step43 u kome se vrednostima 1
2201signala mxBW1 i ldBW bloka exec 16-to bitna neposredna veliina koja se nalazi u razredima IR150
2202bloka fetch puta kroz multiplekser MX6 i upisuje u registar BW150. U suprotnom sluaju se prelazi na
2203korak step42 u kome se vrednostima 1 signala mxBB1 i ldBB bloka exec 8-mo bitna neposredna veliina
2204koja se nalazi u razredima IR158 puta kroz multiplekser MX2 i upisuje u registar BB70. U oba sluaja
2205se prelazi na korak step50 i fazu izvravanja operacije. !
2206
step41 br (if LDW then step43);
2207
step42 mxBB1, ldBB,
2208
br step50;
2209
step43 mxBW1, ldBW,
2210
br step50;
2211! Izvravanje operacije !
2212! U korak step50 se dolazi iz koraka step07, step0E, step13, step21, step23, step24, step25, step27, step30, step32,
2213step35, step37, step3B, step40, step42 i step43 radi izvravanja operacije (slika 37). U koraku step50 se
2214realizuje viestruki uslovni skok na jedan od koraka step51, step52, ..., stepB6 u zavisnosti od toga koji od
2215signala operacija NOP, HALT, ..., RTS ima vrednost 1. !
2216
step50 br (case (NOP, HALT, INTD, INTE, TRPD, TRPE,
2217
LDB, LDW, STB, STW, POPB, POPW, PUSHB, PUSHW,
2218
LDIVTP, STIVTP, LDIMR, STIMR, LDSP, STSP,
2219
ADD, SUB, INC, DEC, AND,OR, XOR, NOT,
2220
ASR, LSR, ROR, RORC, ASL, LSL, ROL, ROLC,
2221
BEQL, BNEQL, BNEG, BNNEG, BOVF, BNOVF, BCAR, BNCAR,
2222
BGRT, BGRTE, BLSS, BLSSE, BGRTU, BGRTEU, BLSSU, BLSSEU,
2223
JMP, INT, JSR, RTI, RTS) then
2224
(NOP, step51), (HALT, step52),
2225
(INTD, step53), (INTE, step54), (TRPD, step55), (TRPE, step56),
2226
(LDB, step57), (LDW, step59), (STB, step5A), (STW, step60),
2227
(POPB, step69), (POPW, step6F), (PUSHB, step79), (PUSHW, step7E),
2228
(LDIVTP, step87), (STIVTP, step88), (LDIMR, step89), (STIMR, step8A),
2229
(LDSP, step8B), (STSP, step8C),
2230
(ADD, step8D), (SUB, ste8F), (INC, step91), (DEC, step93),
2231
(AND, step95), (OR, step97), (XOR, step99), (NOT, step9B),
2232
(ASR, step9D), (LSR, step9D), (ROR, step9D), (RORC, step9D),
2233
(ASL, step9F), (LSL, step9F), (ROL, step9F), (ROLC, step9F),
2234
(BEQL, stepA1), (BNEQL, stepA1), (BNEG, stepA1), (BNNEG, stepA1),
2235
(BOVF, stepA1), (BNOVF, stepA1), (BCAR, stepA1), (BNCAR, stepA1),
2236
(BGRT, stepA1), (BGRE, stepA1), (BLSS, stepA1), (BLSSE, stepA1),
2237
(BGRTU, stepA1), (BGRTEU, stepA1), (BLSSU, stepA1), (BLSSEU, stepA1),
2238
(JMP, step32), (INT, stepA4), (JSR, stepA5), (RTI, stepAE), (RTS, stepB6));

69

68

60

13

56

60

13

56

c a s e (N O P , H A L T , ..., R T S )
...
14
15
55

c a s e (N O P , H A L T , ..., R T S )
...
14
15
55

14

14

N O P

15

N O P

15

H A LT
STA RT<=0

H A LT
c lS T A R T

16

16

IN T D
P S W I< = 0

IN T D

c lP S W I

17

17

IN T E
P S W I< = 1

IN T E

s tP S W I

18

18

TRPD
PSW T<=0

TRPD

c lP S W T

19

19

TRPE
PSW T<=1

TRPE

s tP S W T

60
56
60
56
2239
2240
Slika 37 Izvravanje operacije (prvi deo)
2241! NOP !
2242! U korak step51 se dolazi iz step50 ukoliko signal operacije NOP ima vrednost 1. Poto se radi o
2243instrukciji bez dejstva, nema generisanja upravljakih signala, ve se bezuslovno prelazi na korak step C0
2244i fazu opsluivanje prekida. !
2245
step51 br stepC0;
2246! HALT !
2247! U korak step51 se dolazi iz step50 ukoliko signal operacije HALT ima vrednost 1. Poto se radi o
2248instrukciji zaustavljanja procesora, generie se vrednost 1 signala clSTART bloka exec, kojom se u flip2249flop START upisuje vrednost 0, i bezuslovno prelazi na poetni korak step00. !
2250
step52 clSTART,
2251
br step00;
2252! INTD !
2253! U korak step53 se dolazi iz step50 ukoliko signal operacije INTD ima vrednost 1. Vrednou 1 signala
2254clPSWI se razred PSWI bloka exec postavlja na vrednost 0. Iz koraka step53 se bezuslovno prelazi na
2255korak stepC0 i fazu opsluivanje prekida. !
2256
step53 clPSWI,
2257
br stepC0;
2258! INTE !
2259! U korak step54 se dolazi iz step50 ukoliko signal operacije INTE ima vrednost 1. Vrednou 1 signala
2260stPSWI se razred PSWI bloka exec postavlja na vrednost 1. Iz koraka step54 se bezuslovno prelazi na
2261korak stepC0 i fazu opsluivanje prekida.!
2262
step54 stPSWI,
2263
br stepC0;
2264! TRPD !
2265! U korak step55 se dolazi iz step50 ukoliko signal operacije TRPD ima vrednost 1. Vrednou 1 signala
2266clPSWT se razred PSWT bloka exec postavlja na vrednost 0. Iz koraka step 55 se bezuslovno prelazi na
2267korak stepC0 i fazu opsluivanje prekida. !

70

69

2268
step55 clPSWT,
2269
br stepC0;
2270! TRPE !
2271! U korak step56 se dolazi iz step50 ukoliko signal operacije TRPE ima vrednost 1. Vrednou 1 signala
2272stPSWT se razred PSWT bloka exec postavlja na vrednost 1. Iz koraka step56 se bezuslovno prelazi na
2273korak stepC0 i fazu opsluivanje prekida.!
2274
step56 stPSWT,
2275
br stepC0;
60

20

LD B
A B <=B B

56

60

20

LD B
m x A B , ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0,

ld N , ld Z ,
ld C , ld V

21

21

LD W
A W <=B W

56

LD W

ld A W

60
56
60
56
2276
2277
Slika 38 Izvravanje operacije (drugi deo)
2278! LDB !
2279! U korak step57 se dolazi iz step50 ukoliko signal operacije LDB ima vrednost 1 (slika 38). U fazi
2280izvravanja ove instrukcije se operand specificiran adresnim delom instrukcije prebacuje u registar
2281AB70. Stoga se vrednostima 1 signala mxAB i ldAB bloka exec sadraj registra BB70 puta kroz
2282multiplekser MX i upisuje u registar AB70. Potom se u sledeem koraku vrednostima 1 signala ldN,
2283ldZ, ldC i ldV bloka exec u razrede PSWN i PSWZ programske statusne rei PSW upisuju vrednosti
2284signala N i Z formirane na osnovu sadraja upisanog u registar AB70 i u razrede PSWC i PSWV
2285upisuju vrednosti 0 i prelazi na korak stepC0 i fazu opsluivanje prekida. !
2286
step57 mxAB, ldAB;
2287
step58 ldN, ldZ, ldC, ldV,
2288
br stepC0;
2289! LDW !
2290! U korak step59 se dolazi iz step50 ukoliko signal operacije LDW ima vrednost 1. U ovom koraku se
2291vrednou 1 signala ldAW bloka exec se sadraj registra BW150 i upisuje u registar AW150 i prelazi na
2292korak stepC0 i fazu opsluivanje prekida. !
2293
step59 ldAW,
2294
br stepC0;
2295! STB !
2296! U korak step5A se dolazi iz step50 ukoliko signal operacije STB ima vrednost 1 (slika 39). Iz ovog
2297koraka se u zavisnosti od toga da li signal dirreg bloka fetch ima vrednost 0 ili 1 prelazi na korak step5B
2298ili step5F, respektivno. !
2299
step5A br (if dirreg then step5F);
2300! U koracima step5B, step5C, step5D i step5E se sadraj registra AB70 bloka exec upisuje u memorijsku
2301lokaciju na adresi koja je formirana u fazi formiranje adrese operanda i koja se nalazi i registru MAR 15
23020 bloka bus. Stoga se, najpre, u koraku step5B vrednostima 1 signala mxMDR0 i ldMDR bloka bus
2303sadraj registra AB70 puta kroz multiplekser MX i upisuje u registar MDR 70. Pre upisa se u koraku
2304step5C proverava vrednost signala hack bloka bus koji vrednostima 1 i 0 ukazuje da li je processor
2305prepustio magistralu kontroleru sa direktnim pristupom memoriji ili je magistrala u posedu procesora,
2306respektivno. Ukoliko je procesor prepustio magistralu ostaje se u koraku step5C, dok se u suprotnom
2307sluaju prelazi na korak step5D. U koraku step5D se realizuje upis. Vrednostima 1 signala eMAR i
2308eMDR bloka bus sadraji registara MAR150 i MDR70 se putaju na adresne linije ABUS150 i linije
2309DBUS70 podataka magistrale BUS i vrednou 1 signala wrCPU formira vrednost 0 signala na
2310upravljakoj liniji WRBUS magistrale BUS, ime se u memoriji MEM startuje operacija upisa. U
2311koraku step5D se ostaje onoliko perioda signala takta koliko je neophodno da se upis realizuje. Sve
2312vreme dok je processor u koraku step5D adresa i podatak se prisutni na linijama ABUS 150 i DBUS70 i
2313na liniji WRBUS je vrednost 0. Po zavrenom upisu memorija MEM generie vrednost 0 signala na
2314upravljakoj liniji FCBUS magistrale BUS. U koraku step5D se proverava vrednost signala fcCPU

71

70

2315bloka bus koji vrednostima 0 i 1 ukazuje da upis nije zavren i da je upis zavren, respektivno. Ukoliko
2316upis nije zavren ostaje se u koraku step5D, dok se u suprotnom sluaju prelazi na korak step 5E. Iz
2317koraka step5E se bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
2318
step5B mxMDR0, ldMDR;
2319
step5C br (if hack then step5C);
2320
step5D eMAR, eMDR, wrCPU,
2321
br (if fcCPU then step5D);
2322
step5E br stepC0;
2323! U koraku step5F se vrednostima 0 i 1 signala mxGPR i wrGPR bloka addr sadraj registra AB70
2324bloka exec proiren nulama do duine 16 bita puta kroz multiplekser MX1 i upisuje u adresirani
2325registar opte namene GPR150 i bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
2326
step5F wrGPR,
2327
br stepC0;
60

22

STB

56

60

22

d irre g
0

hack

hack
0

M EM <=M D R

e M A R ,e M D R ,w rC P U
0

fc C P U
1

G P R < = 0 ...0 .A B

d irre g
m x M D R 0, ld M D R

56

M D R<=A B

STB

fc C P U
1

w rG P R

7 ...0

60
56
60
56
2328
2329
Slika 39 Izvravanje operacije (trei deo)
2330! STW !
2331! U korak step60 se dolazi iz step50 ukoliko signal operacije STW ima vrednost 1 (slika 40). Iz ovog
2332koraka se u zavisnosti od toga da li signal dirreg bloka fetch ima vrednost 0 ili 1 prelazi na korak step61
2333ili step68, respektivno. !
2334
step60 br (if dirreg then step68);
2335! U koracima step60 do step67 se sadraj najpre starijeg bajta a zatim i mlaeg bajta registra AW150
2336bloka exec upisuje u dve susedne memorijske lokacije poev od memorijske lokacije ija je adresa
2337formirana u fazi formiranje adrese operanda i koja se nalazi i registru MAR 150 bloka bus. Stoga se,
2338najpre, u koraku step61 vrednostima 1 signala mxMDR1 i ldMDR bloka bus sadraj registra AW158
2339puta kroz multiplekser MX2 i upisuje u registar MDR 70. Upis se realizuje u koracima step62 i step63
2340na isti naina kao to se to radi u koracima step 5C i step5D instrukcije STB. Potom se u koraku step 64
2341vrednostima 1 signala mxMDR1, mxMDR0 i ldMDR bloka bus sadraj registra AW70 puta kroz
2342multiplekser MX2 i upisuje u registar MDR70. Upis se realizuje u koracima step65 i step66 na isti naina
2343kao to se to radi u koracima step 62 i step63 za prethodni bajt. Po zavretku upisa se prelazi na korak
2344step67, a iz ovog koraka se bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !

72

71

2345
step61 mxMDR1, ldMDR;
2346
step62 br (if hack then step62);
2347
step63 eMAR, eMDR, wrCPU,
2348
br (if fcCPU then step63);
2349
step64 mxMDR1, mxMDR0, ldMDR, incMAR;
2350
step65 br (if hack then step65);
2351
step66 eMAR, eMDR, wrCPU,
2352
br (if fcCPU then step66);
2353
step67 br stepC0;
2354! U koraku step68 se vrednostima 1 signala mxGPR i wrGPR bloka addr sadraj registra AW150 bloka
2355exec puta kroz multiplekser MX1 i upisuje u adresirani registar opte namene GPR 150 i bezuslovno
2356prelazi na korak stepC0 i fazu opsluivanje prekida. !
2357
step68 mxGPR, wrGPR,
2358
br stepC0;
60

23

STW

56

60

23

re g d ir
0

M D R<=A W

hack

e M A R ,e M D R ,w rC P U
0

fc C P U
1

fc C P U
1

M D R < = A W 7 ...0 ,
M A R<=M A R+1

m x M D R 1, m x M D R
ld M D R , in c M A R

hack
0

0,

hack
0

M EM <=M D R
0

hack
0

M EM <=M D R

re g d ir
m x M D R 1, ld M D R

1 5 ...8

56

STW

e M A R ,e M D R ,w rC P U
0

fc C P U
1

fc C P U
1

G PR<=A W

m x G P R , w rG P R

60
56
60
56
2359
2360
Slika 40 Izvravanje operacije (etvrti deo)
2361! POPB !
2362! U korak step69 se dolazi iz step50 ukoliko signal operacije POPB ima vrednost 1 (slika 41). U fazi
2363izvravanja ove instrukcije sa steka se skida bajt podatka i upisuje u registar AB70 bloka exec. Stoga
2364se, najpre, u koraku step69 vrednostima 1 signala mxMAR2, mxMAR0 i ldMAR bloka bus sadraj
2365registra SP150 puta kroz multiplekser MX1 i upisuje u registar MAR150. Pored toga se i vrednou 1
2366signala decSP dekrementira sadraj registra SP150 bloka addr. itanje se realizuje u koracima step6A i
2367step6B na isti naina kao to se to radi u koracima step 02 i step03 u kojima se ita prvi bajt instrukcije.
2368Potom se vrednostima 1 signala mxBB0 i ldBB sadraj registra MDR70 bloka bus puta kroz
2369multiplekser MX2 i upisuje u registar BB70 bloka exec. Zatim se vrednostima 1 signala mxAB i ldAB
2370sadraj registra BB70 puta kroz multiplekser MX1 i upisuje u registar AB70 bloka exec. Na kraju se
2371vrednostima 1 signala ldN, ldZ, ldC i ldV bloka exec u razrede PSWN i PSWZ programske statusne

73

72

2372rei upisuju vrednosti signala N i Z formirane na osnovu sadraja upisanog u registar AB i u razrede
2373PSWC i PSWV upisuju vrednosti 0 i prelazi na korak stepC0 i fazu opsluivanje prekida. !
2374
step69 mxMAR2, mxMAR0, ldMAR, decSP;
2375
step6A br (if hack then step6A);
2376
step6B eMAR, rdCPU,
2377
br (if fcCPU then step6B);
2378
step6C mxBB0, ldBB;
2379
step6D mxAB, ldAB;
2380
step6E ldN, ldZ, ldC, ldV,
2381
br stepC0;
60

24

PO PB

56

60

24

M A R<=SP,
S P < = S P -1

hack

hack
0

M D R<=M EM

eM A R , rd C P U
0

fc C P U
1

60

56

m x M A R 2, m x M A R 0,
ld M A R , d e c S P

PO PB

fc C P U
1

B B <=M D R

m x B B 0, ld B B

A B <=B B

m x A B , ld A B

PSW N <=N , PSW Z<=Z,


PSW C<=0, PSW V <=0,

ld N , ld Z ,
ld C , ld V
56

60

56

2382
2383
Slika 41 Izvravanje operacije (peti deo)
2384! POPW !
2385! U korak step6F se dolazi iz step50 ukoliko signal operacije POPW ima vrednost 1 (slika 42). U fazi
2386izvravanja ove instrukcije sa steka se skidaju dva bajta podatka i upisuju u registar AW150 bloka exec.
2387Stoga se, najpre, u koraku step69 vrednostima 1 signala mxMAR2, mxMAR0 i ldMAR bloka bus
2388sadraj registra SP150 bloka addr puta kroz multiplekser MX1 i upisuje u registar MAR150. Pored
2389toga se i vrednou 1 signala decSP dekrementira sadraj registra SP150. itanje se realizuje u
2390koracima step70 i step71 na isti naina kao to se to radi u koracima step 02 i step03 u kojima se ita prvi
2391bajt instrukcije. Potom se vrednou 1 signala ldDWL sadraj registra MDR70 bloka bus upisuje u
2392mlai bajt registra DW70 bloka exec. Zatim se u koraku step73 vrednostima 1 signala mxMAR2,
2393mxMAR0 i ldMAR sadraj registra SP150 puta kroz multiplekser MX1 i upisuje u registar MAR 150.
2394Pored toga se i vrednou 1 signala decSP dekrementira sadraj registra SP 150. itanje se realizuje u
2395koracima step74 i step75 na isti naina kao to se to radi u koracima step 70 i step71 u kojima se ita
2396prethodni bajt. Potom se vrednou 1 signala ldDWH sadraj registra MDR70 upisuje u stariji bajt
2397registra DW158. Time se u registru DW150 nalazi 16-to bitna vrednost skinuta sa steka. Na kraju se
2398najpre vrednostima 1 signala mxBW0 i ldBW sadraj registra DW150 puta kroz multiplekser MX6 i
2399upisuje u registar BW150 bloka exec i zatim vrednostima 0 signala mxAW1 i mxAW0 i vrednou 1
2400signala ldAW sadraj registra BW150 puta kroz multiplekser MX5 i upisuje u registar AW150 i
2401prelazi na korak stepC0 i fazu opsluivanje prekida. !

74

73

2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414

step6F mxMAR2, mxMAR0, ldMAR, decSP;


step70 br (if hack then step70);
step71 eMAR, rdCPU,
br (if fcCPU then step71);
step72 ldDWL;
step73 mxMAR2, mxMAR0, ldMAR, decSP;
step74 br (if hack then step74);
step75 eMAR, rdCPU,
br (if fcCPU then step75);
step76 ldDWH;
step77 mxBW0, ldBW;
step78 ldAW,
br stepC0;
60

25

PO PW

56

60

25

M A R<=SP,
S P < = S P -1

hack

eM A R , rd C P U
0

fc C P U
1

fc C P U
1

D W L<=M D R

ld D W L

M A R<=SP,
S P < = S P -1

m x M A R 2, m x M A R 0,
ld M A R , d e c S P

hack
0

hack
0

M D R<=M EM
0

hack
0

M D R<=M EM

56

m x M A R 2, m x M A R 0,
ld M A R , d e c S P

PO PW

e M A R , rd M E M
0

fc C P U
1

fc C P U
1

D W H <=M D R

ld D W H

B W <=D W

m x B W 0, ld B W

A W <=B W

ld A W

60
56
60
56
2415
2416
Slika 42 Izvravanje operacije (esti deo)
2417! PUSHB !
2418! U korak step79 se dolazi iz step50 ukoliko signal operacije PUSHB ima vrednost 1 (slika 43). U fazi
2419izvravanja ove instrukcije se sadraj registra AB70 bloka exec stavlja na vrh steka. Stoga se najpre u
2420koraku step79 vrednou 1 signala incSP vri inkrementiranje registra SP150 bloka addr. Zatim se u
2421koraku step7A vrednostima 1 signala mxMAR2, mxMAR0 i ldMAR, sadraj registra SP150 puta kroz
2422multiplekser MX1 bloka bus i upisuje u registar MAR150 i vrednostima 1 signala mxMDR0 i ldMDR
2423sadraj registra AB70 puta kroz multiplekser MX2 bloka bus i upisuje u registar MDR 70. Upis se
2424realizuje u koracima step7B i step7C na isti naina kao to se to radi u koracima step 5C i step5D instrukcije
2425STB. Na kraju se iz koraka step7D bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !

75

74

2426
2427
2428
2429
2430
2431

step79
step7A
step7B
step7C
step7D

incSP;
mxMAR2, mxMAR0, ldMAR, mxMDR0, ldMDR;
br (if hack then step7B);
eMAR, eMDR, wrCPU,
br (if fcCPU then step7C);
br stepC0;

60

26

PU SH B
SP<=SP+1

56

60

26

m x M A R 2, m x M A R 0,
ld M A R ,
m x M D R 0, ld M D R

hack
0

hack
0

M EM <=M D R
0

56

in c S P

M A R<=SP,
M D R<=A B

PU SH B

e M A R ,e M D R ,w rC P U
0

fc C P U
1

fc C P U
1

60
56
60
56
2432
2433
Slika 43 Izvravanje operacije (sedmi deo)
2434! PUSHW !
2435! U korak step7E se dolazi iz step50 ukoliko signal operacije PUSHW ima vrednost 1 (slika 44). U fazi
2436izvravanja ove instrukcije se sadraj registra AW150 bloka exec stavlja na stek i to prvo stariji a zatim
2437i mlai bajt. Stoga se u koraku step7E vrednou 1 signala incSP vri inkrementiranje registra SP150
2438bloka addr. Zatim se u koraku step7F vrednostima 1 signala mxMAR2, mxMAR0 i ldMAR, sadraj
2439registra SP150 puta kroz multiplekser MX1 bloka bus i upisuje u registar MAR150 i vrednostima 1
2440signala mxMDR1 i ldMDR sadraj registra AW158 puta kroz multiplekser MX2 i upisuje u registar
2441MDR70. Upis se realizuje u koracima step80 i step81 na isti naina kao to se to radi u koracima step5C i
2442step5D instrukcije STB. Ponovo se sada u koraku step82 vrednou 1 signala incSP vri inkrementiranje
2443registra SP150. Zatim se u koraku step83 vrednostima 1 signala mxMAR2, mxMAR0 i ldMAR sadraj
2444registra SP150 puta kroz multiplekser MX1 bloka bus i upisuje u registar MAR150 i vrednostima 1
2445signala mxMDR1, mxMDR0 i ldMDR sadraj registra AW70 puta kroz multiplekser MX2 i upisuje u
2446registar MDR70. Upis se realizuje u koracima step84 i step85 na isti naina kao to se to radi u koracima
2447step80 i step81. Na kraju se iz koraka step86 bezuslovno prelazi na korak stepC0 i fazu opsluivanje
2448prekida. !
2449
step7E incSP;
2450
step7F mxMAR2, mxMAR0, ldMAR, mxMDR1, ldMDR;
2451
step80 br (if hack then step80);
2452
step81 eMAR, eMDR, wrCPU,
2453
br (if fcCPU then step81);
2454
step82 incSP;
2455
step83 mxMAR2, mxMAR0, ldMAR, mxMDR1, mxMDR0, ldMDR;
2456
step84 br (if hack then step84);
2457
step85 eMAR, eMDR, wrCPU,
2458
br (if fcCPU then step85);
2459
step86 br stepC0;

76

75

60

27

PU SH W
SP<=SP+1

56

60

27

m x M A R 2, m x M A R 0,
ld M A R ,
m x M D R 1, ld M D R

hack

hack

M EM <=M D R
0

e M A R ,e M D R ,w rC P U
0

fc C P U

fc C P U

SP<=SP+1

in c S P

M A R<=SP,
M D R < = A W 7 ...0

m x M A R 2, m x M A R 0,
ld M A R , m x M D R 1,
m x M D R 0, ld M D R

hack

hack

M EM <=M D R
0

e M A R ,e M D R ,w rC P U
0

fc C P U

fc C P U

2460
2461

60

56

60

28

L D IV T P
A W < = IV T P

56

60

29

L D IV T P
m x A W 1, ld A W
S T IV T P

30

L D IM R
m x A W 1 ,m x A W 0,ld A W

31

30

31

S T IM R
IM R < = A W

S T IM R

ld IM R

32

32

LD SP
A W <=SP
33

56

ld IV T P

L D IM R
A W < = IM R

LD SP
m x A W 0, ld A W
33

STSP

SP<=A W
60

28

29

S T IV T P
IV T P < = A W

77

56

Slika 44 Izvravanje operacije (osmi deo)


60

2462
2463

56

in c S P

M A R<=SP,
M D R < = A W 1 5 ...8

PU SH W

STSP

ld S P
56

60

Slika 45 Izvravanje operacije (deveti deo)

76

56

2464! LDIVTP !
2465! U korak step87 se dolazi iz step50 ukoliko signal operacije LDIVTP ima vrednost 1 (slika 45). U fazi
2466izvravanja ove instrukcije se sadraj registra IVTP 150 bloka intr upisuje u registar AW150 bloka exec.
2467Stoga se vrednostima 1 signala mxAW1 i ldAW sadraj registra IVTP150 puta kroz multiplekser MX5
2468bloka exec i upisuje u registar AW150. Na kraju se iz koraka step87 bezuslovno prelazi na korak stepC0 i
2469fazu opsluivanje prekida. !
2470
step87 mxAW1, ldAW,
2471
br stepC0;
2472! STIVTP !
2473! U korak step88 se dolazi iz step50 ukoliko signal operacije STIVTP ima vrednost 1. U fazi izvravanja
2474ove instrukcije se sadraj registra AW150 bloka exec upisuje u registar IVTP150 bloka intr. Stoga se
2475vrednou 1 signala ldIVTP sadraj registra AW150 upisuje u registar IVTP150. Na kraju se iz koraka
2476step88 bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
2477
step88 ldIVTP,
2478
br stepC0;
2479! LDIMR !
2480! U korak step89 se dolazi iz step50 ukoliko signal operacije LDIMR ima vrednost 1. U fazi izvravanja
2481ove instrukcije se sadraj registra IMR 150 bloka intr upisuje u registar AW150 bloka exec. Stoga se
2482vrednostima 1 signala mxAW1, mxAW0 i ldAW sadraj registra IMR150 puta kroz multiplekser MX5
2483bloka exec i upisuje u registar AW150. Na kraju se iz koraka step89 bezuslovno prelazi na korak stepC0 i
2484fazu opsluivanje prekida. !
2485
step89 mxAW1, mxAW0, ldAW,
2486
br stepC0;
2487! STIMR !
2488! U korak step8A se dolazi iz step50 ukoliko signal operacije STIMR ima vrednost 1. U fazi izvravanja
2489ove instrukcije se sadraj registra AW150 bloka exec upisuje u registar IMR150 bloka intr. Stoga se
2490vrednou 1 signala ldIMR sadraj registra AW150 upisuje u registar IMR 150. Na kraju se iz koraka
2491step8A bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
2492
step8A ldIMR,
2493
br stepC0;
2494! LDSP !
2495! U korak step8B se dolazi iz step50 ukoliko signal operacije LDSP ima vrednost 1. U fazi izvravanja
2496ove instrukcije se sadraj registra SP 150 bloka addr upisuje u registar AW150 bloka exec. Stoga se
2497vrednostima 1 signala mxAW0 i ldAW sadraj registra SP150 puta kroz multiplekser MX5 bloka exec
2498i upisuje u registar AW150. Na kraju se iz koraka step8B bezuslovno prelazi na korak stepC0 i fazu
2499opsluivanje prekida. !
2500
step8B mxAW0, ldAW,
2501
br stepC0;
2502! STSP !
2503! U korak step8C se dolazi iz step50 ukoliko signal operacije STSP ima vrednost 1. U fazi izvravanja ove
2504instrukcije se sadraj registra AW150 bloka exec upisuje u registar SP150 bloka addr. Stoga se
2505vrednou 1 signala ldSP sadraj registra AW150 upisuje u registar SP150. Na kraju se iz koraka step8C
2506bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
2507
step8C ldSP,
2508
br stepC0;
2509! ADD !
2510! U korak step8D se dolazi iz step50 ukoliko signal operacije ADD ima vrednost 1 (slika 46). U fazi
2511izvravanja ove instrukcije se sabiraju sadraji registra AB70 bloka exec koji se koristi kao akumulator
2512i registra BB70 bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije i rezultat
2513upisuje u registar AB70. Stoga se najpre vrednou 1 signala add bloka exec na izlazima ALU70
2514formira suma sadraja registara AB70 i BB70, pa se zatim dobijena suma vrednou 0 signala mxAB
2515puta kroz multiplekser MX1 i vrednou 1 signala ldAB upisuje u registar AB70. Istovremeno se
2516vrednostima 1 signala ldC i ldV bloka exec u razrede PSWC i PSWV programske statusne rei PSW 15
25170 upisuju vrednosti signala C i V bloka exec formirane na osnovu dobijenog rezultata na izlazima
2518ALU70. U sledeem koraku se vrednostima 1 signala ldN i ldZ bloka exec u razrede PSWN i PSWZ
2519programske statusne rei PSW150 upisuju vrednosti signala N i Z bloka exec formirane na osnovu
2520sadraja upisanog u registar AB70 i prelazi na korak stepC0 i fazu opsluivanje prekida. !
78

77

2521
2522
2523

step8D add, ldAB, ldC, ldV;


step8E ldN, ldZ,
br stepC0;
60

34

A D D

56

60

34

A D D

A B <=A B +B B ,
PSW C<=C, PSW V <=V

a d d , ld A B ,
ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

35

35

SU B

SU B

A B < = A B -B B ,
PSW C<=C, PSW V <=V

s u b , ld A B ,
ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

36

36

IN C

IN C

A B <=A B +1,
PSW C<=C, PSW V <=V

in c , ld A B ,
ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

37

37

D EC

56

D EC

A B < = A B -1 ,
PSW C<=C, PSW V <=V

d e c , ld A B ,
ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

60
56
60
56
2524
2525
Slika 46 Izvravanje operacije (deseti deo)
2526! SUB !
2527! U korak step8D se dolazi iz step50 ukoliko signal operacije SUB ima vrednost 1. U fazi izvravanja ove
2528instrukcije se od sadraja registra AB70 bloka exec koji se koristi kao akumulator oduzima sadraj
2529registra BB70 bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije i rezultat
2530upisuje u registar AB70. Stoga se najpre vrednou 1 signala sub bloka exec na izlazima ALU70
2531formira razlika sadraja registara AB70 i BB70, pa se zatim dobijena razlika vrednou 0 signala
2532mxAB puta kroz multiplekser MX1 i vrednou 1 signala ldAB upisuje u registar AB70. Istovremeno
2533se vrednostima 1 signala ldC i ldV bloka exec u razrede PSWC i PSWV programske statusne rei
2534PSW150 upisuju vrednosti signala C i V bloka exec formirane na osnovu dobijenog rezultata na
2535izlazima ALU70. U sledeem koraku se vrednostima 1 signala ldN i ldZ bloka exec u razrede PSWN i
2536PSWZ programske statusne rei PSW150 upisuju vrednosti signala N i Z bloka exec formirane na
2537osnovu sadraja upisanog u registar AB70 i prelazi na korak stepC0 i fazu opsluivanje prekida. !
2538
step8F sub, ldAB, ldC, ldV;
2539
step90 ldN, ldZ,
2540
br stepC0;
2541! INC !
2542! U korak step91 se dolazi iz step50 ukoliko signal operacije INC ima vrednost 1. U fazi izvravanja ove
2543instrukcije se sabira sadraj registra AB70 bloka exec koji se koristi kao akumulator i vrednost 1 i
2544rezultat upisuje u registar AB70. Stoga se, najpre, vrednou 1 signala inc bloka exec na izlazima
2545ALU70 formira suma sadraja registra AB70 i vrednosti 1, pa se zatim dobijena vrednou 0 signala
2546mxAB puta kroz multiplekser MX1 i vrednou 1 signala ldAB upisuje u registar AB70. Istovremeno
2547se vrednostima 1 signala ldC i ldV bloka exec u razrede PSWC i PSWV programske statusne rei
2548PSW150 upisuju vrednosti signala C i V bloka exec formirane na osnovu dobijenog rezultata na
2549izlazima ALU70. U sledeem koraku se vrednostima 1 signala ldN i ldZ bloka exec u razrede PSWN i
2550PSWZ programske statusne rei PSW150 upisuju vrednosti signala N i Z bloka exec formirane na
2551osnovu sadraja upisanog u registar AB70 i prelazi na korak stepC0 i fazu opsluivanje prekida. !
2552
step91 inc, ldAB, ldC, ldV;
2553
step92 ldN, ldZ,

79

78

2554
br stepC0;
2555! DEC !
2556! U korak step93 se dolazi iz step50 ukoliko signal operacije DEC ima vrednost 1. U fazi izvravanja ove
2557instrukcije se od sadraj registra AB70 bloka exec koji se koristi kao akumulator i oduzima vrednost 1 i
2558rezultat upisuje u registar AB70. Stoga se vrednou 1 signala dec bloka exec na izlazima ALU70
2559formira razlika sadraja registra AB70 i vrednosti 1, pa se zatim dobijena razlika vrednou 0 signala
2560mxAB puta kroz multiplekser MX1 i vrednou 1 signala ldAB upisuje u registar AB70. Istovremeno
2561se vrednostima 1 signala ldC i ldV bloka exec u razrede PSWC i PSWV programske statusne rei
2562PSW150 upisuju vrednosti signala C i V bloka exec formirane na osnovu dobijenog rezultata na
2563izlazima ALU70. U sledeem koraku se vrednostima 1 signala ldN i ldZ bloka exec u razrede PSWN i
2564PSWZ programske statusne rei PSW150 upisuju vrednosti signala N i Z bloka exec formirane na
2565osnovu sadraja upisanog u registar AB70 i prelazi na korak stepC0 i fazu opsluivanje prekida. !
2566
step93 dec, ldAB, ldC, ldV;
2567
step94 ldN, ldZ,
2568
br stepC0;
60

38

A N D
A B < = A B B B

56

60

38

A N D
a n d , ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

39

39

O R
A B < = A B B B

o r, ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

40

40

X O R
A B <=A B B B

56

O R

X O R
x o r, ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

41

41

N O T
A B <=A B

N O T
n o t, ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

60
56
60
56
2569
2570
Slika 47 Izvravanje operacije (jedanaesti deo)
2571! AND !
2572! U korak step95 se dolazi iz step50 ukoliko signal operacije AND ima vrednost 1 (slika 47). U fazi
2573izvravanja ove instrukcije se nad sadrajima registra AB70 bloka exec koji se koristi kao akumulator i
2574registra BB70 bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije realizuje
2575logika I operacija i rezultat upisuje u registar AB70. Stoga se, najpre, vrednou 1 signala and bloka
2576exec na izlazima ALU70 formira rezultat logike I operacije sadraja registara AB70 i BB70 , pa se
2577zatim dobijeni reziltat vrednou 0 signala mxAB puta kroz multiplekser MX1 i vrednou 1 signala
2578ldAB upisuje u registar AB70. Potom se u sledeem koraku vrednostima 1 signala ldN, ldZ, ldC i ldV
2579bloka exec u razrede PSWN i PSWZ programske statusne PSW 150 rei upisuju vrednosti signala N i Z
2580formirane na osnovu sadraja upisanog u registar AB70 i u razrede PSWC i PSWV upisuju vrednosti 0
2581i prelazi na korak stepC0 i fazu opsluivanje prekida. !
2582
step95 and, ldAB;
2583
step96 ldN, ldZ, ldC, ldV,
2584
br stepC0;
2585! OR !

80

79

2586! U korak step97 se dolazi iz step50 ukoliko signal operacije OR ima vrednost 1. U fazi izvravanja ove
2587instrukcije se nad sadrajima registra AB70 bloka exec koji se koristi kao akumulator i registra BB70
2588bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije realizuje logika ILI
2589operacija i rezultat upisuje u registar AB70. Stoga se, najpre, vrednou 1 signala or bloka exec na
2590izlazima ALU70 formira rezultat logike ILI operacije sadraja registara AB 70 i BB70, pa se zatim
2591dobijeni rezultat vrednou 0 signala mxAB puta kroz multiplekser MX1 i vrednou 1 signala ldAB
2592upisuje u registar AB70. Potom se u sledeem koraku vrednostima 1 signala ldN, ldZ, ldC i ldV bloka
2593exec u razrede PSWN i PSWZ programske statusne rei PSW150 upisuju vrednosti signala N i Z
2594formirane na osnovu sadraja upisanog u registar AB70 i u razrede PSWC i PSWV upisuju vrednosti 0
2595i prelazi na korak stepC0 i fazu opsluivanje prekida. !
2596
step97 or, ldAB;
2597
step98 ldN, ldZ, ldC, ldV,
2598
br stepC0;
2599! XOR !
2600! U korak step99 se dolazi iz step50 ukoliko signal operacije XOR ima vrednost 1. U fazi izvravanja ove
2601instrukcije se nad sadrajima registra AB70 bloka exec koji se koristi kao akumulator i registra AB70
2602bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije realizuje logika
2603ekskluzivno ILI operacija i rezultat upisuje u registar AB70. Stoga se, najpre, vrednou 1 signala xor
2604bloka exec na izlazima ALU70 formira rezultat logike ekskluzivno ILI operacije sadraja registara
2605AB70 i BB70, pa se zatim dobijeni rezultat vrednou 0 signala mxAB puta kroz multiplekser MX1 i
2606vrednou 1 signala ldAB upisuje u registar AB70. Potom se u sledeem koraku vrednostima 1 signala
2607ldN, ldZ, ldC i ldV bloka exec u razrede PSWN i PSWZ programske statusne rei PSW150 upisuju
2608vrednosti signala N i Z formirane na osnovu sadraja upisanog u registar AB70 i u razrede PSWC i
2609PSWV upisuju vrednosti 0 i prelazi na korak stepC0 i fazu opsluivanje prekida. !
2610
step99 xor, ldAB;
2611
step9A ldN, ldZ, ldC, ldV,
2612
br stepC0;
2613! NOT !
2614! U korak step9B se dolazi iz step50 ukoliko signal operacije NOT ima vrednost 1. U fazi izvravanja ove
2615instrukcije se invertuju bitovi registra AB70 bloka exec koji se koristi kao akumulator i rezultat upisuje
2616u registar AB70. Stoga se, najpre, vrednou 1 signala not bloka exec na izlazima ALU70 formiraju
2617invertovane vrednosti bitova registra AB70, pa se zatim dobijeni rezultat vrednou 0 signala mxAB
2618puta kroz multiplekser MX1 i vrednou 1 signala ldAB upisuju u registar AB70. Potom se u
2619sledeem koraku vrednostima 1 signala ldN, ldZ, ldC i ldV bloka exec u razrede PSWN i PSWZ
2620programske statusne rei PSW150 upisuju vrednosti signala N i Z formirane na osnovu sadraja
2621upisanog u registar AB70 i u razrede PSWC i PSWV upisuju vrednosti 0 i prelazi na korak stepC0 i
2622fazu opsluivanje prekida. !
2623
step9B not, ldAB;
2624
step9C ldN, ldZ, ldC, ldV,
2625
br stepC0;

81

80

60

42

A B

7 ...0 <

= A B 7.A B
PSW C<=C

A B

A B

A B

56

A SR
7 ...1

60

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

ld N ,
ld Z ,
ld V

43

43

LSR

7 ...0 < = 0 . A B
PSW C<=C

7 ...1 ,

ld N ,
ld Z ,
ld V

44

44

RO R

= A B 0.A B
PSW C<=C

7 ...1

60

LSR

RO R

sh r,
ld C

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

ld N ,
ld Z ,
ld V

45

45

RO RC

7 ...0 < = P S W C . A B
PSW C<=C

56

sh r,
ld C

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

7 ...0 <

A SR

sh r,
ld C

7 ...1 ,

RO RC

sh r,
ld C

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

2626
2627

42

ld N ,
ld Z ,
ld V
56

60

56

Slika 48 Izvravanje operacije (dvanaesti deo)

2628! ASR, LSR, ROR i ROLC !


2629! U korak step9D se dolazi iz step50 ukoliko neki od signala operacije ASR, LSR, ROR i ROLC ima
2630vrednost 1 (slika 48). U fazi izvravanja ove instrukcije se bitovi registra AB 70 bloka exec koji se
2631koristi kao akumulator aritmetiki pomeraju za jedno mesto udesno ukoliko signal ASR ima vrednost 1,
2632logiki pomeraju za jedno mesto udesno ukoliko signal LSR ima vrednost 1, rotiraju za jedno mesto
2633udesno ukoliko signal ROR ima vrednost 1 i rotiraju zajedno sa razredom PSWC programske statusne
2634rei PSW150 za jedno mesto udesno ukoliko signal RORC ima vrednost 1. Stoga se vrednou 1
2635signala shr bloka exec bitovi registra AB70 pomeraju udesno za jedno mesto, pri emu se u u razred
2636AB7 upisuje signal IR sa izlaza multipleksera MX3 bloka exec. U sluaju aritmetikog pomeranja za
2637jedno mesto udesno to je signal AB7. Ovaj signal se selektuje na izlazu IR multipleksera MX3 binarnom
2638vrednou 0 signala selekcije multipleksera MX3 koji se dobijaju na izlazu kodera CD1 zbog vrednosti
26391 signala ASR na ulazu 0 kodera CD1. U sluaju logikog pomeranja za jedno mesto udesno to je
2640signal 0. Ovaj signal se selektuje na izlazu IR multipleksera MX3 binarnom vrednou 1 signala
2641selekcije multipleksera MX3 koji se dobijaju na izlazu kodera CD1 zbog vrednosti 1 signala LSR na
2642ulazu 1 kodera CD1. U sluaju rotiranja za jedno mesto udesno to je signal AB0. Ovaj signal se
2643selektuje na izlazu IR multipleksera MX3 binarnom vrednou 2 signala selekcije multipleksera MX3
2644koji se dobijaju na izlazu kodera CD1 zbog vrednosti 1 signala ROR na ulazu 2 kodera CD1. U sluaju
2645rotiranja zajedno sa razredom PSWC programske statusne rei PSW150 za jedno mesto udesno to je
2646signal PSWC. Ovaj signal se selektuje na izlazu IR multipleksera MX3 binarnom vrednou 3 signala
2647selekcije multipleksera MX3 koji se dobijaju na izlazu kodera CD1 zbog vrednosti 1 signala RORC na
2648ulazu 3 kodera CD1. Istovremeno se vrednou 1 signala ldC bloka exec u razred PSWC programske
2649statusne rei PSW150 upisuje vrednost signala C bloka exec. U sluaju svih pomeranja i rotiranja za
82

81

2650jedno mesto udesno to je signal AB0. U koraku step9E se vrednostima 1 signala ldN i ldZ bloka exec u
2651razrede PSWN i PSWZ programske statusne PSW150 rei upisuju vrednosti signala N i Z bloka exec
2652formirane na osnovu sadraja upisanog u registar AB70 i vrednou 1 signala ldV bloka exec u razred
2653PSWV programske statusne rei PSW150 upisuje vrednost 0 signala V. Iz koraka step9E se bezuslovono
2654prelazi na korak stepC0 i fazu opsluivanje prekida. !
2655
step9D shr, ldC;
2656
step9E ldN, ldZ, ldV,
2657
br stepC0;
60

46

A B

A SL

56

60

7 ...0 < = A B 6 ...0 . 0 ,


PSW C<=C

47

47

LSL

7 ...0 < = A B 6 ...0 . 0 ,


PSW C<=C

LSL

s h l,
ld C

PSW N <=N , PSW Z<=Z,


PSW V <=0

ld N , ld Z ,
ld V

48

48

RO L

7 ...0 < = A B 6 ...0 . A B 7 ,


PSW C<=C

RO L

s h l,
ld C

PSW N <=N , PSW Z<=Z,


PSW V <=0

ld N , ld Z ,
ld V

49

49

A B

56

s h l,
ld C
ld N , ld Z ,
ld V

A B

RO LC

7 ...0 < = A B 6 ...0 . P S W C ,


PSW C<=C

RO LC

s h l,
ld C

PSW N <=N , PSW Z<=Z,


PSW V <=0
60

A SL

PSW N <=N , PSW Z<=Z,


PSW V <=0

A B

2658
2659

46

ld N , ld Z ,
ld V
56

60

56

Slika 49 Izvravanje operacije (trinaesti deo)

2660! ASL, LSL, ROL i ROLC !


2661! U korak step9F se dolazi iz step50 ukoliko neki od signala operacije ASL, LSL, ROL i ROLC ima
2662vrednost 1 (slika 49). U fazi izvravanja ove instrukcije se bitovi registra AB 70 bloka exec koji se
2663koristi kao akumulator aritmetiki pomeraju za jedno mesto ulevo ukoliko signal ASL ima vrednost 1,
2664logiki pomeraju za jedno mesto ulevo ukoliko signal LSL ima vrednost 1, rotiraju za jedno mesto ulevo
2665ukoliko signal ROL ima vrednost 1 i rotiraju zajedno sa razredom PSWC programske statusne rei
2666PSW150 za jedno mesto ulevo ukoliko signal ROLC ima vrednost 1. Stoga se vrednou 1 signala shl
2667bloka exec bitovi registra AB70 pomeraju ulevo za jedno mesto, pri emu se u u razred AB0 upisuje
2668signal IL sa izlaza multipleksera MX4 bloka exec. U sluaju aritmetikog pomeranja za jedno mesto
2669ulevo to je signal 0. Ovaj signal se selektuje na izlazu IL multipleksera MX4 binarnom vrednou 0
2670signala selekcije multipleksera MX3 koji se dobijaju na izlazu kodera CD2 zbog vrednosti 1 signala
2671ASL na ulazu 0 kodera CD2. U sluaju logikog pomeranja za jedno mesto ulevo to je signal 0. Ovaj
2672signal se selektuje na izlazu IL multipleksera MX4 binarnom vrednou 1 signala selekcije
2673multipleksera MX4 koji se dobijaju na izlazu kodera CD2 zbog vrednosti 1 signala LSL na ulazu 1
2674kodera CD2. U sluaju rotiranja za jedno mesto ulevo to je signal AB7. Ovaj signal se selektuje na
2675izlazu IL multipleksera MX4 binarnom vrednou 2 signala selekcije multipleksera MX4 koji se
2676dobijaju na izlazu kodera CD2 zbog vrednosti 1 signala ROL na ulazu 2 kodera CD2. U sluaju
2677rotiranja zajedno sa razredom PSWC programske statusne rei PSW150 za jedno mesto ulevo to je
2678signal PSWC. Ovaj signal se selektuje na izlazu IL multipleksera MX4 binarnom vrednou 3 signala
83

82

2679selekcije multipleksera MX4 koji se dobijaju na izlazu kodera CD2 zbog vrednosti 1 signala ROLC na
2680ulazu 3 kodera CD2. Istovremeno se vrednou 1 signala ldC bloka exec u razred PSWC programske
2681statusne rei PSW150 upisuje vrednost signala C bloka exec. U sluaju svih pomeranja i rotiranja za
2682jedno mesto ulevo to je signal AB7. U koraku stepA0 se vrednostima 1 signala ldN i ldZ bloka exec u
2683razrede PSWN i PSWZ programske statusne PSW150 rei upisuju vrednosti signala N i Z bloka exec
2684formirane na osnovu sadraja upisanog u registar AB70 i vrednou 1 signala ldV bloka exec u razred
2685PSWV programske statusne rei PSW150 upisuje vrednost 0 signala V. Iz koraka stepA0 se bezuslovano
2686prelazi na korak stepC0 i fazu opsluivanje prekida. !
2687
step9F shl, ldC;
2688
stepA0 ldN, ldZ, ldV,
2689
br stepC0;
60

50

B E Q L ,...,B L S S E U

b rp o m

56

60

51

P C < = IR

b rp o m

56

m x A D D A 1, m x A D D B 1,
m x A D D B 0, m x P C 0,
ld P C

2 3 ...1 6

51

JM P

JM P
m x P C 1, ld P C

2 3 ...8

52

52

IN T
P R IN S < = 1
60

B E Q L ,...,B L S S E U

P C < = P C + IR

2690
2691

50

IN T

s tP R IN S
56

60

56

Slika 50 Izvravanje operacije (etrnaesti deo)

2692! BEQL,, BLSSEU !


2693! U korak se stepA1 se dolazi iz step50 ukoliko jedan od 16 signala operacija uslovnog skoka BEQL,
2694BNEQL, BNEG, BNNEG, BOVF, BNOVF, BCAR, BNCAR, BGRT, BGRTE, BLSS, BLSSE,
2695BGRTU, BGRTEU, BLSSU, BLSSEU ima vrednost 1 (slika 50). Iz koraka stepA1 se prelazi na stepC0
2696i fazu opsluivanje prekida ukoliko signal brpom bloka exec ima vrednost 0 i na korak stepA2 ukoliko
2697ima vrednost 1. Signal brpom ima vrednost 1 ukoliko od 16 signala rezultata operacije eql, neql, neg,
2698nneg, ovf, novf, car, ncar, grt, grte, lss, lsse, grtu, grteu, lssu i lsseu vrednost 1 ima onaj signal koji
2699je odreen vrednou 1 odgovarajueg signala od 16 signala operacija uslovnog skoka BEQL,
2700BNEQL, BNEG, BNNEG, BOVF, BNOVF, BCAR, BNCAR, BGRT, BGRTE, BLSS, BLSSE,
2701BGRTU, BGRTEU, BLSSU i BLSSEU. Bitovi razreda IR26... 24 registra IR31...0 bloka fetch se vode na
2702upravljake ulaze multipleksera MX7 i MX8 bloka exec, ime se vri selekcija po jednog signala iz dve
2703grupe signala rezultata operacije, dok se bit razreda IR27 vodi na upravljaki ulaz multipleksera MX9,
2704ime se izmeu signala rezultata operacije selektovanih multiplekserima MX7 i MX8 selektuje signal
2705rezultata operacije koji odgovara kodu operacije uslovnog skoka. Selektovani signal rezultata operacije
2706je oznaen sa brpom.!
2707
stepA1 br (if brpom then stepC0);
2708! U korak stepA2 se dolazi iz stepA1 ukoliko signal brpom ima vrednost 1, ime je uslov za skok
2709ispunjen. U ovom koraku se, najpre, vrednostima 1 signala mxADDA1, mxADDB1 i mxADDB0 kroz
2710multipleksere MX2 i MX3 bloka addr na ulaze sabiraa ADD putaju sadraji registra PC 150 bloka
2711fetch i registra IR2316 bloka fetch proiren znakom na 16 bita, a zatim se vrednostima 1 signala mxPC0
2712i ldPC sadraj sa izlaza sabiraa ADD, koji predstavlja adresu skoka, puta kroz multiplekser MX
2713bloka fetch i upisuje u registar PC150. Pored toga iz koraka stepA2 se bezuslovno prelazi na stepC0 i fazu
2714opsluivanje prekida. !
2715
stepA2 mxADDA1, mxADDB1, mxADDB0, mxPC0, ldPC,
2716
br stepC0;
2717! JMP !
2718! U korak stepA3 se dolazi iz step50 ukoliko signal operacije JMP ima vrednost 1. U fazi izvravanja ove
2719instrukcije se realizuje bezuslovni skok na adresu koja je data u samoj instrukciji. Stoga se sadraj
84

83

2720registra IR238 bloka fetch koji predstavlja adresu skoka vrednostima 1 signala mxPC1 i ldPC puta
2721kroz multiplekser MX bloka fetch i upisuje u registar PC150. Pored toga iz koraka stepA3 se bezuslovno
2722prelazi na stepC0 i fazu opsluivanje prekida. !
2723
stepA3 mxPC1, ldPC,
2724
br stepC0;
2725! INT !
2726! U korak stepA4 se dolazi iz step50 ukoliko signal operacije INT ima vrednost 1. U fazi izvravanja ove
2727instrukcije se samo evidentira da se radi o instrukciji prekida i prelazi na fazu opsluivanje prekida iz
2728koje se zatim skae na prekidnu rutinu na osnovu broja ulaza u tabelu sa adresama prekidnih rutina koji
2729je dat u samoj instrukciji. Stoga se vrednou 1 signala stPRINS flip-flop PRINS bloka intr postavlja
2730na vrednost 1 i bezuslovno prelazi na stepC0 i fazu opsluivanje prekida. !
2731
stepA4 stPRINS,
2732
br stepC0;
2733! JSR !
2734! U korak stepA5 se dolazi iz step50 ukoliko signal operacije JSR ima vrednost 1 (slika 51). U fazi
2735izvravanja ove instrukcije se realizuje skok na potprogram tako to se prvo na stek stavi tekui sadraj
2736programskog brojaa i zatim realizuje bezuslovni skok na adresu koja je data u samoj instrukciji. Na
2737stek se stavlja prvo stariji a zatim i mlai bajt registra PC150. Stoga se najpre u koraku stepA5
2738vrednou 1 signala incSP vri inkrementiranje registra SP150 bloka addr. Zatim se u koraku stepA6
2739vrednostima 1 signala mxMAR2, mxMAR0 i ldMAR, sadraj registra SP150 puta kroz multiplekser
2740MX1 bloka bus i upisuje u registar MAR150 i vrednostima 1 signala mxMDR2 i ldMDR sadraj
2741starijeg bajta registra PC158 puta kroz multiplekser MX2 i upisuje u registar MDR70. Upis se
2742realizuje u koracima stepA7 i stepA8 na isti naina kao to se to radi u koracima step5C i step5D instrukcije
2743STB. Potom se u koraku stepA9 vrednou 1 signala incSP vri inkrementiranje registra SP150. Zatim se
2744u koraku stepAA vrednostima 1 signala mxMAR2, mxMAR0 i ldMAR, sadraj registra SP150 puta
2745kroz multiplekser MX1 bloka bus i upisuje u registar MAR150 i vrednostima 1 signala mxMDR2,
2746mxMDR0, ldMDR sadraj mlaeg bajta registra PC70 puta kroz multiplekser MX2 i upisuje u
2747registar MDR70. Upis se realizuje u koracima stepAB i stepAC na isti naina kao to se to radi u
2748koracima stepA7 i stepA8 prilikom upisa starijeg bajta. Na kraju se u koraku step AD sadraj registra IR238
2749bloka fetch koji predstavlja adresu skoka vrednostima 1 signala mxPC1 i ldPC puta kroz multiplekser
2750MX bloka fetch i upisuje u registar PC150 i bezuslovno prelazi na stepC0 i fazu opsluivanje prekida. !
2751
stepA5 incSP;
2752
stepA6 mxMAR2, mxMAR0, ldMAR, mxMDR2, ldMDR;
2753
stepA7 br (if hack then stepA7);
2754
stepA8 eMAR, eMDR, wrCPU,
2755
br (if fcCPU then stepA8);
2756
stepA9 incSP;
2757
stepAA mxMAR2, mxMAR0, ldMAR, mxMDR2, mxMDR0, ldMDR;
2758
stepAB br (if hack then stepAB);
2759
stepAC eMAR, eMDR, wrCPU,
2760
br (if fcCPU then stepAC);
2761
stepAD mxPC1, ldPC,
2762
br stepC0;

85

84

60

53

JS R
SP<=SP+1

56

60

53

m x M A R 2, m x M A R 0,
ld M A R ,
m x M D R 2, ld M D R

hack
0

e M A R ,e M D R ,w rC P U
0

fc C P U
1

fc C P U
1

SP<=SP+1

in c S P

M A R<=SP,
M D R < = P C 7 ...0

m x M A R 2, m x M A R 0,
ld M A R ,m x M D R 2,
m x M D R 0, ld M D R

hack
0

e M A R ,e M D R ,w rC P U
0

fc C P U
1

P C < = IR

hack
0

M EM <=M D R
0

hack
0

M EM <=M D R
0

56

in c S P

M A R<=SP,
M D R < = P C 1 5 ...8

JS R

fc C P U
1

m x P C 1, ld P C

2 3 ...8

60
56
60
56
2763
2764
Slika 51 Izvravanje operacije (petnaesti deo)
2765! RTI !
2766! U korak stepAE se dolazi iz step50 ukoliko signal operacije RTI ima vrednost 1 (slika 52). U fazi
2767izvravanja ove instrukcije vrednostima sa steka se restauriraju programska statusna re PSW 15..0 i
2768programski broja PC15...0. U koracima stepAE do stepB5 se najpre vrednou sa steka restaurira
2769programska statusna re PSW15...0 bloka exec. Sa steka se najpre skida mlai a zatim i stariji bajt
2770registra PSW15...0. Stoga se u koraku stepAE vrednostima 1 signala mxMAR2, mxMAR0 i ldMAR bloka
2771bus sadraj registra SP150 bloka addr puta kroz multiplekser MX1 i upisuje u registar MAR 150.
2772Pored toga se i vrednou 1 signala decSP dekrementira sadraj registra SP 150. itanje se realizuje u
2773koracima stepAF i stepB0 na isti naina kao to se to radi u koracima step 02 i step03 u kojima se ita prvi
2774bajt instrukcije. Na kraju se u koraku step B1 vrednou 1 signala ldPSWL sadraj registra MDR70
2775bloka bus upisuje u mlai bajt registra PSW70 bloka exec. Potom se u koraku stepB2 vrednostima 1
2776signala mxMAR2, mxMAR0 i ldMAR sadraj registra SP 150 puta kroz multiplekser MX1 i upisuje u
2777registar MAR150. Pored toga se i vrednou 1 signala decSP dekrementira sadraj registra SP 150.
2778itanje se realizuje u koracima stepB3 i stepB4 na isti naina kao to se to radi u koracima step AF i stepB0
2779u kojima se ita mlai bajt. Na kraju se u koraku stepB5 vrednou 1 signala ldPSWH sadraj registra
2780MDR70 bloka bus upisuje u stariji bajt registra PSW158. Time je 16-to bitna vrednost skinuta sa steka
2781i smetena u registar PSW150, pa se prelazi na sledei korak poev od koga se kao i u sluaju
2782instrukcije RTS sa steka skida 16-to bitna vrednost i smeta u registar PC150.!
2783
stepAE mxMAR2, mxMAR0, ldMAR, decSP;
2784
stepAF br (if hack then stepAF);
2785
stepB0 eMAR, rdCPU,
2786
br (if fcCPU then stepB0);
2787
stepB1 ldPSWL;

86

85

2788
2789
2790
2791
2792

stepB2 mxMAR2, mxMAR0, ldMAR, decSP;


stepB3 br (if hack then stepB3);
stepB4 eMAR, rdCPU,
br (if fcCPU then stepB4);
stepB5 ldPSWH;
60

54

RTI

56

60

54

M A R<=SP,
S P < = S P 1

eM A R , rd C P U
0

fc C P U
1

ld P S W L
m x M A R 2, m x M A R 0,
ld M A R , d e c S P

hack
0

eM A R , rd C P U
0

fc C P U
1

PSW

1 5 ...8

hack
0

M D R<=M EM
0

fc C P U
1

7 ...0 < = M D R

M A R<=SP,
S P < = S P 1

hack
0

M D R<=M EM

PSW

56

m x M A R 2, m x M A R 0,
ld M A R , d e c S P

hack

RTI

fc C P U
1

<=M D R

ld P S W H

60
55
56
60
55
56
2793
2794
Slika 52 Izvravanje operacije (esnaesti deo)
2795! RTS !
2796! U korak stepB6 se dolazi iz step50 ukoliko signal operacije RTS ima vrednost 1 (slika 53). Pored toga u
2797korak stepB6 se dolazi i iz koraka stepB5 kada signal operacije RTI ima vrednost 1. U oba sluaja se u
2798koracima stepB6 do stepBE vrednou sa steka restaurira programski broja PC 15...0. Sa steka se najpre
2799skida mlai a zatim i stariji bajt registra PC15...0. Stoga se u koraku stepB6 vrednostima 1 signala
2800mxMAR2, mxMAR0 i ldMAR bloka bus sadraj registra SP150 bloka addr puta kroz multiplekser
2801MX1 i upisuje u registar MAR150. Pored toga se i vrednou 1 signala decSP dekrementira sadraj
2802registra SP150. itanje se realizuje u koracima stepB7 i stepB8 na isti naina kao to se to radi u
2803koracima step02 i step03 u kojima se ita prvi bajt instrukcije. Na kraju se u koraku step B9 vrednou 1
2804signala ldDWL sadraj registra MDR70 bloka bus upisuje u mlai bajt registra DW70 bloka bus.
2805Potom se u koraku stepBA vrednostima 1 signala mxMAR2, mxMAR0 i ldMAR sadraj registra SP150
2806proputa kroz multiplekser MX1 i upisuje u registar MAR 150. Pored toga se i vrednou 1 signala
2807decSP dekrementira sadraj registra SP150. itanje se realizuje u koracima stepBB i stepBC na isti naina
2808kao to se to radi u koracima stepB7 i stepB8 u kojima se ita mlai bajt. Na kraju se u koraku stepBD
2809vrednou 1 signala ldDWH sadraj registra MDR70 upisuje u stariji bajt registra DW158. Time je 162810to bitna vrednost skinuta sa steka i smetena u registar DW 150. Konano se u koraku stepBE sadraj
2811registra DW150 puta kroz multiplekser MX bloka fetch i vrednou 1 signala ldPC upisuje u registar
2812PC150 i bezuslovno prelazi na stepC0 i fazu opsluivanje prekida. !

87

86

2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824

stepB6 mxMAR2, mxMAR0, ldMAR, decSP;


stepB7 br (if hack then stepB7);
stepB8 eMAR, rdCPU,
br (if fcCPU then stepB8);
stepB9 ldDWL;
stepBA mxMAR2, mxMAR0, ldMAR, decSP;
stepBB br (if hack then stepBB);
stepBC eMAR, rdCPU,
br (if fcCPU then stepBC);
stepBD ldDWH;
stepBE ldPC,
br stepC0;
60

55

RTS

56

60

55

M A R<=SP,
S P < = S P 1

eM A R , rd C P U
0

fc C P U
1

=M D R

ld D W L
m x M A R 2, m x M A R 0,
ld M A R , d e c S P

hack
0

eM A R , rd C P U
0

fc C P U
1

D W

60

fc C P U
1

1 5 ...8 < = M D R

PC<=D W

2825
2826

hack
0

M D R<=M EM
0

fc C P U
1

7 ...0 <

M A R<=SP,
S P < = S P 1

hack
0

M D R<=M EM

D W

56

m x M A R 2, m x M A R 0,
ld M A R , d e c S P

hack

RTS

ld D W H
ld P C

1 5 ...0

56

60

56

Slika 53 Izvravanje operacije (sedamnaesti deo)

2827! Opsluivanje prekida !


2828! U korak stepC0 se dolazi koraka step06 ukoliko signal PRCOD ima vrednost 1, koraka step0D ukoliko
2829signal PRADR ima vrednost 1 i koraka step51, step52, ..., stepBE na zavretku faze izvravanje instrukcije
2830svake od instrukcija (slika 54). U koraku stepC0 se, u zavisnosti od toga da li signal prekid bloka intr
2831ima vrednost 0 ili 1, ili zavrava izvravanje tekue instrukcije i prelaskom na korak step00 zapoinje
2832faza itanje instrukcije sledee instrukcije ili se produava izvravanje tekue instrukcije i prelaskom na
2833korak stepC1 produava faza opsluivanje prekida tekue instrukcije. !
2834
stepC0 br (if prekid then step00);
2835! Opsluivanje prekida se sastoji iz dve grupe koraka u kojima se realizuje uvanje konteksta procesora
2836i skok na prekidnu rutinu. !

88

87

60

56

60

56

p re k id
1

SP<=SP+1

in c S P

M A R <=SP,
M D R < = P C 1 5 ...8

m x M A R 2, m x M A R 0,
ld M A R ,
m x M D R 2 , ld M D R

hack
0

e M A R ,e M D R ,w r C P U
0

fc C P U
1

fc C P U
1

SP<=SP+1

in c S P

M A R <=SP,
M D R < = P C 7 ...0

m x M A R 2, m x M A R 0,
ld M A R ,m x M D R 2,
m x M D R 0 , ld M D R

hack
0

hack
0

M EM <=M D R
0

hack
0

M EM <=M D R
0

p re k id

e M A R ,e M D R ,w r C P U
0

fc C P U
1

fc C P U
1

57
60
57
2837 6 0
2838
Slika 54 Opsluivanje prekida (prvi deo)
2839! uvanje konteksta procesora !
2840! Kontekst procesora i to PC150 i PSW150 se uva u koracima stepC1 do stepD0. U koracima stepC1 do
2841stepC8 se na stek stavlja programski broja PC 150. Na stek se stavlja prvo stariji a zatim i mlai bajt
2842registra PC150. Stoga se najpre u koraku stepC1 vrednou 1 signala incSP vri inkrementiranje registra
2843SP150 bloka addr. Zatim se u koraku stepC2 vrednostima 1 signala mxMAR2, mxMAR0 i ldMAR,
2844sadraj registra SP150 puta kroz multiplekser MX1 bloka bus i upisuje u registar MAR150 i
2845vrednostima 1 signala mxMDR2 i ldMDR sadraj starijeg bajta registra PC 158 puta kroz multiplekser
2846MX2 i upisuje u registar MDR70. Upis se realizuje u koracima stepC3 i stepC4 na isti naina kao to se
2847to radi u koracima step5C i step5D instrukcije STB. Potom se u koraku stepC5 vrednou 1 signala incSP
2848vri inkrementiranje registra SP150. Zatim se u koraku stepC6 vrednostima 1 signala mxMAR2,
2849mxMAR0 i ldMAR, sadraj registra SP150 puta kroz multiplekser MX1 bloka bus i upisuje u registar
2850MAR150 i vrednostima 1 signala mxMDR2, mxMDR0, ldMDR sadraj mlaeg bajta registra PC 70
2851puta kroz multiplekser MX2 i upisuje u registar MDR70. Upis se realizuje u koracima stepC7 i stepC8
2852na isti naina kao to se to radi u koracima stepC3 i stepC4 prilikom upisa starijeg bajta.!
2853
stepC1 incSP;
2854
stepC2 mxMAR2, mxMAR0, ldMAR, mxMDR2, ldMDR;
2855
stepC3 br (if hack then stepC3);
2856
stepC4 eMAR, eMDR, wrCPU,
2857
br (if fcCPU then stepC4);
2858
stepC5 incSP;
2859
stepC6 mxMAR2, mxMAR0, ldMAR, mxMDR2, mxMDR0, ldMDR;
2860
stepC7 br (if hack then stepC7);

89

88

2861
2862

stepC8 eMAR, eMDR, wrCPU,


br (if fcCPU then stepC8);
60

57

60

57

SP<=SP+1

in c S P

M A R <=SP,
M D R < = P S W 1 5 ...8

m x M A R 2, m x M A R 0,
ld M A R , m x M D R 2,
m x M D R 1 , ld M D R

hack

hack

M EM <=M D R
0

e M A R ,e M D R ,w r C P U
0

fc C P U

fc C P U

SP<=SP+1

in c S P

M A R <=SP,
M D R < = P S W 7 ...0

m x M A R 2, m x M A R 0,
ld M A R ,
m x M D R 2 ,m x M D R 1 ,
m x M D R 0 , ld M D R

hack

hack

M EM <=M D R
0

e M A R ,e M D R ,w r C P U
0

fc C P U

fc C P U

2863
2864

60

1
58

60

58

Slika 55 Opsluivanje prekida (drugi deo)

2865! U koracima stepC9 do stepD0 se na stek stavlja programska statusna re PSW 150 bloka exec (slika 55).
2866Na stek se stavlja prvo stariji a zatim i mlai bajt registra PSW 150. Stoga se najpre u koraku step C9
2867vrednou 1 signala incSP vri inkrementiranje registra SP150 bloka addr. Zatim se u koraku stepCA
2868vrednostima 1 signala mxMAR2, mxMAR0 i ldMAR, sadraj registra SP150 puta kroz multiplekser
2869MX1 bloka bus i upisuje u registar MAR150 i vrednostima 1 signala mxMDR2, mxMDR0 i ldMDR
2870sadraj starijeg bajta registra PSW158 puta kroz multiplekser MX2 bloka bus i upisuje u registar
2871MDR70. Upis se realizuje u koracima stepCB i stepCC na isti naina kao to se to radi u koracima step5C i
2872step5D instrukcije STB. Potom se u koraku step CD vrednou 1 signala incSP vri inkrementiranje
2873registra SP150. Zatim se u koraku stepCE vrednostima 1 signala mxMAR2, mxMAR0 i ldMAR, sadraj
2874registra SP150 puta kroz multiplekser MX1 i upisuje u registar MAR 150 i vrednostima 1 signala
2875mxMDR2, mxMDR1, mxMDR0, ldMDR sadraj mlaeg bajta registra PSW 70 puta kroz
2876multiplekser MX2 i upisuje u registar MDR70. Upis se realizuje u koracima stepCF i stepD0 na isti
2877naina kao to se to radi u koracima stepCB i stepCC prilikom upisa starijeg bajta. !

90

89

2878
stepC9 incSP;
2879
stepCA mxMAR2, mxMAR0, ldMAR, mxMDR2, mxMDR1, ldMDR;
2880
stepCB br (if hack then stepCB);
2881
stepCC eMAR, eMDR, wrCPU,
2882
br (if fcCPU then stepCC);
2883
stepCD incSP;
2884
stepCE mxMAR2, mxMAR0, ldMAR, mxMDR2, mxMDR1, mxMDR0, ldMDR;
2885
stepCF br (if hack then stepCF);
2886
stepD0 eMAR, eMDR, wrCPU,
2887
br (if fcCPU then stepD0);
2888! Skok na prekidnu rutinu !
2889! Skok na prekidnu rutinu se sastoji iz utvrivanja broja ulaza i utvrivanja adrese prekidne rutine. !
2890! Utvrivanje broja ulaza !
2891! U korak stepD1 se dolazi iz stepD0 (slika 56). U koracima stepD1 do stepDB se utvruje broj ulaza u
2892tabelu sa adresama prekidnih rutina i upisuje u registar BR 70 bloka intr. U ovim koracima se po
2893opadajuim prioritetima utvruje prekid najvieg prioriteta i za njega odreuje broj ulaza u tabelu sa
2894adresama prekidnih rutina. !
2895! Provera da li postoji zahtev za prekid zbog izvravanja instrukcije prekida INT. !
2896! U koraku stepD1 se vri provera da li signal PRINS bloka intr ima vrednost 1 ili 0 i prelazi na korak
2897stepD2 ili stepD3, respektivno. Ukoliko signal PRINS ima vrednost 1 jer postoji odgovarajui zahtev za
2898prekid, u koraku stepD2 se vrednostima 0 signala mxBR1 i mxBR0 bloka intr sadraj razreda IR2316,
2899koji sadri broj ulaza, puta kroz multiplekser MX bloka intr i vrednou 1 signala ldBR upisuje u
2900registar BR70. Istovremeno se vrednou 1 signala clPRINS bloka intr se flip-flop PRINS postavlja na
2901vrednost 0. Iz koraka stepD2 se prelazi na korak stepDC radi utvrivanja adrese prekidne rutine. !
2902
stepD1 br (if PRINS then stepD3);
2903
stepD2 ldBR, clPRINS,
2904
br stepDC;
2905! Provera da li postoji zahtev za prekid zbog greke u kodu operacije. !
2906! U koraku stepD3 se vri provera da li signal PRCOD bloka intr ima vrednost 1 ili 0 i prelazi na korak
2907stepD4 ili stepD5, respektivno. Ukoliko signal PRCOD ima vrednost 1 jer postoji odgovarajui zahtev za
2908prekid, u koraku stepD4 se vrednou 1 signala mxBR1 bloka intr sadraj UINT70 sa izlaza kodera
2909CD2, koji sadri broj ulaza, puta kroz multiplekser MX bloka intr i vrednou 1 signala ldBR upisuje
2910u registar BR70. Istovremeno se vrednou 1 signala clPRCOD bloka intr flip-flop PRCOD postavlja
2911na vrednost 0. Iz koraka stepD4 se prelazi na korak stepDC radi utvrivanja adrese prekidne rutine. !
2912
stepD3 br (if PRCOD then stepD5);
2913
stepD4 mxBR1, ldBR, clPRCOD,
2914
br stepDC;
2915! Provera da li postoji zahtev za prekid zbog greke u adresiranju. !
2916! U koraku stepD5 se vri provera da li signal PRADR bloka intr ima vrednost 1 ili 0 i prelazi na korak
2917stepD6 ili stepD7, respektivno. Ukoliko signal PRADR ima vrednost 1 jer postoji odgovarajui zahtev za
2918prekid, u koraku stepD6 se vrednou 1 signala mxBR1 bloka intr sadraj UINT70 sa izlaza kodera
2919CD2, koji sadri broj ulaza, puta kroz multiplekser MX bloka intr i vrednou 1 signala ldBR upisuje
2920u registar BR70. Istovremeno se vrednou 1 signala clPRADR bloka intr flip-flop PRADR postavlja
2921na vrednost 0. Iz koraka stepD6 se prelazi na korak stepDC radi utvrivanja adrese prekidne rutine. !
2922
stepD5 br (if PRADR then stepD7);
2923
stepD6 mxBR1, ldBR, clPRADR,
2924
br stepDC;

91

90

60

58

60

58

P R IN S
1

B R

7 ...0 < = I R 2 3 ...1 6 ,


P R IN S < = 0

ld B R ,
c lP R IN S

PR CO D
1

B R

m x B R 1, ld B R ,
c lP R C O D

m x B R 1, ld B R ,
c lP R A D R

< = U I N T 7 ...0 ,
P R IN M < = 0

m x B R 1, ld B R ,
c lP R IN M

7 ...0

2925
2926

92

60

p rin tr
1

B R 7 ...0 < = U E X T 7 ...0 ,


c a s e p r l 2 ...0
b e g in
0 : -,
1 : P R IN T R 1 < = 0 ,
2 : P R IN T R 2 < = 0 ,
3 : P R IN T R 3 < = 0 ,
4 : P R IN T R 1 < = 0 ,
5 : P R IN T R 2 < = 0 ,
6 : P R IN T R 2 < = 0 ,
7 : P R IN T R 3 < = 0
end,
P S W L 2 ...0 < = p r l 2 ...0

7 ...0 <

P R IN M
1

p rin tr

B R

PR A D R
1

7 ...0 < = U N I T 7 ...0 ,


PRA D R<=0

P R IN M
B R

PR CO D
1

7 ...0 < = U I N T 7 ...0 ,


PR CO D <=0

PR A D R
B R

P R IN S

= U IN T

m x B R 0, ld B R ,

c lIN T R ,

ld L

m x B R 1 , ld B R

7 ...0

59

60

Slika 56 Opsluivanje prekida (trei deo)

91

59

2927! Provera da li postoji spoljanji nemaskirajui zahtev za prekid. !


2928! U koraku stepD7 se vri provera da li signal PRINM bloka intr ima vrednost 1 ili 0 i prelazi na korak
2929stepD8 ili stepD9, respektivno. Ukoliko signal PRINM ima vrednost 1 jer postoji odgovarajui zahtev za
2930prekid, u koraku stepD8 se vrednou 1 signala mxBR1 bloka intr sadraj UINT70 sa izlaza kodera
2931CD2, koji sadri broj ulaza, puta kroz multiplekser MX bloka intr i vrednou 1 signala ldBR upisuje
2932u registar BR70. Istovremeno se vrednou 1 signala clPRINM bloka intr flip-flop PRINM postavlja
2933na vrednost 0. Iz koraka stepD8 se prelazi na korak stepDC radi utvrivanja adrese prekidne rutine. !
2934
stepD7 br (if PRINM then stepD9);
2935
stepD8 mxBR1, ldBR, clPRINM,
2936
br stepDC;
2937! Provera da li postoji spoljanji maskirajui zahtev za prekid. !
2938! U koraku stepD9 se vri provera da li signal printr bloka intr ima vrednost 1 ili 0 i prelazi na korak
2939stepDA ili stepDB, respektivno. Ukoliko signal printr ima vrednost 1 jer postoji odgovarajui zahtev za
2940prekid, u koraku stepDA se vrednou 1 signala mxBR0 bloka intr sadraj UEXT70 sa izlaza kodera
2941CD3, koji sadri broj ulaza, puta kroz multiplekser MX bloka intr i vrednou 1 signala ldBR upisuje
2942u registar BR70. Istovremeno se vrednou 1 signala clINTR bloka intr jedan od flip-flopova
2943PRINTR7 do PRINTR1 postavlja na vrednost 0. Flip-flop PRINTR 7 do PRINTR1 koji se postavlja na
2944vrednost 0 je selektovan binarnim vrednostima 7 do 1, respektivno, signala prl2 do prl0 bloka intr i
2945odgovara liniji najvieg nivoa prioriteta po kojoj je stigao spoljanji maskirajui zahtev za prekid koji
2946nije selektivno maskiran odgovarajuim razredom registra maske IMR. Pored toga vrednou 1 signala
2947ldL bloka exec se signali prl2 do prl0, koji predstavljaju binarnu vrednost nivoa prioriteta prekidne
2948rutine na koju se skae, upisuju u razrede PSWL2 do PSWL0 programske statusne rei PSW150 bloka
2949exec. Iz koraka stepDA se prelazi na korak stepDC radi utvrivanja adrese prekidne rutine. !
2950
stepD9 br (if printr then stepDB);
2951
stepDA mxBR0, ldBR, clINTR, ldL,
2952
br stepDC;
2953! Prekid posle svake instrukcije !
2954! U korak stepDB se dolazi iz stepD9 ukoliko signal printr ima vrednost 0. U ovaj korak se dolazi jedino
2955ukoliko se proverom signala prekid u koraku stepC0 utvruje da postoji barem jedan zahtev za prekid i
2956proverom signala PRINS, PRCOD, PRADR, PRINM i printr u koracima stepD1, stepD3, stepD5, stepD7
2957i stepD9 utvrdi da ovi signali imaju vrednost 0. To znai da jedino preostaje da signal prekid ima
2958vrednost 1 jer, zbog zadatog reima rada prekid posle svake instrukcije, signal PSWT ima vrednost 1.
2959Stoga se vrednou 1 signala mxBR1 bloka intr sadraj UINT70 sa izlaza kodera CD2, koji sadri broj
2960ulaza, puta kroz multiplekser MX i vrednou 1 signala ldBR upisuje u registar BR70. Iz koraka
2961stepDB se prelazi na korak stepDC radi utvrivanja adrese prekidne rutine. !
2962
stepDB mxBR1, ldBR;
2963! Utvrivanje adrese prekidne rutine !
2964! U koracima stepDC do stepE3 se na osnovu dobijenog broja ulaza i sadraja registra koji ukazuje na
2965poetnu adresu tabele sa adresama pekidnih rutina, iz odgovarajueg ulaza ita adresa prekidne rutine i
2966upisuje u programski broja PC 150 bloka fetch (slika 57). U koraku stepDC se, najpre, vrednostima 0
2967signala mxADDA1, mxADDA0, mxADDB1 i MXADDB0 bloka addr kroz multipleksere MX2 i MX3
2968na ulaze sabiraa ADD proputaju sadraj registra IVTP 15...0 i sadraj IVTDSP15...0 koji predstavlja
2969sadraj registra BR70 pomeren ulevo za jedno mesto i proiren nulama do duine 16 bita, pa se zatim
2970vrednostima 1 signala mxMAR2 i ldMAR bloka bus se sadraj ADD150 sa izlaza sabiraa ADD puta
2971kroz multiplekser MX1 bloka bus i upisuje u registar MAR15...0. Time se u registru MAR15...0 nalazi
2972adresa memorijske lokacije poev od koje treba proitati dva bajta koji predstavljaju stariji i mlai bajt
2973adrese prekidne rutine. itanje prvog bajta se realizuje u koracima step DD i stepDE, a drugog bajta u
2974koracima stepE0 i stepE1 na isti nain kao u koracima step02 i step03 kod itanja prvog bajta instrukcije. U
2975koraku stepDF se prvi bajt vrednou 1 signala ldDWH upisuje u stariji bajt registra DW158 bloka bus,
2976a vrednou 1 signala incMAR adresni registar MAR15...0 inkrementira na adresu sledeeg bajta. U
2977koraku stepE2 se drugi bajt vrednou 1 signala ldDWL upisuje u mlai bajt registra DW 70. Time se u
2978registru DW150 nalazi adresa prekidne rutine. Na kraju se u koraku step E3 vrednostima 0 signala
2979mxPC1 i mxPC0 sadraj registra DW150 puta kroz multiplekser MX1 bloka fetch i vrednou 1
2980signala ldPC upisuje u registar PC15...0. Time se u registru PC 15...0 nalazi adresa prve instrukcije prekidne
2981rutine. Vrednostima 1 signala clPSWI i clPSWT se u razrede PSWI i PSWT bloka exec upisuju

93

92

2982vrednosti 0. Time se u prekidnu rutinu ulazi sa reimom rada u kome su maskirani svi maskirajui
2983prekidi i u kome nema prekida posle svake instrukcije. Iz koraka stepE3 se bezuslovno prelazi na step00. !
2984
stepDC mxMAR2, ldMAR;
2985
stepDD br (if hack then stepDD);
2986
stepDE eMAR, rdCPU,
2987
br (if fcCPU then stepDE);
2988
stepDF ldDWH, incMAR;
2989
stepE0 br (if hack then stepE0);
2990
stepE1 eMAR, rdCPU,
2991
br (if fcCPU then stepE1);
2992
stepE2 ldDWL;
2993
stepE3 ldPC, clPSWI, clPSWT,
2994
br step00;
60

59

60

M A R<=
IV T P + IV T D S P

59

m x M A R 2, ld M A R

1 5 ...0

hack

hack

M D R <=M EM
0

eM A R , rd C P U
0

fc C P U

fc C P U

D W 1 5 ...8 < = M D R 7 ...0 ,


M A R <=M A R +1

ld D W H ,
in c M A R

hack

hack

M D R <=M EM
0

eM A R , rd C P U
0

fc C P U
1

D W

7 ...0 < = M D R

ld D W L

7 ...0

P C < = D W 1 5 ...0 ,
P S W I< = 0 ,
PSW T<=0

2995
2996

94

fc C P U

ld P C ,
c lP S W I,
c lP S W T

Slika 57 Opsluivanje prekida (etvrti deo)

93

2997
29984.1.2.3 Struktura upravljake jedinice
2999 U ovom odeljku se daje struktura upravljake jedinice oiene realizacije koja generie dve
3000vrste upravljakih signala i to upravljake signale blokova operacione jedinice oper i
3001upravljake signale upravljake jedinice uprav. Upravljaki signali blokova operacione jedinice
3002oper se koriste u blokovima operacione jedinice oper radi izvravanja mikrooperacija.
3003Upravljaki signali upravljake jedinice uprav se koriste u upravljakoj jedinici uprav radi
3004inkrementiranja brojaa koraka ili upisa nove vrednosti u broja koraka i radi generisanja
3005vrednosti za upis u broja koraka.
3006 Upravljaki signali operacione jedinice bi mogli da se generiu na osnovu sekvence
3007upravljakih signala po koracima (tabela 16). Za svaki upravljaki signal operacione jedinice
3008trebalo bi proi kroz sekvencu upravljakih signala po koracima, traiti korake u kojima se
3009pojavljuje dati signal i izraz za dati signal formirati kao uniju signala dekodovanih stanja
3010brojaa koraka koji odgovaraju koracima u kojima se pojavljuje dati signal.
3011 Upravljaki signali upravljake jedinice se ne mogu generisati na osnovu sekvence
3012upravljakih signala po koracima (tabela 16), jer se u njoj ne pojavljuju upravljaki signali
3013upravljake jedinice, ve samo iskazi za skokove. Zbog toga je potrebno na osnovu sekvence
3014upravljakih signala po koracima formirati sekvencu upravljakih signala za upravljaku
3015jedinicu oiene realizacije. U njoj treba da se pored upravljakih signala operacione jedinice
3016pojave i upravljaki signali upravljake jedinice neophodni za realizaciju bezuslovnih, uslovnih i
3017viestruih uslovnih skokova specificiranih iskazima za skokove. Prilikom njenog formiranja
3018primenjuje se razliiti postupak za upravljake signale operacione jedinice i za upravljake
3019signale upravljake jedinice.
3020 Za upravljake signale operacione jedinice treba u sekvenci upravljakih signala za
3021upravljaku jedinicu oiene realizacije staviti iskaze za signale onako kako se javljaju u
3022sekvenci upravljakih signala po koracima.
3023 Za upravljake signale upravljake jedinice treba u sekvenci upravljakih signala po
3024koracima traiti iskaze: br stepA, br (if uslov then stepA) i br (case (uslov1, ..., uslovn) then
3025(uslov1, stepA1), ..., (uslovn, stepAn).
3026 Umesto iskaza br stepA treba u sekvenci upravljakih signala za upravljaku jedinicu oiene
3027realizacije staviti signal bezuslovnog skoka koji odreuje da se bezuslovno prelazi na korak
3028stepA i signal valA koji odreuje da treba formirati binarnu vrednost A za upis u broja koraka.
3029Simbolika oznaka signala bezuslovnog skoka je bruncnd. Koraci stepi u kojima se bezuslovni
3030skokovi javljaju, koraci stepA na koje se bezuslovno skae, simbolike oznake signala valA i
3031vrednosti A u heksadecimalnom dati su u tabeli 17.

95

94

3032

Tabela 17 Koraci stepi, stepA, signali valA i vrednosti A za bezuslovne skokove


stepi
step06
step0D
step18
step23
step24
step26
step28
step31
step33
step36
step3B
step40
step42
step43
step51
step52
step53
step54
step55
step56
step58
step59
step5E
step5F
step67
step68
step6E
step78
step7D

stepA
stepC0
stepC0
step20
step50
step50
step38
step38
step38
step38
step38
step50
step50
step50
step50
stepC0
step00
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0

valA
valC0
valC0
val20
val50
val50
val38
val38
val38
val38
val38
val50
val50
val50
val50
valC0
val00
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0

A
C0
C0
20
50
50
38
38
38
38
38
50
50
50
50
C0
00
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0

stepi
step86
step87
step88
step89
step8A
step8B
step8C
step8E
step90
step92
step94
step96
step98
step9A
step9C
step9E
stepA0
stepA2
stepA3
stepA4
stepAD
stepBE
stepD2
stepD4
stepD6
stepD8
stepDA
stepE3

stepA
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepDC
stepDC
stepD8
stepD8
stepD8
step00

valA
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valC0
valDC
valDC
valDC
valDC
valDC
val00

A
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
DC
DC
DC
DC
DC
00

3033 Umesto iskaza br (if uslov then stepA) treba u sekvenci upravljakih signala za upravljaku
3034jedinicu oiene realizacije staviti signal uslovnog skoka pridruen signalu uslov koji treba da
3035ima vrednost 1 da bi se realizovao prelaz na korak stepA i signal valA koji odreuje da treba
3036formirati binarnu vrednost A za upis u broja koraka u sluaju da signal uslov ima vrednost 1.
3037Simbolike oznake signala uslovnih skokova i signala uslova za sve iskaze ovog tipa koji se
3038javljaju u sekvenci upravljakih signala po koracima, dati su u tabeli 18. Koraci stepi u kojima
3039se uslovni skokovi javljaju, signali uslova uslov, koraci stepA na koje se uslovno skae,
3040simbolike oznake signala valA i vrednosti A u heksadecimalnom dati su u tabeli 19.
3041

Tabela 18 Signali uslovnih skokova i signali uslova


signal uslovnog skoka
brnotSTART
brhack
brnotfcCPU
brnotgropr
brl1
brnotgradr
brl2_brnch
brl2_arlog
brl3_jump
brl3_arlog

3042
3043

START
hack
fcCPU
gropr

l1
gradr

l2_brnch
l2_arlog
l3_jump
l3_arlog

signal uslova
store
LDW
dirreg
brpom
prekid

PRINS
PRCOD

PRADR
PRINM
printr

Tabela 19 Koraci stepi, uslovi uslov, koraci stepA,


signali valA i vrednosti A za uslovne skokove
stepi

96

signal uslovnog
skoka
brstore
brLDW
brdirreg
brnotbrpom
brnotprekid
brnotPRINS
brnotPRCOD
brnotPRADR
brnotPRINM
brnotprintr

signal uslova

uslov

stepA

valA

stepi

95

uslov

stepA

valA

step00
step02
step03
step05
step07
step09
step0A
step0C
step0E
step0F
step11
step12
step13
step14
step16
step17
step21
step22
step25
step27
step2A
step2B
step2D
step2E
step30
step32
step35
step37
step38
step39
step3A
step3D
step3E
step41
step5A
step5C
step5D
step60
step62
step63
step65
step66
step6A

step00
step02
step03
gropr
step07
l1
step50
hack
step09
fcCPU step0A
gradr
step0E
l2_brnch step50
l2_arlog step20
hack
step11
step
12
fcCPU
l3_jump step50
l3_arlog step20
hack
step16
fcCPU step17
store
step50
LDW
step24
store
step50
store
step50
hack
step2A
fcCPU step2B
hack
step2D
fcCPU step2E
store
step50
store
step50
store
step50
store
step50
hack
step38
fcCPU step39
LDW
step3C
hack
step3D
fcCPU step3E
LDW
step43
dirreg
step5F
hack
step5C
fcCPU step5D
dirreg
step68
hack
step62
fcCPU step63
hack
step65
fcCPU step66
hack
step6A
START
hack
fcCPU

val00
val02
val03
val07
val50
val09
val0A
val0E
val50
val20
val11
val12
val50
val20
val16
val17
val50
val24
val50
val50
val2A
val2B
val2D
val2E
val50
val50
val50
val50
val38
val38
val3C
val3D
val3E
val43
val5F
val5C
val5D
val68
val62
val63
val65
val66
val6A

00
02
03
07
50
09
0A
0E
50
20
11
12
50
20
16
17
50
24
50
50
2A
2B
2D
2E
50
50
50
50
38
39
3C
3D
3E
43
5F
5C
5D
68
62
63
65
66
6A

step6B
step70
step71
step74
step75
step7B
step7C
step80
step81
step84
step85
stepA1
stepA7
stepA8
stepAB
stepAC
stepAF
stepB0
stepB3
stepB4
stepB7
stepB8
stepBB
stepBC
stepC0
stepC3
stepC4
stepC7
stepC8
stepCB
stepCC
stepCF
stepD0
stepD1
stepD3
stepD5
stepD7
stepD9
stepDD
stepDE
stepE0
stepE1

step6B
step70
fcCPU step71
hack
step74
fcCPU step75
hack
step7B
fcCPU step7C
hack
step80
fcCPU step81
hack
step84
fcCPU step85
brpom stepC0
hack
stepA7
fcCPU stepA8
hack
stepAB
fcCPU stepAC
hack
stepAF
fcCPU stepB0
hack
stepB3
fcCPU stepB4
hack
stepB7
fcCPU stepB8
hack
stepBB
fcCPU stepBC
prekid step00
hack
stepC3
fcCPU stepC4
hack
stepC7
fcCPU stepC8
hack
stepCB
fcCPU stepCC
hack
stepCF
fcCPU stepD0
PRINS stepD3
PRCOD stepD5
PRADR stepD7
PRINM stepD9
printr stepDB
hack
stepDD
fcCPU stepDE
hack
stepE0
fcCPU stepE1
fcCPU

hack

val6B
val70
val71
val74
val75
val7B
val7C
val80
val81
val84
val85
valC0
valA7
valA8
valAB
valAC
valAF
valB0
valB3
valB4
valB7
valB8
valBB
valBC
val00
valC3
valC4
valC7
valC8
valCB
valCC
valCF
valD0
valD3
valD5
valD7
valD9
valDB
valDD
valDE
valE0
valE1

6B
70
71
74
75
7B
7C
80
81
84
85
C0
A7
A8
AB
AC
AF
B0
B3
B4
B7
B8
BB
BC
00
C3
C4
C7
C8
CB
CC
CF
D0
D3
D5
D7
D9
DB
DD
DE
E0
E1

3044
Umesto iskaza br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn) treba
3045u sekvenci upravljakih signala za upravljaku jedinicu oiene realizacije staviti signal
3046viestrukog uslovnog skoka pridruen signalima uslov1, uslov2,..., uslovn od kojih jedan treba
3047da ima vrednost 1 da bi se realizovao prelazak na jedan od koraka step A1, stepA2, ..., stepAn.
3048Koraci stepi u kojima se viestruki uslovni skokovi javljaju i simbolike oznake pridruenih
3049signala viestrukih uslovnih skokova za sve korake ovog tipa koji se javljaju u sekvenci
3050upravljakih signala po koracima dati su u tabeli 20. Signali uslova uslov1, uslov2,..., uslovn,
3051koraci stepA1, stepA2, ..., stepAn na koje se uslovno skae i vrednosti A1, A2, ..., An u
3052heksadecimalnom koje treba da se upiu u broja koraka u zavisnosti od toga koji od signala

97

96

3053uslova uslov1, uslov2,..., uslovn ima vrednost 1 za viestruke uslovne skokove u koracima
3054step20 i step50 dati su tabelama 21 i 22.
3055 Tabela 20 Koraci sa viestrukim uslovnim skokovima i signali viestrukih uslovnih skokova
stepi
step20
step50

3056
3057

Tabela 21 Signali uslova, koraci na koje se skae i vrednosti za upis u broja koraka za
viestruki uslovni skok u koraku step20
uslov
regdir
regind
memdir
memind
regindpom
bxpom
pcpom
imm

3058
3059

signal
bradr
bropr

stepA
step21
step25
step27
step29
step32
step34
step37
step41

Tabela 22 Signali uslova, koraci na koje se skae i vrednosti za upis u broja koraka za
viestruki uslovni skok u koraku step50
uslov
NOP
HALT
INTD
INTE
TRPD
TRPE
LDB
LDW
STB
STW
POPB
POPW
PUSHB
PUSHW
LDIVTP
STIVTP
LDIMR
STIMR
LDSP
STSP
ADD

stepA
step51
step52
step53
step54
step55
step56
step57
step59
step5A
step60
step69
step6F
step79
step7E
step87
step88
step89
step8A
step8B
step8C
step8D

A
51
52
53
54
55
56
57
59
5A
60
69
6F
79
7E
87
88
89
8A
8B
8C
8D

uslov
SUB
INC
DEC
AND
OR
XOR
NOT
ASR
LSR
ROR
RORC
ASL
LSL
ROL
ROLC
BEQL
BNEQ
BNEG
BNNEG
BOVF
BNOVF

stepA
ste8F
step91
step93
step95
step97
step99
step9B
step9D
step9D
step9D
step9D
step9F
step9F
step9F
step9F
stepA1
stepA1
stepA1
stepA1
stepA1
stepA1

3060

98

A
21
25
27
29
32
34
37
41

97

A
8F
91
93
95
97
99
9B
9D
9D
9D
9D
9F
9F
9F
9F
A1
A1
A1
A1
A1
A1

uslov
BCAR
BNCAR
BGRT
BGRE
BLSS
BLSSE
BGRT
BGRE
BLSS
BLSSE
BGRTU
BGRTEU
BLSSU
BLSSEU
JMP
INT
JSR
RTI
RTS

stepA
stepA1
stepA1
stepA1
stepA1
stepA1
stepA1
stepA1
stepA1
stepA1
stepA1
stepA1
stepA1
stepA1
stepA1
stepA3
stepA4

stepA5
stepAE
stepB6

A
A1
A1
A1
A1
A1
A1
A1
A1
A1
A1
A1
A1
A1
A1
A3
A4
A5
AE
B6

3061
3062 Iz izloenog se vidi da su upravljaki signali za upravljaku jedinicu oiene realizacije
3063signal bezuslovnog skoka bruncnd, signali uslovnih skokova (tabela 18) i viestrukih uslovnih
3064skokova (tabela 20) i signali valA za bezuslovne (tabela 17) i uslovne (tabela 19) skokove.
3065 Po opisanom postupku je, na osnovu sekvence upravljakih signala po koracima (tabela 16),
3066formirana sekvenca upravljakih signala za upravljaku jedinicu oiene realizacije (tabela 23).
3067Jedna linija u toj sekvenci ima sledeu formu: na levoj strani nalazi se signal dekodovanog
3068stanja brojaa koraka, u sredini je niz upravljakih signala operacione i upravljake jedinice koji
3069imaju vrednost 1 kada dati signal dekodovanog stanja brojaa koraka ima vrednost 1, dok
3070komentar, tamo gde postoji, poinje usklinikom (!) i protee se do sledeeg usklinika (!).
3071 Upravljaki signali operacione jedinice i upravljake jedinice se generiu na identian nain
3072na osnovu sekvence upravljakih za upravljaku jedinicu oiene realizacije (tabela 23). Za
3073svaki upravljaki signal operacione jedinice i upravljake jedinice treba proi kroz sekvencu
3074upravljakih signala po koracima i traiti korake u kojima se pojavljuje dati signal i izraz za dati
3075signal formirati kao uniju signala dekodovanih stanja brojaa koraka koji odgovaraju koracima
3076u kojima se pojavljuje dati signal.
3077

Tabela 23 Sekvenca upravljakih signala za upravljaku jedinicu oiene realizacije

3078! itanje instrukcije !


3079
T00
brnotSTART, val00;
3080
T01
ldMAR, incPC;
3081
T02
brhack, val02;
3082
T03
eMAR, rdCPU,
3083
brnotfcCPU, val03;
3084
T04
ldIR0;
3085
T05
brnotgropr, val07;
3086
T06
stPRCOD,
3087
bruncnd, valC0;
3088
T07
brl1, val50;
3089
T08
ldMAR, incPC;
3090
T09
brhack,val09;
3091
T0A
eMAR, rdCPU,
3092
brnotfcCPU, val0A;
3093
T0B
ldIR1, ldGPRADR;
3094
T0C
brnotgradr, val0E;
3095
T0D
stPRADR,
3096
bruncnd, valC0;
3097
T0E
brl2_brnch, val50;
3098
T0F
brl2_arlog, val20;
3099
T10
ldMAR, incPC;
3100
T11
brhack, val11;
3101
T12
eMAR, rdCPU,
3102
brnotfcCPU, val12;
3103
T13
ldIR2,
3104
brl3_jump, val50;
3105
T14
brl3_arlog, val20;
3106
T15
ldMAR, incPC;
3107
T16
brhack, val16;
3108
T17
eMAR, rdCPU,
3109
brnotfcCPU, val17;
3110
T18
ldIR3,
3111
bruncnd, val20;
3112! Formiranje adrese operanda !
3113
T20
bradr;
3114! Registarsko direktno adresiranje !
3115
T21
brstore, val50;

99

98

3116
T22
brLDW, val24;
3117
T23
ldBB,
3118
bruncnd, val50;
3119
T24
ldBW,
3120
bruncnd, val50;
3121! Registarsko indirektno adresiranje !
3122
T25
mxMAR0, ldMAR,
3123
brstore, val50;
3124
T26
bruncnd, val38;
3125! Memorijsko direktno adresiranje !
3126
T27
mxMAR1, ldMAR,
3127
brstore, val50;
3128
T28
bruncnd, val38;
3129! Memorijsko indirektno adresiranje !
3130
T29
mxMAR1, ldMAR;
3131
T2A
brhack, val2A;
3132
T2B
eMAR, rdCPU,
3133
brnotfcCPU, val2B;
3134
T2C
ldDWH, incMAR;
3135
T2D
brhack, val2D;
3136
T2E
eMAR, rdCPU,
3137
brnotfcCPU, val2E;
3138
T2F
ldDWL;
3139
T30
mxMAR1, mxMAR0, ldMAR,
3140
brstore, val50;
3141
T31
bruncnd, val38;
3142! Registarsko indirektno sa pomerajem adresiranje!
3143
T32
mxADDA0, mxADDB0, mxMAR2, ldMAR,
3144
brstore, val50;
3145
T33
bruncnd, val38;
3146! Bazno indeksno sa pomerajem adresiranje!
3147
T34
mxADDA0, mxADDB0, ldCW, incGPRAR;
3148
T35
mxADDA1, mxADDA0, mxADDB1, mxMAR2, ldMAR,
3149
brstore, val50;
3150
T36
bruncnd, val38;
3151! PC relativno sa pomerajem adresiranje !
3152
T37
mxADDA1, mxADDB0, mxMAR2, ldMAR,
3153
brstore, val50;
3154! itanje operanda !
3155
T38
brhack, val38;
3156
T39
eMAR, rdCPU,
3157
brnotfcCPU, val39;
3158
T3A
brLDW, val3C;
3159
T3B
mxBB0, ldBB,
3160
bruncnd, val50;
3161
T3C
ldDWH, incMAR;
3162
T3D
brhack, val3D;
3163
T3E
eMAR, rdCPU,
3164
brnotfcCPU, val3E;
3165
T3F
ldDWL;
3166
T40
mxBW0, ldBW,
3167
bruncnd, val50;
3168! Neposredno adresiranje !
3169
T41
brLDW, val43;
3170
T42
mxBB1, ldBB,
3171
bruncnd, val50;
3172
T43
mxBW1, ldBW,
3173
bruncnd, val50;
3174! Izvravanje operacije !
3175
T50
bropr;
3176! NOP !
3177
T51
bruncnd, valC0;

100

99

3178! HALT !
3179
T52
3180
3181! INTD !
3182
T53
3183
3184! INTE !
3185
T54
3186
3187! TRPD !
3188
T55
3189
3190! TRPE !
3191
T56
3192
3193! LDB !
3194
T57
3195
T58
3196
3197! LDW !
3198
T59
3199
3200! STB !
3201
T5A
3202
T5B
3203
T5C
3204
T5D
3205
3206
T5E
3207
T5F
3208
3209! STW !
3210
T60
3211
T61
3212
T62
3213
T63
3214
3215
T64
3216
T65
3217
T66
3218
3219
T67
3220
T68
3221

101

clSTART,
bruncnd, val00;
clPSWI,
bruncnd, valC0;
stPSWI,
bruncnd, valC0;
clPSWT,
bruncnd, valC0;
stPSWT,
bruncnd, valC0;
mxAB, ldAB;
ldN, ldZ, ldC, ldV,
bruncnd, valC0;
ldAW,
bruncnd, valC0;
brdirreg, val5F;
mxMDR0, ldMDR;
brhack, val5C;
eMAR, eMDR, wrCPU,
brnotfcCPU, val5D;
bruncnd, valC0;
wrGPR,
bruncnd, valC0;
brdirreg, val68;
mxMDR1, ldMDR;
brhack, val62;
eMAR, eMDR, wrCPU,
brnotfcCPU, val63;
mxMDR1, mxMDR0, ldMDR, incMAR;
brhack, val65;
eMAR, eMDR, wrCPU,
brnotfcCPU, val66;
bruncnd, valC0;
mxGPR, wrGPR,
bruncnd, valC0;

100

3222! POPB !
3223
T69
3224
T6A
3225
T6B
3226
3227
T6C
3228
T6D
3229
T6E
3230
3231! POPW !
3232
T6F
3233
T70
3234
T71
3235
3236
T72
3237
T73
3238
T74
3239
T75
3240
3241
T76
3242
T77
3243
T78
3244
3245! PUSHB !
3246
T79
3247
T7A
3248
T7B
3249
T7C
3250
3251
T7D
3252! PUSHW !
3253
T7E
3254
T7F
3255
T80
3256
T81
3257
3258
T82
3259
T83
3260
T84
3261
T85
3262
3263
T86
3264! LDIVTP !
3265
T87
3266
3267! STIVTP !
3268
T88
3269
3270! LDIMR !
3271
T89
3272
3273! STIMR !
3274
T8A
3275
3276! LDSP !
3277
T8B
3278

102

mxMAR2, mxMAR0, ldMAR, decSP;


brhack, val6A;
eMAR, rdCPU,
brnotfcCPU, val6B;
mxBB0, ldBB;
mxAB, ldAB;
ldN, ldZ, ldC, ldV,
bruncnd, valC0;
mxMAR2, mxMAR0, ldMAR, decSP;
brhack, val70;
eMAR, rdCPU,
brnotfcCPU, val71;
ldDWL;
mxMAR2, mxMAR0, ldMAR, decSP;
brhack, val74;
eMAR, rdCPU,
brnotfcCPU, val75;
ldDWH;
mxBW0, ldBW;
ldAW,
bruncnd, valC0;
incSP;
mxMAR2, mxMAR0, ldMAR, mxMDR0, ldMDR;
brhack, val7B;
eMAR, eMDR, wrCPU,
brnotfcCPU, val7C;
bruncnd, valC0;
incSP;
mxMAR2, mxMAR0, ldMAR, mxMDR1, ldMDR;
brhack, val80;
eMAR, eMDR, wrCPU,
brnotfcCPU, val81;
incSP;
mxMAR2, mxMAR0, ldMAR, mxMDR1, mxMDR0, ldMDR;
brhack, val84;
eMAR, eMDR, wrCPU,
brnotfcCPU, val85;
bruncnd, valC0;
mxAW1, ldAW,
bruncnd, valC0;
ldIVTP,
bruncnd, valC0;
mxAW1, mxAW0, ldAW,
bruncnd, valC0;
ldIMR,
bruncnd, valC0;
mxAW0, ldAW,
bruncnd, valC0;

101

3279! STSP !
3280
T8C
3281
3282! ADD !
3283
T8D
3284
T8E
3285

ldSP,
bruncnd, valC0;
add, ldAB, ldC, ldV;
ldN, ldZ,
bruncnd, valC0;

3286! SUB !
3287
T8F
sub, ldAB, ldC, ldV;
3288
T90
ldN, ldZ,
3289
bruncnd, valC0;
3290! INC !
3291
T91
inc, ldAB, ldC, ldV;
3292
T92
ldN, ldZ,
3293
bruncnd, valC0;
3294! DEC !
3295
T93
dec, ldAB, ldC, ldV;
3296
T94
ldN, ldZ,
3297
bruncnd, valC0;
3298! AND !
3299
T95
and, ldAB;
3300
T96
ldN, ldZ, ldC, ldV,
3301
bruncnd, valC0;
3302! OR !
3303
T97
or, ldAB;
3304
T98
ldN, ldZ, ldC, ldV,
3305
bruncnd, valC0;
3306! XOR !
3307
T99
xor, ldAB;
3308
T9A
ldN, ldZ, ldC, ldV,
3309
bruncnd, valC0;
3310! NOT !
3311
T9B
not, ldAB;
3312
T9C
ldN, ldZ, ldC, ldV,
3313
bruncnd, valC0;
3314! ASR, LSR, ROR i ROLC !
3315
T9D
shr, ldC;
3316
T9E
ldN, ldZ, ldV,
3317
bruncnd, valC0;
3318! ASL, LSL, ROL i ROLC !
3319
T9F
shl, ldC;
3320
TA0
ldN, ldZ, ldV,
3321
bruncnd, valC0;
3322! BEQL,, BLSSEU !
3323
TA1
brnotbrpom, valC0;
3324
TA2
mxADDA1, mxADDB1, mxADDB0, mxPC0, ldPC,
3325
bruncnd, valC0;
3326! JMP !
3327
TA3
mxPC1, ldPC,
3328
bruncnd, valC0;
3329! INT !
3330
TA4
stPRINS,
3331
bruncnd, valC0;

103

102

3332! JSR !
3333
3334
3335
3336
3337
3338

3339
3340
3341
3342
3343

TA5
TA6
TA7
TA8
TA9

TAA
TAB
TAC
TAD

incSP;
mxMAR2, mxMAR0, ldMAR, mxMDR2, ldMDR;
brhack, valA7;
eMAR, eMDR, wrCPU,
brnotfcCPU, valA8;
incSP;

mxMAR2, mxMAR0, ldMAR, mxMDR2, mxMDR0, ldMDR;


brhack, valAB;
eMAR, eMDR, wrCPU,
brnotfcCPU, valAC;
mxPC1, ldPC,

3344
bruncnd, valC0;
3345! RTI !
3346
TAE
mxMAR2, mxMAR0, ldMAR, decSP;
3347
TAF
brhack, valAF;
3348
TB0
eMAR, rdCPU,
3349
brnotfcCPU, valB0;
3350
TB1
ldPSWL;
3351
TB2
mxMAR2, mxMAR0, ldMAR, decSP;
3352
TB3
brhack, valB3;
3353
TB4
eMAR, rdCPU,
3354
brnotfcCPU, valB4;
3355
TB5
ldPSWH;
3356! RTS !
3357
TB6
mxMAR2, mxMAR0, ldMAR, decSP;
3358
TB7
brhack, valB7;
3359
TB8
eMAR, rdCPU,
3360
brnotfcCPU, valB8;
3361
TB9
ldDWL;
3362
TBA
mxMAR2, mxMAR0, ldMAR, decSP;
3363
TBB
brhack, valBB;
3364
TBC
eMAR, rdCPU,
3365
brnotfcCPU, valBC;
3366
TBD
ldDWH;
3367
TBE
ldPC,
3368
bruncnd, valC0;
3369! Opsluivanje prekida !
3370
TC0
brnotprekid, val00;
3371! uvanje konteksta procesora !
3372
TC1
incSP;
3373
TC2
mxMAR2, mxMAR0, ldMAR, mxMDR2, ldMDR;
3374
TC3
brhack, valC3;
3375
TC4
eMAR, eMDR, wrCPU,
3376
brnotfcCPU, valC4;
3377
TC5
incSP;
3378
TC6
mxMAR2, mxMAR0, ldMAR, mxMDR2, mxMDR0, ldMDR;
3379
TC7
brhack, valC7;
3380
TC8
eMAR, eMDR, wrCPU,
3381
brnotfcCPU, valC8;
3382
TC9
incSP;
3383
TCA
mxMAR2, mxMAR0, ldMAR, mxMDR2, mxMDR1, ldMDR;
3384
TCB
brhack, valCB;
3385
TCC
eMAR, eMDR, wrCPU,
3386
brnotfcCPU, valCC;
3387
TCD
incSP;
3388
TCE
mxMAR2, mxMAR0, ldMAR, mxMDR2, mxMDR1, mxMDR0, ldMDR;
3389
TCF
brhack, valCF;
3390
TD0
eMAR, eMDR, wrCPU,
3391
brnotfcCPU, valD0;
3392! Skok na prekidnu rutinu !
3393! Utvrivanje broja ulaza !

104

103

3394! Provera da li postoji zahtev za prekid zbog izvravanja instrukcije prekida INT. !
3395
TD1
brnotPRINS, valD3;
3396
TD2
ldBR, clPRINS,
3397
bruncnd, valDC;
3398! Provera da li postoji zahtev za prekid zbog greke u kodu operacije. !
3399
TD3
brnotPRCOD, valD5;
3400
TD4
mxBR1, ldBR, clPRCOD,
3401
bruncnd, valDC;
3402! Provera da li postoji zahtev za prekid zbog greke u adresiranju. !
3403
TD5
brnotPRADR, valD7;
3404
TD6
mxBR1, ldBR, clPRADR,
3405
bruncnd, valDC;
3406! Provera da li postoji spoljanji nemaskirajui zahtev za prekid. !
3407
TD7
brnotPRINM, valD9;
3408
TD8
mxBR1, ldBR, clPRINM,
3409
bruncnd, valDC;
3410! Provera da li postoji spoljanji maskirajui zahtev za prekid. !
3411
TD9
brnotprintr, valDB;
3412
TDA
mxBR0, ldBR, clINTR, ldL,
3413
bruncnd, valDC;
3414! Prekid posle svake instrukcije !
3415
TDB
mxBR1, ldBR;
3416! Utvrivanje adrese prekidne rutine !
3417
TDC
mxMAR2, ldMAR;
3418
TDD
brhack, valDD;
3419
TDE
eMAR, rdCPU,
3420
brnotfcCPU, valDE;
3421
TDF
ldDWH, incMAR;
3422
TE0
brhack, valE0;
3423
TE1
eMAR, rdCPU,
3424
brnotfcCPU, valE1;
3425
TE2
ldDWL;
3426
TE3
ldPC, clPSWI, clPSWT,
3427
bruncnd, val00;

3428 Upravljaka jedinica oiene realizacije se sastoji iz sledeih blokova: blok generisanje nove
3429vrednosti brojaa koraka, blok broja koraka, blok dekoder koraka i blok generisanje
3430upravljakih signala (slika 58). Struktura i opis blokova upravljake jedinice se daju u daljem
3431tekstu.

105

104

K M O PR

B 6

21 25


8 o p r 7 ...0

M P

valE1
...

K M A D R

41


8 a d r 7 ...0

0 S

val00
val02

RTS

...

...
51 52

imm

regdir
regind

s ig n a li lo g i k ih u s lo v a

NOP
HALT

s ig n a li lo g i k ih u s lo v a

00 02

K M B R

E1


8 b r 7 ...0
g e n e r is a n je n o v e
v r e d n o s ti b r o ja a
koraka

b rad r
b ro p r

8
LD

C N T

C LK

FF

IN C

CN T
D C
...

b rad r
b ro p r
b ru n cn d
b rcn d

ld
in c

b r o ja k o r a k a

7 ..0

T
T
...
E 3
256

d eko der koraka


00

228

...
...

b rp o m
p re k id
...

...

l1

LD W

...

signali logikih uslova

g ro p r

g e n e ris a n je
u p ra v lja k ih
s ig n a la
u p ra v lja k e
je d in ic e

...

g e n e ris a n je
u p ra v lja k ih
s ig n a la
b lo k o v a
o p e ra c io n e
je d in ic e

d irre g
...

STA RT
hack
fc C P U


signali logikih uslova

228

3432
3433

valE1

bradr
bropr
bruncnd
brcnd
val00
val02

blok intr

blok exec

blok addr

blok fetch

blok bus

...

g e n e r is a n je
u p r a v lja k ih
s ig n a la

Slika 58 Struktura upravljake jedinice

3434 Blok generisanje nove vrednosti brojaa koraka se sastoji od kombinacionih mrea
3435KMOPR, KMADR i KMBR sa multiplekserom MP i slui za generisanje i selekciju vrednosti
3436koju treba upisati u broja koraka CNT7...0. Potreba za ovim se javlja kada treba odstupiti od
3437sekvencijalnog izvravanja mikrooperacija. Vrednosti koje treba upisati u broja koraka
3438generiu se na tri naina i to pomou: kombinacione mree KMOPR koja formira signale
3439opr7...0, kombinacione mree KMADR koja formira signale adr7...0 i kombinacione mree
3440KMBR koja formira signale br7...0. Selekcija jedne od tri grupe signala koji daju novu vrednost
3441brojaa koraka obezbeuje se signalima bropr i bradr i to signali opr7...0 ako signal bropr ima
3442vrednost 1, signali adr7...0 ako signal bradr ima vrednost 1 i signali br7...0 ako oba signala bropr
3443i bradr imaju vrednost 0.
3444 Kombinacionom mreom KMOPR generiu se vrednosti (tabela 22) za realizaciju
3445viestrukog uslovnog skoka u koraku step 50 sekvence upravljakih signala po koracima. U

106

105

3446zavisnosti od toga koji od signala NOP, , RTS ima vrednost 1 zavisi koja e od vrednosti iz
3447tabele 22 da se pojavi tada na linijama op7...0. S obzirom da vrednost 1 signala dekovanog stanje
3448brojaa koraka T50 daje vrednost 1 signala viestrukog uslovnog skoka bropr, vrednost na
3449linijama op7...0 prolazi tada kroz multiplekser MP i pojavljuje se na ulazima brojaa koraka
3450CNT7...0.
3451 Kombinacionom mreom KMADR generiu se vrednosti (tabela 21) za realizaciju
3452viestrukog uslovnog skoka u koraku step 20 sekvence upravljakih signala po koracima. U
3453zavisnosti od toga koji od signala regdir,..., imm ima vrednost 1 zavisi koja e od vrednosti iz
3454tabele 21 da se pojavi tada na linijama adr7...0. S obzirom da vrednost 1 signala dekodovanog
3455stanja brojaa koraka T20 daje vrednost 1 signala viestrukog uslovnog skoka bradr, vrednost
3456na linijama adr7...0 prolazi tada kroz multiplekser MP i pojavljuje se na ulazima brojaa koraka
3457CNT7...0.
3458 Kombinacionom mreom KMBR generiu se vrednosti za upis u broja koraka CNT 7...0 za
3459bezuslovne skokove (tabela 17) i uslovne skokove (tabela 19) u sekvenci upravljakih signala
3460po koracima. U zavisnosti od toga koji od signala val00, val02, ..., valE1 ima vrednost 1 zavisi
3461koja e od vrednosti iz tabela 17 i 19 tada da se pojavi na linijama br7...0. Signali viestrukih
3462uslovnih skokova bropr i bradr imaju vrednost 1 samo pri vrednostima 1 signala dekodovanih
3463stanja brojaa koraka T50 i T20, respektivno, dok u svim ostalim situacijama imaju vrednost 0. S
3464obzirom da ni jedan od ova dva signala nema vrednost 1 u stanjima brojaa koraka kada treba
3465realizovati bezuslovni ili neki od uslovnih skokova, vrednost na linijama br7...0 prolazi tada kroz
3466multiplekser MP i pojavljuje se na ulazima brojaa koraka CNT7...0.
3467 Blok broja koraka sadri broja CNT7...0. Broja CNT7...0 svojom trenutnom vrednou
3468odreuje koji e upravljaki signali da imaju vrednost 1. Broja CNT7...0 moe da radi u
3469sledeim reimima: reim inkrementiranja i reim skoka.
3470 U reimu inkrementiranja pri pojavi signala takta vri se uveavanje sadraja brojaa
3471CNT7...0 za jedan ime se obezbeuje sekvencijalno generisanje upravljakih signala iz sekvence
3472upravljakih signala (tabela 23). Ovaj reim rada se obezbeuje vrednou 1 signala inc. Signal
3473inc ima vrednost 1 ukoliko svi signali bropr, bradr, bruncnd i brcnd imaju vrednost 0.
3474Signali bropr, bradr, bruncnd i brcnd normalno imaju vrednost 0 sem u stanjima brojaa
3475koraka koja odgovaraju koracima kada treba realizovati viestruki uslovni skok, bezuslovni
3476skok ili neki od uslovnih skokova i uslov skoka je ispunjen, pa jedan od ovih signala ima
3477vrednost 1.
3478 U reimu skoka pri pojavi signala takta vri se upis nove vrednosti u broja CNT 7...0 ime se
3479obezbeuje odstupanje od sekvencijalnog generisanja upravljakih signala iz sekvence
3480upravljakih signala (tabela 23). Ovaj reim rada se obezbeuje vrednou 1 signala ld. Signal
3481ld ima vrednost 1 ako jedan od signala bropr, bradr, bruncnd i brcnd ima vrednost 1. Signali
3482bropr, bradr, bruncnd i brcnd normalno imaju vrednost 0 sem u stanjima brojaa koraka
3483koja odgovaraju koracima kada treba treba realizovati viestruki uslovni skok, bezuslovni skok
3484ili neki od uslovnih skokova i uslov skoka je ispunjen, pa jedan od ovih signala ima vrednost 1.
3485Specifian sluaj reima skoka je reim ekanja kada se pri pojavi signala takta vri upis tekue
3486vrednosti brojaa CNT7...0 u broja CNT7...0 ime se obezbeuje da se ne menja vrednost brojaa
3487CNT7...0. Ovaj reim rada se obezbeuje vrednou 1 signala ld. Signal ld ima vrednost 1 kada
3488signal brcnd ima vrednost 1 jer je:
3489 ciklus procesora na magistrali u toku pa signal fcCPU ima vrednost 0 ili
3490 magistrala preputena ulazno/izlaznom ureaju sa kontrolerom za direktan pristup
3491memoriji, a procesor je doao u korak izvravanja instrukcije u kome mu je magistrala
3492potrebna, pa signal hack ima vrednost 1.

107

106

3493 Broja koraka CNT7...0 je dimenzionisan prema broju koraka u sekvenci upravljakih signala
3494(tabela 23). S obzirom da se upravljaki signali svih faza izvravanja instrukcija realizuju u
3495opsegu od koraka T00 do koraka TE3 usvojena je duina brojaa koraka CNT7...0 od 8 bita.
3496 Blok dekoder koraka sadri dekoder DC. Na ulaze dekodera DC vode se izlazi brojaa
3497CNT7...0. Dekodovana stanja brojaa CNT7...0 pojavljuju se kao signali T0, T1, ..., TFF na izlazima
3498dekodera DC. Svakom koraku iz sekvence upravljakih signala po koracima (tabela 16)
3499dodeljeno je po jedno stanje brojaa CNT7...0 odreeno vrednou signala T0 do TFF i to koraku
3500step0 signal T0, koraku step1 signal T1, itd. (tabela 23).
3501 Blok generisanje upravljakih signala sadri kombinacione mree koje pomou signala T0,
3502T1, ..., TE3, koji dolaze sa bloka dekoder koraka, signala logikih uslova START, hack, ...,
3503prekid koji dolaze iz blokova operacione jedinice i saglasno sekvenci upravljakih signala
3504(tabela 23) generiu dve grupe upravljakih signala i to upravljake signale blokova operacione
3505jedinice oper i upravljake signale upravljake jedinice uprav.
3506

Upravljaki signali blokova operacione jedinice oper se daju posebno za svaki blok.

3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529

Upravljaki signali bloka bus se generiu na sledei nain:


mxMAR2 = T32 + T35 + T37 + T69 + T6F + T73 + T7A + T7F + T83 + TA6 + TAA + TAE +
TB2 + TB6 + TBA + TC2 + TC6 + TCA + TCE + TDC
mxMAR1 = T27 + T29 + T30
mxMAR0 = T25 + T30 + T69 + T6F + T73 + T7A + T7F + T83 + TA6 + TAA + TAE + TB2 +
TB6 + TBA + TC2 + TC6 + TCA + TCE
ldMAR = T01 + T08 + T10 + T15 + T25 + T27 + T29 + T30 + T32 + T35 + T37 + T69 + T6F +
T73 + T7A + T7F + T83 + TA6 + TAA + TAE + TB2 + TB6 + TBA + TC2 +
TC6 + TCA + TCE + TDC
incMAR = T2C + T3C + T64 + TDF
mxMDR2 = TA6 + TAA + TC2 + TC6 + TCA + TCE
mxMDR1 = T61 + T64 + T7F + T83 + TCA
mxMDR0 = T5B + T64 + T7A + T83 + TAA + TC6 + TCE
ldMDR = T5B + T61 + T64 + T7A + T7F + T83 + TA6 + TAA + TC2 + TC6 + TCA + TCE
eMAR = T03 + T0A + T12 + T17 + T2B + T2E + T39 + T3E + T5D + T63 + T66 + T6B +
T71 + T75 + T7C + T81 + T85 + TA8 + TAC + TB0 + TB4 + TB8 + TBC +
TC4 + TC8 + TCC + TD0 + TDE + TE1
eMDR = T5D + T63 + T66 + T7C + T81 + T85 + TA8 + TAC + TC4 + TC8 + TCC + TD0 +
rdCPU = T03 + T0A + T12 + T17 + T2B + T2E + T39 + T3E + T6B + T71 + T75 + TB0 +
TB4 + TB8 + TBC + TDE + TE1
wrCPU = T5D + T63 + T66 + T7C + T81 + T85 + TA8 + TAC + TC4 + TC8 + TCC + TD0
ldDWH = T2C + T3C + T76 + TBD + TDF
ldDWL = T2F + T3F + T72 + TB9 + TE2

3530
3531
3532
3533
3534
3535
3536
3537

Upravljaki signali bloka fetch se generiu na sledei nain:


mxPC1 = TA3 + TAD
mxPC0 = TA2
ldPC = TA2 + TA3 + TAD + TBE + TE3
incPC = T01 + T08 + T10 + T15
ldIR0 = T04
ldIR1 = T0B
ldIR2 = T13

108

107

3538

ldIR3 = T18

3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551

Upravljaki signali bloka addr se generiu na sledei nain:


ldGPRAR = T0B
incGPRAR = T34
mxGPR = T68
wrGPR = T5F + T68
ldSP = T8C
incSP = T79 + T7E + T82 + TA5 + TA9 + TC1 + TC5 + TC9 + TCD
decSP = T69 + T6F + T73 + TAE + TB2 + TB6+ TBA
mxADDA1 = T35 + T37 + TA2
mxADDA0 = T32 + T34 + T35
mxADDB1 = T35 + TA2
mxADDB0 = T32 + T34 + T37 + TA2
ldCW = T34

3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580

Upravljaki signali bloka exec se generiu na sledei nain:


mxAB = T57 + T6D
ldAB = T57 + T6D + T8D + T8F + T91 + T93 + T95 + T97 + T99 + T9B
shr = T9D
shl = T9F
mxBB1 = T42
mxBB0 = T3B + T6C
ldBB = T23 + T3B + T42 + T6C
mxAW1 = T87 + T89
mxAW0 = T89 + T8B
ldAW = T59 + T78 + T87 + T89 + T8B
mxBW1 = T43
mxBW0 = T40 + T77
ldBW = T24 + T40 + T43 + T77
stPSWI = T54
clPSWI = T53 + TE3
stPSWT = T56
clPSWT = T55 + TE3
ldL = TDA
ldN = T58 + T6E + T8E + T90 + T92 + T94 + T96 + T98 + T9A + T9C + T9E + TA0
ldZ = T58 + T6E + T8E + T90 + T92 + T94 + T96 + T98 + T9A + T9C + T9E + TA0
ldC = T58 + T6E + T8D + T8F + T91 + T93 + T96 + T98 + T9A + T9C + T9D + T9F
ldV = T58 + T6E + T8D + T8F + T91 + T93 + T96 + T98 + T9A + T9C + T9E + TA0
ldPSWL = TB1
ldPSWH = TB5
clSTART = T52
add = T8D
sub = T8F
inc = T91

109

108

3581
3582
3583
3584
3585

3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599

Upravljaki signali bloka intr se generiu na sledei nain:


stPRINS = TA4
clPRINS = TD2
stPRCOD = T06
clPRCOD = TD4
stPRADR = T0D
clPRADR = TD2
clPRINM = TD4
clINTR = TD6
ldIMR = T8A
ldIVTP = T88
mxBR1 = TD0 + TD2 + TD4 + TD7
mxBR0 = TD6
ldBR = TCE + TD0+ TD2 + TD4 + TD6 + TD7

3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616

Upravljaki signali upravljake jedinice uprav se generiu na sledei nain:


bradr = T20
bropr = T50

bruncnd = T06 + T0D +T18+ T23 + T24 +T26 + T28 + T31 + T33 + T36 + T3B + T40 +
T42 +
T43 + T51+ T52 + T53 + T54 + T55 + T56 + T58+ T59 + T5E + T5F +
T67+ T68 + T6E+ T78 + T7D + T86+ T87 + T88 + T89+ T8A + T8B + T8C +
T8E+ T90 + T92 + T94 + T96 + T98 + T9A + T9C + T9E + TA0 + TA2 + TA3 +
TA4 + TAD + TBE + TD2 + TD4 + TD6 + TD8 + TDA +TE3
brcnd = brnotSTART START + brhack hack + brnotfcCPU fcCPU +
brnotgropr gropr + brl1 l1 + brnotgradr gradr +
brl2_brnch l2_brnch + brl2_arlog l2_arlog +
brl3_jump l3_jump + brl3_arlog l3_arlog + brstore store +
brLDW LDW + brdirreg dirreg + brnotbrpom brpom +
brnotprekid prekid + brnotPRINS PRINS +
brnotPRCOD PRCOD + brnotPRADR PRADR +
brnotPRINM PRINM + brnotprintr printr

110

dec = T93
and = T95
or = T97
xor = T99
not = T9B

109

3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660

111

brnotSTART = T00
brhack = T02 + T09 + T11 + T16 + T2A + T2D + T38 + T3D +T5C + T62+ T65+ T6A + T70 +
T74 +T7B + T80 + T84 + TA7 + TAB + TAF + TB3 + TB7 + TBB +
TC3 + TC7 + TCB + TCF +TDD+TE0
brnotfcCPU = T03 + T0A + T12 + T17 + T2B + T2E + T39+ T3E + T5D + T63 + T66 + T6B +
T71 + T75 + T7C + T81 + T85 + TA8 + TAC + TB0 + TB4 +
TB8 + TBC + TC4 + TC8 + TCC + TD0 + TDE + TE1
brnotgropr = T05
brl1 = T07
brnotgradr = T0C
brl2_brnch = T0E
brl2_arlog = T0F
brl3_jump = T13
brl3_arlog = T14
brstore = T21 + T25 + T27 + T30 + T32 + T35 + T37
brLDW = T22 + T3A + T41
brdirreg = T5A + T60
brnotbrpom = TA1
brnotprekid = TC0
brnotPRINS = TD1
brnotPRCOD = TD3
brnotPRADR = TD5
brnotPRINM = TD7
brnotprintr = TD9
val00 = T00 + T52 + TC0 + TE3
val02 = T02
val03 = T03
val07 = T05
val09 = T09
val0A = T0A
val0E = T0C
val11 = T11
val12 = T12
val16 = T16
val17 = T17
val20 = T0F + T14 + T18
val24 = T22
val2A = T2A
val2B = T2B
val2D = T2D
val2E = T2E
val38 = T26 + T28 + T31 + T33 + T36 +T38
val39 = T39

110

3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
112

val3C = T3A
val3D = T3D
val3E = T3E
val43 = T41
val50 = T07 + T0E + T13 + T21 + T23 + T24 + T25 + T27 + T30 + T32 + T35 + T37 + T3B +
T40 + T42 + T43
val5C = T5C
val5D = T5D
val5F = T5A
val62 = T62
val63 = T63
val65 = T65
val66 = T66
val68 = T60
val6A = T6A
val6B = T6B
val70 = T70
val71 = T71
val74 = T74
val75 = T75
val7B = T7B
val7C = T7C
val80 = T80
val81 = T81
val84 = T84
val85 = T85
valA7 = TA7
valA8 = TA8
valAB = TAB
valAC = TAC
valAF = TAF
valB0 = TB0
valB3 = TB3
valB4 = TB4
valB7 = TB7
valB8 = TB8
valBB = TBB
valBC = TBC
valC0 = T06 + T0D + T51+ T53 + T54 + T55 + T56 + T58+ T59 + T5E + T5F + T67+ T68 +
T6E+ T78 + T7D + T86+ T87 + T88 + T89+ T8A + T8B + T8C + T8E+ T90 +
T92 + T94 + T96 + T98 + T9A + T9C + T9E + TA0 + TA1 + TA2 + TA3 +
TA4 + TAD + TBE
valC3 = TC3
valC4 = TC4
111

3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720

valC7 = TC7
valC8 = TC8
valCB = TCB
valCC = TCC
valCF = TCF
valD0 = TD0
valD3 = TD1
valD5 = TD3
valD7 = TD5
valD9 = TD7
valDB = TD9
valDC = TD2 + TD4 + TD6 + TD8 + TDA
valDD = TDD
valDE = TDE
valE0 = TE0
valE1 = TE1

3721 Pri generisanju signala brcnd koriste se sledei signali logikih uslova koji dolaze iz
3722blokova operacione jedinice oper i to:
3723 START blok exec,
3724 hack blok bus,
3725 fcCPU blok bus,
3726 gropr blok fetch,
3727 l1 blok fetch,
3728 gradr blok fetch,
3729 l2_brnch blok fetch,
3730 l2_arlog blok fetch,
3731 l3_jump blok fetch,
3732 l3_arlog blok fetch,
3733 store blok fetch,
3734 LDW blok fetch,
3735 dirreg blok fetch,
3736 brpom blok exec,
3737 prekid blok intr
3738 PRINS blok intr,
3739 PRCOD blok intr,
3740 PRADR blok intr,
3741 PRINM blok intr i
3742 printr blok intr.
37434.2 PROCESOR JMVM
3744 U ovoj glavi se daje organizacija procesora CPU koji se sastoji iz operacione jedinice oper i
3745upravljake jedinice uprav (slika 59).

113

112

1 5 ...0

D B U S

7 ...0

RD B U S
W RB U S
FCB U S

h req
hack

bus

fe tc h
addr

in tr

in tr7
in tr6
in tr5
in tr4
in tr3
in tr2
in tr1


U/I

BUS

A B U S

in m
FAU LT

exec
IB U S

1 5 ...0

oper
u p ra v

3746
3747

CPU

Slika 59 Organizacija procesora CPU

3748 Operaciona jedinica oper je kompozicija kombinacionih i sekvencijalnih prekidakih mrea


3749koje slue za pamenje binarnih rei, izvravanje mikrooperacija i generisanje signala logikih
3750uslova upravljake jedinice uprav. Realizacija operacione jedinica je sa jednom internom
3751magistralom. Upravljaka jedinica uprav je kompozicija kombinacionih i sekvencijalnih
3752prekidakih mrea koje slue za generisanje upravljakih signala operacione jedinice oper na
3753osnovu algoritama operacija i signala logikih uslova. Realizacije upravljake jedinica je
3754mikroprogramska sa jednim tipom vertikalnih mikroinstrukcija.
3755

Struktura i opis operacione i upravljake jedinice se daju u daljem tekstu.

37564.2.1 Operaciona jedinica


3757 Operaciona jedinica oper (slika 59) se sastoji od sledeih blokova:
3758 blok bus,
3759 blok fetch,
3760 blok addr,
3761 blok exec i
3762 blok intr.
3763Ovi blokovi su meusobno povezani jednom internom magistralom IBUS15...0.
3764 Blok bus (slika 60) slui za arbitraciju procesora i ulazno/izlaznog ureaja U/I2 sa
3765kontrolerom za direktan pristup memoriji pri korienju magistrale BUS i realizaciju ciklusa na
114

113

3766magistrali BUS. Blok fetch (slike 61, 62, 63) slui za itanje instrukcije i smetanje u prihvatni
3767registar instrukcije. Blok addr (slika 64) slui za formiranje adrese operanda i itanje operanda.
3768Blok exec (slike 65, 66, 67 i 68) slui za izvravanje operacija. Blok intr (slike 69, 70 i 71)
3769slui za prihvatanje prekida i formiranje adrese prekidne rutine.
3770

Struktura i opis blokova operacione jedinice oper se daju u daljem tekstu.

37714.2.1.1 Blok bus


3772 Blok bus (slika 60) sadri registar MAR15...0, registar MDR7...0 sa multiplekserom MX2,
3773prihvatni registar DW15...0, bafere sa tri stanja za povezivanje registara MAR 15...0, MDR7...0 i
3774DW15...0 na linije interne magistrale IBUS15...0 i sistemske magistrale BUS i kombinacione mree
3775za realizaciju ciklusa na magistrali BUS kada je procesor gazda i za arbitraciju sa kontrolerom
3776sa direktnim pristupom memoriji pri korienju magistrale BUS.
3777 Registar MAR150 je 16-to razredni adresni registar, iji se sadraj koristi pri realizaciji
3778ciklusa itanja ili upisa na magistrali BUS. Adresa se iz nekog od blokova operacione jedinice
3779oper preko linija interne magistrale IBUS15...0 vodi na paralelne ulaze registra MAR150 i u njega
3780upisuje generisanjem vrednosti 1 signala ldMAR. Sadraj registra MAR150 se inkrementira
3781vrednou 1 signala incMAR. Ovo se koristi u situacijama kada treba proitati ili upisati 16-to
3782bitnu veliinu koja se nalazi u dvema susednim 8-mo bitnim lokacijama. Tada se najpre u
3783registar MAR150 upisuje adresa nie lokacije, a posle se inkrementiranjem dobija adresa vie
3784lokacije. Pri realizaciji ciklusa itanja ili upisa formira se vrednost 1 signala eMAR, ime se
3785sadraj registra MAR150 puta na adresne linije ABUS150 magistrale BUS.
3786 Na paralelne ulaze registra MAR150 se preko linija interne magistrale IBUS15...0 dovode
3787sadraji PC150 bloka fetch, GPR150 bloka addr, IR150 bloka fetch, DW150, ADD150 i SP150
3788bloka addr. Sadraj PC150 predstavlja adresu instrukcije. Sadraj GPR150 predstavlja adresu
3789operanda u sluaju registarskog indirektnog adresiranja. Sadraj IR 150 predstavlja adresu
3790operanda u sluaju memorijskog direktnog adresiranja. Sadraj IR150 predstavlja i adresu
3791memorijske lokacije na kojoj se nalazi adresa operanda u sluaju memorijskog indirektnog
3792adresiranja, pa se tada sa ove adrese ita iz memorije adresa operanda i upisuje u registar
3793DW150, tako da konano sadraj DW150 predstavlja adresu operanda u sluaju memorijskog
3794indirektnog adresiranja. Sadraj ADD150 predstavlja adresu operanda u sluaju registarskog
3795indirektnog sa pomerajem adresiranja, bazno indeksnog sa pomerajem adresiranja i PC
3796relativnog sa pomerajem adresiranja i formira se na izlazu sabiraa ADD bloka addr. Sadraj
3797SP150 se koristi prilikom stavljanja sadraja na vrh steka i skidanja sadraja sa vrha steka.
3798 Registar MDR70 je 8-mo razredni registar podatka u koji se vrednou 1 jednog od signala
3799MDRin i ldMDR upisuje sadraj sa izlaza multipleksera MX2. Pri realizaciji ciklusa itanja
3800vrednou 1 signala MDRin i vrednou 0 signala mxMDR sadraj sa linija podataka
3801DBUS70 magistrale BUS se puta kroz multiplekser MX2 i upisuje u registar MDR 70. Pri
3802realizaciji ciklusa upisa vrednou 1 signala ldDR i vrednou 1 signala mxMDR sadraj sa
3803linija interne magistrale IBUS7...0 se puta kroz multiplekser MX2 i upisuje u registar MDR70.
3804Signal MDRin je 1 kada se generiu vrednosti 1 signala rdCPU i fcCPU. Signal rdCPU je 1
3805kada procesor kao gazda realizuje ciklus itanja na magistrali, dok je signal fcCPU 1 kada se
3806na upravljakoj liniji magistrale FCBUS pojavi vrednost 0 kao indikacija od memorije ili
3807nekog od kontrolera kao sluge da je proitani podatak raspoloiv na linijama podataka
3808DBUS70 magistrale. Sadraj registra MDR70 se pri realizaciji ciklusa itanja vrednou 1
3809signala MDRout puta na linije interne magistrale IBUS 70 i vodi na ulaze registara IR0, IR1,
3810IR2 i IR3 bloka fetch i registara DW158 i DW70, dok se razredi MDR40 preko linija IBUS40
3811vode na ulaze registra GPRAR40 bloka addr. Sadraj registra MDR70 se pri realizaciji ciklusa
3812upisa vrednou 1 signala eMDR puta na linije podataka DBUS70 magistrale.

115

114

IB U S

1 5 ...0

16
BU S D B U S

IB U S

7 ...0

8
0

M X 2

uprav

ld M A R
in c M A R

LD

m r
M R
C LK

M A R

IN C

16

M A R

u p ra v

rd C P U

ld M D R

m r
M R
C LK

M D R

LD

M D R in

1 5 ...0

M D R

7 ...0

IB U S

FCB U S
BU S

fc C P U
u p ra v
u p ra v
eM D R

16 A B U S
BU S

IB U S
8

1 5 ...0

BU S
RD B U S
rd C P U
u p ra v

D B U S
BU S

U /I
h req
eM A R
u p ra v

BU S
W RB U S

7 ...0

8
M D R out
u p ra v

u p ra v
eM A R

u p ra v
m xM D R

16

7 ...0

w rC P U
u p ra v

16
1 5 ...0

7 ...0

hack
U /I
u p ra v
IB U S

1 5 ...0

16

IB U S
8
LD

M R

D W
8

D W

C LK

ld D W L
u p ra v

1 5 ...8

D W 1 5 ...8
D W 7 ...0

3813
3814

8
8
8

1 5 ...8
7 ...0

7 ...0

m r
M R

D W

LD

D W

7 ...0

16

C LK

ld D W H
u p ra v

m r

16
D W out

u p ra v
16
I B U S 1 5 ...0

Slika 60 Blok bus

3815 Multiplekser MX2 je 8-mo razredni multiplekser sa dva ulaza. Na ulaze 0 multipleksera se
3816vodi sadraj DBUS70. Na ulaze 1 multipleksera se preko linija interne magistrale IBUS15...0
3817dovode sadraji AB70, AW158 i AW70 bloka exec, PC158 i PC70 bloka fetch i PSW158 i
3818PSW70 bloka exec. Sadraj DBUS70 se puta kod ciklusa itanja i predstavlja proitanu
3819vrednost memorijske lokacije ili registra kontrolera koja po linijama podataka magistrale BUS
3820dolazi u procesor CPU. Sadraji AB70, AW158, AW70, PC158, PC70, PSW158 i PSW70 se
3821putaju u sluaju ciklusa upisa u memorijsku lokaciju ili registar kontrolera. Sadraj AB70 se
3822puta u sluajevima u kojima se sadraj akumulatora AB70 upisuje, sadraji AW158 i AW70 u
3823sluajevima u kojima se u dva ciklusa na magistrali sadraji starijeg i mlaeg bajta akumulatora
3824AW150 upisuju, sadraji PC158 i PC70 u sluajevima u kojima se u dva ciklusa na magistrali
3825sadraji starijeg i mlaeg bajta programskog brojaa PC150 stavljaju na stek i sadraji PSW158
3826i PSW70 u sluajevima u kojima se u dva ciklusa na magistrali sadraji starijeg i mlaeg bajta
116

115

3827programske statusne rei PSW150 stavljaju na stek. Selektovani sadraj sa izlaza multipleksera
3828MX2 se vodi na paralelne ulaze registra MDR70.
3829 Registar DW150 je 16-to razredni pomoni registar koji se koristi za prihvatanje 16-to bitne
3830veliine koja se dobija iz dve susedne 8-mo bitne memorijske lokacije u dva posebna ciklusa na
3831magistrali. Stariji i mlai bajt oitane 16-to bitne veliine dolaze iz registra MDR 70 po linijama
3832interne magistrale IBUS70. Signalom ldDWH se u 8 starijih razreda registra DW158 upisuje
3833stariji bajt, dok se signalom ldDWL u 8 mlaih razreda registra DW70 upisuje mlai bajt.
3834Sadraj registra DW150 se potom vrednou 1 signala DWout kao 16-to bitna veliina puta
3835na linije interne magistrale IBUS150 i upisuje u odgovarajui 16-to razredni registar. Registar
3836DW150 se koristi da se prihvati 16-to bitna adresa operanda u sluaju memorijskog
3837indirektnog adresiranja i da se posle upie u registar MAR 150. Pored toga registar DW150 se
3838koristi da se prihvati 16-to bitni operand u sluaju instrukcija koje se izvravaju nad 16-to
3839bitnim veliinama i da se posle upie u registar BW150 bloka exec. Registar DW150 se koristi i
3840da se prihvati 16-to bitna vrednost sa steka ili 16-to bitna vrednost adrese prekidne rutine iz
3841tabele sa adresama prekidnih rutina i da se posle upie u programski broja PC150 bloka fetch.
3842 Kombinacione mree za realizaciju ciklusa na magistrali BUS kada je procesor gazda i za
3843arbitraciju sa kontrolerom sa direktnim pristupom memoriji pri korienju magistrale BUS
3844imaju identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB (odeljak 4.1.1.1).
38454.2.1.2 Blok fetch
3846 Blok fetch sadri registar PC15...0, registre IR0, IR1, IR2 i IR3, bafere sa tri stanja za
3847povezivanje registara PC15...0 i IR31...0 na linije interne magistrale IBUS 15...0 (slika 61), dekodere
3848DC1 do DC11 signala logikih uslova operacija i naina adresiranja (slika 62) i kombinacione
3849mree signala logikih uslova duina instrukcija (slika 63).
3850 Registar PC150 je 16-to razredni programski broja iji sadraj predstavlja adresu
3851memorijske lokacije poev od koje treba proitati jedan do etiri bajta instrukcije (slika 61).
3852Adresa skoka u programu se iz nekog od blokova operacione jedinice oper preko linija interne
3853magistrale IBUS15...0 vodi na ulaze registra PC150 i u njega upisuje vrednou 1 signala ldPC.
3854Sadraj registra PC150 se inkrementira vrednou 1 signala incPC. Ovo se koristi prilikom
3855itanja svakog bajta instrukcije koji se nalaze u susednim 8-mo bitnim lokacijama.
3856 Na paralelne ulaze registra PC150 se preko linija interne magistrale IBUS15...0 dovode
3857sadraji DW150 bloka bus, ADD150 bloka addr i IR238, koji predstavljaju adrese skoka za
3858upis u registar PC150. Sadraj DW150 predstavlja ili vrednost koja se restaurira sa steka
3859prilikom izvravanja instrukcija povratka iz potprograma ili povratka iz prekidne rutine ili
3860adresu prekidne rutine koja se ita iz tabele sa adresama prekidnih prilikom opsluivanja
3861prekida. Sadraj ADD150 predstavlja adresu skoka koja se dobija sabiranjem sadraja
3862programskog brojaa i pomeraja prilikom izvravanja instrukcija uslovnog skoka. Sadraj
3863IR238 predstavlja adresu skoka koja se uzima iz instrukcije prilikom izvravanja instrukcija
3864bezuslovnog skoka ili skoka na potprogram.

117

116

IB U S

1 5 ...0

16
16
u p r a v in c P C
u p ra v ld P C

IN C

m r
M R

PC

LD

16

PC

1 5 ...0

16
16
u p ra v P C o u t

8
PC

C LK

1 5 ...8

8
u p ra v P C H o u t

IB U S

7 ...0

IB U S

7 ...0

8
C LK

ld IR 0
u p ra v

M R

IR 0

LD

IR

m r
C LK

ld IR 1
u p ra v

IR 1

LD

3 1 ...2 4

m r
M R

IR

2 3 ...1 6

IB U S
8
M R

IR

1 5 ...8

I R 1 5 ...8
I R 7 ...0

8
8
8

I R 2 3 ...1 6
I R 1 5 ...8

8
8

IR

8
8

IR

23

2 3 ...1 6

1 5 ...8
7 ...0

1 5 ...8
7 ...0

1 5 ...8
7 ...0

IR

m r
M R

IR 3

LD

IR

7 ...0

16

C LK

ld IR 3
u p ra v

16
IR D A o u t

u p ra v

16
IR JA o u t

u p ra v

16
IR P O M o u t

u p ra v

16

IR 2

LD

16

C LK

ld IR 2
u p ra v

m r

7 ...0

IB U S

4
2 7 ...2 4

IR B R o u t

3 ...0

u p ra v
16
IB U S

3865
3866

1 5 ...0

Slika 61 Blok fetch (prvi deo)

3867 Vrednou 1 signala PCout sadraj registra PC150 se puta na linije interne magistrale
3868IBUS150 i vodi u registar MAR150 bloka bus pri itanju instrukcije i registar CW1150 bloka
3869addr za formiranje adrese memorijske lokacije kada se za adresiranje operanda koristi PC
3870relativno sa pomerajem adresiranje. Na linije interne magistrale IBUS70 se vrednou 1 signala
3871PCout i PCHout putaju sadraji mlaih 8 razreda PC 70 i starijih 8 razreda PC158 radi upisa
3872u registar MDR70 bloka bus. Ovo se koristi kod stavljanja PC150 na stek.
3873 Registri IR0, IR1, IR2 i IR3 su 8-mo razredni registri koji formiraju razrede 3124, 23
387416, 158 i 70, respektivno, prihvatnog registra instrukcije IR 310. Instrukcije mogu, u
3875zavisnosti od formata instrukcije, da budu duine 1, 2, 3 ili 4 bajta (poglavlje 2.1.3). Saglasno
3876formatu instrukcije prvi, drugi, trei i etvrti bajt instrukcije se smetaju redom u registre IR0,
3877IR1, IR2 i IR3. Sadraj prihvatnog registra podatka MDR7...0 bloka bus, koji dolazi po linijama
118

117

3878interne magistrale IBUS7...0 na paralelne ulaze registara IR0, IR1, IR2 i IR3, se upisuje u jedan
3879od ovih registara vrednou 1 jednog od signala ldIR0, ldIR1, ldIR2 i ldIR3, respektivno.
3880Razredi IR3124 se uvek popunjavaju i njihov sadraj predstavlja kod operacije. Broj preostalih
3881razreda koji se popunjavaju zavisi od koda operacije, a u sluaju aritmetikih i logikih
3882operacija, i od naina adresiranja i njihov sadraj ima razliito znaenje (poglavlje 2.1.3).

IR
IR
IR

29
28
27

2
1
0

STA RT
exec

D C2

IR
IR
IR

26
25
24

24

G 0_PG 1

24

2
1
0

D C7

U SH W
U SH B
O PW
O PB
TW
TB
D W
D B

IR
IR
IR

26
25
24

25
24

2
1
0

D C 10

3883
3884
3885

G 0_PG 7

R
R
L
A
R
R
L
A

O LC
O L
SL
SL
O RC
O R
SR
SR

uprav
exec

26

uprav

IR
IR
IR

26
25
24

D C8

IR
IR
IR

23
22
21

2
1
0

D C11

7
6
5
4
3
2
1
0

2
1
0

D C6

B
B
B
B
B
B
B
B

L
L
G
G
L
L
G
G

SSEU
SSU
RTEU
RTU
SSE
SS
RTE
RT

G 0_PG 3

G 0_PG 5
G 0_PG 5
STSP
LD SP
S T IM R
L D IM R
S T IV T P
L D IV T P

7
6

IR
IR
IR

26
25
24

2
1
0

D C9

G 0_PG 5

IR
IR
IR

2
1
0

7
6
5
4
3
2
1
0

G 0_PG 4

7
6
5
4
3
2
1
0

7
6
5
4
3
2
1
0

7
6
5
4
3
2
1
0

N O T
X O R
O R
A N D
D EC
IN C
SU B
A D D

G 0_PG 6

im m
pcpom
bxpom
re g in d p o m
m e m in d
m e m d ir
re g in d
re g d ir

uprav

25

P
P
P
P
S
S
L
L

uprav
exec

26

G 0_PG 2

IR
IR
IR

7
6
5
4
3
2
1
0

D C5

A
R
V
F
E
G
Q
L

25

2
1
0

C
A
O
V
N
E
E
Q

uprav

26

N
C
N
O
N
N
N
E

24

IR
IR
IR

B
B
B
B
B
B
B
B

25

D C4

7
6
5
4
3
2
1
0

uprav

26

2
1
0

TRPE
TRPD
IN T E
IN T D
G 0_PG 03
G 0_PG 02
H A L T u p ra v
N O P u p ra v

G 0_PG 0

IR
IR
IR

G 0_PG 1
G 0_PG 1
RTI
IN T
RTS
JS R
JM P
G 0_PG 1

D C3

G 0

7
6
5
4
3
2
1
0

2
1
0

7
6
5
4
3
2
1
0

uprav

3
2
1
0

7
6
5
4
3
2
1
0

uprav

G
G
G
G

G
G
G
G
G
G
G
G

D C1

3
2
1
0

_P
_P
_P
_P
_P
_P
_P
_P

30

1
0

0
0
0
0
0
0
0
0

uprav
exec

31

G
G
G
G
G
G
G
G

IR
IR

7
6
5
4
3
2
1
0

Slika 62 Blok fetch (drugi deo)

3886 Odreene kombinacije razreda registra IR310 se vrednou 1 jednog od signala IRDAout,
3887IRJAout, IRPOMout i IRBRout putaju na linije interne magistrale IBUS15...0 i preko njih
3888vode u odreene blokove operacione jedinice. Sadraj IR15...0 se vodi u registar MAR150 bloka

119

118

3889bus i koristi kao adresa memorijske lokacije kod memorijskog direktnog i memorijskog
3890indirektnog adresiranja, zatim u registar CW115...0 bloka addr i koristi kao pomeraj kod
3891registarskog indirektnog sa pomerajem, bazno indeksnog sa pomerajem i PC relativnog sa
3892pomerajem adresiranja i u registar BW15...0 bloka exec i koristi kao neposredna veliina kod
3893operacija nad 16-to bitnim veliinama. Sadraj IR23...8 se vodi u registar PC150 bloka fetch i
3894koristi kao adresa skoka za instrukcije bezuslovnog skoka i skoka na potprogram. Sadraj
3895IR23...16 proiren znakom IR23 na 16-to bitnu veliinu se vodi u registar CW1150 bloka addr i
3896koristi kao pomeraj kod instrukcija uslovnog skoka, a samo 8-mo bitni sadraj IR 23...16 se po
3897linijama interne magistrale IBUS7...0 vodi u registar BR7...0 blok intr i koristi kao broj ulaza u
3898tabelu sa adresama programa prekida za instrukciju prekida INT. Pored toga 4-ro bitni sadraj
3899IR28...24 se po linijama interne magistrale IBUS 3...0 vodi na ulaze multipleksera MX7, MX8 i
3900MX9 bloka exec i koristi za selekciju jednog od signala rezultata operacija kod instrukciju
3901uslovnog skoka.
3902 Dekoderi DC1 do DC11 signala logikih uslova operacija i naina adresiranja (slika 62) i
3903kombinacione mree signala logikih uslova duina instrukcija (slika 63) imaju identinu
3904strukturu i funkcionalnost kao i u sluaju procesora DVOB (odeljak 4.1.1.2).

G
G
G
G
G
G
G

0
0
0
0
0
0
0

_
_
_
_
_
_
_

P
P
P
P
P
P
P

G 3
G 2
G 1
G 57
G 56
G 17
G 16
G 10
G 03
G 02

G 0_PG 3
G 0_PG 2
IN T
JS R
JM P

3905
3906

STB
STW

u p ra v
g ro p r

u p ra v
l2 _ b rn c h
u p ra v
l3 _ ju m p
u p ra v
s to re

u p ra v
g rad r

STB
STW
im m

X O R
O R
A N D
SU B
A D D
STW
STB
LD W
LD B

u p ra v
l2 _ a rlo g

G 0_PG 7
N O T
D EC
IN C
G 0_PG 5
PU SH W
PU SH B
PO PW
PO PB
RTI
RTS
G 0_PG 0
X O
O
A N
SU
A D
ST
LD

R
R
D
B
D
B
B

u p ra v
l1

u p ra v
l3 _ a r lo g

im m

re g d ir
re g in d

Slika 63 Blok fetch (trei deo)

39074.2.1.3 Blok addr


3908 Blok addr sadri registre opte namene GPR sa adresnim registrom registara opte namene
3909GPRAR40, sabira ADD sa prihvatnim registrima CW150 i CW1150, ukaziva na vrh steka
3910SP150 i bafere sa tri stanja za povezivanje registara opte namene GPR, sabiraa ADD i
3911registra SP15...0 na linije interne magistrale IBUS15...0 (slika 64).
3912

120

119

IB U S
IB U S
u p ra v
in c G P R A R
ld G P R A R
u p ra v

5
IN C

m r
M R

G PRA R

LD

1 5 ...0

16

4 ...0

G PRA R

16

C LK

4 ...0

D I 1 5 ...0
A

G PR

4 ...0

D O

1 5 ...0

16

G PR

1 5 ...0

16

u p ra v
in c S P
decSP
u p ra v

16
IN C

m r

16

CW

C LK

ld C W
u p ra v

3913
3914

LD

u p ra v
ld S P

1 5 ...0

A D D

1 5 ...0

16

16
S P o u t u p ra v

16

16
A D D o u t u p ra v

1 5 ...0

16
16

1 5 ...0

C LK

CW
16

SP

1 5 ...0

16

LD

16
G P R o u t u p ra v

C LK

A D D

16

16

M R

SP

D EC

w rG P R
u p ra v

W R

m r

ld C W 1
u p ra v

LD

CW 1

1 5 ...0

CW 1
16

m r
IB U S

16
1 5 ...0

Slika 64 Blok addr

3915 Registri opte namene GPR su realizovani kao registarski fajl sa 32 registra irine 16 bita.
3916Adresa registra opte namene koji se ita ili u koji se upisuje odreena je sadrajem registra
3917GPRAR40 iji se sadraj vodi na adresne linije A40 registarskog fajla GPR. Sadraj koji se
3918upisuje vodi se sa linija interne magistale IBUS150 na ulazne linije podataka DI150
3919registarskog fajla, a sadraj koji se ita GPR 150 pojavljuje se na izlaznim linijama podataka
3920DO150 registarskog fajla. Vrednostima 1 i 0 signala wrGPR na upravljakoj liniji WR
3921registarskog fajla realizuje se upis u registarski fajl i itanje iz registarskog fajla, respektivno.
3922 Na ulazne linije podataka podataka DI150 registarskog fajla GPR se preko linija interne
3923magistrale IBUS150 dovode sadraji registara AB70 i AW150 bloka exec, pri emu je sadraj
3924registra AB70 proiren nulama do duine 16 bita. Ovo se korisi u instrukcijama prenosa STB i
3925STW sadraja akumulatora AB70 i AW150, respektivno, kada je registarskim direktnim
3926adresiranjem kao odredite specificiran neki od registara opte namene.
3927 Sadraj proitanog registra opte namene GPR 150 se vrednou 1 signala GPRout puta na
3928linije interne magistrale IBUS150 i preko njih vodi u registar MAR150 bloka bus u sluaju
121

120

3929registarskog indirektnog adresiranja, u registre CW150 i CW1150 u sluaju registarskog


3930indirektnog sa pomerajem i bazno indeksnog sa pomerajem adresiranja, i u registar BW150
3931bloka exec u sluaju registarskog direktnog adresiranja za operacije nad 16-to bitnim
3932veliinama. Mlaih 8 razreda proitanog registra opte namene GPR70 koji se vrednou 1
3933signala GPRout putaju na linije interne magistrale IBUS 70 se vodi u registar BB70 bloka
3934exec u sluaju registarskog direktnog adresiranja za operacije nad 8-mo bitnim veliinama.
3935 Adresni registar registara opte namene GPRAR40 je 5-to razredni registar iji se sadraj
3936koristi kao adresa registra registarskog fajla prilikom upisa u registarski fajl i itanja iz
3937registarskog fajla. U registar GPRAR40 se vrednou 1 signala ldGPRAR upisuju razredi
39384...0 prihvatnog registra podatka MDR70 bloka bus koji dolazi po linijama interne magistrale
3939IBUS40. Ovo se koristi samo u fazi itanja instrukcije i to prilikom itanja drugog bajta
3940instrukcije. Tada ova grupa bitova, ukoliko se radi o aritmetikim ili logikim instrukcijama sa
3941adresiranjima koja koriste registre opte namene, predstavlja adresu registra opte namene.
3942Sadraj registra GPRAR40 se inkrementira vrednou 1 signala incGPRAR, to se koristi
3943samo ukoliko se radi o bazno indeksnom sa pomerajem adresiranju. Tada se registar opte
3944namene ija je adresa zadata bitovima 4...0 drugog bajta instrukcije koristi kao bazni registar, a
3945registar opte namene sa prve sledee adrese kao indeksni registar. Sadraj registra GPRAR 40
3946se vodi na adresne linije A40 registarskog fajla GPR.
3947 Sabira ADD je 16-to razredni sabira koji se koristi za formiranje16-to bitne vrednosti koja
3948moe da bude adresa sa koje treba da se proita adresa prekidne rutine, adresa sa koje treba da
3949se proita ili na kojoj treba da se upie operand ili adresa skoka. Sabiranje se realizuje nad
3950sadrajima prihvatnih registara CW150 i CW1150 za ulaze A150 i B150 sabiraa ADD
3951respektivno. Sadraj ADD150 se vrednou 1 signala ADDout puta na linije interne
3952magistrale IBUS150 i preko njih vodi u blok bus radi upisa u adresni registar MAR150 i u blok
3953fetch radi upisa u programski broja PC150, dok se u bloku addr upisuje u registar CW150.
3954 Registar CW150 je 16-to razredni prihvatni registar za ulaze A150 sabiraa ADD. Na ulaze
3955registra CW150 se preko linija interne magistrale IBUS150 dovode sadraji IVTP150 bloka
3956intr, GPR150, PC150 bloka fetch i sabiraa ADD150 i u njega upisuju vrednou 1 signala
3957ldCW.
3958 Registar CW1150 je 16-to razredni prihvatni registar za ulaze B150 sabiraa ADD. Na ulaze
3959registra CW1150 se preko linija interne magistrale IBUS150 vode sadraji IVTDSP150 bloka
3960intr, IR150 bloka fetch, GPR150 i IR2316 proiren znakom do duine 16 bita bloka fetch i u
3961njega upisuju vrednou 1 signala ldCW1.
3962 Sadraji IVTP150 i IVTDSP150 se upisuju u registre CW150 i CW1150, respektivno, da bi
3963se njihovim sabiranjem na izlazu sabiraa ADD dobila adresa sa koje treba da se proita adresa
3964prekidne rutine. Pri tome je IVTP 150 sadraj registra koji ukazuje na poetak tabele sa
3965adresama prekidnih rutina i IVTDSP150 pomeraj u odnosu na poetak tabele formiran na
3966osnovu broja ulaza u tabelu. Rezultat sabiranja se upisuje u registar MAR150.
3967 Sadraji GPR150 i IR150 se upisuju u registre CW150 i CW1150, respektivno, da bi se
3968njihovim sabiranjem u sluaju registarskog indirektnog sa pomerajem adresiranja na izlazu
3969sabiraa ADD dobila adresa sa koje treba da se proita ili na kojoj treba da se upie operand.
3970Pri tome je GPR150 sadraj registra opte namene ija je adresa zadata instrukcijom i IR 150
3971pomeraj. Rezultat sabiranja se upisuje u registar MAR150. U okviru baznog indeksnog sa
3972pomerajem adresiranja suma ADD150 sa izlaza sabiraa ADD se upisuje u registar CW150, pri
3973emu je GPR150 sadraj registra opte namene koji se koristi kao bazni registar i ija je adresa
3974zadata instrukcijom, i IR150 pomeraj. Potom se u registar CW150 upisuje GPR150, pri emu je
3975sada GPR150 sadraj registra opte namene koji se koristi kao indeksni registar i koji je
3976proitan sa adrese koja je prva posle adrese zadate instrukcijom. Konano se sabiranjem
3977sadraja registara CW150 i CW1150 u sluaju baznog indeksnog sa pomerajem adresiranja na
122

121

3978izlazu sabiraa ADD dobija adresa sa koje treba da se proita ili na kojoj treba da se upie
3979operand. Rezultat sabiranja se upisuje u registar MAR150.
3980 Sadraji PC150 i IR150 se upisuju u registre CW150 i CW1150, respektivno, da bi se
3981njihovim sabiranjem u sluaju PC relativnog sa pomerajem adresiranja na izlazu sabiraa ADD
3982dobila adresa sa koje treba da se proita ili na kojoj treba da se upie operand. Pri tome je
3983PC150 sadraj programskog brojaa i IR 150 pomeraj. Rezultat sabiranja se upisuje u registar
3984MAR150.
3985 Sadraji PC150 i IR2316 proiren znakom do duine 16 bita se upisuju u registre CW 150 i
3986CW1150, respektivno, da bi se njihovim sabiranjem na izlazu sabiraa ADD u sluaju
3987instrukcija uslovnog skoka dobila adresa skoka. Pri tome je PC 150 sadraj programskog
3988brojaa i IR2316 proiren znakom do duine 16 bita pomeraj u odnosu na tekuu vrednost
3989programskog brojaa. Rezultat sabiranja se upisuje u registar PC150.
3990 Registar SP150 je 16-to razredni ukaziva na vrh steka iji sadraj predstavlja adresu
3991memorijske lokacije prilikom upisa na stek i itanja sa steka. U registar SP 150 se vrednou 1
3992signala ldSP u fazi izvravanja instrukcije prenosa STSP upisuje sadraj 16-to razrednog
3993akumulatora AW15...0 bloka exec koji dolazi po linijama interne magistrale IBUS 150. Sadraj
3994registra SP150 se inkrementira i dekrementira vrednostima 1 signala incSP i decSP,
3995respektivno. Ovo se koristi pri upisu na stek i itanju sa steka, respektivno. Sadraj registra
3996SP150 se vrednou 1 signala SPout puta na linije interne magistrale IBUS 150 i preko njih
3997vodi u registar MAR150 bloka bus pri upisu ili itanju sa steka i u akumulator AW15...0 u fazi
3998izvravanja instrukcije prenosa LDSP.
39994.2.1.4 Blok exec
4000 Blok exec sadri aritmetiko logiku jedinicu ALU, registre AB7...0 i BB7...0, multipleksere
4001MX3 i MX4, kodere DC1 i DC2, registre AW150 i BW150 i bafere sa tri stanja za povezivanje
4002registara AB7...0, BB7...0, AW150 i BW150 i ALU na linije interne magistrale IBUS 15...0 (slika 65),
4003registar PSW15...0, bafere sa tri stanja za povezivanje registra PSW15...0 na linije interne magistrale
4004IBUS15...0 i flip-flop START (slika 66), kombinacione mree za formiranje signala postavljanja
4005indikatora N, Z, C i V (slika 67) i kombinacione mree za formiranje signala rezultata operacija
4006eql, ..., nneg i brpom sa multiplekserima MX7, MX8 i MX9 (slika 68).
4007 Aritmetiko logika jedinica ALU (slika 65) ima identinu strukturu i funkcionalnost kao i u
4008sluaju procesora DVOB (odeljak 4.1.1.4). Sadraj ALU70 predstavlja rezultat aritmetike ili
4009logike operacije koje kao odredite implicitno koriste registar akumulatora AB70. Stoga se
4010vrednou 1 signala ALUout sadraj ALU70 puta na linije interne magistrale IBUS 70 i vodi
4011u registar AB70.
4012 Registar AB7...0 je 8-mo razredni akumulator koji se koristi kao implicitno izvorite i
4013odredite u aritmetikim, logikim i pomerakim instrukcijama. Sadraj sa linija interne
4014magistrale IBUS7...0 se vodi na ulaze registra AB7...0 i u njega upisuje vrednou 1 signala ldAB.
4015Sadraj registra AB7...0 se pomera udesno za jedno mesto vrednou 1 signala shR. Tada se u
4016najstariiji razred registra AB7 upisuje signal IR koji dolazi sa izlaza multipleksera MX3. Sadraj
4017registra AB7...0 se pomera ulevo za jedno mesto vrednou 1 signala shL. Tada se u najmlai
4018razred registra AB0 upisuje signal IL koji dolazi sa izlaza multipleksera MX4. Sadraj registra
4019AB7...0 se vodi na ulaze A7...0 aritmetiko logike jedinice ALU gde se koristi kao prvi izvorini
4020operand u sluaju aritmetikih i logikih operacija.

123

122

A LU

7 ...0

not
xor
or
and

uprav

7 ...0

7 ...0

7 ...0

16
16

16
A B o u t u p ra v
IB U S

dec
in c
sub
add

A LU

IB U S

shr

7 ...0

A B

RO R
RO
LS
A S

M X 3

PSW C
A B 7
0
0

IR

0
1

2
1

2
1

M X 4

CD 1

1
0

7 ...0

LD

ld A W
u p ra v

LD

A W

A W

7 ...0

IB U S

7 ...0

A W

3
2

CD 2

1 5 ...8

1
0

8
A W H o u t u p ra v

16
A W

1 5 ...0

16

1 5 ...0

C LK

IB U S

IL

16
16

16

ld B B
u p ra v

0
1

RO LC
RO L
LSL
A SL

u p ra v

fetch

fetch

C
R
R
R

B B out

B B

C LK

m r

PSW C
A B 0
0
A B 7

ld A B
shl

LD
SH L
M R IL

B B

uprav

C LK
SH R
IR

7 ...0

uprav

A B

7 ...0

8
A L U o u t u p ra v

8
8

1 5 ...0

16


uprav

1 5 ...8
7 ...0

0
A B

IB U S

8
8

ld B W
u p ra v

16

B W

LD

B W

A W out

16

u p ra v

16
B W o u t u p ra v

1 5 ...0

C LK

16
16

4021
4022

IB U S

1 5 ...0

Slika 65 Blok exec (prvi deo)

4023 Vrednou 1 signala ABout sadraj registra AB7...0 proiren nulama na 16-to bitnu vrednost
4024se puta na linije interne magistrale IBUS 15...0 i upisuje u adresirani registar registarskog fajla
4025GPR bloka addr u sluaju registarskog direktnog adresiranja za instrukciju STB.
4026 Na paralelne ulaze registra AB70 se preko linija interne magistrale IBUS150 dovode
4027sadraji ALU70 i BB70. Sadraj ALU70 predstavlja rezultat aritmetikih ili logikih operacija
4028koje kao odredite implicitno koriste registar akumulatora AB70. Sadraj BB70 predstavlja

124

123

4029operand koji se u fazi izvravanja instrukcije LDB prebacuje iz prihvatnog registra operanda
4030BB70 u registar akumulatora AB70.
4031 Registar BB7...0 je 8-mo razredni prihvatni registar u koji se privremeno smeta izvorini
4032operand specificiran adresnim delom svih instrukcija sa jednoadresnim formatom. Sadraj sa
4033linija interne magistrale IBUS15...0 se vodi na ulaze registra BB7...0 i u njega upisuje vrednou 1
4034signala ldBB. Sadraj registra BB7...0 se vodi na ulaze B7...0 aritmetiko logike jedinice ALU,
4035gde se koristi kao drugi izvorini operand u sluaju aritmetikih i logikih instrukcija, i
4036vrednou 1 signala BBout puta na linije interne magistrale IBUS7...0 i upisuje u registar AB7...0
4037u sluaju instrukcije LDB.
4038 Na paralelne ulaze registra BB70 se preko linija interne magistrale IBUS150 dovode
4039sadraji sadraji GPR70 bloka addr, MDR70 i IR158 bloka fetch. Sadraj GPR70 predstavlja
4040operand u sluaju registarskog direktnog adresiranja, MDR70 u sluaju memorijskih
4041adresiranja i IR158 u sluaju neposrednog adresiranja.
4042 Multiplekseri MX3 i MX4 i koderi CD1 i CD2 imaju identinu strukturu i funkcionalnost
4043kao i u sluaju procesora DVOB (odeljak 4.1.1.4).
4044 Registar AW15...0 je 16-to razredni akumulator koji se koristi kao implicitno izvorite u
4045instrukcijama prenosa STW, PUSHW, STIVTP, STIMR i STSP i implicitno odredite u
4046instrukcijama prenosa LDW, POPW, LDIVTP, LDIMR i LDSP. Sadraj sa linija interne
4047magistrale IBUS15...0 se vodi na ulaze registra AW15...0 i u njega upisuje vrednou 1 signala
4048ldAW. Vrednou 1 signala AWout sadraj registra AW15...0 se preko bafera sa tri stanja puta
4049na linije interne magistrale IBUS15...0 i vodi u blok addr gde se, ukoliko se izvrava instrukcija
4050prenosa STW sa zadatim direktnim registarskim adresiranjem, upisuje u adresirani registar
4051registarskog fajla GPR i ukoliko se izvrava instrukcija STSP upisuje u registar SP 15...0, i u blok
4052intr gde se, ukoliko se izvrava instrukcija STIVTP ili STIMR, upisuje u registre IVTP 15...0 ili
4053IMR15...0, respektivno. Vrednostima 1 signala AWout i AWHout se preko bafera sa tri stanja na
4054linije interne magistrale IBUS7...0 putaju sadraji mlaih 8 razreda AW7...0 i starijih 8 razreda
4055AW15...8 radi upisa u registar MDR7...0 bloka bus. Ovo se radi kada se sadraj registra AW15...0,
4056ukoliko se izvrava instrukcija prenosa STW sa zadatim nekim od memorijskih adresiranja ili
4057instrukcija prenosa PUSHW, upisuje u memoriju.
4058 Na paralelne ulaze registra AW150 se preko linija interne magistrale IBUS150 dovode
4059sadraji BW150, SP150 bloka addr, IVTP150 i IMR150 bloka intr. Sadraj BW150 se dovodi
4060u sluaju instrukcije LDW, sadraj SP150 u sluaju instrukcije LDSP, sadraj IVTP 150 u
4061sluaju instrukcije LDIVTP i sadraj IMR150 u sluaju instrukcije LDIMR.
4062 Registar BW15...0 je 16-to razredni prihvatni registar u koji se privremeno smeta izvorini
4063operand specificiran adresnim delom instrukcije prenosa LDW. Sadraj sa linija interne
4064magistrale IBUS15...0 se vodi na ulaze registra BW15...0 i u njega upisuje vrednou 1 signala
4065ldBW. Sadraj registra BW15...0 se vrednou 1 signala BWout puta na linije interne magistrale
4066IBUS7...0 i upisuje u registar AW15...0 u sluaju instrukcije LDW.

125

124

IB U S
16

IB U S

IB U S
16

1 5 ...0

ld P S W H u p ra v
u p ra v
s tP S W I

in tr
PSW I

c lP S W I
u p ra v

IB U S

16
IB U S

C LK

c lP S W T
u p ra v

ld Z
u p ra v
Z

IB U S

m r

PSW N

m r
in tr
PSW T

C LK
6

u p ra v

m r

u p ra v
s tP S W T
IB U S

ld P S W L

ld N
u p ra v

C LK
7

1 5 ...0

C LK
R

m r

16
IB U S

PSW Z

ld C
u p ra v

1 5 ...0

1 5 ...0

C
IB U S

PSW C

C LK
R

m r

1
1
1
1
1
1

0
PSW L2
PSW L1
PSW L0
PSW V
PSW C
PSW Z
PSW N

TSTA RT

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

PSW I
PSW T
0
0
0
0
0
0

ld V
u p ra v
IB U S
PSW

IB U S

15 8

4067
4068

C LK

PSW V

m r

7 ...0

ld L
u p ra v

PSW H out
u p ra v

in tr
p rl0
IB U S 4

in tr
PSW L

in tr
PSW L

in tr
PSW L

C LK
R

m r
PSW

IB U S

7 0

7 ...0

8
PSW Lout
u p ra v

m r

in tr
p rl1
IB U S 5

C LK
R

m r

fe tc h
u p ra v
STA RT

in tr
p rl2
IB U S 6

C LK

c lS T A R T
u p ra v

16

IB U S

1 5 ...0

C LK
R

m r

Slika 66 Blok exec (drugi deo)

4069 Na paralelne ulaze registra BW150 se preko linija interne magistrale IBUS150 dovode
4070sadraji GPR150 bloka addr i DW150 i IR150 bloka fetch. Sadraj GPR150 predstavlja
4071operand u sluaju registarskog direktnog adresiranja, sadraj DW150 operand u sluaju
4072memorijskih adresiranja i sadraj IR150 operand u sluaju neposrednog adresiranja.
126

125

4073 Registar PSW15...0 (slika 66) ima identinu strukturu i funkcionalnost kao i u sluaju
4074procesora DVOB (odeljak 4.1.1.4).
4075 U razrede PSW15.14 koji predstavljaju 2 najstarija razreda registra PSW 15...0 se vrednou 1
4076signala ldPSWH upisuje sadraj sa linija interne magistrale IBUS 7.6 na kojima se tada nalaze
4077sadraji razreda MDR7.6 prihvatnog registra podatka MDR7...0 bloka bus, dok se u razrede
4078PSW6...0 koji predstavljaju 7 najmlaih razreda registra PSW 15...0 vrednou 1 signala ldPSWL
4079upisuje sadraj sa linija interne magistrale IBUS 6...0 na kojima se tada nalaze sadraji razreda
4080MDR6...0 prihvatnog registra podatka MDR7...0. Ovo se koristi prilikom izvravanja instrukcije
4081RTI da se sadrajem sa vrha steka restaurira sadraj registra PSW 15...0. Sadraji 2 najstarija
4082razreda PSW15.14, 7 najmlaih razreda PSW6...0 i vrednosti 0 za nepostojee razrede PSW13...7
4083registra PSW15...0 se vrednostima 1 signala PSWHout i PSWLout putaju posebno kao 8
4084starijih razreda PSW15...8 i 8 mlaih razreda PSW7...0 registra PSW15...0 na linije interne magistrale
4085IBUS7...0 i vode u blok bus u kome se upisuju u prihvatni registar podatka MDR 7...0. Ovo se
4086koristi prilikom opsluivanja zahteva za prekida da se sadraj registra PSW 15...0 stavi na vrh
4087steka.

fetch
fetch

A B
B B
A LU

7
7
7

A D D

fetch

B
B
B
B
B
B
B
B

D
C
B
C

7
6
5

4
3
2
1
0

A
A
A
A
A
A
A
A

A D
IN
SU
D E

C8
A SR
LSR
R O R
RO RC
A B 0
A SL
LSL
RO L
RO LC
A B 7

LD B
PO PB
A D D
SU B
IN C
D EC
A N D
O R
X O R
N O T
A SR
LSR
RO R
RO RC
A SL
LSL
RO L
RO LC

fetch

N
7

A B

fetch

4088 Flip-flop START svojom vrednou 1 omoguuje izvravanje instrukcija, dok vrednou 0
4089zaustavlja. U flip-flop START se upisuje vrednost 1 vrednou 1 signala TSTART koja se
4090generie ili pri ukljuenju napajanja ili aktiviranjem tastera START. U flip-flop se upisuje
4091vrednost 0 vrednou 1 signala clSTART koja se generie u okviru faze izvravanja instrukcije
4092HALT.

A D D

SU B
V
V
IN C
D EC

4093
4094

Slika 67 Blok exec (trei deo)

127

126

IN C

D EC

SU B

4095
4096 Kombinacione mree signala postavljanja indikatora N, Z, C i V (slika 67) imaju identinu
4097strukturu i funkcionalnost kao i u sluaju procesora DVOB (odeljak 4.1.1.4).
4098 Kombinacione mree za formiranje signala rezultata operacija eql, ..., nneg i brpom se
4099sastoje od logikih elemenata i multipleksera MX7, MX8 i MX9 (slika 68). Logikim
4100elementima se na osnovu sadraja flip-flopova PSWN, PSWZ, PSWC i PSWV programske
4101statusne rei formiraju signali eql, ..., nneg. Multiplekserima MX7, MX8 i MX9 se na osnovu
4102sadraja sa linija interne magistrale IBUS3...0 na kojima su sadraji razreda IR27...24 prihvatnog
4103registra instrukcije bloka fetch kojima se specificira kod operacije instrukcije uslovnog skoka
4104BEQL, ..., BNNEQ selektuje jedan od signala eql, ..., nneg i pojavljuje kao signal brpom koji
4105se koristi u upravljakoj jedinici uprav da bi se prilikom izvravanja instrukcija uslovnog skoka
4106utvrdilo da li je uslov za skok ispunjen ili nije. Selekcija jednog od signala eql, ..., nneg i
4107formiranje signala brpom se realizuje na osnovu kodiranja odgovarajuih kodova operacija
4108instrukcije uslovnog skoka BEQL, ..., BNNEQ. Kodiranje instrukcija je tako realizovano da se
4109razredom IR27 selektuje jedna od dve podgrupe G0_PG2 (poglavlje 2.1.5.1.3.1) i G0_PG3
4110(poglavlje 2.1.5.1.3.1) instrukcija uslovnog skoka (tabela 4), dok se razredima IR26...24 unutar
4111selektovane podrupe selektuje odgovarajua instrukcija (tabele 7 i 8).
PSW Z
PSW N
PSW V
PSW Z
PSW C
PSW Z

16
IB U S

4112
4113

PSW C

ls s u , c a r
g rte u , n c a r

ls s
g r te

PSW V

ovf
novf

ls s e
g rt

PSW N

neg
nneg

ls s e u
g r tu

ncar
car
novf
ovf
nneg
neg
neql
eql
1 5 ...0

IB U S
16
IB U S

eql
neql

IB U S

7
6
5
4

M X 7

3
2
1
0

ls s e u
ls s u
g rte u
g r tu
ls s e
ls s
g rte
g rt


2 ...0

IB U S

7
6
5

M X 8

M X 9

IB U S

u p ra v
b rp o m

0
3

1
0


2 ...0

3 ...0

4
1 5 ...0

Slika 68 Blok exec (etvrti deo)

4114 Signali rezultata operacija eql, ..., nneg imaju identino znaenje i formiraju se prema
4115identinim izrazima kao i u sluaju procesora DVOB (odeljak 4.1.1.4).
41164.2.1.5 Blok intr
4117 Blok intr sadri logiki ILI element za formiranje signala prekida prekid, kombinacione i
4118sekvencijalne mree za prihvatanje unutranjih prekida i spoljanjih nemaskirajuih i
128

127

4119maskirajuih prekida, registar IMR15...0 i bafere sa tri stanja za povezivanje registra IMR15...0 na
4120linije interne magistrale IBUS15...0 (slika 69), kombinacione prekidake mree za formiranje
4121signala spoljanjih maskirajuih prekida printr (slika 70) i kombinacione i sekvencijalne mree
4122za formiranje adrese prekidne rutine (slika 71).
u p ra v
s tP R IN S

u p ra v
P R IN S

u p ra v
s tP R C O D

C LK

c lP R IN S
u p ra v

c lP R C O D
u p ra v

16

U /I 6
in tr6

P R IN T R

U /I 2
in tr 2

c lIN T R

4123
4124

P R IN T R

1 5 ...0

1 5 ...0

P R IN T R

U /I 1
in tr 1

c lIN T R

m r

c lIN T R

u p ra v
p re k id

p rl2
p rl1
p rl0

P R IN T R

P R IN T R

U /I 4
in tr 4

P R IN T R

P R IN T R

m r
S

C LK
R

c lIN T R

m r
7

2
1
0

C LK

m r

U /I 5
in tr 5

c lIN T R
P R IN S
PRCO D
PRA D R
P R IN M
p r in tr
exec
PSW T
RTI
fe tc h

C LK

C LK
R

m r
IB U S

C LK
R

16
16
16
u p r a v I M R o u t I B U S 1 5 ...0

m r

IM R

16

C LK

c lIN T R

m r
M R

IM R

LD

16

ld IM R
u p ra v
R

c lP R A D R
u p ra v

m r

C LK

c lIN T R

m r

U /I 3
in tr3

u p ra v
PRA D R

C LK

P R IN M

C LK

c lP R IN M
u p ra v

u p ra v
s tP R A D R

C LK

m r

FAU LT
in m

u p ra v
PR CO D

D C

7
6
5
4
3
2
1
0

c lIN
c lIN
c lIN
c lIN
c lIN
c lIN
c lIN

T
T
T
T
T
T
T

R
R
R
R
R
R
R

U /I 7
in tr 7

m r
Q

C LK

5
3

6
4

c lIN T R

m r

c lIN T R
u p ra v

Slika 69 Blok intr (prvi deo)

4125 Logiki ILI element za formiranje signala prekida prekid i kombinacione i sekvencijalne
4126mree za prihvatanje unutranjih prekida i spoljanjih nemaskirajuih i maskirajuih prekida
4127(slika 69) imaju identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB (odeljak
41284.1.1.5).
4129 Registar maske IMR150 slui za pojedinano maskiranje spoljanjih maskirajuih zahteva za
4130prekid intr1 do intr7. Zahtevima za prekid intr1 do intr7 odgovaraju razredi IMR1 do IMR7
4131registra maske IMR150, dok se preostali razredi ne koriste. Upis sadraja registra AW150
129

128

4132bloka exec koji dolazi po linijama interne magistrale IBUS 150 se obavlja vrednou 1 signala
4133ldIMR. Upis u registar IMR150 se realizuje samo kod izvravanja instrukcije STIMR, koja
4134slui za upis sadraja akumulatora AW15...0 u registar procesora IMR150. Vrednou 1 signala
4135IMRout sadraj registra IMR150 se puta na linije interne magistrale IBUS150 i vodi u
4136akumulator AW15...0. Upis u akumulator AW150 se realizuje samo kod izvravanja instrukcije
4137LDIMR, koja slui za upis sadraja registra IMR150 u akumulator AW15...0.
4138 Kombinacione prekidake mree za formiranje signala spoljanjih maskirajuih prekida
4139printr (slika 70) imaju identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB
4140(odeljak 4.1.1.5).
IM
IM
IM
IM
IM
IM
IM

R
R
R
R
R
R
R

P
P
P
P
P
P
P

1
2
3
4
5
6
7

R
R
R
R
R
R
R

ir m
ir m
ir m
ir m
ir m
ir m
ir m

im rp rin tr
u p ra v
p rin tr

IN
IN
IN
IN
IN
IN
IN

T
T
T
T
T
T
T

R
R
R
R
R
R
R

1
2
3
4
5
6
7

7
6
5
4
3
2
1

PSW I
exec
7

acc

5
2

CD
1

4141
4142

2
1
0

b
b
b

2
1
0

CM P

p rl2
p rl1
p rl0

a2
a1
a0


exec

PSW L
PSW L
PSW L

exec

A >B

Slika 70 Blok intr (drugi deo)

4143 Kombinacione i sekvencijalne mree za formiranje adrese prekidne rutine se sastoje od


4144kombinacionih i sekvencijalnih mrea za formiranje pomeraja za tabelu sa adresama prekidnih
4145rutina IVTDSP15...0 i registra IVTP15...0 (slika 71).

130

129

IB U S

7
6
5
4
3
2
1

7
6
5
4
3
2
1
0

CD 1

0
0

3
2
1
0

1
0

1
CD 2

2
1
0

3
2
1
0

ir m
ir m
ir m
ir m
ir m
ir m
ir m

3
2
1
0

...
...

PRCO D
PRA D R
P R IN M
PSW T
exec

U IN T
8

U EX T
8

7 0

u p ra v

u p ra v

8
0

IB U S

7 ...0

IB U S

7 ...0

U IN T o u t

8
U EX Tout

m r

B R

LD

7 ...0

M R

B R

7 ...0

ld B R
u p ra v

IB U S
8

7 0

8
C LK

1 5 ...0

16

...
...

1 5 ... 9 8 ... 1

1 6 IV T D S P

0
1 5 ...0

16
16
u p ra v IV T D S P o u t
16
CLK
ld IV T P
u p ra v

C LK
LD

m r
M R

IV T P
1 6 IV T P

1 5 ...0

16
16
u p ra v IV T P o u t

4146
4147

IB U S

16
1 5 ...0

Slika 71 Blok intr (trei deo)

4148 Kombinacione i sekvencijalne mree za formiranje pomeraja IVTDSP15...0 za tabelu sa


4149adresama prekidnih rutina se sastoje od kodera CD1 i CD2, i registra BR7...0.
4150 Koder CD1 ima identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB
4151(odeljak 4.1.1.5). Vrednou 1 signala UINTout sadraj UINT7...0 se puta na linije interne
4152magistrale IBUS70 i vodi u registar BR7...0. Upis u registar BR7...0 se realizuje samo kod
4153opsluivanja prekida ukoliko se prihvata neki od unutranjih prekida, spoljanji nemaskirajui
4154prekid ili unutranji prekid zbog zadatog reima rada prekid posle svake instrukcije.
4155 Koder CD2 ima identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB
4156(odeljak 4.1.1.5). Vrednou 1 signala UEXTout sadraj UENT7...0 se puta na linije interne
4157magistrale IBUS70 i vodi u registar BR7...0. Upis u registar BR7...0 se realizuje samo kod
4158opsluivanja prekida ukoliko se prihvata neki od spoljanjih maskirajuih prekida.
4159 Registar BR7...0 slui za pamenje broja ulaza u tabelu sa adresama prekidnih rutina. Upis
4160sadraja sa linija interne magistrale IBUS 7...0 u registar BR7...0 se obavlja vrednou 1 signala
4161ldBR. Sadraj registra BR7...0 se u okviru opsluivanja zahteva za prekid koristi za formiranje

131

130

4162pomeraja IVTDSP15...0 za ulazak u tabelu sa adresama prekidnoh rutina. Kako adresa prekidne
4163rutine zauzima dve susedne memorijske lokacije, to se pomeraj IVTDSP 15...0 dobija pomeranjem
4164sadraja registra BR7...0 za jedno mesto ulevo. Vrednou 1 signala IVTDSPout se formirani
4165pomeraj IVTDSP15...0 puta na linije interne magistrale IBUS 15...0 i vodi u registar CW115...0 bloka
4166addr.
4167 Na paralelne ulaze registra BR7...0 se preko linija interne magistrale IBUS7...0 dovode sadraji
4168IR2316 bloka fetch, UEXT70 i UINT70, koji predstavljaju brojeve ulaza u tabelu sa adresama
4169prekidnih rutina za instrukciju prekida INT, za spoljanje maskirajue prekide i za za unutranje
4170prekide i spoljanji nemaskirajui prekid, respektivno.
4171 Registar IVTP15...0 je ukaziva na tabelu sa adresama prekidnih rutina i sadri poetnu adresu
4172tabele. Upis sadraja sa linija interne magistrale IBUS15...0 u registar IVTP15...0 se obavlja
4173vrednou 1 signala ldIVTP.
4174 Na paralelne ulaze registra IVTP15...0 se preko linija interne magistrale IBUS 15...0 dovodi
4175sadraj registra AW150 bloka exec. Upis u registar IVTP15...0 se realizuje samo kod izvravanja
4176instrukcije STIVTP, koja slui za upis sadraja akumulatora AW15...0 u registar procesora
4177IVTP15...0. Vrednou 1 signala IVTPout sadraj registra IVTP15...0 se puta na linije interne
4178magistrale IBUS150 i vodi u akumulator AW15...0. Upis u akumulator AW150 se realizuje samo
4179kod izvravanja instrukcije LDIVTP, koja slui za upis sadraja registra IVTP15...0 u akumulator
4180AW15...0.
4181 U okviru opsluivanja prekida u registrima CW15...0 i CW115...0 bloka addr se nalaze sadraji
4182registra IVTP15...0 i pomeraja IVTDSP15...0, pa se njihovim sabiranjem dobija adresa sa koje se
4183ita adresa prekidne rutine i upisuje u PC15...0.
41844.2.2 Upravljaka jedinica
4185 U ovom odeljku se daju dijagram toka izvravanja instrukcija, algoritam generisanja
4186upravljakih signala i struktura upravljake jedinice uprav.
41874.2.2.1 Dijagram toka izvravanja instrukcija
4188 Dijagram toka izvravanja instrukcija je identian kao i dijagram toka izvravanja instrukcija
4189procesora DVOB (odeljak 4.1.2.1).
41904.2.2.2 Algoritam generisanja upravljakih signala
4191 Algoritam generisanja upravljakih signala, formiran na osnovu dijagrama toka izvravanja
4192instrukcija (slika 4.1.2.1) i strukture operacione jedinice (poglavlje 4.2.1), dat je u obliku
4193dijagrama toka mikrooperacija, dijagrama toka upravljakih signala (slike 72 do 98) i sekvence
4194upravljakih signala po koracima (tabela 24), koji su formirani na identian nain kao i u
4195sluaju procesora DVOB (odeljak 4.1.2.2).
4196
Tabela 24 Sekvenca upravljakih signala po koracima
4197! Sekvenca upravljakih signala po koracima ima etiri celine koje odgovaraju fazama itanje
4198instrukcije, formiranje adrese operanda, izvravanje operacije i opsluivanje prekida. Faza itanje
4199instrukcije se realizuje u koracima step 00 do step18 koji su zajedniki za sve instrukcije. Faza formiranje
4200adrese operanda se realizuje u koracima step20 do step4A pri emu postoje posebni koraci za svaki nain
4201adresiranja operanda. Faza izvravanje operacije se realizuje u koracima step 50 do stepC5, pri emu
4202postoje posebni koraci za svaku operaciju. Faza opsluivanje prekida se realizuje u koracima step D0 do
4203stepF9 koji su zajedniki za sve instrukcije. !

132

131

4204! itanje instrukcije !

STA R T

STA RT

M A R <=PC ,
PC<=PC +1

P C o u t, ld M A R ,
in c P C

hack

hack

M D R <=M EM
0

eM A R , rd C P U
0

fc C P U

fc C P U

IR

<=M D R
3 1 ...2 4

M D R o u t, ld IR 0

7 ...0

g ro p r

g ro p r

PR C O D <=1

l1

s tP R C O D

l1

4205
4206

60

0
1

13

56

60

13

56

Slika 72 itanje instrukcije (prvi deo)

4207! U koraku step00 se proverava vrednost signala START bloka exec koji vrednostima 0 i 1 ukazuje da li
4208je processor neaktivan ili aktivan, respektivno (slika 72). Ukoliko je procesor neaktivan ostaje se u
4209koraku step00, dok se u suprotnom sluaju prelazi na korak step01. !
4210
step00 br (if START then step00);
4211! U koracima step01 do step04 se ita prvi bajt instrukcije i smeta u razrede IR 3124 prihvatnog registra
4212instrukcije IR310. Signalom PCout bloka bus se sadraj registra PC15..0 bloka fetch puta na internu
4213magistralu IBUS15...0 i signalom ldMAR upisuje u adresni registar MAR15..0 bloka bus. Pored toga,
4214signalom incPC se sadraj registra PC 15..0 inkrementira. U koraku step02 se proverava vrednost signala
4215hack bloka bus koji vrednostima 1 i 0 ukazuje da li je processor prepustio magistralu kontroleru sa
4216direktnim pristupom memoriji ili je magistrala u posedu procesora, respektivno. Ukoliko je procesor
4217prepustio magistralu ostaje se u koraku step02, dok se u suprotnom sluaju prelazi na korak step 03. U
4218koraku step03 se realizuje itanje jednog bajta i upisivanje u registar podatka MDR 7..0 bloka bus.
4219Signalom eMAR se sadraj registra MAR150 puta na adresne linije ABUS150 magistrale BUS. Pored
4220toga se signalom rdCPU generie vrednost 0 signala na upravljakoj liniji RDBUS magistrale BUS,
4221ime se u memoriji MEM startuje operacija itanja. U koraku step 03 se ostaje onoliko perioda signala
4222takta koliko je neophodno da se itanje realizuje. Sve vreme dok je processor u koraku step 03 adresa je
4223prisutna na linijama ABUS150 i na liniji RDBUS je vrednost 0. Po zavrenom itanju memorija
4224MEM puta proitani sadraj na linije podataka DBUS 70 magistrale BUS. Radi indikacije da je
4225sadraj na linijama DBUS70 vaei memorija generie vrednost 0 signala na upravljakoj liniji
4226 FCBUS magistrale BUS. U koraku step03 se proverava vrednost signala fcCPU bloka bus koji
4227vrednostima 0 i 1 ukazuje da itanje nije zavreno i da je itanje zavreno, respektivno. Ukoliko itanje
4228nije zavreno ostaje se u koraku step03, dok se u suprotnom sluaju sadraj sa linija DBUS 70 upisuje u
4229registar podatka MDR7..0 i prelazi na korak step04. U koraku step04 se signalom MDRout sadraj
4230registra MDR7..0 bloka bus puta na niih osam linija interne magistrale IBUS7...0 i signalom ldIR0 bloka
4231fetch upisuje u prihvatni registar instrukcije i to u razrede IR3124 bloka bus. !
4232
step01 PCout, ldMAR, incPC,
4233
step02 br (if hack then step02);
133

132

4234
step03 eMAR, rdCPU,
4235
br (if fcCPU then step03);
4236
step04 MDRout, ldIR0;
4237! U koraku step05 se proverava vrednost signala gropr bloka fetch da bi se utvrdilo da li prvi bajt
4238instrukcije sadri korektnu vrednost koda operacije. U zavisnosti od toga da li signal gropr ima
4239vrednost 1 ili 0, prelazi se na korak step06 ili step07, respektivno. Ukoliko prvi bajt instrukcije sadri
4240nekorektnu vrednost koda operacije, u koraku step06 se signalom stPRCOD bloka intr u flip-flop
4241PRCOD upisuje vrednost 1 i bezuslovno prelazi na korak stepC0 radi utvrivanja adrese prekidne rutine.
4242!
4243
step05 br (if gropr then step07);
4244
step06 stPRCOD,
4245
stepD0;
4246! U koraku step07 se proverava vrednost signala l1 bloka fetch da bi se utvrdilo da li je duina instrukcije
4247jedan ili vie bajtova. U zavisnosti od toga da li signal l1 ima vrednost 1 ili 0, prelazi se na korak step50 i
4248fazu izvravanje operacije ili step07 i produava sa itanjem bajtova instrukcije. !
4249
step07 br (if l1 then step50);
4250! U koracima step08 do step0B se ita drugi bajt instrukcije i smeta u razrede IR 2316 prihvatnog registra
4251instrukcije IR310 (slika 73). Koraci step08 do step0A u kojima se ita drugi bajt instrukcije su isti kao
4252koraci step01 do step03 u kojima se ita prvi bajt instrukcije. U koraku step 0B se signalom MDRout
4253sadraj registra MDR7..0 bloka bus puta na niih osam linija interne magistrale IBUS7...0 i signalom
4254ldIR1 bloka fetch upisuje u prihvatni registar instrukcije i to u razrede IR 2316 bloka bus. Istovremeno
4255se signalom ldGPRAR bloka addr razredi MDR4..0, koji se nalaze na niih 5 linija magistrale IBUS 4...0,
4256upisuju u registar GPRAR4..0. Time se u registru GPRAR4..0 nalazi adresa registra opte namene. !
4257
step08 PCout, ldMAR, incPC,
4258
step09 br (if hack then step09);
4259
step0A eMAR, rdCPU,
4260
br (if fcCPU then step0A);
4261
step0B MDRout, ldIR1, ldGPRAR;
4262! U koraku step0C se proverava vrednost signala gradr bloka fetch da bi se utvrdilo da li je nekorektno
4263adresiranje specificirano. Ovo se deava ukoliko se za instrukcije STB i STW specificira neposredno
4264adresiranje. U zavisnosti od toga da li signal gradr ima vrednost 1 ili 0, prelazi se na korak step0D ili
4265step0E, respektivno. Ukoliko je nekorektno adresiranje specificirano, u koraku step0D se signalom
4266stPRADR bloka intr u flip-flop PRADR upisuje vrednost 1 i bezuslovno prelazi na korak stepD0 radi
4267utvrivanja adrese prekidne rutine. !
4268
step0C br (if gradr then step0E);
4269
step0D stPRADR,
4270
br stepD0;
4271! U koracima step0E i step0F se proverava vrednost signala l2_brnch i l2_arlog bloka fetch da bi se
4272utvrdilo da li je duina instrukcije dva ili vie bajtova. Iz koraka step 0E se u zavisnosti od toga da li
4273signal l2_brnch ima vrednost 1 ili 0, prelazi na korak step50 i fazu izvravanje operacije ili step0F i
4274proveru vrednosti signala l2_arlog. Iz koraka step0F se u zavisnosti od toga da li signal l2_arlog ima
4275vrednost 1 ili 0, prelazi na korak step20 i fazu formiranje adrese operanda ili step10 i produava sa
4276itanjem bajtova instrukcije.!
4277
step0E br (if l2_brnch then step50);
4278
step0F br (if l2_arlog then step20);
4279

134

133

60

13

56

60

M A R <=PC ,
PC<=PC +1

hack

fc C P U

56

fc C P U
1

I R 2 3 ...1 6 < = M D R 7 ...0 ,


G P R A R 4 ...0 < = M D R 4 ...0

M D R o u t, ld IR 1 ,
ld G P R A R

g ra d r
1

g ra d r
1

PRA D R <=1

l2 _ b rn c h

s tP R A D R

l2 _ b rn c h

l2 _ a r lo g

l2 _ a rlo g

0
60

13

eM A R , rd C P U

4280
4281

hack
0

M D R <=M EM

56

P C o u t,ld M A R ,
in c P C

13

0
2

13

56

60

Slika 73 itanje instrukcije (drugi deo)

4282! U koracima step10 do step12 se ita trei bajt instrukcije i smeta u razrede IR 158 prihvatnog registra
4283instrukcije IR310 (slika 74). Koraci step10 do step12 u kojima se ita trei bajt instrukcije su isti kao
4284koraci step01 do step03 u kojima se ita prvi bajt instrukcije.!
4285
step10 PCout, ldMAR, incPC,
4286
step11 br (if hack then step11);
4287
step12 eMAR, rdCPU,
4288
br (if fcCPU then step12);
4289! U koraku step13 se signalom MDRout sadraj registra MDR7..0 bloka bus puta na niih osam linija
4290interne magistrale IBUS7...0 i signalom l ldIR2 bloka fetch upisuje u prihvatni registar instrukcije i to u
4291razrede IR158 bloka bus. !
4292! U koracima step13 i step14 se proverava vrednost signala l3_jump i l3_arlog bloka fetch da bi se
4293utvrdilo da li je duina instrukcije tri ili etiri bajta. Iz koraka step 13 se u zavisnosti od toga da li signal
4294l3_jump ima vrednost 1 ili 0, prelazi na korak step50 i fazu izvravanje operacije ili step14 i proveru
4295vrednosti signala l3_arlog. Iz koraka step14 se u zavisnosti od toga da li signal l3_arlog ima vrednost 1
4296ili 0, prelazi na korak step20 i fazu formiranje adrese operanda ili step15 i produava sa itanjem etvrtog
4297bajta instrukcije.!
4298
step13 MDRout, ldIR2,
4299
br (if l3_jump then step50);
4300
step14 br (if l3_arlog then step20);

135

134

60

13

56

60

M A R<=PC,
PC<=PC+1

fc C P U

<=M D R

M D R o u t, ld IR 2

7 ...0
1

l3 _ ju m p

l3 _ ju m p

l3 _ a rlo g

P C o u t, ld M A R ,
in c P C

hack

hack

M D R<=M EM

eM A R , rd C P U
0

fc C P U

fc C P U

4301
4302

60

7 ...0 <

M A R<=PC,
PC<=PC+1

IR

l3 _ a rlo g

56

eM A R , rd C P U
0

fc C P U

13

M D R<=M EM

1 5 ...8

56

hack

IR

13

P C o u t, ld M A R ,
in c P C

hack

=M D R
3

M D R o u t, ld IR 3

7 ...0
13

56

60

Slika 74 itanje instrukcije (trei deo)

4303! U koracima step15 do step17 se ita etvrti bajt instrukcije i smeta u razrede IR 70 prihvatnog registra
4304instrukcije IR310 (slika 74). Koraci step15 do step17 u kojima se ita etvrti bajt instrukcije su isti kao
4305koraci step01 do step03 u kojima se ita prvi bajt instrukcije. U koraku step18 se signalima MDRout i
4306ldIR3 bloka fetch sadraj registra MDR7..0 bloka bus puta na nizih 8 linija interne magistrale IBUS70 i
4307upisuje u prihvatni registar instrukcije i to u razrede IR 70 bloka bus. Iz koraka step18 se bezuslovno
4308prelazi na korak step20 i fazu formiranje adrese operanda. !
4309
step15 PCout, ldMAR, incPC,
4310
step16 br (if hack then step16);
4311
step17 eMAR, rdCPU,
4312
br (if fcCPU then step17);
4313
step18 MDRout, ldIR3,
4314
br step20;
4315! Formiranje adrese operanda !
4316! U korak step20 se dolazi iz koraka step0F, step14 i step18 ukoliko se radi o instrukcijama duine dva, tri i
4317etiri bajta koje zahtevaju da se do operanda doe saglasno specificiranom nainu adresiranja (slika 75).
4318Za sve instrukcije, sem instrukcija STB i STW, operand se smeta u registar BB 70 ili BW150. Operand
4319moe da bude u nekom od registara opte namene, u memorijskoj lokaciji ili samoj instrukciji. U sluaju
4320adresiranja kod kojih se operand nalazi u nekom od registara opte namene ili u samoj instrukciji, ova
4321faza se svodi na prebacivanje operanda u registar BB70 ili BW150. U sluaju adresiranja kod kojih se
4322operand nalazi u memoriji, ova faza se sastoji od koraka u kojima se prvo formira adresa operanda u
4323memoriji i zatim ita operand. Izuzetak su instrukcije STB i STW kod kojih se operand upisuje. U
4324sluaju adresiranja kod koga se operand upisuje u registar opte namene, odmah se prelazi na fazu
4325izvravanje operacije u kojoj se operand upisuje u registar opte namene. U sluaju nekog od
4326adresiranja kod kojih se operand upisuje u memoriju, u ovoj fazi se samo formira adresa operanda u

136

135

4327registru MAR150, pa se prelazi na fazu izvravanje operacije u kojoj se operand upisuje u memoriju na
4328formiranoj adresi. Sluaj kada se upisuje u samu instrukciju se otkriva jo u fazi itanje instrukcije i to
4329kod itanja drugog bajta instrukcije, pa ovaj sluaj ne moe da se javi u ovoj fazi. U koraku step 20 se
4330realizuje viestruki uslovni skok na jedan od koraka step21, step25, , step41 u zavisnosti od toga koji od
4331signala adresiranja regdir, regind, memdir, memind, regindpom, bxpom, bcpom i imm bloka addr
4332ima vrednost 1. !
60

13

56

60

c a s e (re g d ir, re g in d , m e m d ir,


m e m in d , re g in d p o m , b x p o m ,
p c p o m , im m )
4

8
4

10

11

10

13

56

11

re g d ir
1

LD W

LD W
0

B B <=G PR

7 ...0

G P R o u t, ld B B

B W <=G PR

1 5 ...0

G P R o u t, ld B W

re g in d
M A R < = G P R 1 5 ...0

re g in d
G P R o u t, ld M A R
1

s to re

s to re

M A R < = IR
s to re

m e m d ir

m e m d ir
IR D A o u t, ld M A R

1 5 ...0
1

s to re

60

s to re

4333
4334

56

c a s e (re g d ir, re g in d , m e m d ir,


m e m in d , re g in d p o m , b x p o m ,
p c p o m , im m )

re g d ir

s to re

13

12

13

56

60

12

Slika 75 Formiranje adrese operanda (prvi deo)

4335
step20 br (case (regdir, regind, memdir, memind, regindpom, bxpom, bcpom, imm) then
4336
(regdir, step21), (regind, step25), (memdir, step27), (memind, step29),
4337
(regindpom, step32), (bxpom, step36), (pcpom, step3C), (imm, step48));
4338! Registarsko direktno adresiranje !
4339! U korak step21 se dolazi iz step20 ukoliko signal za registarsko direktno adresiranje regdir ima vrednost
43401. Ukoliko signal store bloka addr ima vrednost 1, to znai da se radi o instrukciji STB ili instrukciji
4341STW za koje nema itanja operanda, prelazi se na korak step50 i fazu izvravanje operacije. U
4342suprotnom sluaju se prelazi na korak step22 u kome se proverava vrednost signala operacije LDW.
4343Ukoliko signal LDW ima vrednost 1, prelazi se na korak step 24 u kome se signalima GPRout i ldBW
434416-to razredni sadraj adresiranog registra opte namene GPR 15...0 bloka addr puta na internu
4345magistralu IBUS150 i upisuje u registar BW150 bloka exec. U suprotnom sluaju se prelazi na korak
4346step23 u kome se signalima GPRout i ldBB mlai bajt adresiranog registra opte namene GPR 7...0 puta
4347na nizih 8 linija interne magistrale IBUS70 i upisuje u registar BB70 bloka exec. U oba sluaja se
4348prelazi na korak step50 i fazu izvravanje operacije. !
4349
step21 br (if store then step50);
137

136

4350
step22 br (if LDW then step24);
4351
step23 GPRout, ldBB,
4352
br step50;
4353
step24 GPRout, ldBW,
4354
br step50;
4355! Registarsko indirektno adresiranje !
4356! U korak step25 se dolazi iz step20 ukoliko signal za registarsko indirektno adresiranje regind ima
4357vrednost 1. Signalom GPRout se sadraj adresiranog registra opte namene GPR 15...0 bloka addr puta
4358na internu magistralu IBUS150 i signalom ldMAR upisuje u registar MAR15...0 bloka bus. Time se u
4359registru MAR15...0 nalazi adresa operanda za sluaj registarskog indirektnog adresiranja. Ukoliko signal
4360store bloka addr ima vrednost 1, to znai da se radi o instrukciji STB ili instrukciji STW za koje nema
4361itanja operanda, prelazi se na korak step50 i fazu izvravanje operacije. U suprotnom sluaju se prelazi
4362na korak step26 iz koga se bezuslovno prelazi na korak step3F i itanje operanda. !
4363
step25 GPRout, ldMAR,
4364
br (if store then step50);
4365
step26 br step3F;
4366! Memorijsko direktno adresiranje !
4367! U korak step27 se dolazi iz step20 ukoliko signal za memorijsko direktno adresiranje memdir ima
4368vrednost 1. Signalom IRDAout se sadraj registra IR15...0 bloka fetch puta na internu magistralu
4369IBUS150 i signalom ldMAR upisuje u registar MAR15...0 bloka bus. Time se u registru MAR15...0 nalazi
4370adresa operanda za sluaj memorijskog direktnog adresiranja. Ukoliko signal store bloka addr ima
4371vrednost 1, to znai da se radi o instrukciji STB ili instrukciji STW za koje nema itanja operanda,
4372prelazi se na korak step50 i fazu izvravanje operacije. U suprotnom sluaju se prelazi na korak step27 iz
4373koga se bezuslovno prelazi na korak step3F i itanje operanda. !
4374
step27 IRDAout, ldMAR,
4375
br (if store then step50);
4376
step28 br step3F;
4377! Memorijsko indirektno adresiranje !
4378! U korak step29 se dolazi iz step20 ukoliko signal za memorijsko indirektno adresiranje memind ima
4379vrednost 1 (slika 76). Signalom IRDAout se sadraj registra IR15...0 bloka fetch puta na internu
4380magistralu IBUS150 i signalom ldMAR upisuje u registar MAR15...0. Time se u registru MAR15...0 nalazi
4381adresa memorijske lokacije poev od koje treba proitati dva bajta koji predstavljaju vii i nii bajt
4382adrese operanda za sluaj memorijskog indirektnog adresiranja. itanje prvog bajta se realizuje u
4383koracima step2A i step2B, a drugog bajta u koracima step2D i step2E, na isti nain kao u koracima step02 i
4384step03, kod itanja prvog bajta instrukcije. U koraku step2C se signalom MDRout prvi bajt puta iz
4385registra MDR7...0 bloka bus na linije interne magistrale IBUS70 i signalom ldDWH upisuje u stariji bajt
4386registra DW15...8 bloka bus, a signalom incMAR adresni registar MAR15...0 bloka bus inkrementira na
4387adresu sledeeg bajta. U koraku step2F se signalom MDRout drugi bajt puta iz registra MDR7...0 bloka
4388bus na linije interne magistrale IBUS70 i signalom ldDWL upisuje u mlai bajt registra DW7...0. Na
4389kraju se u koraku step30 signalom DWout2 sadraj registra DW15...0 koji predstavlja adresu operanda
4390puta na linije interne magistrale IBUS15...0 i signalom ldMAR upisuje u registar MAR15...0. Ukoliko
4391signal store bloka addr ima vrednost 1, to znai da se radi o instrukciji STB ili instrukciji STW za
4392koje nema itanja operanda, prelazi se na korak step50 i fazu izvravanje operacije. U suprotnom sluaju
4393se prelazi na korak step31 iz koga se bezuslovno prelazi na korak step3F i itanje operanda. !

138

137

4394
60

M A R < = IR

12

m e m in d

13

56

60

m e m in d
IR D A o u t, ld M A R

1 5 ...0

hack
0

fc C P U

M A R<=D W

s to re

re g in d p o m
C W < = G P R 1 5 ...0
C W 1 < = IR

1 5 ...0

re g in d p o m
G P R o u t, ld C W
IR D A o u t, ld C W 1

1 5 ...0

+CW 1

A D D o u t, ld M A R
1 5 ...0
1

s to re

s to re

bxpom
C W < = G P R 1 5 ...0

bxpom
G P R o u t, ld C W

C W 1 < = I R 1 5 ...0 ,
G PRA R<=G PRA R +1

IR D A o u t, ld C W 1 ,
in c G P R A R

1 5 ...0

+CW 1

CW 1<=G PR

1 5 ...0

A D D o u t, ld C W
1 5 ...0

G P R o u t, ld C W 1

1 5 ...0

+CW 1

s to re

A D D o u t, ld M A R
1 5 ...0
1

s to re

139

56

D W o u t, ld M A R

1 5 ...0

M A R<=
CW

13

M D R o u t, ld D W L

7 ...0

s to re

60

fc C P U
1

7 ...0 < = M D R

CW <=
CW

12

eM A R , rd C P U

4395
4396

hack
0

M D R<=M EM

M A R<=
CW

fc C P U
M D R o u t, ld D W H ,
in c M A R

hack

D W

hack

D W 1 5 ...8 < = M D R 7 ...0 ,


M A R<=M A R+1

56

eM A R , rd C P U

fc C P U

13

M D R<=M EM
0

12

12

13

56

60

Slika 76 Formiranje adrese operanda (drugi deo)


138

4397
step29 IRDAout, ldMAR;
4398
step2A br (if hack then step2A);
4399
step2B eMAR, rdCPU,
4400
br (if fcCPU then step2B);
4401
step2C MDRout, ldDWH, incMAR;
4402
step2D br (if hack then step2D);
4403
step2E eMAR, rdCPU,
4404
br (if fcCPU then step2E);
4405
step2F MDRout, ldDWL;
4406
step30 DWout, ldMAR,
4407
br (if store then step50);
4408
step31 br step3F;
4409! Registarsko indirektno sa pomerajem adresiranje!
4410! U korak step32 se dolazi iz step20 ukoliko signal za registarsko indirektno sa pomerajem adresiranje
4411regindpom ima vrednost 1. Signalom GPRout se adresirani registar opte namene GPR 15...0 bloka addr
4412puta na internu magistralu IBUS15...0 i signalom ldCW upisuju u pomoni registar CW15...0 bloka addr.
4413U koraku step33 se signalom IRDAout pomeraj iz IR15...0 bloka fetch puta na internu magistralu
4414IBUS15...0 i signalom ldCW1 upisuju u pomoni registar CW115...0 bloka addr. U koraku step34 se
4415signalom ADDout suma sadraja registara CW15...0 i CW115...0 koji su dovedeni na ulaze sabiraa ADD
4416bloka addr puta na internu magistralu IBUS15...0 i signalom ldMAR upisuje u registar MAR15...0. Time
4417se u registru MAR15...0 nalazi adresa operanda za sluaj registarskog indirektnog sa pomerajem
4418adresiranja. Ukoliko signal store bloka addr ima vrednost 1, to znai da se radi o instrukciji STB ili
4419instrukciji STW za koje nema itanja operanda, prelazi se na korak step50 i fazu izvravanje operacije.
4420U suprotnom sluaju se prelazi na korak step35 iz koga se bezuslovno prelazi na korak step3F i itanje
4421operanda.!
4422
step32 GPRout, ldCW;
4423
step33 IRDAout, ldCW1;
4424
step34 ADDout, ldMAR;
4425
br (if store then step50);
4426
step35 br step3F;
4427! Bazno indeksno sa pomerajem adresiranje!
4428! U korak step36 se dolazi iz step20 ukoliko signal za bazno indeksno sa pomerajem adresiranje bxpom
4429ima vrednost 1. U koraku step36 signalom GPRout se adresirani registar opte namene GPR 15...0 bloka
4430addr puta na internu magistralu IBUS15...0 i signalom ldCW upisuju u pomoni registar CW 15...0 bloka
4431addr. U koraku step37 se signalom IRDAout pomeraj iz IR15...0 bloka fetch puta na internu magistralu
4432IBUS15...0 i signalom ldCW1 upisuju u pomoni registar CW1 15...0 bloka addr. Pored toga signalom
4433incGPRAR bloka addr se vri inkrementiranje adresnog registra GPRAR4...0 registara opte namene
4434GPR15...0. U koraku step38 se signalom ADDout suma sadraja registara CW15...0 i CW115...0 koji su
4435dovedeni na ulaze sabiraa ADD bloka addr puta na internu magistralu IBUS15...0 i signalom ldCW
4436upisuje u pomoni registar CW15...0 bloka addr. U koraku step39 se signalom GPRout adresirani registar
4437opte namene GPR15...0 bloka addr puta na internu magistralu IBUS15...0 i signalom ldCW1 upisuju u
4438pomoni registar CW115...0 bloka addr. U koraku step3A se signalom ADDout suma sadraja registara
4439CW15...0 i CW115...0 koji su dovedeni na ulaze sabiraa ADD puta na internu magistralu IBUS15...0 i
4440signalom ldMAR upisuje u registar MAR15...0 bloka bus. Time se u registru MAR 15...0 nalazi adresa
4441operanda za sluaj bazno indeksnog sa pomerajem adresiranja. Ukoliko signal store bloka addr ima
4442vrednost 1, to znai da se radi o instrukciji STB ili instrukciji STW za koje nema itanja operanda,
4443prelazi se na korak step50 i fazu izvravanje operacije. U suprotnom sluaju se prelazi na korak step3B iz
4444koga se bezuslovno prelazi na korak step3F i itanje operanda. !
4445
step36 GPRout, ldCW;
4446
step37 IRDAout, ldCW1, incGPRAR;
4447
step38 ADDout, ldCW;
4448
step39 GPRout, ldCW1;
4449
step3A ADDout, ldMAR,
4450
br (if store then step50);
4451
step3B br step3F

140

139

60

10

12

pcpom

CW <=PC

1 5 ...0

C W 1 < = IR

1 5 ...0

13

56

60

10

eM A R , rd C P U
0

fc C P U
1

M D R o u t, ld B B

7 ...0

D W 1 5 ...8 < = M D R 7 ...0 ,


M A R<=M A R+1

M D R o u t, ld D W H ,
in c M A R

hack
0

eM A R , rd C P U
0

fc C P U
1

fc C P U
1

D W

7 ...0 < = M D R

B W

1 5 ...0

<=D W
11

7 ...0

M D R o u t, ld D W L

1 5 ...0

D W o u t, ld B W
11

im m
1

LD W
0

1 5 ...0 <

im m

LD W
0

B B < = IR
B W

hack
0

M D R<=M EM

LD W
0

B B <=M D R

fc C P U
1

LD W

hack
0

M D R<=M EM

s to re

hack

56

A D D o u t, ld M A R

13

IR D A o u t, ld C W 1

M A R<=CW +CW 1
s to re

12

pcpom
P C o u t, ld C W

IR J A o u t, ld B B

1 5 ...8

= IR

IR D A o u t, ld B W

1 5 ...0

60
13
56
60
13
56
4452
4453
Slika 77 Formiranje adrese operanda (trei deo)
4454! PC relativno sa pomerajem adresiranje !
4455! U korak step3C se dolazi iz step20 ukoliko signal za PC relativno sa pomerajem adresiranje pcpom ima
4456vrednost 1 (slika 77). U koraku step3C se signalom PCout sadraj programskog brojaa PC 15...0 bloka
4457addr puta na internu magistralu IBUS15...0 i signalom ldCW upisuju u pomoni registar CW 15...0 bloka
4458addr. U koraku step3D se signalom IRDAout pomeraj iz IR15...0 bloka fetch puta na internu magistralu
4459IBUS15...0 i signalom ldCW1 upisuju u pomoni registar CW115...0 bloka addr. U koraku step3E se
4460signalom ADDout suma sadraja registara CW15...0 i CW115...0 koji su dovedeni na ulaze sabiraa ADD
4461bloka addr puta na internu magistralu IBUS15...0 i signalom ldMAR upisuje u registar MAR15...0 bloka
4462bus. Time se u registru MAR 15...0 nalazi adresa operanda za sluaj PC relativnog sa pomerajem
4463adresiranja. Ukoliko signal store bloka addr ima vrednost 1, to znai da se radi o instrukciji STB ili
4464instrukciji STW za koje nema itanja operanda, prelazi se na korak step50 i fazu izvravanje operacije.

141

140

4465U suprotnom sluaju se prelazi na korak step 3F i itanje operanda sa adrese koja se nalazi u registru
4466MAR15...0. !
4467
step3C PCout, ldCW;
4468
step3D IRDAout, ldCW1;
4469
step3E ADDout, ldMAR;
4470
br (if store then step50);
4471! itanje operanda !
4472! U korak step3F se dolazi iz step26 kod registarskog indirektnog adresiranja, iz step28 kod memorijskog
4473direktnog adresiranja, iz step31 kod memorijskog indirektnog adresiranja, iz step 35 kod registarskog
4474indirektnog sa pomerajem adresiranja, iz step 3B kod baznog indeksnog sa pomerajem adresiranja i iz
4475step3E kod PC relativnog sa pomerajem adresiranja. U svim ovim situacijama adresa memorijske
4476lokacije sa koje treba proitati operand je sraunata u saglasnosti sa specificiranim nainom adresiranja
4477i nalazi se u registru MAR15...0 bloka bus. Za sve instrukcije za koje se ita operand iz memorije duina
4478operanda je jedan bajt sem za instrukciju LDW za koju je duina operanda dva bajta. Zbog toga se
4479najpre u koracima step3F i step40 ita jedan bajt i to na isti nain na koji se to radi u koracima step 02 i
4480step03 u kojima se ita prvi bajt instrukcije. Potom se u koraku step 41 u zavisnost od toga da li signal
4481LDW ima vrednost 0 ili 1 prelazi na korak step 42 ili korak step43, respektivno. Kroz korak step42 se
4482prolazi samo kada je duina operanda jedan bajt. Tada se signalima MDRout i ldBB sadraj registra
4483MDR7...0 bloka bus puta na linije interne magistrale IBUS 70 i upisuje u registar BB7...0. Iz koraka step42
4484se prelazi na korak step50 i fazu izvravanje operacije. Kroz korake step43 do step47 se prolazi samo kada
4485je duina operanda dva bajta. Najpre se u koraku step 43 signalima MDRout i ldDWH sadraj registra
4486MDR7...0 puta na linije interne magistrale IBUS7..0 i upisuje u stariji bajt registra DW15...8 bloka bus, a
4487signalom incMAR se inkrementira sadraj registra MAR 15...0 da bi ukazivao na memorijsku lokaciju na
4488kojoj se nalazi mlai bajt 16-to razrednog operanda. Potom se u koracima step44 i step45 ita jedan bajt i
4489to na isti nain na koji se to radi u koracima step 02 i step03 u kojima se ita prvi bajt instrukcije. Zatim se
4490u koraku step46 signalima MDRout i ldDWL sadraj registra MDR7...0 puta na linije interne magistrale
4491IBUS7..0 i signalom upisuje u mlai bajt registra DW7...0 bloka bus. Time se u registru DW15...0 nalazi 164492to bitni operand. Na kraju se u koraku step47 signalom DWout bloka bus sadraj registra DW15...0 puta
4493na internu magistralu IBUS15...0 i signalom ldBW upisuje u registar BW15...0. Iz koraka step47 se prelazi
4494na korak step50 i fazu izvravanje operacije. !
4495
step3F br (if hack then step3F);
4496
step40 eMAR, rdCPU,
4497
br (if fcCPU then step40);
4498
step41 br (if LDW then step43);
4499
step42 MDRout, ldBB,
4500
br step50;
4501
step43 MDRout, ldDWH, incMAR;
4502
step44 br (if hack then step44);
4503
step45 eMAR, rdCPU,
4504
br (if fcCPU then step45);
4505
step46 MDRout, ldDWL;
4506
step47 DWout, ldBW,
4507
br step50;
4508! Neposredno adresiranje !
4509! U korak step48 se dolazi iz step20 ukoliko signal za neposredno adresiranje imm ima vrednost 1. Iz
4510ovog koraka se ukoliko signal LDW ima vrednost 1 prelazi na korak step4A u kome se signalom
4511IRDAout 16-to bitna neposredna veliina koja se nalazi u razredima IR 150 bloka fetch puta na internu
4512magistralu IBUS15...0 i signalom ldBW upisuje u registar BW150. U suprotnom sluaju se prelazi na
4513korak step49 u kome se signalom IRJAout 8-mo bitna neposredna veliina koja se nalazi u razredima
4514IR158 puta na linije interne magistrale IBUS7...0 i signalom ldBB upisuje u registar BB70. U oba
4515sluaja se prelazi na korak step50 i fazu izvravanja operacije. !
4516
step48 br (if LDW then step4A);
4517
step49 IRJAout, ldBB,
4518
br step50;
4519
step4A IRDAout, ldBW,
4520
br step50;
142

141

4521! Izvravanje operacije !


4522! U korak step50 se dolazi iz koraka step07, step0E, step13, step21, step23, step24, step25, step27, step30, step34,
4523step3A, step3E, step42, step47, step49 i step4A radi izvravanja operacije (slika 78). U koraku step50 se
4524realizuje viestruki uslovni skok na jedan od koraka step51, step52, ..., stepBD u zavisnosti od toga koji od
4525signala operacija NOP, HALT, ..., RTS ima vrednost 1. !
4526
step50 br (case (NOP, HALT, INTD, INTE, TRPD, TRPE,
4527
LDB, LDW, STB, STW, POPB, POPW, PUSHB, PUSHW,
4528
LDIVTP, STIVTP, LDIMR, STIMR, LDSP, STSP,
4529
ADD, SUB, INC, DEC, AND,OR, XOR, NOT,
4530
ASR, LSR, ROR, RORC, ASL, LSL, ROL, ROLC,
4531
BEQL, BNEQL, BNEG, BNNEG, BOVF, BNOVF, BCAR, BNCAR,
4532
BGRT, BGRTE, BLSS, BLSSE, BGRTU, BGRTEU, BLSSU, BLSSEU,
4533
JMP, INT, JSR, RTI, RTS) then
4534
(NOP, step51), (HALT, step52),
4535
(INTD, step53), (INTE, step54), (TRPD, step55), (TRPE, step56),
4536
(LDB, step57), (LDW, step59), (STB, step5A), (STW, step60),
4537
(POPB, step69), (POPW, step6F), (PUSHB, step79), (PUSHW, step7F),
4538
(LDIVTP, step8A), (STIVTP, step8B), (LDIMR, step8C), (STIMR, step8D),
4539
(LDSP, step8E), (STSP, step8F),
4540
(ADD, step90), (SUB, ste92), (INC, step94), (DEC, step96),
4541
(AND, step98), (OR, step9A), (XOR, step9C), (NOT, step9E),
4542
(ASR, stepA0), (LSR, stepA0), (ROR, stepA0), (RORC, stepA0),
4543
(ASL, stepA2), (LSL, stepA2), (ROL, stepA2), (ROLC, stepA2),
4544
(BEQL, stepA4), (BNEQL, stepA4), (BNEG, stepA4), (BNNEG, stepA4),
4545
(BOVF, stepA4), (BNOVF, stepA4), (BCAR, stepA4), (BNCAR, stepA4),
4546
(BGRT, stepA4), (BGRE, stepA4), (BLSS, stepA4), (BLSSE, stepA4),
4547
(BGRTU, stepA4), (BGRTEU, stepA4), (BLSSU, stepA4), (BLSSEU, stepA4),
4548
(JMP, stepA8), (INT, stepA9), (JSR, stepAA), (RTI, stepB5), (RTS, stepBD));
4549! NOP !
4550! U korak step51 se dolazi iz step50 ukoliko signal operacije NOP ima vrednost 1. Poto se radi o
4551instrukciji bez dejstva, nema generisanja upravljakih signala, ve se bezuslovno prelazi na korak step D0
4552i fazu opsluivanje prekida. !
4553
step51 br stepD0;
4554! HALT !
4555! U korak step51 se dolazi iz step50 ukoliko signal operacije HALT ima vrednost 1. Poto se radi o
4556instrukciji zaustavljanja procesora, generie se signal clSTART bloka exec, kojim se u flip-flop START
4557upisuje vrednost 0, i bezuslovno prelazi na poetni korak step00. !
4558
step52 clSTART,
4559
br step00;
4560

143

142

60

13

56

60

13

56

c a s e (N O P , H A L T , ..., R T S )
...
14
15
55

c a s e (N O P , H A L T , ..., R T S )
...
14
15
55

14

14

N O P

15

N O P

15

H A LT
STA RT<=0

H A LT
c lS T A R T

16

16

IN T D
P S W I< = 0

IN T D

c lP S W I

17

17

IN T E
P S W I< = 1

IN T E

s tP S W I

18

18

TRPD
PSW T<=0

TRPD

c lP S W T

19

19

TRPE
PSW T<=1

TRPE

s tP S W T

60
56
60
56
4561
4562
Slika 78 Izvravanje operacije (prvi deo)
4563! INTD !
4564! U korak step53 se dolazi iz step50 ukoliko signal operacije INTD ima vrednost 1. Signalom clPSWI se
4565razred PSWI bloka exec postavlja na vrednost 0. Iz koraka step53 se bezuslovno prelazi na korak stepD0 i
4566fazu opsluivanje prekida. !
4567
step53 clPSWI,
4568
br stepD0;
4569! INTE !
4570! U korak step54 se dolazi iz step50 ukoliko signal operacije INTE ima vrednost 1. Signalom stPSWI se
4571razred PSWI bloka exec postavlja na vrednost 1. Iz koraka step54 se bezuslovno prelazi na korak stepD0 i
4572fazu opsluivanje prekida.!
4573
step54 stPSWI,
4574
br stepD0;
4575! TRPD !
4576! U korak step55 se dolazi iz step50 ukoliko signal operacije TRPD ima vrednost 1. Signalom clPSWT se
4577razred PSWT bloka exec postavlja na vrednost 0. Iz koraka step55 se bezuslovno prelazi na korak stepD0
4578i fazu opsluivanje prekida. !
4579
step55 clPSWT,
4580
br stepD0;
4581! TRPE !
4582! U korak step56 se dolazi iz step50 ukoliko signal operacije TRPE ima vrednost 1. Signalom stPSWT se
4583razred PSWT bloka exec postavlja na vrednost 1. Iz koraka step56 se bezuslovno prelazi na korak stepD0
4584i fazu opsluivanje prekida.!
4585
step56 stPSWT,
4586
br stepD0;

144

143

60

20

LD B
A B <=B B

56

60

20

LD B
B B o u t, ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0,

ld N , ld Z ,
ld C , ld V

21

21

LD W
A W <=B W

56

LD W
B W o u t, ld A W

60
56
60
56
4587
4588
Slika 79 Izvravanje operacije (drugi deo)
4589! LDB !
4590! U korak step57 se dolazi iz step50 ukoliko signal operacije LDB ima vrednost 1 (slika 79). U fazi
4591izvravanja ove instrukcije se operand specificiran adresnim delom instrukcije prebacuje u registar
4592AB70. Stoga se signalima BBout i ldAB bloka exec sadraj registra BB70 puta na linije interne
4593magistrale IBUS7...0 i upisuje u registar AB70. Potom se u koraku step58 signalima ldN, ldZ, ldC i ldV
4594bloka exec u razrede PSWN i PSWZ programske statusne rei PSW upisuju vrednosti signala N i Z
4595formirane na osnovu sadraja upisanog u registar AB70 i u razrede PSWC i PSWV upisuju vrednosti 0
4596i prelazi na korak stepD0 i fazu opsluivanje prekida. !
4597
step57 BBout, ldAB;
4598
step58 ldN, ldZ, ldC, ldV,
4599
br stepD0;
4600! LDW !
4601! U korak step59 se dolazi iz stepD0 ukoliko signal operacije LDW ima vrednost 1. U ovom koraku se
4602signalima BWout i ldAW bloka exec sadraj registra BW150 puta na internu magistralu IBUS15...0 i
4603upisuje u registar AW150 i prelazi na korak stepD0 i fazu opsluivanje prekida. !
4604
step59 BWout, ldAW,
4605
br stepD0;
60

22

STB

56

60

22

re g d ir
0

hack

hack
0

M EM <=M D R

e M A R , e M D R , w rC P U
0

fc C P U
1

G P R < = 0 ...0 .A B

re g d ir
0

56

A B o u t, m x M D R ,
ld M D R

M D R<=A B

STB

fc C P U
1

A B o u t, w rG P R

7 ...0

60
56
60
56
4606
4607
Slika 80 Izvravanje operacije (trei deo)
4608! STB !
4609! U korak step5A se dolazi iz step50 ukoliko signal operacije STB ima vrednost 1 (slika 80). Iz ovog
4610koraka se u zavisnosti od toga da li signal regdir bloka fetch ima vrednost 0 ili 1 prelazi na korak step5B
4611ili step5F. !
4612
step5A br (if regdir then step5F);
4613! U koracima step5B, step5C, step5D i step5E se sadraj registra AB70 bloka exec upisuje u memorijsku
4614lokaciju na adresi koja je formirana u fazi formiranje adrese operanda i koja se nalazi i registru MAR 15

145

144

46150 bloka bus. Stoga se, najpre, u koraku step5B signalima ABout, mxMDR i ldMDR bloka bus sadraj
4616registra AB70 puta na linije interne magistrale IBUS7..0 i kroz multiplekser MX i upisuje u registar
4617MDR70. Pre upisa se u koraku step5C proverava vrednost signala hack bloka bus koji vrednostima 1 i 0
4618ukazuje da li je procesor prepustio magistralu kontroleru sa direktnim pristupom memoriji ili je
4619magistrala u posedu procesora, respektivno. Ukoliko je procesor prepustio magistralu ostaje se u koraku
4620step5C, dok se u suprotnom sluaju prelazi na korak step5D. U koraku step5D se realizuje upis. Signalima
4621eMAR i eMDR bloka bus se sadraji registara MAR150 i MDR70 putaju na adresne linije ABUS150
4622i linije podataka DBUS70 magistrale BUS i signalom wrCPU formira vrednost 0 signala na
4623upravljakoj liniji WRBUS magistrale BUS, ime se u memoriji MEM startuje operacija upisa. U
4624koraku step5D se ostaje onoliko perioda signala takta koliko je neophodno da se upis realizuje. Sve
4625vreme dok je processor u koraku step5D adresa i podatak se prisutni na linijama ABUS 150 i DBUS70 i
4626na liniji WRBUS je vrednost 0. Po zavrenom upisu memorija MEM generie vrednost 0 signala na
4627upravljakoj liniji FCBUS magistrale BUS. U koraku step5D se proverava vrednost signala fcCPU
4628bloka bus koji vrednostima 0 i 1 ukazuje da upis nije zavren i da je upis zavren, respektivno. Ukoliko
4629upis nije zavren ostaje se u koraku step5D, dok se u suprotnom sluaju prelazi na korak step 5E. Iz
4630koraka step5E se bezuslovno prelazi na korak stepD0 i fazu opsluivanje prekida.!
4631
step5B ABout, mxMDR, ldMDR;
4632
step5C br (if hack then step5C);
4633
step5D eMAR, eMDR, wrCPU,
4634
br (if fcCPU then step5D);
4635
step5E br stepD0;
4636! U koraku step55 se signalima ABout i wrGPR bloka addr sadraj registra AB70 bloka exec puta na
4637linije interne magistrale IBUS70 i upisuje u adresirani registar opte namene GPR 70 i bezuslovno
4638prelazi na korak stepD0 i fazu opsluivanje prekida. !
4639
step5F ABout, wrGPR,
4640
br stepD0;
4641! STW !
4642! U korak step60 se dolazi iz step50 ukoliko signal operacije STW ima vrednost 1 (slika 81). Iz ovog
4643koraka se u zavisnosti od toga da li signal regdir bloka fetch ima vrednost 0 ili 1 prelazi na korak step61
4644ili step68. !
4645
step60 br (if regdir then step68);
4646! U koracima step61 do step67 se sadraj najpre starijeg bajta a zatim i mlaeg bajta registra AW150
4647bloka exec upisuje u dve susedne memorijske lokacije poev od memorijske lokacije ija je adresa
4648formirana u fazi formiranje adrese operanda i koja se nalazi i registru MAR 150 bloka bus. Stoga se,
4649najpre, u koraku step61 signalima AWHout, mxMDR i ldMDR sadraj registra AW158 puta na linije
4650interne magistrale IBUS70 i kroz multiplekser MX2 i upisuje u registar MDR 70. Upis se realizuje u
4651koracima step62 i step63 na isti naina kao to se to radi u koracima step 5C i step5D instrukcije STB.
4652Potom se u koraku step64 signalima AWout3, mxMDR i ldMDR sadraj registra AW70 puta na linije
4653interne magistrale IBUS70 i kroz multiplekser MX2 i upisuje u registar MDR70. Pored toga, signalom
4654incMAR adresni registar MAR15...0 bloka bus inkrementira se na adresu sledeeg bajta. Upis se realizuje
4655u koracima step65 i step66 na isti naina kao to se to radi u koracima step62 i step63 za prethodni bajt. Po
4656zavretku upisa se prelazi na korak step67 iz koga se bezuslovno prelazi na korak stepD0 i fazu
4657opsluivanje prekida. !
4658
step61 AWHout, mxMDR, ldMDR;
4659
step62 br (if hack then step62);
4660
step63 eMAR, eMDR, wrCPU,
4661
br (if fcCPU then step63);
4662
step64 AWout, mxMDR, ldMDR, incMAR;

146

145

4663
step65 br (if hack then step65);
4664
step66 eMAR, eMDR, wrCPU,
4665
br (if fcCPU then step66);
4666
step67 br stepD0;
4667! U koraku step68 se signalima AWout i wrGPR bloka addr sadraj registra AW150 bloka exec puta na
4668internu magistralu IBUS150 i upisuje u adresirani registar opte namene GPR 150 i bezuslovno prelazi
4669na korak stepD0 i fazu opsluivanje prekida. !
4670
step68 AWout, wrGPR,
4671
br stepD0;
60

23

STW

56

60

23

re g d ir
0

M D R<=A W

1 5 ...8

hack

hack
0

eM A R , e M D R , w rC P U
0

fc C P U
1

fc C P U
1

M D R < = A W 7 ...0 ,
M A R<=M A R+1

A W o u t, m x M D R ,
ld M D R , in c M A R

hack
0

hack
0

M EM <=M D R
0

re g d ir
0

M EM <=M D R

56

A W H o u t, m x M D R ,
ld M D R

STW

eM A R , e M D R , w rC P U
0

fc C P U
1

fc C P U
1

G PR<=A W

A W o u t, w rG P R

60
56
60
56
4672
4673
Slika 81 Izvravanje operacije (etvrti deo)
4674! POPB !
4675! U korak step69 se dolazi iz step50 ukoliko signal operacije POPB ima vrednost 1 (slika 82). U fazi
4676izvravanja ove instrukcije sa steka se skida bajt podatka i upisuje u registar AB70 bloka exec. Stoga
4677se, najpre, u koraku step69 signalima SPout i ldMAR sadraj registra SP150 puta na internu
4678magistralu IBUS150 i upisuje u registar MAR150. Pored toga se i signalom decSP dekrementira sadraj
4679registra SP150 bloka addr. itanje se realizuje u koracima step6A i step6B na isti naina kao to se to radi
4680u koracima step02 i step03 u kojima se ita prvi bajt instrukcije. Potom se signalima MDRout i ldBB
4681sadraj registra MDR7...0 bloka bus puta na linije interne magistrale IBUS 70 i upisuje u registar BB7...0
4682bloka exec. Nakon toga, u koraku step6D, se signalima BBout i ldAB sadraj registra BB70 puta na
4683linije interne magistrale IBUS70 i upisuje u registar AB7...0 bloka exec. Na kraju se signalima ldN, ldZ,
4684ldC i ldV bloka exec u razrede PSWN i PSWZ programske statusne rei upisuju vrednosti signala N i
4685Z formirane na osnovu sadraja upisanog u registar AB i u razrede PSWC i PSWV upisuju vrednosti 0
4686i prelazi na korak stepD0 i fazu opsluivanje prekida. !

147

146

60

24

PO PB

56

60

24

M A R<=SP,
S P < = S P -1

hack

eM A R , rd C P U
0

fc C P U
1

60

hack
0

M D R<=M EM

4687
4688

56

S P o u t, ld M A R ,
decSP

PO PB

fc C P U
1

B B <=M D R

M D R o u t, ld B B

A B <=B B

B B o u t, ld A B

PSW N <=N , PSW Z<=Z,


PSW C<=0, PSW V <=0

ld N , ld Z ,
ld C , ld V
56

60

56

Slika 82 Izvravanje operacije (peti deo)

4689
step69 SPout, ldMAR, decSP;
4690
step6A br (if hack then step6A);
4691
step6B eMAR, rdCPU,
4692
br (if fcCPU then step6B);
4693
step6C MDRout, ldBB;
4694
step6D BBout, ldAB;
4695
step6E ldN, ldZ, ldC, ldV,
4696
br stepD0;
4697! POPW !
4698! U korak step6F se dolazi iz step50 ukoliko signal operacije POPW ima vrednost 1 (slika 83). U fazi
4699izvravanja ove instrukcije sa steka se skidaju dva bajta podatka i upisuju u registar AW150 bloka exec.
4700Stoga se, najpre, u koraku step6F signalima SPout i ldMAR sadraj registra SP150 puta na internu
4701magistralu IBUS150 i upisuje u registar MAR150. Pored toga se i signalom decSP dekrementira sadraj
4702registra SP150. itanje se realizuje u koracima step70 i step71 na isti naina kao to se to radi u koracima
4703step02 i step03 u kojima se ita prvi bajt instrukcije. U koraku step 72 se signalom MDRout sadraj
4704registra MDR70 puta na linije interne magistrale IBUS70 i signalom ldDWL upisuje u mlai bajt
4705registra DW70. U sledeem koraku step73 se signalima SPout i ldMAR sadraj registra SP150 puta na
4706internu magistralu IBUS150 i upisuje u registar MAR150. Pored toga se i signalom decSP dekrementira
4707sadraj registra SP150. itanje se realizuje u koracima step74 i step75 na isti naina kao to se to radi u
4708koracima step70 i step71 u kojima se ita prethodni bajt. Potom se signalima MDRout i ldDWH sadraj
4709registra MDR7...0 puta na linije interne magistrale IBUS70 i upisuje u stariji bajt registra DW158. Time
4710se u registru DW150 nalazi 16-to bitna vrednost skinuta sa steka. U koraku step77 se signalima DWout i
4711ldBW sadraj registra DW150 puta na internu magistralu IBUS150 i upisuje u registar BW150 bloka
4712exec. U sledeem koraku se sadraj registra BW150 signalima BWout i ldAW puta na internu
4713magistralu IBUS150 i upisuje u registar AW15...0 bloka exec i prelazi na korak stepD0 i fazu opsluivanje
4714prekida. !
4715
step6F SPout, ldMAR, decSP;
4716
step70 br (if hack then step70);
4717
step71 eMAR, rdCPU,
4718
br (if fcCPU then step71);
4719
step72 MDRout, ldDWL;
4720
step73 SPout, ldMAR, decSP;

148

147

4721
4722
4723
4724
4725
4726
4727

step74 br (if hack then step74);


step75 eMAR, rdCPU,
br (if fcCPU then step75);
step76 MDRout, ldDWH;
step77 DWout, ldBW;
step78 BWout, ldAW,
br stepD0;
60

25

PO PW

56

60

25

M A R<=SP,
S P < = S P -1

hack

eM A R , rd C P U
0

fc C P U
1

fc C P U
1

D W L<=M D R

M D R o u t, ld D W L

M A R<=SP,
S P < = S P -1

S P o u t, ld M A R ,
decSP

hack
0

hack
0

M D R<=M EM
0

hack
0

M D R<=M EM

56

S P o u t, ld M A R ,
decSP

PO PW

eM A R , rd C P U
0

fc C P U
1

fc C P U
1

D W H <=M D R

M D R o u t, ld D W H

B W <=D W

D W o u t, ld B W

A W <=B W

B W o u t, ld A W

60
56
60
56
4728
4729
Slika 83 Izvravanje operacije (esti deo)
4730! PUSHB !
4731! U korak step79 se dolazi iz step50 ukoliko signal operacije PUSHB ima vrednost 1 (slika 84). U fazi
4732izvravanja ove instrukcije se sadraj registra AB70 bloka exec stavlja na vrh steka. Stoga se najpre u
4733koraku step79 signalom incSP vri inkrementiranje registra SP150 bloka addr. U koraku step7A signalima
4734SPout i ldMAR sadraj registra SP150 se puta na internu magistralu IBUS150 i upisuje u registar
4735MAR150. U sledeem koraku se signalima ABout, mxMDR i ldMDR sadraj registra AB70 puta na
4736linije interne magistrale IBUS7...0 i kroz multiplekser MX bloka bus i upisuje u registar MDR70. Upis u
4737memoriju se realizuje u koracima step7C i step7D na isti naina kao to se to radi u koracima step 5C i
4738step5D instrukcije STB. Na kraju se iz koraka step7E bezuslovno prelazi na korak stepD0 i fazu
4739opsluivanje prekida. !
4740
step79 incSP;
4741
step7A SPout, ldMAR;
4742
step7B ABout, mxMDR, ldMDR;

149

148

4743
4744
4745
4746

step7C br (if hack then step7C);


step7D eMAR, eMDR, wrCPU,
br (if fcCPU then step7D);
step7E br stepD0;
60

26

PU SH B
SP<=SP+1

56

60

26

56

in c S P

M A R<=SP

S P o u t, ld M A R

M D R<=A B

A B o u t, m x M D R ,
ld M D R

hack
0

hack
0

M EM <=M D R
0

PU SH B

eM A R , e M D R , w rC P U
0

fc C P U
1

fc C P U
1

60
56
60
56
4747
4748
Slika 84 Izvravanje operacije (sedmi deo)
4749! PUSHW !
4750! U korak step7F se dolazi iz step50 ukoliko signal operacije PUSHW ima vrednost 1 (slika 85). U fazi
4751izvravanja ove instrukcije se sadraj registra AW150 bloka exec stavlja na stek i to prvo stariji a zatim
4752i mlai bajt. Stoga se u koraku step7F signalom incSP vri inkrementiranje registra SP 150 bloka addr. U
4753koraku step80 signalima SPout i ldMAR sadraj registra SP150 se puta na internu magistralu IBUS150
4754i upisuje u registar MAR150. U sledeem koraku se signalima AWHout, mxMDR i ldMDR stariji bajt
4755registra AW158 puta na linije interne magistrale IBUS7...0 i kroz multiplekser MX bloka bus i upisuje u
4756registar MDR70. Upis se realizuje u koracima step82 i step83 na isti nain kao to se to radi u koracima
4757step5C i step5D instrukcije STB. Ponovo se sada u koraku step 84 signalom incSP vri inkrementiranje
4758registra SP150. Zatim se u koraku step85 signalima SPout i ldMAR sadraj registra SP150 puta na
4759internu magistralu IBUS150 i upisuje u registar MAR150. Potom se u koraku step86 signalima AWout,
4760mxMDR i ldMDR sadraj mlaeg bajta registra AW70 puta na linije interne magistrale IBUS70 i
4761kroz multiplekser MX bloka bus i upisuje u registar MDR70. Upis se realizuje u koracima step87 i
4762step88 na isti naina kao to se to radi u koracima step82 i step83. Na kraju se iz koraka step89 bezuslovno
4763prelazi na korak stepD0 i fazu opsluivanje prekida. !
4764
step7F incSP;
4765
step80 SPout, ldMAR;
4766
step81 AWHout, mxMDR, ldMDR;
4767
step82 br (if hack then step82);
4768
step83 eMAR, eMDR, wrCPU,
4769
br (if fcCPU then step83);
4770
step84 incSP;
4771
step85 SPout, ldMAR;
4772
step86 AWout, mxMDR, ldMDR;
4773
step87 br (if hack then step87);
4774
step88 eMAR, eMDR, wrCPU,
4775
br (if fcCPU then step88);
4776
step89 br stepD0;

150

149

60

27

PU SH W
SP<=SP+1

56

60

27

S P o u t, ld M A R
A W H o u t, m x M D R ,
ld M D R

1 5 ...8

hack
0

eM A R , e M D R , w rC P U
0

fc C P U
1

in c S P

M A R<=SP

S P o u t, ld M A R
A W o u t, m x M D R ,
ld M D R

7 ...0

hack
0

hack
0

M EM <=M D R
0

fc C P U

SP<=SP+1

M D R<=A W

hack
0

M EM <=M D R
0

56

in c S P

M A R<=SP
M D R<=A W

PU SH W

eM A R , e M D R , w rC P U
0

fc C P U
1

fc C P U
1

60
56
60
56
4777
4778
Slika 85 Izvravanje operacije (osmi deo)
4779! LDIVTP !
4780! U korak step8A se dolazi iz step50 ukoliko signal operacije LDIVTP ima vrednost 1 (slika 86). U fazi
4781izvravanja ove instrukcije se sadraj registra IVTP 150 bloka intr upisuje u registar AW150 bloka exec.
4782Stoga se signalom IVTPout sadraj registra IVTP150 puta na internu magistralu IBUS150 i signalom
4783ldAW upisuje u registar AW150. Na kraju se iz koraka step8A bezuslovno prelazi na korak stepD0 i fazu
4784opsluivanje prekida. !
4785
step8A IVTPout, ldAW,
4786
br stepD0;
4787! STIVTP !
4788! U korak step8B se dolazi iz step50 ukoliko signal operacije STIVTP ima vrednost 1. U fazi izvravanja
4789ove instrukcije se sadraj registra AW150 bloka exec upisuje u registar IVTP150 bloka intr. Stoga se
4790signalom AWout sadraj registra AW150 puta na internu magistralu IBUS150 i signalom ldIVTP
4791upisuje u registar IVTP150. Na kraju se iz koraka step8B bezuslovno prelazi na korak stepD0 i fazu
4792opsluivanje prekida. !
4793
step8B AWout, ldIVTP,
4794
br stepD0;
4795! LDIMR !
4796! U korak step8C se dolazi iz step50 ukoliko signal operacije LDIMR ima vrednost 1. U fazi izvravanja
4797ove instrukcije se sadraj registra IMR 150 bloka intr upisuje u registar AW150 bloka exec. Stoga se
4798signalom IMRout sadraj registra IMR150 puta na internu magistralu IBUS150 i signalom ldAW
4799upisuje u registar AW150. Na kraju se iz koraka step 8C bezuslovno prelazi na korak stepA9 i fazu
4800opsluivanje prekida. !

151

150

4801
4802
4803

step8C IMRout, ldAW,


br stepD0;
60

28

L D IV T P
A W < = IV T P

56

60

29

L D IV T P
IV T P o u t, ld A W

56

29

S T IV T P
IV T P < = A W

S T IV T P
A W o u t, ld IV T P

30

30

L D IM R
A W < = IM R

L D IM R
IM R o u t, ld A W

31

31

S T IM R
IM R < = A W

S T IM R
A W o u t, ld IM R

32

32

LD SP
A W <=SP
33

28

LD SP
S P o u t, ld A W
33

STSP

STSP
A W o u t, ld S P

SP<=A W

60
56
60
56
4804
4805
Slika 86 Izvravanje operacije (deveti deo)
4806! STIMR !
4807! U korak step8D se dolazi iz step50 ukoliko signal operacije STIMR ima vrednost 1. U fazi izvravanja
4808ove instrukcije se sadraj registra AW150 bloka exec upisuje u registar IMR150 bloka intr. Stoga se
4809signalom AWout sadraj registra AW150 puta na internu magistrale IBUS150 i signalom ldIMR
4810upisuje u registar IMR150. Na kraju se iz koraka step 8D bezuslovno prelazi na korak stepD0 i fazu
4811opsluivanje prekida. !
4812
step8D AWout, ldIMR,
4813
br stepD0;
4814! LDSP !
4815! U korak step8E se dolazi iz step50 ukoliko signal operacije LDSP ima vrednost 1. U fazi izvravanja
4816ove instrukcije se sadraj registra SP 150 bloka addr upisuje u registar AW150 bloka exec. Stoga se
4817signalom SPout sadraj registra SP150 puta na internu magistralu IBUS150 i signalom ldAW upisuje
4818u registar AW150. Na kraju se iz koraka step8E bezuslovno prelazi na korak stepD0 i fazu opsluivanje
4819prekida.
4820
step8E SPout, ldAW,
4821
br stepD0;
4822! STSP !
4823! U korak step8F se dolazi iz step50 ukoliko je signal operacije STSP ima vrednost 1. U fazi izvravanja
4824ove instrukcije se sadraj registra AW150 bloka exec upisuje u registar SP150 bloka addr. Stoga se
4825signalom AWout sadraj registra AW150 puta na internu magistralu IBUS150 i signalom ldSP upisuje
4826u registar SP150. Na kraju se iz koraka step8F bezuslovno prelazi na korak stepD0 i fazu opsluivanje
4827prekida. !
4828
step8F AWout, ldSP,
4829
br stepD0;
4830! ADD !
4831! U korak step90 se dolazi iz step50 ukoliko signal operacije ADD ima vrednost 1 (slika 87). U fazi
4832izvravanja ove instrukcije se sabiraju sadraji registra AB70 bloka exec koji se koristi kao akumulator
4833i registra BB70 bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije i rezultat
4834upisuje u registar AB70. Stoga se, najpre, signalom add bloka exec na izlazima ALU70 formira suma
4835sadraja registara AB70 i BB70, respektivno, pa se dobijena suma signalima ALUout i ldAB puta na
4836linije interne magistrale IBUS7...0 i upisuje u registar AB70. Istovremeno se signalima ldC i ldV bloka
4837exec u razrede PSWC i PSWV programske statusne rei PSW 150 upisuju vrednosti signala C i V bloka

152

151

4838exec formirane na osnovu dobijenog rezultata na izlazima ALU70. U koraku step91 se signalima ldN i
4839ldZ bloka exec u razrede PSWN i PSWZ programske statusne rei PSW 150 upisuju vrednosti signala
4840N i Z bloka exec formirane na osnovu sadraja upisanog u registar AB70 i prelazi na korak step91 i
4841fazu opsluivanje prekida. !
4842
step90 ALUout, add, ldAB, ldC, ldV;
4843
step91 ldN, ldZ,
4844
br stepD0;
60

34

A D D

56

60

34

A D D

A B <=A B +B B ,
PSW C<=C, PSW V <=V

A L U o u t, a d d , ld A B ,
ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

35

35

SU B

SU B

A B < = A B -B B ,
PSW C<=C, PSW V <=V

A L U o u t, s u b , ld A B ,
ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

36

36

IN C

IN C

A B <=A B +1,
PSW C<=C, PSW V <=V

A L U o u t, in c , ld A B ,
ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

37

37

D EC

56

D EC

A B < = A B -1 ,
PSW C<=C, PSW V <=V

A L U o u t, d e c , ld A B ,
ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

60
56
60
56
4845
4846
Slika 87 Izvravanje operacije (deseti deo)
4847! SUB !
4848! U korak step92 se dolazi iz step50 ukoliko je signal operacije SUB ima vrednost 1. U fazi izvravanja
4849ove instrukcije se od sadraja registra AB70 bloka exec koji se koristi kao akumulator oduzima sadraj
4850registra BB70 bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije i rezultat
4851upisuje u registar AB70. Stoga se, najpre, signalom sub bloka exec na izlazima ALU70 formira razlika
4852sadraja registara AB70 i BB70, pa se dobijena razlika signalima ALUout i ldAB puta na linije
4853interne magistrale IBUS7...0 i upisuje u registar AB70. Istovremeno se signalima ldC i ldV bloka exec u
4854razrede PSWC i PSWV programske statusne rei PSW150 upisuju vrednosti signala C i V bloka exec
4855formirane na osnovu dobijenog rezultata na izlazima ALU70. U koraku step93 se signalima ldN i ldZ
4856bloka exec u razrede PSWN i PSWZ programske statusne rei PSW 150 upisuju vrednosti signala N i Z
4857bloka exec formirane na osnovu sadraja upisanog u registar AB70 i prelazi na korak stepD0 i fazu
4858opsluivanje prekida. !
4859
step92 ALUout, sub, ldAB, ldC, ldV;
4860
step93 ldN, ldZ,
4861
br stepD0;
4862! INC !
4863! U korak step94 se dolazi iz step50 ukoliko signal operacije INC ima vrednost 1. U fazi izvravanja ove
4864instrukcije se sabira sadraj registra AB70 bloka exec koji se koristi kao akumulator i vrednost 1 i
4865rezultat upisuje u registar AB70. Stoga se, najpre, signalom inc bloka exec na izlazima ALU70 formira
4866suma sadraja registra AB70 i vrednosti 1, pa se dobijena suma signalima ALUout i ldAB puta na
4867linije interne magistrale IBUS7...0 i upisuje u registar AB70. Istovremeno se signalima ldC i ldV bloka
4868exec u razrede PSWC i PSWV programske statusne rei PSW 150 upisuju vrednosti signala C i V bloka
4869exec formirane na osnovu dobijenog rezultata na izlazima ALU70. U koraku step95 se signalima ldN i
4870ldZ bloka exec u razrede PSWN i PSWZ programske statusne rei PSW 150 upisuju vrednosti signala

153

152

4871N i Z bloka exec formirane na osnovu sadraja upisanog u registar AB70 i prelazi na korak stepD0 i
4872fazu opsluivanje prekida. !
4873
step94 ALUout, inc, ldAB, ldC, ldV;
4874
step95 ldN, ldZ,
4875
br stepD0;
4876! DEC !
4877! U korak step96 se dolazi iz step50 ukoliko je signal operacije DEC ima vrednost 1. U fazi izvravanja
4878ove instrukcije se od sadraj registra AB70 bloka exec koji se koristi kao akumulator oduzima vrednost
48791 i rezultat upisuje u registar AB70. Stoga se, najpre, signalom dec bloka exec na izlazima ALU70
4880formira razlika sadraja registra AB70 i vrednosti 1, pa se dobijena razlika signalima ALUout i ldAB
4881puta na linije interne magistrale IBUS7...0 i upisuje u registar AB70. Istovremeno se signalima ldC i
4882ldV bloka exec u razrede PSWC i PSWV programske statusne rei PSW 150 upisuju vrednosti signala
4883C i V bloka exec formirane na osnovu dobijenog rezultata na izlazima ALU70. U koraku step97 se
4884signalima ldN i ldZ bloka exec u razrede PSWN i PSWZ programske statusne rei PSW 150 upisuju
4885vrednosti signala N i Z bloka exec formirane na osnovu sadraja upisanog u registar AB70 i prelazi na
4886korak stepD0 i fazu opsluivanje prekida. !
4887
step96 ALUout, dec, ldAB, ldC, ldV;
4888
step97 ldN, ldZ,
4889
br stepD0;
4890! AND !
4891! U korak step98 se dolazi iz step50 ukoliko signal operacije AND ima vrednost 1 (slika 88). U fazi
4892izvravanja ove instrukcije se nad sadrajima registra AB70 bloka exec koji se koristi kao akumulator i
4893registra BB70 bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije realizuje
4894logika I operacija i rezultat upisuje u registar AB 70. Stoga se, najpre, signalom and bloka exec na
4895izlazima ALU70 formira rezultat logike I operacije sadraja registara AB70 i BB70, pa se dobijeni
4896rezultat signalima ALUout i ldAB puta na linije interne magistrale IBUS7...0 i upisuje u registar AB70.
4897U koraku step99 se signalima ldN, ldZ, ldC i ldV bloka exec u razrede PSWN i PSWZ programske
4898statusne PSW150 rei upisuju vrednosti signala N i Z formirane na osnovu sadraja upisanog u registar
4899AB70 i u razrede PSWC i PSWV vrednosti 0 i prelazi na korak stepD0 i fazu opsluivanje prekida. !
4900
step98 ALUout, and, ldAB;
4901
step99 ldN, ldZ, ldC, ldV,
4902
br stepD0;
4903! OR !
4904! U korak step9A se dolazi iz step50 ukoliko signal operacije OR ima vrednost 1. U fazi izvravanja ove
4905instrukcije se nad sadrajima registra AB70 bloka exec koji se koristi kao akumulator i registra BB70
4906bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije realizuje logika ILI
4907operacija i rezultat upisuje u registar AB70. Stoga se, najpre, signalom or bloka exec na izlazima
4908ALU70 formira rezultat logike ILI operacije sadraja registara AB70 i BB70, pa se dobijeni rezultat
4909signalima ALUout i ldAB puta na linije interne magistrale IBUS7...0 i upisuje u registar AB70. U
4910koraku step9B se signalima ldN, ldZ, ldC i ldV bloka exec u razrede PSWN i PSWZ programske
4911statusne rei PSW150 upisuju vrednosti signala N i Z formirane na osnovu sadraja upisanog u registar
4912AB70 i u razrede PSWC i PSWV upisuju vrednosti 0 i prelazi na korak stepD0 i fazu opsluivanje
4913prekida. !
4914
step9A ALUout, or, ldAB;
4915
step9B ldN, ldZ, ldC, ldV,
4916
br stepD0;

154

153

60

38

A N D
A B < = A B B B

56

60

38

A N D
A L U o u t, a n d , ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

39

O R
A B < = A B B B

39

O R
A L U o u t, o r, ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

40

X O R
A B <=A B B B

40

X O R
A L U o u t, x o r, ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

41

41

N O T
A L U o u t, n o t, ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

N O T
A B <=A B

56

60
56
60
56
4917
4918
Slika 88 Izvravanje operacije (jedanaesti deo)
4919! XOR !
4920! U korak step9C se dolazi iz step50 ukoliko signal operacije XOR ima vrednost 1. U fazi izvravanja ove
4921instrukcije se nad sadrajima registra AB70 bloka exec koji se koristi kao akumulator i registra AB70
4922bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije realizuje logika
4923ekskluzivno ILI operacija i rezultat upisuje u registar AB70. Stoga se, najpre, signalom xor bloka exec
4924na izlazima ALU70 formira rezultat logike ekskluzivno ILI operacije sadraja registara AB70 i BB70,
4925pa se dobijeni rezultat signalima ALUout i ldAB puta na linije interne magistrale IBUS7...0 i upisuje u
4926registar AB70. U koraku step9D se signalima ldN, ldZ, ldC i ldV bloka exec u razrede PSWN i PSWZ
4927programske statusne rei PSW150 upisuju vrednosti signala N i Z formirane na osnovu sadraja
4928upisanog u registar AB70 i u razrede PSWC i PSWV upisuju vrednosti 0 i prelazi na korak stepD0 i
4929fazu opsluivanje prekida. !
4930
step9C ALUout, xor, ldAB;
4931
step9D ldN, ldZ, ldC, ldV,
4932
br stepD0;
4933! NOT !
4934! U korak step9E se dolazi iz step50 ukoliko signal operacije NOT ima vrednost 1. U fazi izvravanja ove
4935instrukcije se invertuju bitovi registra AB70 bloka exec koji se koristi kao akumulator i rezultat upisuje
4936u registar AB70. Stoga se, najpre, signalom not bloka exec na izlazima ALU70 formiraju invertovane
4937vrednosti bitova registra AB70, pa se dobijeni sadraj signalima ALUout i ldAB puta na linije interne
4938magistrale IBUS7...0 i upisuje u registar AB70. U koraku step9F se signalima ldN, ldZ, ldC i ldV bloka
4939exec u razrede PSWN i PSWZ programske statusne rei PSW150 upisuju vrednosti signala N i Z
4940formirane na osnovu sadraja upisanog u registar AB70 i u razrede PSWC i PSWV upisuju vrednosti 0
4941i prelazi na korak stepD0 i fazu opsluivanje prekida. !
4942
step9E ALUout, not, ldAB;
4943
step9F ldN, ldZ, ldC, ldV,
4944
br stepD0;

155

154

60

42

A B

7 ...0 <

= A B 7.A B
PSW C<=C

A B

7 ...1

60

42

ld N ,
ld Z ,
ld V

43

43

LSR

7 ...0 < = 0 . A B
PSW C<=C

7 ...1 ,

ld N ,
ld Z ,
ld V

44

44

RO R
7 ...1 ,

ld N ,
ld Z ,
ld V

45

45

RO RC

< = P S W C .A B
PSW C<=C

7 ...1

LSR

RO R

sh r,
ld C

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

7 ...0

56

sh r,
ld C

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

7 ...0 < = A B 0 . A B
PSW C<=C

A SR

sh r,
ld C

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

A B

A B

56

A SR

RO RC

sh r,
ld C

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

ld N ,
ld Z ,
ld V

60
56
60
56
4945
4946
Slika 89 Izvravanje operacije (dvanaesti deo)
4947! ASR, LSR, ROR i ROLC !
4948! U korak stepA0 se dolazi iz step50 ukoliko neki od signala operacije ASR, LSR, ROR i ROLC ima
4949vrednost 1 (slika 89). U fazi izvravanja ove instrukcije se bitovi registra AB 70 bloka exec koji se
4950koristi kao akumulator aritmetiki pomeraju za jedno mesto udesno ukoliko signal ASR ima vrednost 1,
4951logiki pomeraju za jedno mesto udesno ukoliko signal LSR ima vrednost 1, rotiraju za jedno mesto
4952udesno ukoliko signal ROR ima vrednost 1 i rotiraju zajedno sa razredom PSWC programske statusne
4953rei PSW150 za jedno mesto udesno ukoliko signal RORC ima vrednost 1. Stoga se signalom shr bloka
4954exec bitovi registra AB70 pomeraju udesno za jedno mesto, pri emu se u razred AB7 upisuje signal IR
4955sa izlaza multipleksera MX3 bloka exec. U sluaju aritmetikog pomeranja za jedno mesto udesno to je
4956signal AB7. Ovaj signal se selektuje na izlazu IR multipleksera MX3 binarnom vrednou 0 signala
4957selekcije multipleksera MX3 koji se dobijaju na izlazu kodera CD1 zbog vrednosti 1 signala ASR na
4958ulazu 0 kodera CD1. U sluaju logikog pomeranja za jedno mesto udesno to je signal 0. Ovaj signal se
4959selektuje na izlazu IR multipleksera MX3 binarnom vrednou 1 signala selekcije multipleksera MX3
4960koji se dobijaju na izlazu kodera CD1 zbog vrednosti 1 signala LSR na ulazu 1 kodera CD1. U sluaju
4961rotiranja za jedno mesto udesno to je signal AB0. Ovaj signal se selektuje na izlazu IR multipleksera
4962MX3 binarnom vrednou 2 signala selekcije multipleksera MX3 koji se dobijaju na izlazu kodera CD1
4963zbog vrednosti 1 signala ROR na ulazu 2 kodera CD1. U sluaju rotiranja zajedno sa razredom PSWC
4964programske statusne rei PSW150 za jedno mesto udesno to je signal PSWC. Ovaj signal se selektuje
4965na izlazu IR multipleksera MX3 binarnom vrednou 3 signala selekcije multipleksera MX3 koji se
4966dobijaju na izlazu kodera CD1 zbog vrednosti 1 signala RORC na ulazu 3 kodera CD1. Istovremeno se
4967signalom ldC bloka exec u razred PSWC programske statusne rei PSW 150 upisuje vrednost signala C
4968bloka exec. U sluaju svih pomeranja i rotiranja za jedno mesto udesno to je signal AB0. U koraku
4969stepA1 se signalima ldN i ldZ bloka exec u razrede PSWN i PSWZ programske statusne PSW 150 rei

156

155

4970upisuju vrednosti signala N i Z bloka exec formirane na osnovu sadraja upisanog u registar AB70 i
4971signalom ldV bloka exec u razred PSWV programske statusne rei PSW 150 upisuje vrednost 0 signala
4972V. Iz koraka stepA1 se bezuslovono prelazi na korak stepD0 i fazu opsluivanje prekida. !
4973
stepA0 shr, ldC;
4974
stepA1 ldN, ldZ, ldV,
4975
br stepD0;
60

46

A B

A SL

56

60

7 ...0 < = A B 6 ...0 . 0 ,


PSW C<=C

46

A SL

s h l,
ld C

PSW N <=N , PSW Z<=Z,


PSW V <=0

ld N , ld Z ,
ld V

47

47

A B

LSL

7 ...0 < = A B 6 ...0 . 0 ,


PSW C<=C

LSL

s h l,
ld C

PSW N <=N , PSW Z<=Z,


PSW V <=0

ld N , ld Z ,
ld V

48

48

A B

RO L

7 ...0 < = A B 6 ...0 . A B 7 ,


PSW C<=C

RO L

s h l,
ld C

PSW N <=N , PSW Z<=Z,


PSW V <=0

ld N , ld Z ,
ld V

49

49

A B

56

RO LC

7 ...0 < = A B 6 ...0 . P S W C ,


PSW C<=C

RO LC

s h l,
ld C

PSW N <=N , PSW Z<=Z,


PSW V <=0

ld N , ld Z ,
ld V

60
56
60
56
4976
4977
Slika 90 Izvravanje operacije (trinaesti deo)
4978! ASL, LSL, ROL i ROLC !
4979! U korak stepA2 se dolazi iz step50 ukoliko neki od signala operacije ASL, LSL, ROL i ROLC ima
4980vrednost 1 (slika 90). U fazi izvravanja ove instrukcije se bitovi registra AB 70 bloka exec koji se
4981koristi kao akumulator aritmetiki pomeraju za jedno mesto ulevo ukoliko signal ASL ima vrednost 1,
4982logiki pomeraju za jedno mesto ulevo ukoliko signal LSL ima vrednost 1, rotiraju za jedno mesto ulevo
4983ukoliko signal ROL ima vrednost 1 i rotiraju zajedno sa razredom PSWC programske statusne rei
4984PSW150 za jedno mesto ulevo ukoliko signal ROLC ima vrednost 1. Stoga se signalom shl bloka exec
4985bitovi registra AB70 pomeraju ulevo za jedno mesto, pri emu se u razred AB0 upisuje signal IL sa
4986izlaza multipleksera MX4 bloka exec. U sluaju aritmetikog pomeranja za jedno mesto ulevo to je
4987signal 0. Ovaj signal se selektuje na izlazu IL multipleksera MX4 binarnom vrednou 0 signala
4988selekcije multipleksera MX3 koji se dobijaju na izlazu kodera CD2 zbog vrednosti 1 signala ASL na
4989ulazu 0 kodera CD2. U sluaju logikog pomeranja za jedno mesto ulevo to je signal 0. Ovaj signal se
4990selektuje na izlazu IL multipleksera MX4 binarnom vrednou 1 signala selekcije multipleksera MX4
4991koji se dobijaju na izlazu kodera CD2 zbog vrednosti 1 signala LSL na ulazu 1 kodera CD2. U sluaju
4992rotiranja za jedno mesto ulevo to je signal AB7. Ovaj signal se selektuje na izlazu IL multipleksera MX4
4993binarnom vrednou 2 signala selekcije multipleksera MX4 koji se dobijaju na izlazu kodera CD2 zbog
4994vrednosti 1 signala ROL na ulazu 2 kodera CD2. U sluaju rotiranja zajedno sa razredom PSWC
4995programske statusne rei PSW150 za jedno mesto ulevo to je signal PSWC. Ovaj signal se selektuje na
4996izlazu IL multipleksera MX4 binarnom vrednou 3 signala selekcije multipleksera MX4 koji se
4997dobijaju na izlazu kodera CD2 zbog vrednosti 1 signala ROLC na ulazu 3 kodera CD2. Istovremeno se
4998signalom ldC bloka exec u razred PSWC programske statusne rei PSW 150 upisuje vrednost signala C

157

156

4999bloka exec. U sluaju svih pomeranja i rotiranja za jedno mesto ulevo to je signal AB7. U koraku stepA3
5000se signalima ldN i ldZ bloka exec u razrede PSWN i PSWZ programske statusne PSW 150 rei upisuju
5001vrednosti signala N i Z bloka exec formirane na osnovu sadraja upisanog u registar AB70 i signalom
5002ldV bloka exec u razred PSWV programske statusne rei PSW 150 upisuje vrednost 0 signala V. Iz
5003koraka stepA3 se bezuslovano prelazi na korak stepD0 i fazu opsluivanje prekida. !
5004
stepA2 shl, ldC;
5005
stepA3 ldN, ldZ, ldV,
5006
br stepD0;
5007! BEQL,, BLSSEU !
5008! U korak stepA4 se dolazi iz step50 ukoliko jedan od 16 signala operacija uslovnog skoka BEQL,
5009BNEQL, BNEG, BNNEG, BOVF, BNOVF, BCAR, BNCAR, BGRT, BGRTE, BLSS, BLSSE,
5010BGRTU, BGRTEU, BLSSU i BLSSEU ima vrednost 1 (slika 91). Iz koraka stepA4 se prelazi na
5011stepD0 i fazu opsluivanje prekida ukoliko signal brpom bloka exec ima vrednost 0 i na korak stepA5
5012ukoliko ima vrednost 1. Signal brpom ima vrednost 1 ukoliko od 16 signala rezultata operacije eql,
5013neql, neg, nneg, ovf, novf, car, ncar, grt, grte, lss, lsse, grtu, grteu, lssu i lsseu vrednost 1 ima onaj
5014signal koji je odreen vrednou 1 odgovarajueg signala od 16 signala operacija uslovnog skoka
5015BEQL, BNEQL, BNEG, BNNEG, BOVF, BNOVF, BCAR, BNCAR, BGRT, BGRTE, BLSS,
5016BLSSE, BGRTU, BGRTEU, BLSSU i BLSSEU. Signalom IRBRout se u koraku stepA4 na linije
5017interne magistrale IBUS3..0 puta sadraj razreda IR27... 24 registra IR31...0 bloka fetch. Bitovi IBUS2..0 se
5018vode na upravljake ulaze multipleksera MX7 i MX8 bloka exec, ime se vri selekcija po jednog
5019signala iz dve grupe signala rezultata operacije, dok se bit IBUS3 vodi na upravljaki ulaz multipleksera
5020MX9, ime se izmeu signala rezultata operacije selektovanih multiplekserima MX7 i MX8 selektuje
5021signal rezultata operacije koji odgovara kodu operacije uslovnog skoka. Selektovani signal rezultata
5022operacije je oznaen sa brpom. !
5023
stepA4 IRBRout,
5024
br (if brpom then stepD0);
60

50

B E Q L ,...,B L S S E U
I B U S 3 ...0 < = I R 2 7 ...2 4

56

60

b rp o m

50

B E Q L ,...,B L S S E U
IR B R o u t
0

b rp o m

56

CW <=PC
C W 1 1 5 ...0 < =
IR 2 3 ...I R

23

P C o u t, ld C W
.I R

IR P O M o u t, ld C W 1
2 3 ...1 6

PC<=CW +CW 1

A D D o u t, ld P C

51

51

P C < = IR

JM P

JM P
IR J A o u t, ld P C

2 3 ...8

52

52

IN T
P R IN S < = 1

IN T

s tP R IN S

60
56
60
56
5025
5026
Slika 91 Izvravanje operacije (etrnaesti deo)
5027
5028! U korak stepA5 se dolazi iz stepA4 ukoliko signal brpom ima vrednost 1, ime je uslov za skok
5029ispunjen. U koraku stepA5 se signalom PCout sadraj programskog brojaa PC15...0 bloka addr puta na
5030internu magistralu IBUS15...0 i signalom ldCW upisuju u pomoni registar CW15...0 bloka addr. U koraku
5031stepA6 se signalom IRPOMout pomeraj iz IR15...0 bloka fetch puta na internu magistralu IBUS15...0 i
5032signalom ldCW1 upisuju u pomoni registar CW115...0 bloka addr. Registri CW15...0 i CW115...0 su vezani
5033na ulaze sabiraa ADD bloka addr, pa se signalima ADDout i ldPC njihova suma sa izlaza sabiraa
5034ADD puta na internu magistralu IBUS15...0 i upisuje u registar PC15...0 bloka fetch. Pored toga iz koraka
5035stepA7 se bezuslovno prelazi na stepD0 i fazu opsluivanje prekida. !
5036
stepA5 PCout, ldCW;
5037
stepA6 IRPOMout, ldCW1;

158

157

5038
stepA7 ADDout, ldPC;
5039
br stepD0;
5040! JMP !
5041! U korak stepA8 se dolazi iz step50 ukoliko signal operacije JMP ima vrednost 1. U fazi izvravanja ove
5042instrukcije se realizuje bezuslovni skok na adresu koja je data u samoj instrukciji. Stoga se sadraj
5043registra IR238 bloka fetch koji predstavlja adresu skoka signalom IRJAout puta na internu magistralu
5044IBUS15...0 i signalom ldPC upisuje u registar PC 150. Pored toga iz koraka stepA8 se bezuslovno prelazi
5045na stepD0 i fazu opsluivanje prekida. !
5046
stepA8 IRJAout, ldPC,
5047
br stepD0;
5048! INT !
5049! U korak stepA9 se dolazi iz step50 ukoliko signal operacije INT ima vrednost 1. U fazi izvravanja ove
5050instrukcije se samo evidentira da se radi o instrukciji prekida i prelazi na fazu opsluivanje prekida iz
5051koje se zatim skae na prekidnu rutinu na osnovu broja ulaza u tabelu sa adresama prekidnih rutina koji
5052je dat u samoj instrukciji. Stoga se signalom stPRINS flip-flop PRINS bloka intr postavlja na vrednost
50531 i bezuslovno prelazi na stepD0 i fazu opsluivanje prekida. !
5054
stepA9 stPRINS,
5055
br stepD0;
5056! JSR !
5057! U korak stepAA se dolazi iz step50 ukoliko signal operacije JSR ima vrednost 1 (slika 92). U fazi
5058izvravanja ove instrukcije se realizuje skok na potprogram tako to se prvo na stek stavi tekui sadraj
5059programskog brojaa i zatim realizuje bezuslovni skok na adresu koja je data u samoj instrukciji. Na
5060stek se stavlja prvo stariji a zatim i mlai bajt registra PC 150. Stoga se najpre u koraku stepAA signalom
5061incSP vri inkrementiranje registra SP 150 bloka addr. Zatim se u koraku stepAB signalima SPout i
5062ldMAR sadraj registra SP150 puta na internu magistralu IBUS150 i upisuje u registar MAR150.
5063Potom se u koraku stepAC signalima PCHout, mxMDR i ldMDR sadraj registra PC158 puta na linije
5064interne magistrale IBUS70 i kroz multiplekser MX bloka bus i upisuje u registar MDR70. Upis se
5065realizuje u koracima stepAD i stepAE na isti nain kao to se to radi u koracima step5C i step5D instrukcije
5066STB. Potom se u koraku stepAF signalom incSP vri inkrementiranje registra SP 150. Zatim se u koraku
5067stepB0 signalom SPout i ldMAR sadraj registra SP 150 puta na internu magistralu IBUS150 i upisuje
5068u registar MAR150. Potom se u koraku stepAC signalima PCLout, mxMDR i ldMDR sadraj mlaeg
5069bajta registra PC70 puta na linije interne magistrale IBUS70 i kroz multiplekser MX bloka bus i
5070upisuje u registar MDR70. Upis se realizuje u koracima stepB2 i stepB3 na isti naina kao to se to radi u
5071koracima stepAD i stepAE prilikom upisa starijeg bajta. Na kraju se u koraku step B4 signalima IRJAout i
5072ldPC sadraj registra IR238 bloka fetch koji predstavlja adresu skoka puta na internu magistralu
5073IBUS15...0 i upisuje u registar PC150 i bezuslovno prelazi na stepD0 i fazu opsluivanje prekida. !
5074
stepAA incSP;
5075
stepAB SPout, ldMAR;
5076
stepAC PCHout, mxMDR, ldMDR;
5077
stepAD br (if hack then stepAD);
5078
stepAE eMAR, eMDR, wrCPU,
5079
br (if fcCPU then stepAE);
5080
stepAF incSP;
5081
stepB0 SPout, ldMAR;
5082
stepB1 PCout, mxMDR, ldMDR;
5083
stepB2 br (if hack then stepB2);
5084
stepB3 eMAR, eMDR, wrCPU,
5085
br (if fcCPU then stepB3);
5086
stepB4 IRJAout, ldPC,
5087
br stepD0;

159

158

60

53

JS R
SP<=SP+1

56

60

53

S P o u t, ld M A R
P C H o u t, m x M D R ,
ld M D R

1 5 ...8

hack
0

e M A R , e M D R , w rC P U
0

fc C P U
1

in c S P

M A R<=SP

S P o u t, ld M A R
P C o u t, m x M D R ,
ld M D R

7 ...0

hack
0

e M A R , e M D R , w rC P U
0

fc C P U
1

P C < = IR

hack
0

M EM <=M D R
0

fc C P U

SP<=SP+1

M D R<=PC

hack
0

M EM <=M D R
0

56

in c S P

M A R<=SP
M D R<=PC

JS R

fc C P U
1

IR J A o u t, ld P C

2 3 ...8

60
56
60
56
5088
5089
Slika 92 Izvravanje operacije (petnaesti deo)
5090! RTI !
5091! U korak stepB5 se dolazi iz step50 ukoliko signal operacije RTI ima vrednost 1 (slika 93). U fazi
5092izvravanja ove instrukcije vrednostima sa steka se restauriraju programska statusna re PSW 15..0 i
5093programski broja PC15...0. U koracima stepB5 do stepBC se najpre vrednou sa steka restaurira
5094programska statusna re PSW15...0 bloka exec. Sa steka se najpre skida mlai a zatim i stariji bajt
5095registra PSW15...0. Stoga se u koraku stepB5 signalima SPout i ldMAR sadraj registra SP150 puta na
5096internu magistralu IBUS2150 i upisuje u registar MAR150. Pored toga se i signalom decSP
5097dekrementira sadraj registra SP150. itanje se realizuje u koracima stepB6 i stepB7 na isti naina kao to
5098se to radi u koracima step02 i step03 u kojima se ita prvi bajt instrukcije. Na kraju se u koraku step B8
5099signalima MDRout i ldPSWL sadraj registra MDR7...0 bloka bus puta na linije interne magistrale
5100IBUS70 i upisuje u mlai bajt registra PSW70 bloka exec. Potom se u koraku stepB9 signalima SPout i
5101ldMAR sadraj registra SP150 puta na internu magistralu IBUS150 i upisuje u registar MAR150.
5102Pored toga se i signalom decSP dekrementira sadraj registra SP 150. itanje se realizuje u koracima
5103stepBA i stepBB na isti naina kao to se to radi u koracima step B6 i stepB7 u kojima se ita prethodni bajt.
5104Na kraju se u koraku stepBC signalima MDRout i ldPSWH sadraj registra MDR7...0 bloka bus puta na
5105linije interne magistrale IBUS70 i upisuje u stariji bajt registra PSW158. Time je 16-to bitna vrednost
5106skinuta sa steka i smetena u registar PSW 150, pa se prelazi na sledei korak poev od koga se kao i u
5107sluaju instrukcije RTS sa steka skida 16-to bitna vrednost i smeta u registar PC 150. !
5108
stepB5 SPout, ldMAR, decSP;
5109
stepB6 br (if hack then stepB6);
5110
stepB7 eMAR, rdCPU,
5111
br (if fcCPU then stepB7);
5112
stepB8 MDRout, ldPSWL;
5113
stepB9 SPout, ldMAR, decSP;
5114
stepBA br (if hack then stepBA);

160

159

5115
5116
5117

stepBB eMAR, rdCPU,


br (if fcCPU then stepBB);
stepBC MDRout, ldPSWH;
60

54

RTI

56

60

54

M A R<=SP,
S P < = S P 1

eM A R , rd C P U
0

fc C P U
1

7 ...0

M D R o u t, ld P S W L
S P o u t, ld M A R ,
decSP

hack
0

eM A R , rd C P U
0

fc C P U
1

PSW

hack
0

M D R<=M EM
0

fc C P U
1

<=M D R

M A R<=SP,
S P < = S P 1

hack
0

M D R<=M EM

PSW

56

S P o u t, ld M A R ,
decSP

hack

RTI

fc C P U
1

<=M D R
1 5 ...8

M D R o u t, ld P S W H

60
55
56
60
55
56
5118
5119
Slika 93 Izvravanje operacije (esnaesti deo)
5120! RTS !
5121! U korak stepBD se dolazi iz step50 ukoliko signal operacije RTS ima vrednost 1 (slika 94). Pored toga u
5122korak stepBD se dolazi i iz koraka stepBC kada signal operacije RTI ima vrednost 1. U oba sluaja se u
5123koracima stepBD do stepC5 vrednou sa steka restaurira programski broja PC 15...0. Sa steka se najpre
5124skida mlai a zatim i stariji bajt registra PC 15...0. Stoga se u koraku stepBD signalima SPout i ldMAR
5125sadraj registra SP150 puta na internu magistralu IBUS150 i upisuje u registar MAR150. Pored toga
5126se i signalom decSP dekrementira sadraj registra SP 150. itanje se realizuje u koracima stepBE i stepBF
5127na isti naina kao to se to radi u koracima step 02 i step03 u kojima se ita prvi bajt instrukcije. Na kraju
5128se u koraku stepC0 signalima MDRout i ldDWL sadraj registra MDR7...0 bloka bus puta na linije
5129interne magistrale IBUS70 i upisuje u mlai bajt registra DW70 bloka bus. Potom se u koraku stepC1
5130signalima SPout i ldMAR sadraj registra SP150 puta na internu magistralu IBUS150 i upisuje u
5131registar MAR150.Pored toga se i signalom decSP dekrementira sadraj registra SP 150. itanje se
5132realizuje u koracima stepC2 i stepC3 na isti naina kao to se to radi u koracima step BE i stepBF u kojima se
5133ita prethodni bajt. Na kraju se u koraku stepC4 signalima MDRout i ldDWH sadraj registra MDR7...0
5134bloka bus puta na linije interne magistrale IBUS70 i upisuje u stariji bajt registra DW 158. Time je 165135to bitna vrednost skinuta sa steka i smetena u registar DW 150. Konano se u koraku stepC5 signalom
5136DWout sadraj registra DW150 puta na internu magistralu IBUS215...0 i signalom ldPC upisuje u
5137registar PC150. Iz ovog koraka se i bezuslovno prelazi na stepD0 i fazu opsluivanje prekida. !
5138
stepBD SPout, ldMAR, decSP;
5139
stepBE br (if hack then stepBE);
5140
stepBF eMAR, rdCPU,
5141
br (if fcCPU then stepBF);
5142
stepC0 MDRout, ldDWL;
5143
stepC1 SPout, ldMAR, decSP;
5144
stepC2 br (if hack then stepC2);
5145
stepC3 eMAR, rdCPU,

161

160

5146
5147
5148
5149

br (if fcCPU then stepC3);


stepC4 MDRout, ldDWH;
stepC5 DWout, ldPC,
br stepD0;
60

55

RTS

56

60

55

M A R<=SP,
S P < = S P 1

eM A R , rd C P U
0

fc C P U
1

M D R o u t, ld D W L
S P o u t, ld M A R ,
decSP

hack
0

eM A R , rd C P U
0

fc C P U
1

D W

1 5 ...8

hack
0

M D R<=M EM
0

fc C P U
1

7 ...0 < = M D R

M A R<=SP,
S P < = S P 1

hack
0

M D R<=M EM

D W

56

S P o u t, ld M A R ,
decSP

hack

RTS

fc C P U
1

<=M D R

PC<=D W

M D R o u t, ld D W H
D W o u t, ld P C

1 5 ...0

60
56
60
56
5150
5151
Slika 94 Izvravanje operacije (sedamnaesti deo)
5152! Opsluivanje prekida !
5153! U korak stepD0 se dolazi koraka step06 ukoliko signal PRCOD ima vrednost 1, koraka step0D ukoliko
5154signal PRADR ima vrednost 1 i koraka step51, step53, ..., stepC5 na zavretku faze izvravanje instrukcije
5155svake od instrukcija (slika 95). U koraku stepD0 se, u zavisnosti od toga da li signal prekid bloka intr
5156ima vrednost 0 ili 1, ili zavrava izvravanje tekue instrukcije i prelaskom na korak step00 zapoinje
5157faza itanje instrukcije sledee instrukcije ili se produava izvravanje tekue instrukcije i prelaskom na
5158korak stepD1 produava faza opsluivanje prekida tekue instrukcije. !
5159
stepD0 br (if prekid then step00);
5160! Opsluivanje prekida se sastoji iz dve grupe koraka u kojima se realizuje uvanje konteksta procesora
5161i skok na prekidnu rutinu. !

162

161

60

56

60

56

p re k id

p re k id

SP<=SP+1

in c S P

M A R<=SP

S P o u t, ld M A R

M D R<=PC

P C H o u t,
m x M D R , ld M D R

1 5 ...8

hack

hack

M EM <=M D R
0

e M A R , e M D R , w rC P U
0

fc C P U

fc C P U

SP<=SP+1

in c S P

M A R<=SP

S P o u t, ld M A R

M D R <=PC

P C o u t,
m x M D R , ld M D R

7 ...0

hack

hack

M EM <=M D R
0

e M A R , e M D R , w rC P U
0

fc C P U
1

5162
5163

60

fc C P U
1

57

60

57

Slika 95 Opsluivanje prekida (prvi deo)

5164! uvanje konteksta procesora !


5165! Kontekst procesora i to registri PC 150 i PSW150 se uva u koracima stepD1 do stepE4. U koracima
5166stepD1 do stepDA se na stek stavlja programski broja PC 150. Na stek se stavlja prvo stariji a zatim i
5167mlai bajt registra PC150. Stoga se najpre u koraku stepD1 signalom incSP vri inkrementiranje registra
5168SP150 bloka addr. Zatim se u koraku stepD2 signalima SPout i ldMAR sadraj registra SP150 puta na
5169internu magistralu IBUS150 i upisuje u registar MAR150 i signalima PCHout, mxMDR i ldMDR
5170sadraj registra PC158 puta na linije interne magistrale IBUS70 i kroz multiplekser MX bloka bus i
5171upisuje u registar MDR70. Upis se realizuje u koracima stepD4 i stepD5 na isti nain kao to se to radi u
5172koracima step5C i step5D instrukcije STB. Potom se u koraku stepD6 signalom incSP vri inkrementiranje
5173registra SP150. Zatim se u koraku stepAF signalom SPout i ldMAR sadraj registra SP 150 puta na
5174internu magistralu IBUS2150 i upisuje u registar MAR150 i signalima PCLout, mxMDR i ldMDR
5175sadraj mlaeg bajta registra PC 70 puta na linije interne magistrale IBUS70 i kroz multiplekser MX
5176bloka bus i upisuje u registar MDR70. Upis se realizuje u koracima step D9 i stepDA na isti naina kao
5177to se to radi u koracima stepD4 i stepD5 prilikom upisa starijeg bajta. !
5178
stepD1 incSP;
5179
stepD2 SPout, ldMAR;
5180
stepD3 PCHout, mxMDR, ldMDR;
5181
stepD4 br (if hack then stepD4);
5182
stepD5 eMAR, eMDR, wrCPU,
5183
br (if fcCPU then stepD5);

163

162

5184
5185
5186
5187
5188
5189

stepD6
stepD7
stepD8
stepD9
stepDA

incSP;
SPout, ldMAR;
PCout, mxMDR, ldMDR;
br (if hack then stepD9);
eMAR, eMDR, wrCPU,
br (if fcCPU then stepDA);

60

57

60

SP<=SP+1

in c S P

M A R<=SP

S P o u t, ld M A R

M D R <=PSW

57

P S W H o u t, m x M D R ,
ld M D R

1 5 ...8

hack

hack

M EM <=M D R
0

e M A R , e M D R , w rC P U
0

fc C P U

fc C P U

SP<=SP+1

in c S P

M A R<=SP

S P o u t, ld M A R

M D R<=PSW

P S W L o u t, m x M D R ,
ld M D R

7 ...0

hack

hack

M EM <=M D R
0

e M A R , e M D R , w rC P U
0

fc C P U

fc C P U

5190
5191

60

1
58

60

58

Slika 96 Opsluivanje prekida (drugi deo)

5192! U koracima stepDB do stepE4 se na stek stavlja programska statusna re PSW 150 bloka exec (slika 96).
5193Na stek se stavlja prvo stariji a zatim i mlai bajt registra PSW 150. Stoga se najpre u koraku stepDB
5194signalom incSP vri inkrementiranje registra SP150 bloka addr. Zatim se u koraku stepDC signalima
5195SPout i ldMAR sadraj registra SP150 puta na internu magistralu IBUS150 i upisuje u registar
5196MAR150 i signalima PSWHout, mxMDR i ldMDR sadraj registra PSW158 puta na linije interne
5197magistrale IBUS70 i kroz multiplekser MX bloka bus i upisuje u registar MDR70. Upis se realizuje u
5198koracima stepDE i stepDF na isti nain kao to se to radi u koracima step 5C i step5D instrukcije STB.
5199Potom se u koraku stepE0 signalom incSP vri inkrementiranje registra SP150. Zatim se u koraku stepE1
5200signalima SPout i ldMAR sadraj registra SP150 puta na internu magistralu IBUS150 i upisuje u
5201registar MAR150 i signalima PSWLout, mxMDR i ldMDR sadraj mlaeg bajta registra PSW 70
5202puta na linije interne magistrale IBUS70 i kroz multiplekser MX bloka bus i upisuje u registar MDR7
52030. Upis se realizuje u koracima stepE3 i stepE4 na isti naina kao to se to radi u koracima stepDE i stepDF
5204prilikom upisa starijeg bajta. !
5205
stepDB incSP;
5206
stepDC SPout, ldMAR;
5207
stepDD PSWHout, mxMDR, ldMDR;
5208
stepDE br (if hack then stepDE);
5209
stepDF eMAR, eMDR, wrCPU,
164

163

5210
br (if fcCPU then stepDF);
5211
stepE0 incSP;
5212
stepE1 SPout, ldMAR;
5213
stepE2 PSWLout, mxMDR, ldMDR;
5214
stepE3 br (if hack then stepE3);
5215
stepE4 eMAR, eMDR, wrCPU,
5216
br (if fcCPU then stepE4);
5217! Skok na prekidnu rutinu !
5218! Skok na prekidnu rutinu se sastoji iz utvrivanja broja ulaza i utvrivanja adrese prekidne rutine. !
5219! Utvrivanje broja ulaza !
5220! U korak stepE5 se dolazi iz stepE4 (slika 97). U koracima stepE5 do stepEF se utvruje broj ulaza u tabelu
5221sa adresama prekidnih rutina i upisuje u registar BR70 bloka intr. U ovim koracima se po opadajuim
5222prioritetima utvruje zahtev za prekid najvieg prioriteta i za njega odreuje broj ulaza u tabelu sa
5223adresama prekidnih rutina. !
5224! Provera da li postoji zahtev za prekid zbog izvravanja instrukcije prekida INT. !
5225! U koraku stepE5 se vri provera da li signal PRINS bloka intr ima vrednost 1 ili 0 i prelazi na korak
5226stepE6 ili stepE7, respektivno. Ukoliko signal PRINS ima vrednost 1 jer postoji odgovarajui zahtev za
5227prekid, u koraku stepE6 se signalom IRPOMout bloka exec sadraj razreda IR2316, koji sadri broj
5228ulaza, puta na linije ineterne magistrale IBUS7...0 i signalom ldBR upisuje u registar BR70.
5229Istovremeno se signalom clPRINS bloka intr se flip-flop PRINS postavlja na vrednost 0. Iz koraka
5230stepE6 se prelazi na korak stepF0 radi utvrivanja adrese prekidne rutine. !
5231
stepE5 br (if PRINS then stepE7);
5232
stepE6 IRPOMout, ldBR, clPRINS,
5233
br stepF0;
5234! Provera da li postoji zahtev za prekid zbog greke u kodu operacije. !
5235! U koraku stepE7 se vri provera da li signal PRCOD bloka intr ima vrednost 1 ili 0 i prelazi na korak
5236stepE8 ili stepE9, respektivno. Ukoliko signal PRCOD ima vrednost 1 jer postoji odgovarajui zahtev za
5237prekid, u koraku stepE8 se signalom UINTout bloka intr sadraj UINT70 sa izlaza kodera CD2, koji
5238sadri broj ulaza, puta na linije interne magistrale IBUS 7...0 i signalom ldBR upisuje u registar BR70.
5239Istovremeno se signalom clPRCOD bloka intr flip-flop PRCOD postavlja na vrednost 0. Iz koraka
5240stepE8 se prelazi na korak stepF0 radi utvrivanja adrese prekidne rutine. !
5241
stepE7 br (if PRCOD then stepE9);
5242
stepE8 UINTout, ldBR, clPRCOD,
5243
br stepF0;
5244! Provera da li postoji zahtev za prekid zbog greke u adresiranju. !
5245! U koraku stepE9 se vri provera da li signal PRADR bloka intr ima vrednost 1 ili 0 i prelazi na korak
5246stepEA ili stepEB, respektivno. Ukoliko signal PRADR ima vrednost 1 jer postoji odgovarajui zahtev za
5247prekid, u koraku stepEA se signalom UINTout bloka intr sadraj UINT70 sa izlaza kodera CD2, koji
5248sadri broj ulaza, puta na linije interne magistrale IBUS 7...0 i signalom ldBR upisuje u registar BR70.
5249Istovremeno se signalom clPRADR bloka intr flip-flop PRADR postavlja na vrednost 0. Iz koraka
5250stepEA se prelazi na korak stepF0 radi utvrivanja adrese prekidne rutine. !
5251
stepE9 br (if PRADR then stepEB);
5252
stepEA UINTout, ldBR, clPRADR,
5253
br stepF0;

165

164

60

58

60

58

P R IN S
1

B R

7 ...0 < = I R 2 3 ...1 6 ,


P R IN S < = 0

IR P O M o u t, ld B R ,
c lP R IN S

PR CO D
1

B R

U IN T o u t, ld B R ,
c lP R C O D

U IN T o u t, ld B R ,
c lP R A D R

< = U I N T 7 ...0 ,
P R IN M < = 0

U IN T o u t, ld B R ,
c lP R IN M

7 ...0

5254
5255

166

60

p rin tr
1

B R 7 ...0 < = U E X T 7 ...0 ,


c a s e p r l 2 ...0
b e g in
0 : -,
1 : P R IN T R 1 < = 0 ,
2 : P R IN T R 2 < = 0 ,
3 : P R IN T R 3 < = 0 ,
4 : P R IN T R 4 < = 0 ,
5 : P R IN T R 5 < = 0 ,
6 : P R IN T R 6 < = 0 ,
7 : P R IN T R 7 < = 0
end,
P S W L 2 ...0 < = p r l 2 ...0

7 ...0 <

P R IN M
1

p rin tr

B R

PR A D R
1

7 ...0 < = U N I T 7 ...0 ,


PRA D R<=0

P R IN M
B R

PR CO D
1

7 ...0 < = U I N T 7 ...0 ,


PR CO D <=0

PR A D R
B R

P R IN S

= U IN T

U E X T o u t, ld B R ,

c lIN T R ,

ld L

U IN T o u t, ld B R

7 ...0

59

60

Slika 97 Opsluivanje prekida (trei deo)

165

59

5256
5257! Provera da li postoji spoljanji nemaskirajui zahtev za prekid. !
5258! U koraku stepEB se vri provera da li signal PRINM bloka intr ima vrednost 1 ili 0 i prelazi na korak
5259stepEC ili stepED, respektivno. Ukoliko signal PRINM ima vrednost 1 jer postoji odgovarajui zahtev za
5260prekid, u koraku stepEC se signalom UINTout bloka intr sadraj UINT70 sa izlaza kodera CD2, koji
5261sadri broj ulaza, puta na linije interne magistrale IBUS 7...0 i signalom ldBR upisuje u registar BR70.
5262Istovremeno se signalom clPRINM bloka intr flip-flop PRINM postavlja na vrednost 0. Iz koraka
5263stepEC se prelazi na korak stepF0 radi utvrivanja adrese prekidne rutine.!
5264
stepEB br (if PRINM then stepED);
5265
stepEC UINTout, ldBR, clPRINM,
5266
br stepF0;
5267! Provera da li postoji spoljanji maskirajui zahtev za prekid. !
5268! U koraku stepED se vri provera da li signal printr bloka intr ima vrednost 1 ili 0 i prelazi na korak
5269stepEE ili stepEF, respektivno. Ukoliko signal printr ima vrednost 1 jer postoji odgovarajui zahtev za
5270prekid, u koraku stepEE se signalom UEXTout bloka intr sadraj UEXT70 sa izlaza kodera CD3, koji
5271sadri broj ulaza, puta na linije interne magistrale IBUS 7...0 i signalom ldBR upisuje u registar BR70.
5272Istovremeno se signalom clINTR bloka intr jedan od flip-flopova PRINTR7 do PRINTR1 postavlja na
5273vrednost 0. Flip-flop PRINTR7 do PRINTR1 koji se postavlja na vrednost 0 je selektovan binarnim
5274vrednostima 7 do 1, respektivno, signala prl2 do prl0 bloka intr i odgovara liniji najvieg nivoa
5275prioriteta po kojoj je stigao spoljanji maskirajui zahtev za prekid koji nije selektivno maskiran
5276odgovarajuim razredom registra maske IMR150. Pored toga signalom ldL bloka exec se signali prl2 do
5277prl0 , koji predstavljaju binarnu vrednost nivoa prioriteta prekidne rutine na koju se skae, upisuju u
5278razrede PSWL2 do PSWL0 programske statusne rei PSW150 bloka exec. Iz koraka stepEE se prelazi na
5279korak stepF0 radi utvrivanja adrese prekidne rutine.!
5280
stepED br (if printr then stepEF);
5281
stepEE UEXTout, ldBR, clINTR, ldL,
5282
br stepF0;
5283! Prekid posle svake instrukcije !
5284! U korak stepEF se dolazi iz stepED ukoliko signal printr ima vrednost 0. U ovaj korak se dolazi jedino
5285ukoliko se proverom signala prekid u koraku stepD0 utvrdi da ovaj signal ima vrednost 1 i proverom
5286signala PRINS, PRCOD, PRADR, PRINM i printr u koracima stepE5, stepE7, stepE9, stepEB i stepED
5287utvrdi da ovi signali imaju vrednost 0. To znai da jedino preostaje da signal prekid ima vrednost 1 jer,
5288zbog zadatog reima rada prekid posle svake instrukcije, signal PSWT ima vrednost 1. Stoga se
5289signalom UINTout bloka intr sadraj UINT70 sa izlaza kodera CD2, koji sadri broj ulaza, puta na
5290linije interne magistrale IBUS7...0 i signalom ldBR upisuje u registar BR70. Iz koraka stepEF se prelazi
5291na korak stepF0 radi utvrivanja adrese prekidne rutine. !
5292
stepEF UINTout, ldBR;
5293! Utvrivanje adrese prekidne rutine !
5294! U koracima stepF0 do stepF9 se, na osnovu dobijenog broja ulaza i sadraja registra koji ukazuje na
5295poetnu adresu tabele sa adresama pekidnih rutina, iz odgovarajueg ulaza tabele ita adresa prekidne
5296rutine i upisuje u programski broja PC 150 bloka fetch (slika 98). U koraku stepF0 se signalom
5297IVTPout sadraj sadraj registra IVTP15...0 bloka int puta na internu magistralu IBUS 15...0 i signalom
5298ldCW upisuju u pomoni registar CW15...0 bloka addr. U koraku stepF1 se signalom IVTDSPout
5299pomeraj iz IR15...0 bloka fetch puta na internu magistralu IBUS15...0 i signalom ldCW1 upisuju u
5300pomoni registar CW115...0 bloka addr. Registri CW15...0 i CW115...0 su vezani na ulaze sabiraa ADD
5301bloka addr, pa se signalima ADDout i ldMAR njihova suma sa izlaza sabiraa ADD puta na internu
5302magistralu IBUS15...0 i upisuje u registar PC15...0 bloka bus. Time se u registru MAR15...0 nalazi adresa
5303memorijske lokacije poev od koje treba proitati dva bajta koji predstavljaju vii i nii bajt adrese
5304prekidne rutine. itanje se realizuje u koracima stepF3 i stepF4 na isti naina kao to se to radi u
5305koracima step02 i step03 u kojima se ita prvi bajt instrukcije. U koraku step F5 se signalima MDRout i
5306ldDWH prvi bajt iz registra MDR7...0 bloka bus puta na linije interne magistrale IBUS1 70 i upisuje u
5307stariji bajt registra DW158 bloka bus, a signalom incMAR adresni registar MAR15...0 se inkrementira na
5308adresu sledeeg bajta. itanje se realizuje u koracima stepF6 i stepF7 na isti naina kao to se to radi u
5309koracima stepF3 i stepF4 u kojima se ita prethodni bajt. U koraku stepF8 se signalima MDRout i ldDWL
5310drugi bajt iz registra MDR7...0 bloka bus puta na linije interne magistrale IBUS70 i upisuje u mlai bajt
5311registra DW70 bloka bus. Time se u registru DW150 nalazi adresa prekidne rutine. Na kraju se u

167

166

5312koraku stepF9 signalom DWout sadraj registra DW150 puta na internu magistralu IBUS15...0 i signalom
5313ldPC upisuje u registar PC15...0. Time se u registru PC15...0 nalazi adresa prve instrukcije prekidne rutine.
5314Signalima clPSWI i clPSWT se u razrede PSWI i PSWT bloka exec upisuju vrednosti 0. Time se u
5315prekidnu rutinu ulazi sa reimom rada u kome su maskirani svi maskirajui prekidi i u kome nema
5316prekida posle svake instrukcije. Iz koraka stepCC se bezuslovno prelazi na step00. !
5317
stepF0 IVTPout, ldCW;
5318
stepF1 IVTDSPout, ldCW1;
5319
stepF2 ADDout, ldMAR;
5320
stepF3 br (if hack then stepF3);
5321
stepF4 eMAR, rdCPU,
5322
br (if fcCPU then stepF4);
5323
stepF5 MDRout, ldDWH, incMAR;
5324
stepF6 br (if hack then stepF6);
5325
stepF7 eMAR, rdCPU,
5326
br (if fcCPU then stepF7);
5327
stepF8 MDRout, ldDWL;
5328
stepF9 DWout, ldPC, clPSWI, clPSWT,
5329
br step00;
60

59

60

59

C W < = IV T P

IV T P o u t, ld C W

C W 1 < = IV T D S P

IV T D S P o u t, ld C W 1

M A R<=CW +C W 1

A D D o u t, ld M A R

hack

hack

M D R <=M EM
0

eM A R , rd C P U
0

fc C P U

fc C P U

D W 1 5 ...8 < = M D R 7 ...0 ,


M A R <=M A R +1

M D R o u t, ld D W H ,
in c M A R

hack

hack

M D R <=M EM
0

eM A R , rd C P U
0

fc C P U

fc C P U

D W

7 ...0 < = M D R

M D R o u t, ld D W L

7 ...0

P C < = D W 1 5 ...0 ,
P S W I< = 0 ,
PSW T<=0

5330
5331

D W o u t, ld P C ,
c lP S W I,
c lP S W T

Slika 98 Opsluivanje prekida (etvrti deo)

53324.2.2.3 Struktura upravljake jedinice


5333 U ovom odeljku se daje struktura upravljake jedinice mikroprogramske realizacije sa
5334vertikalnim kodiranjem signala i jednim tipom mikroinstrukcija koja generie dve vrste
5335upravljakih signala i to upravljake signale blokova operacione jedinice oper i upravljake
5336signale upravljake jedinice uprav. Upravljaki signali blokova operacione jedinice oper se
5337koriste u blokovima operacione jedinice oper radi izvravanja mikrooperacija. Upravljaki
168

167

5338signali upravljake jedinice uprav se koriste u upravljakoj jedinici uprav radi inkrementiranja
5339mikroprogramskog brojaa ili upisa nove vrednosti u mikroprogramski broja.
5340 U sluaju upravljake jedinice mikroprogramske realizacije sa vertikalnim kodiranjem
5341signala i jednim tipom mikroinstrukcija upravljaki signali i operacione i upravljake jedinice se
5342generiu na osnovu mikroprograma, koji je potrebno prethodno formirati tako to se svakom
5343koraku u sekvenci upravljakih signala po koracima (tabela 24) pridruuje binarna re
5344odreene strukture (slika 99). Ta binarna re se naziva mikroinstrukcija, mikronaredba ili
5345mikrokomanda, a tako dobijeni ureeni niz mikroinstrukcija pridruenih koracima sekvence
5346upravljakih signala po koracima, naziva se mikroprogram.
v
0

...

cc
7

s ig n a li

...

ba
15

16

...

23

u s lo v

a d re sa sk o k a

o p e ra c io n i d e o
u p ra v lja k i d e o
5347
5348
Slika 99 Format mikroinstrukcije
5349 Poljem v0..7 duine 8 bita mikroinstrukcije odreuju se vrednosti svih upravljakih signala
5350operacione jedinice. Jedna binarna vrednost ovog polja se dodeljuje odreenoj kombinaciji
5351upravljakih signala operacione jedinice neophodnoj da se u jednom koraku realizuju
5352mikrooperacije. Ovakav nain kodiranja upravljakih signala se naziva vertikalni nain
5353kodiranja. Poljem cc8...15 duine 8 bita mikroinstrukcije specificira se bezuslovni skok, uslovni
5354skokovi na osnovu vrednosti svakog od signala logikih uslova i viestruki uslovni skokovi.
5355Polje ba16...23 duine 8 bita mikroinstrukcije predstavlja adresu mikroinstrukcije u
5356mikroprogramu na koju se skae u sluaju bezuslovnog skoka i u sluaju uslovnog skoka
5357ukoliko odgovarajui signal logikog uslova ima vrednost 1.

5358 Upravljaka jedinica se sastoji iz mikroprogramske memorije, mikroprogramskog brojaa,


5359prihvatnog registra mikroinstrukcije, kombinacione mree za generisanje upravljakih signala i
5360kombinacione mree za generisanje nove vrednosti mikroprogramskog brojaa.
5361Mikroprogramska memorija slui za smetanje mikroprograma. Mikroprogramski broja
5362odreuje adresu mikroinstrukcije u mikroprogramskoj memoriji. Prihvatni registar
5363mikroinstrukcije slui za prihvatanje mikroinstrukcije oitane iz mikroprogramske memorije.
5364Kombinaciona mrea za generisanje upravljakih signala generie na osnovu oitane
5365mikroinstrukcije dve grupe upravljakih signala i to upravljake signale operacione jedinice i
5366upravljake signale upravljake jedinice. Upravljaki signali operacione jedinice se generiu na
5367osnovu vrednosti bitova polja v0..7. Njima se omoguava izvravanje odreenih mikrooperacija
5368u operacionoj jedinice. Upravljaki signali upravljake jedinice se generiu na osnovu vrednosti
5369bitova polja cc8...15 i signala logikih uslova. Njima se ili sadraj mikroprogramskog brojaa
5370inkrementira ili se u mikroprogramski broja preko kombinacione mree za generisanje nove
5371vrednosti mikroprogramskog brojaa upisuje nova vrednost i time realizuje skok u
5372mikroprogramskoj memoriji.
5373

Detalji formata mikroinstrukcije (slika 99) su dati u daljem tekstu.

5374 Bitovi 0 do 7 pripadaju polju v0..7 mikroinstrukcije i dodeljeni su upravljakim signalima


5375operacione jedinice. Vrednosti polja v0..7, simbolike oznake kodova polja v0..7 i kombinacije
5376upravljakih signala operacione jedinice dati su u tabeli 25. Usvojeni kodovi su simboliki
5377oznaeni sa Vxx, pri emu xx odgovara heksadekadnoj vrednosti usvojenog koda. Na primer, sa
5378V00 je simboliki oznaena heksadekadna vrednost 00 ovog polja. Svakom usvojenom kodu
5379odgovara neka kombinacija upravljakih signala. Na primer, kodu V01 odgovaraju signali
5380PCout, ldMAR i incPC, kodu V02 signali eMAR i rdCPU, itd. Kombinacije upravljakih
5381signala su tako odabrane da njima mogu da se pokriju sve situacije iz sekvence upravljakih
5382signala po koracima (tabela 24). Ukoliko ni jedan od upravljakih signala operacione jedinice
169

168

5383ne treba da ima vrednost 1, vrednost polja v0..7 treba da bude nula. Iz tabele 25 se vidi da su za
5384kodiranje kombinacija upravljakih signala operacione jedinice potrebni kodovi od 00h do 54h
5385i da je za polje v dovoljna duina 7 bitova. Meutim, da bi mikroprogram predstavljen u
5386heksadecimalnom obliki bio pregledan, usvojeno je da duina polja v bude 8 bitova.

170

169

5387
5388

Tabela 25 Vrednosti polja v, simbolike oznake kodova polja v


i kombinacije upravljakih signala operacione jedinice
v0...7
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B

kod
V00
V01
V02
V03
V04
V05
V06
V07
V08
V09
V0A
V0B
V0C
V0D
V0E
V0F
V10
V11
V12
V13
V14
V15
V16
V17
V18
V19
V1A
V1B
V1C
V1D
V1E
V1F
V20
V21
V22
V23
V24
V25
V26
V27
V28
V29
V2A
V2B

Kombinacija signala
/
PCout, ldMAR, incPC
eMAR, rdCPU
MDRout, ldIR0
stPRCOD
MDRout, ldIR1, ldGPRAR
stPRADR
MDRout, ldIR2
MDRout, ldIR3
GPRout, ldBB
GPRout, ldBW
GPRout, ldMAR
IRDAout, ldMAR
MDRout, ldDWH
MDRout, ldDWH, incMAR
MDRout, ldDWL
DWout, ldMAR
GPRout, ldCW
IRDAout, ldCW1
ADDout, ldMAR
IRDAout, ldCW1, incGPRAR
GPRout, ldCW1
PCout, ldCW
MDRout, ldBB
DWout, ldBW
IRDAout, ldBW
clSTART
clPSWI
stPSWI
clPSWT
stPSWT
BBout, ldAB
ldN, ldZ, ldC, ldV
BWout, ldAW
ABout, mxMDR, ldMDR
eMAR, eMDR, wrCPU
ABout, wrGPR
AWHout, mxMDR, ldMDR
AWout, mxMDR, ldMDR
AWout, wrGPR
SPout, ldMAR
SPout, ldMAR, decSP
incSP
IVTPout, ldAW

v0...7
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55

FF

kod
V2C
V2D
V2E
V2F
V30
V31
V32
V33
V34
V35
V36
V37
V38
V39
V3A
V3B
V3C
V3D
V3E
V3F
V40
V41
V42
V43
V44
V45
V46
V47
V48
V49
V4A
V4B
V4C
V4D
V4E
V4F
V50
V51
V52
V53
V54
V55

VFF

Kombinacija signala
AWout, ldIVTP
IMRout, ldAW
AWout, ldIMR
SPout, ldAW
AWout, ldSP
ALUout, add, ldAB, ldC, ldV
ALUout, sub, ldAB, ldC, ldV
ALUout, inc, ldAB, ldC, ldV
ALUout, dec, ldAB, ldC, ldV
ALUout, and, ldAB
ALUout, or, ldAB
ALUout, xor, ldAB
ALUout, not, ldAB
shr, ldC
DWout, ldPC, clPSWI, clPSWT
IRBRout
IRPOMout, ldCW1
ADDout, ldPC
IRJAout, ldPC
stPRINS
PCHout, mxMDR, ldMDR
PCout, mxMDR, ldMDR
MDRout, ldPSWL
MDRout, ldPSWH
DWout, ldPC
PSWHout, mxMDR, ldMDR
PSWLout, mxMDR, ldMDR
IRPOMout, ldBR, clPRINS
UINTout, ldBR
UINTout, ldBR, clPRCOD
UINTout, ldBR, clPRADR
UINTout, ldBR, clPRINM
UEXTout, ldBR, clINTR, ldL
IVTPout, ldCW
IVTDSPout, ldCW1
IRJAout, ldBB
ADDout, ldCW
shl, ldC
ldN, ldZ
AWout, mxMDR, ldMDR, incMAR
ldN, ldZ, ldV

5389 Bitovi 8 do 15 pripadaju polju cc8...15 mikroinstrukcije i koriste se za kodiranje upravljakih


5390signala upravljake jedinice za korake u kojima se javljaju bezuslovni skok, uslovni skokovi i
5391viestruki uslovni skokovi.
5392 Bezuslovni skok se realizuje u onim koracima sekvence upravljakih signala po koracima
5393(tabela 24) u kojima se pojavljuju iskazi tipa
5394 br stepA.
5395Nain kodiranja signala bezuslovnog skoka bitovima polja cc8...15 mikroinstrukcije i simbolika
5396oznaka signala bezuslovnog skoka dati su u tabeli 26.
5397

Tabela 26 Signal bezuslovnog skoka


cc815

171

signal bezuslovnog skoka

170

01

bruncnd

5398 Uslovni skokovi se realizuju u onim koracima sekvence upravljakih signala po koracima u
5399kojima se pojavljuju iskazi tipa
5400 br (if uslov then stepA).
5401Nain kodiranja signala uslovnih skokova bitovima polja cc8...15 mikroinstrukcije, simbolike
5402oznake signala uslovnih skokova koje za svaki od njih treba generisati i signal uslova koji treba
5403da ima vrednost 1 da bi se realizovao skok dati su u tabeli 27.
5404

Tabela 27 Signali uslovnih skokova

02
03
04
05
06

signal uslovnog
skoka
brnotSTART
brhack
brnotfcCPU
brnotgropr
brl1

07

brnotgradr

08
09
0A
0B

brl2_branch
brl2_arlog
brl3_jump
brl3_arlog

cc815

signal
uslova

0C
0D
0E
0F
10

signal uslovnog
skoka
brstore
brLDW
brregdir
brnotbrpom
brnotPREKID

gradr

11

brnotPRINS

l2_branch
l2_arlog
l3_jump
l3_arlog

12
13
14
15

brnotPRCOD
brnotPRADR
brnotPRINM
brnotprintr

cc815

START

hack
fcCPU
gropr

I1

signal
uslova
store
LDW
regdir
brprom
prekid

PRINS
PRCOD

PRADR
PRINM
printr

5405 Viestruki uslovni skokovi se realizuju u onim koracima sekvence upravljakih signala po
5406koracima u kojima se pojavljuju iskazi tipa
5407 br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn).
5408Nain kodiranja signala viestrukih uslovnih skokova bitovima polja cc8...15 mikroinstrukcije,
5409koraci u sekvenci upravljakih signala po koracima u kojima se pojavljuju iskazi ovog tipa i
5410simbolike oznake signala viestrukih uslovnih skokova dati su u tabeli 28.
5411

Tabela 28 Signali viestrukih uslovnih skokova


cc815
16
17

stepi
step20
step50

signal
bradr
bropr

5412 Vrednost 00 polja cc8...15 i sve ostale vrednosti koje nisu dodeljene signalu bezuslovnog
5413skoka, signalima uslovnih skokova i signalima viestrukih uslovnih skokova odreuju da treba
5414prei na sledeu mikroinstrukciju.
5415 Iz tabela 26, 27 i 28 se vidi da su za kodiranje signala bezuslovnog skoka, uslovnih skokova
5416i viestrukih uslovnih skokova upravljake jedinice potrebni kodovi od 00h do 17h i da je za
5417polje cc dovoljna duina 5 bitova. Meutim, da bi mikroprogram predstavljen u
5418heksadecimalnom obliki bio pregledan, usvojeno je da duina polja cc bude 8 bitova.
5419 Bitovi 16 do 23 pripadaju polju ba1623 mikroinstrukcije i koriste se za specificiranje adrese
5420mikroinstrukcije na koju treba skoiti kod uslovnih i bezuslovnih skokova u sekvenci
5421upravljakih signala po koracima (tabela 24). Ovi bitovi sadre vrednost koju treba upisati u
5422mikroprogramski broja u sluaju bezuslovnih skokova i ukoliko signal uslova ima vrednost 1
5423u sluaju uslovnih skokova. Za kodiranje polja ba1623 usvojeno je 8 bitova, jer je za kompletan
5424mikroprogram dovoljan kapacitet mikroprogramske memorije od 256 rei.
5425 Mikroprogram se formira tako to se za svaki korak u sekvenci upravljakih signala po
5426koracima (tabela 24) formira jedna mikroinstrukcija.

172

171

5427 Kod formiranja mikroinstrukcije bitovi polja v0..7 se postavljaju ili na jednu od binarnih
5428vrednosti V01 do V54 ukoliko se neka od kombinacija upravljakih signala operacione jedinice
5429(tabela 24) javlja u datom koraku ili na binarnu vrednost nula V00 ukoliko se ni jedan od signala
5430ne javlja u datom koraku.
5431 U koracima u kojima se javlja neki od iskaza br stepA, br (if uslov then stepA) i br (case
5432(uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) se bitovi polja cc8...15 i ba1623
5433kodiraju u zavisnosti od toga koji se od ova tri iskaza javlja u datom koraku, dok se u
5434suprotnom sluaju postavljaju na nule.
5435 Za iskaz br stepA se za polje cc8...15 uzima kod dodeljen signalu bezuslovnog skoka koji
5436odreuje da se bezuslovno prelazi na korak step A i za polje ba1623 binarna vrednost A koju
5437treba upisati u mikroprogramski broja. Simbolika oznaka signala bezuslovnog skoka i nain
5438njegovog kodiranja poljem cc8...15 dati su u tabeli tabeli 26. Koraci stepi u kojima se bezuslovni
5439skokovi javljaju, koraci stepA na koje se bezuslovno skae i sama vrednost A, koju treba upisati
5440u mikroprogramski broja, za sve korake u sekvenci upravljakih signala po koracima u kojima
5441se javljaju iskazi ovog tipa, dati su u tabeli 29.
5442

Tabela 29 Koraci stepi, stepA i vrednosti A za bezuslovne skokove


stepi
step06
step0D
step18
step23
step24
step26
step28
step31
step35
step3B
step42
step47
step49
step4A
step51
step52
step53
step54
step55

stepA
stepD0
stepD0
step20
step50
step50
step3F
step3F
step3F
step3F
step3F
step50
step50
step50
step50
stepD0
step00
stepD0
stepD0
stepD0

A
D0
D0
20
50
50
3F
3F
3F
3F
3F
50
50
50
50
D0
00
D0
D0
D0

stepi
step56
step58
step59
step5E
step5F
step67
step68
step6E
step78
step7E
step89
step8A
step8B
step8C
step8D
step8E
step8F
step91
step93

stepA
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0

A
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0

stepi
step95
step97
step99
step9B
step9D
step9F
stepA1
stepA3
stepA7
stepA8
stepA9
stepB4
stepC5
stepE6
stepE8
stepEA
stepEC
stepEE
stepF9

stepA
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepD0
stepF0
stepF0
stepF0
stepF0
stepF0
step00

A
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
F0
F0
F0
F0
F0
00

5443 Za iskaz br (if uslov then stepA) se za polje cc8...15 uzima kod dodeljen signalu uslovnog
5444skoka koji odreuje signal uslov koji treba da ima vrednost 1 da bi se realizovao prelaz na
5445korak stepA i za polje ba1623 binarna vrednost A koju treba upisati u mikroprogramski broja u
5446sluaju da signal uslov ima vrednost 1. Simbolike oznake signala uslovnog skoka, nain
5447njihovog kodiranja poljem cc8...15 i signali uslov za sve iskaze ovog tipa koji se javljaju u
5448sekvenci upravljakih signala po koracima dati su u tabeli 27. Koraci stepi u kojima se uslovni
5449skokovi javljaju, signali uslova uslov, koraci stepA na koje se uslovno skae i vrednosti A koju
5450treba upisati u mikroprogramski broja u sluaju da signal uslov ima vrednost 1, za sve korake
5451u sekvenci upravljakih signala po koracima u kojima se javljaju iskazi ovog tipa dati su u
5452tabeli 30.
5453

Tabela 30 Koraci stepi, uslovi uslov, koraci stepA i vrednosti A za uslovne skokove
stepi
step00
step02
step03
step05

173

uslov
START

hack
fcCPU
gropr

stepA
step00
step02
step03
step07

A
00
02
03
07

stepi
step6B
step70
step71
step74

172

uslov
fcCPU

hack
fcCPU

hack

stepA
step6B
step70
step71
step74

A
6B
70
71
74

step07
step09
step0A
step0C
step0E
step0F
step11
step12
step13
step14
step16
step17
step21
step22
step25
step27
step2A
step2B
step2D
step2E
step30
step34
step3A
step3E
step3F
step40
step41
step44
step45
step48
step5A
step5C
step5D
step60
step62
step63
step65
step66
step6A

step50
step09
step
0A
fcCPU
step
gradr
0E
l2_brnch step50
l2_arlog step20
step11
hack
fcCPU step12
l3_jump step50
l3_arlog step20
step16
hack
fcCPU step17
step50
store
step24
LDW
step50
store
step50
store
step
hack
2A
fcCPU step2B
step2D
hack
fcCPU step2E
step50
store
step50
store
step50
store
step50
store
hack
step3F
fcCPU step40
LDW
step43
hack
step44
fcCPU step45
LDW
step4A
regdir
step5F
hack
step5C
fcCPU step5D
regdir
step68
hack
step62
fcCPU step63
hack
step65
fcCPU step66
step6A
hack
l1
hack

step75
step7C
step7D
step82
step83
step87
step88
stepA4
stepAD
stepAE
stepB2
stepB3
stepB6
stepB7
stepBA
stepBB
stepBE
stepBF
stepC2
stepC3
stepD0
stepD4
stepD5
stepD9
stepDA
stepDE
stepDF
stepE3
stepE4
stepE5
stepE7
stepE9
stepEB
stepED
stepF3
stepF4
stepF6
stepF7

50
09
0A
0E
50
20
11
12
50
20
16
17
50
24
50
50
2A
2B
2D
2E
50
50
50
50
3F
40
43
44
45
4A
5F
5C
5D
68
62
63
65
66
6A

5454

174

173

step75
step7C
fcCPU step7D
hack
step82
fcCPU step83
step87
hack
fcCPU step88
brprom stepD0
stepAD
hack
fcCPU stepAE
stepB2
hack
fcCPU stepB3
stepB6
hack
fcCPU stepB7
stepBA
hack
fcCPU stepBB
stepBE
hack
fcCPU stepBF
stepC2
hack
fcCPU stepC3
prekid
step00
stepD4
hack
fcCPU stepD5
stepD9
hack
fcCPU stepDA
stepDE
hack
fcCPU stepDF
stepE3
hack
fcCPU stepE4
PRINS stepE7
PRCOD stepE9
PRADR stepEB
PRINM stepED
printr
stepEF
stepF3
hack
fcCPU stepF4
stepF6
hack
fcCPU stepF7
fcCPU

hack

75
7C
7D
82
83
87
88
D0
AD
AE
B2
B3
B6
B7
BA
BB
BE
BF
C2
C3
00
D4
D5
D9
DA
DE
DF
E3
E4
E7
E9
EB
ED
EF
F3
F4
F6
F7

5455 Za iskaz br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) se za polje
5456cc8...15 uzima kod dodeljen signalu viestrukog uslovnog skoka koji odreuje signale uslov1, ...,
5457uslovn za koje treba izvriti proveru koji od njih ima vrednost 1 da bi se na osnovu toga
5458realizovao prelaz na jedan od koraka step A1, ..., stepAn i za polje ba1623 nule jer njegova
5459vrednost nije bitna. Upravljaka jedinica mora da bude tako realizovana da za svaki viestruki
5460uslovni skok generie vrednosti A1,..., An koje treba upisati u mikroprogramski broja. Ona
5461mora da obezbedi i selekciju jedne od vrednosti A1,..., An u zavisnosti od toga koji od signala
5462uslova uslov1, ..., uslovn ima vrednost 1. Simbolike oznake signala viestrukih uslovnih
5463skokova, nain njihovog kodiranja poljem cc8...15 i koraci u sekvenci upravljakih signala po
5464koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli 28. Vrednosti A1,..., An koje
5465treba upisati u mikroprogramski broja i signali uslova uslov1, ..., uslovn za koje treba izvriti
5466proveru koji od njih ima vrednost 1 da bi se na osnovu toga realizovao prelaz na jedan od
5467koraka stepA1, ..., stepAn za dva iskaza ovog tipa koji se javljaju u sekvenci upravljakih signala
5468po koracima dati su u tabelama 43 i 32.
5469
5470

Tabela 31 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step20
uslov
regdir
regind
memdir
memind
regindpom
bxpom
pcpom
imm

5471
5472

stepA
step21
step25
step27
step29
step32
step35
step39
step44

Tabela 32 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step50
uslov
NOP
HALT
INTD
INTE
TRPD
TRPE
LDB
LDW
STB
STW
POPB
POPW
PUSHB
PUSHW
LDIVTP
STIVTP
LDIMR
STIMR
LDSP
STSP
ADD

stepA
step51
step52
step53
step54
step55
step56
step57
step59
step5A
step60
step69
step6F
step79
step7F
step8A
step8B
step8C
step8D
step8E
step8F
step90

opr7...0
51
52
53
54
55
56
57
59
5A
60
69
6F
79
7F
8A
8B
8C
8D
8E
8F
90

uslov
SUB
INC
DEC
AND
OR
XOR
NOT
ASR
LSR
ROR
RORC
ASL
LSL
ROL
ROLC
BEQL
BNEQ
BNEG
BNNEG
BOVF
BNOVF

stepA
step92
step94
step96
step98
step9A
step9C
step9E
stepA0
stepA0
stepA0
stepA0
stepA2
stepA2
stepA2
stepA2
stepA4
stepA4
stepA4
stepA4
stepA4
stepA4

5473

175

adr70
21
25
27
29
32
36
3C
48

174

opr7...0
92
94
96
98
9A
9C
9E
A0
A0
A0
A0
A2
A2
A2
A2
A4
A4
A4
A4
A4
A4

uslov
BCAR
BNCAR
BGRT
BGRE
BLSS
BLSSE
BGRT
BGRE
BLSS
BLSSE
BGRTU
BGRTEU
BLSSU
BLSSEU
JMP
INT
JSR
RTI
RTS

stepA
stepA4
stepA4
stepA4
stepA4
stepA4
stepA4
stepA4
stepA4
stepA4
stepA4
stepA4
stepA4
stepA4
stepA4
stepA8
stepA9

stepAA
stepB5
stepBD

opr7...0
A4
A4
A4
A4
A4
A4
A4
A4
A4
A4
A4
A4
A4
A4
A8
A9
AA
B5
BD

5474 Tabela 33 Mikroprogram za upravljaku jedinicu mikroprogramske realizacije sa vertikalnim


kodiranjem signala i jednim tipom mikroinstrukcija
! itanje instrukcije !
0 0 0 0 0 2 0 0 !brnotSTART, maddr00!
0 1 0 1 0 0 0 0 !V01(PCout, ldMAR, incPC)!
0 2 0 0 0 3 0 2 !brhack, maddr02!
0 3 0 2 0 4 0 3 !V02(eMAR, rdCPU), brnotfcCPU, maddr03!
0 4 0 3 0 0 0 0 !V03(MDRout, ldIR0)!
0 5 0 0 0 5 0 7 !brnotgropr, maddr07!
0 6 0 4 0 1 D0 !V04(stPRCOD), bruncnd, maddrD0!
0 7 0 0 0 6 1 0 !brl1, maddr10!
0 8 0 1 0 0 0 0 !V01(PCout, ldMAR, incPC)!
0 9 0 0 0 3 0 9 !brhack, maddr09!
0 A 0 2 0 4 0A !V02(eMAR, rdCPU), brnotfcCPU, maddr0A!
0 B 0 3 0 0 0 0 !V03(MDRout, ldIR1, ldGPRAR)!
0 C 0 0 0 7 0 E !brnotgradr, maddr0E!
0 D 0 6 0 1 D0 !V06(stPRADR), bruncnd, maddrD0!
0 E 0 0 0 8 5 0 !brl2_brnch, maddr50!
0 F 0 0 0 9 2 0 !brl2_arlog, maddr20!
1 0 0 1 0 0 0 0 !V01(PCout, ldMAR, incPC)!
1 1 0 0 0 3 1 1 !brhack, maddr11!
1 2 0 2 0 4 1 2 !V02(eMAR, rdCPU), brnotfcCPU, maddr12!
1 3 0 7 0A 5 0 !V07(MDRout, ldIR2), brl3_jump, maddr50!
1 4 0 0 0 B 2 0 !brl3_arlog, maddr20!
1 5 0 1 0 0 0 0 !V01(PCout, ldMAR, incPC)!
1 6 0 0 0 3 1 6 !brhack, maddr16!
1 7 0 2 0 4 1 7 !V02(eMAR, rdCPU), brnotfcCPU, maddr17!
1 8 0 8 0 1 2 0 !V08(MDRout, ldIR3), bruncnd, maddr20!
! Formiranje adrese operanda !
2 0 0 0 1 6 0 0 !bradr!
! Registarsko direktno adresiranje !
2 1 0 0 0 C 5 0 !brstore, maddr50!
2 2 0 0 0D 2 4 !brLDW, maddr24!
2 3 0 9 0 1 5 0 !V09(GPRout, ldBB), bruncnd, maddr50!
2 4 0A 0 1 5 0 !V0A(GPRout, ldBW), bruncnd, maddr50!
! Registarsko indirektno adresiranje !
2 4 0 B 0 C 5 0 !V0B(GPRout, ldMAR), brstore, maddr50!
2 5 0 0 0 1 3 F !bruncnd, maddr3F!
! Memorijsko direktno adresiranje !
2 7 0 C 0 0 5 0 !V0C(IRDAout, ldMAR), brstore, maddr50!
2 8 0 0 0 1 3 F !bruncnd, maddr3F!
! Memorijsko indirektno adresiranje !
2 9 0 C 0 0 0 0 !V0C(IRDAout, ldMAR)!
2 A 0 0 0 3 2A !brhack, maddr2A!
2 B 0 2 0 4 2 B !V02(eMAR, rdCPU), brnotfcCPU, maddr2B!
2 C 0 E 0 0 0 0 !V0E(MDRout, ldDWH, incMAR)!
2 D 0 0 0 3 2D !brhack, maddr2D!
2 E 0 2 0 4 2 E !V02(eMAR, rdCPU), brnotfcCPU, maddr2E!
2 F 0 F 0 0 0 0 !V0F(MDRout, ldDWL)!
3 0 1 0 0 C 5 0 !V10(DWout, ldMAR), brstore, maddr50!
3 1 0 0 0 1 3 F !bruncnd, maddr3F!
! Registarsko indirektno sa pomerajem adresiranje!
3 2 1 1 0 0 0 0 !V11(GPRout, ldCW)!
3 3 1 2 0 0 0 0 !V12(IRDAout, ldCW1)!
3 4 1 3 0 C 5 0 !V13(ADDout, ldMAR), brstore, madr50!
3 5 0 0 0 1 3 F !bruncnd, maddr3F!

176

175

5476
! Bazno indeksno sa pomerajem adresiranje!
3 6 1 1 0 0 0 0 !V11(GPRout, ldCW)!
3 7 1 4 0 0 0 0 !V14(IRDAout, ldCW1, incGPRAR)!
3 8 5 0 0 0 0 0 !V50(ADDout, ldCW)!
3 9 1 5 0 0 0 0 !V15(GPRout, ldCW1)!
3 A 1 3 0 C 5 0 !V13(ADDout, ldMAR), brstore, madr50!
3 B 0 0 0 1 3 F !bruncnd, madr3F!
! PC relativno sa pomerajem adresiranje !
3 C 1 6 0 0 0 0 !V16(PCout, ldCW)!
3 D 1 2 0 0 0 0 !V12(IRDAout, ldCW1)!
3 E 1 3 0 C 5 0 !V13(ADDout, ldMAR), brstore, madr50!
! itanje operanda !
3 F 0 0 0 3 2A !brhack, maddr2A!
4 0 0 2 0 4 2 E !V02(eMAR, rdCPU), brnotfcCPU, maddr2E!
4 1 0 0 0D 4 3 !brLDW, maddr43!
4 2 1 7 0 0 0 0 !V17(MDRout, ldBB), bruncnd, maddr50!
4 3 0 E 0 0 0 0 !V0E(MDRout, ldDWH, incMAR)!
4 4 0 0 0 3 4 4 !brhack, maddr44!
4 5 0 2 0 4 2 F !V02(eMAR, rdCPU), brnotfcCPU, maddr2E!
4 6 0 F 0 0 0 0 !V0F(MDRout, ldDWHL)!
4 7 1 8 0 1 5 0 !V18(DWout, ldBW), bruncnd, maddr50!
! Neposredno adresiranje !
4 8 0 0 0D 4A !brLDW, maddr4A!
4 9 4 F 0 1 5 0 !V4F(IRJAout, ldBB), bruncnd, maddr50!
4 A 1 9 0 1 5 0 !V19(IRDAout, ldBW), bruncnd, maddr50!
! Izvravanje operacije !
5 0 0 0 1 7 0 0 !bropr !
! NOP !
5 1 0 0 0 1 D0 !bruncnd, maddrD0!
! HALT !
5 2 1A 0 1 0 0 !V1A(clSTART), bruncnd, maddr00!
! INTD !
5 3 1 B 0 1 D0 !V1B(clPSWI), bruncnd, maddrD0!
! INTE !
5 4 1 C 0 1 D0 !V1C(stPSWI), bruncnd, maddrD0!
! TRPD !
5 5 1D 0 1 D0 !V1D(clPSWT), bruncnd, maddrD0!
! TRPE !
5 6 1 E 0 1 D0 !V1E(stPSWT), bruncnd, maddrD0!
! LDB !
5 7 1 F 0 0 0 0 !V1F(BBout, ldAB)!
5 8 2 0 0 1 D0 !V20(ldN, ldZ, ldC, ldV), bruncnd, maddrD0!
! LDW !
5 9 0 0 0 1 D0 !V21(BWout, ldAW), bruncnd, maddrD0!
! STB !
5 A 0 0 0 E 5 F !brregdir, maddr5F!
5 B 2 2 0 0 0 0 !V22(ABout, mxMDR, ldMDR)!
5 C 0 0 0 3 5 C !brhack, maddr5C!
5 D 2 3 0 4 5D !V23(eMAR, eMDR, wrCPU), brnotfcCPU, maddr5D!
5 E 0 0 0 1 D0 !bruncnd, maddrD0!
5 F 2 4 0 1 D0 !V24(ABout, wrGPR), bruncnd, maddrD0!
! STW !
6 0 0 0 0 E 6 8 !brregdir, maddr68!
6 1 2 5 0 0 0 0 !V25(AWHout, mxMDR, ldMDR)!
6 2 0 0 0 3 6 2 !brhack, maddr62!
6 3 2 3 0 4 6 3 !V23(eMAR, eMDR, wrCPU), brnotfcCPU, maddr63!
6 4 0 3 8 0 0 0 !V53(AWout, mxMDR, ldMDR, incMAR)!
6 5 0 0 0 3 6 5 !brhack, maddr65!
6 6 2 3 0 4 6 6 !V23(eMAR, eMDR, wrCPU), brnotfcCPU, maddr66!
6 7 0 0 0 1 D0 !bruncnd, maddrD0!
6 8 2 7 0 1 D0 !V27(AWout, wrGPR), bruncnd, maddrD0!

177

176

5477
! POPB !
69 50 00
6A 0 0 0 3
6B 0 2 04
6C 1 7 0 0
6D 1 F 0 0
6E 00 00
! POPW !
6F 29 00
70 00 03
71 02 04
72 0F 00
73 29 00
74 00 03
75 02 04
7 6 0D 0 0
77 18 00
78 21 00
! PUSHB !
7 9 2A 0 0
7A 2 8 0 0
7B 2 2 00
7C 0 0 0 3
7D 2 3 0 4
7E 00 01
! PUSHW !
7 F 2A 0 0
80 28 00
81 22 00
82 00 03
83 23 04
8 4 2A 0 0
85 28 00
86 26 00
87 00 03
88 23 04
89 00 01
! LDIVTP !
8A 2B 0 1
! STIVTP !
8B 2C 0 1
! LDIMR !
8 C 2D 0 1
! STIMR !
8D 2E 0 1
! LDSP !
8E 2F 01
! STSP !
8F 30 01
! ADD !
90 31 00
91 52 00
! SUB !
92 32 00
93 52 00
! INC !
94 33 00
95 52 00
! DEC !
96 34 00
97 52 00

178

00
6A
6B
00
00
D0

!mxMAR2, mxMAR0, ldMAR, decSP!


!brhack, maddr6A!
!V02(eMAR, rdCPU), brnotfcCPU, maddr6B!
!V17(MDRout, ldBB)!
!V1F(BBout, ldAB)!
!V20(ldN, ldZ, ldC, ldV), bruncnd, maddrD0!

00
6A
6B
00
00
74
75
00
00
D0

!V29(SPout, ldMAR, decSP)!


!brhack, maddr6A!
!V02(eMAR, rdCPU), brnotfcCPU, maddr6B!
!V0F(MDRout,ldDWL)!
!V29(SPout, ldMAR, decSP)!
!brhack, maddr74!
!V02(eMAR, rdCPU), brnotfcCPU, maddr75!
!V0D(MDRout,ldDWH)!
!V18(MDRout, ldBW)!
!V21(BWout, ldAW), bruncnd, maddrD0!

00
00
00
62
63
D0

!V2A(incSP)!
!V28(SPout, ldMAR)!
!V22(ABout, mxMDR, ldMDR)!
!brhack, maddr62!
!V23(eMAR, eMDR, wrCPU), brnotfcCPU, maddr7D!
!bruncnd, maddrD0!

00
00
00
82
83
00
00
00
87
88
D0

!V2A(incSP)!
!V28(SPout, ldMAR)!
!V25(AWHout, mxMDR, ldMDR)!
!brhack, maddr82!
!V23(eMAR, eMDR, wrCPU), brnotfcCPU, maddr83!
!V2A(incSP)!
!V28(SPout, ldMAR)!
!V26(AWHout, mxMDR, ldMDR)!
!brhack, maddr87!
!V23(eMAR, eMDR, wrCPU), brnotfcCPU, maddr88!
!bruncnd, maddrD0!

D0

!V2B(IVTPout, ldAW), bruncnd,maddrD0!

D0

!V2C(AWout, ldIVTP), bruncnd, maddrD0!

D0

!V2D(IMRout, ldAW), bruncnd, maddrD0!

D0

!V2E(AWout, ldIMR), bruncnd, maddrD0!

D0

!V2F(SPout, ldAW), bruncnd, maddrD0!

D0

!V30(AWout, ldSP), bruncnd, maddrD0!

00
D0

!V31(ALUout, add, ldAB, ldC, ldV)!


!V52(ldN, ldZ), bruncnd, maddrD0!

00
D0

!V32(ALUout, sub, ldAB), ldC, ldV!


!V52(ldN, ldZ), bruncnd, maddrD0!

00
D0

!V33(ALUout, inc, ldAB), ldC, ldV!


!V52(ldN, ldZ), bruncnd, maddrD0!

00
D0

!V34(ALUout, dec, ldAB), ldC, ldV!


!V52(ldN, ldZ), bruncnd, maddrD0!

177

5478
! AND !
9 8 3 5 0 0 0 0 !V35(ALUout, and), ldAB!
9 9 2 0 0 0 D0 !V20(ldN, ldZ, ldC, ldV), bruncnd, maddrD0!
! OR !
9 A 3 6 0 0 0 0 !V36(or, ldAB)!
9 B 2 0 0 0 D0 !V20(ldN, ldZ, ldC, ldV), bruncnd, maddrD0!
! XOR !
9 C 3 7 0 0 0 0 !V37(xor, ldAB)!
9 D 2 0 0 0 D0 !V20(ldN, ldZ, ldC, ldV), bruncnd, maddrD0!
! NOT !
9 E 3 8 0 0 0 0 !V38(not, ldAB!
9 F 2 0 0 0 D0 !V20(ldN, ldZ, ldC, ldV), bruncnd, maddrD0!
! ASR, LSR, ROR i ROLC !
A 0 3 9 0 0 0 0 !V39(shr, ldC)!
A 1 5 4 0 0 D0 !V54(ldN, ldZ, ldV), bruncnd, maddrD0!
! ASL, LSL, ROL i ROLC !
A 2 5 1 0 0 0 0 !V51(shl, ldC)!
A 3 5 4 0 0 D0 !V54(ldN, ldZ, ldV), bruncnd, maddrD0!
! BEQL,, BLSSEU !
A 4 3 B 0 0 D0 !V3B(IRBRout), brnotbrpom, maddrD0!
A 5 1 6 0 0 0 0 !V16(PCout, ldCW)!
A 6 0 0 0 0 0 2 !V3C(IRPOMout, ldCW1)!
A 7 0 0 0 1 D0 !V3D(ADDout, ldPC), bruncnd, maddrD0!
! JMP !
A 8 3 E 0 1 D0 ! V3E(IRJAout, ldPC), bruncnd, maddrD0!
! INT !
A 9 3 F 0 1 D0 !V3F(stPRINS), bruncnd, maddrD0!
! JSR !
AA 2A 0 0 0 0 !V2A(incSP)!
AB 2 8 8 0 0 0 !V28(SPout, ldMAR)!
AC 4 0 8 0 0 0 !V40(PCHout, mxMDR, ldMDR)!
AD 0 0 0 3 AD !brhack, maddrAD!
AE 2 3 0 4 AE !V23(eMAR, eMDR, wrCPU), brnotfcCPU, maddrAE!
AF 2A 0 0 0 0 !V2A(incSP)!
B 0 2 8 8 0 0 0 !V28(SPout, ldMAR)!
B 1 4 0 8 0 0 0 !V41(PCout, mxMDR, ldMDR)!
B 2 0 0 0 3 B 2 !brhack, maddrB2!
B 3 2 3 0 4 B 3 !V23(eMAR, eMDR, wrCPU), brnotfcCPU, maddrB3!
B 4 3 E 0 6 0 0 !V3E(IRJAout, ldPC), bruncnd, maddrD0!
! RTI !
B 5 2 9 0 0 0 0 !V29(SPout, ldMAR, decSP)!
B 6 0 0 0 3 B 6 !brhack, maddrB6!
B 7 0 2 0 4 B 7 !V02(eMAR, rdCPU), brnotfcCPU, maddrB7!
B 8 0 0 0 0 0 0 !V42(MDRout, ldPSWL)!
B 9 2 9 0 0 0 0 !V29(SPout, ldMAR, decSP)!
BA 0 0 0 3 BA !brhack, maddrBA!
BB 0 2 0 4 BB !V02(eMAR, rdCPU), brnotfcCPU, maddrBB!
BC 4 3 0 0 0 0 !V43(MDRout, ldPSWH)!
! RTS !
BD 2 9 0 0 0 0 !V29(SPout, ldMAR, decSP)!
BE 0 0 0 3 BE !brhack, maddrBE!
B F 0 2 0 4 BF !V02(eMAR, rdCPU), brnotfcCPU, maddrBF!
C 0 0 F 0 0 0 0 !V0F(MDRout, ldDWL)!
C 1 2 9 0 0 0 F !V29(SPout, ldMAR, decSP)!
C 2 0 0 0 3 BA !brhack, maddrBA!
C 3 0 2 0 4 BB !V02(eMAR, rdCPU), brnotfcCPU, maddrBB!
C 4 4 3 0 0 0 0 !V0D(MDRout, ldDWH)!
C 5 4 4 0 0 D0 !V44(DWout, ldPC), bruncnd, maddrD0!

179

178

5479
! Opsluivanje prekida !
D 0 0 0 1 0 0 0 !brnotprekid, maddr00!
! uvanje konteksta procesora !
D 1 2A 0 0 0 0 !V2A(incSP)!
D 2 2 8 8 0 0 0 !V28(SPout, ldMAR)!
D 3 4 0 8 0 0 0 !V40(PCHout, mxMDR, ldMDR)!
D 4 0 0 0 3 D4 !brhack, maddrD4!
D 5 2 3 0 4 D5 !V23(eMAR, eMDR, wrCPU), brnotfcCPU, maddrD5!
D 6 2A 0 0 0 0 !V2A(incSP)!
D 7 2 8 8 0 0 0 !V28(SPout, ldMAR)!
D 8 4 0 8 0 0 0 !V41(PCout, mxMDR, ldMDR)!
D 9 0 0 0 3 D9 !brhack, maddrD9!
DA 2 3 0 4 DA !V23(eMAR, eMDR, wrCPU), brnotfcCPU, maddrDA!
DB 2A 0 0 0 0 !V2A(incSP)!
DC 2 8 8 0 0 0 !V28(SPout, ldMAR)!
DD 4 5 8 0 0 0 !V45(PSWHout, mxMDR, ldMDR)!
DE 0 0 0 3 DE !brhack, maddrDE!
DF 2 3 0 4 DF !V23(eMAR, eMDR, wrCPU), brnotfcCPU, maddrDF!
E 0 2A 0 0 0 0 !V2A(incSP)!
E 1 2 8 8 0 0 0 !V28(SPout, ldMAR)!
E 2 4 0 8 0 0 0 !V46(PSWLout, mxMDR, ldMDR)!
E 3 0 0 0 3 E 3 !brhack, maddrE3!
E 4 2 3 0 4 E 4 !V23(eMAR, eMDR, wrCPU), brnotfcCPU, maddrE4!
! ! Skok na prekidnu rutinu !
! Utvrivanje broja ulaza !
! Provera da li postoji zahtev za prekid zbog izvravanja instrukcije prekida INT!
E 5 0 0 1 1 E 7 !brnotPRINS, maddrE7!
E 6 4 7 0 1 F 0 !V47(IRPOMout, ldBR, clPRINS), bruncnd, maddrE0!
! Provera da li postoji zahtev za prekid zbog greke u kodu operacije!
E 7 0 0 1 2 E 9 !brnotPRCOD, maddrE9!
E 8 4 9 0 1 F 0 !V49(UINTout, ldBR, clPRCOD), bruncnd, maddrE0!
! Provera da li postoji zahtev za prekid zbog greke u adresiranju !
E 9 0 0 1 3 EB !brnotPRCOD, maddrEB!
EA 4A 0 1 F 0 !V4A(UINTout, ldBR, clPRADR), bruncnd, maddrE0!
! Provera da li postoji spoljanji nemaskirajui zahtev za prekid !
E B 0 0 1 4 E 7 !brnotPRINM, maddrED!
EC 4 B 0 1 F 0 !V4B(UINTout, ldBR, clPRINM), bruncnd, maddrE0!
! Provera da li postoji spoljanji maskirajui zahtev za prekid !
ED 0 0 1 5 E F !brnotprintr, maddrEF!
E E 4 C 0 1 F 0 !V4C(UEXTout, ldBR, clPRINM, ldL), bruncnd, maddrE0!
! Prekid posle svake instrukcije !
E F 4 8 0 0 0 0 !V48(UINTout, ldBR)
! Utvrivanje adrese prekidne rutine !
F 0 4D 0 0 0 0 !V4D(IVTPout, ldCW)
F 1 4 F 0 0 0 0 !V4F(IVTDSPout, ldCW1)
F 2 4 0 0 0 0 0 !V13(ADDout, ldMAR)!
F 3 0 0 0 3 F 3 !brhack, maddrF3!
F 4 0 2 0 4 F 4 !V02(eMAR, rdCPU), brnotfcCPU, maddrF4!
F 5 0 E 0 0 0 0 !V0E(MDRout, ldDWH, incMAR)!
F 6 0 0 0 3 F 6 !brhack, maddrF6!
F 7 0 2 0 4 F 7 !V02(eMAR, rdCPU), brnotfcCPU, maddrF7!
F 8 0 F 0 0 0 0 !V0F(MDRout, ldDWL)!
F 9 3A 0 1 0 0 !V3A(DWout, ldPC, clPSWI, clPSWT), bruncnd, maddr00!

5480 Upravljaka jedinica mikroprogramske realizacije sa vertikalnim kodiranjem signala i jednim


5481tipom mikroinstrukcija se sastoji od sledeih blokova: blok generisanje nove vrednosti
5482mikroprogramskog brojaa, blok mikroprogramski broja, blok mikroprogramska memorija,
5483blok prihvatni registar mikroinstrukcije i blok generisanje upravljakih signala (slika 100).
5484Struktura i opis blokova upravljake jedinice se daju u daljem tekstu.
5485

180

179


imm

RTS

regdir
regind

s ig n a li lo g i k ih u s lo v a

NOP
HALT

s ig n a li lo g i k ih u s lo v a

...
51 52

K M O PR

B D

21 25


o p r 7 ...0
8
3

8
2

g e n e r is a n je
nove
v r e d n o s ti
m ik r o p r o g r a m s k o g
b r o ja a

...

K M A D R

48


a d r 7 ...0

CW

1 6 ...2 3

8
1

M P

0 S

b ra d r
b ro p r

8
CLK

m PC

IN C

m PC

b rad r
b ro p r
b ru n cn d
b rcn d

ld
in c

LD

m PC

C LK

m ik r o p r o g r a m s k i
b r o ja

7 ...0

m ik r o p r o g r a m s k a
m e m o r ija

m M EM

W R

24

g e n e ris a n je
u p ra v lja k ih
s ig n a la
u p ra v lja k e
je d in ic e

g ro p r
l1

N O P
b rp o m
p re k id

brcnd

bruncnd

blok intr


signali logikih uslova

d ir re g

STA RT
hack
fc C P U

...

blok exec

23

...

blok addr

p r ih v a tn i
r e g is ta r
m ik r o in s tr u k c ije

...

...

blok fetch

CW

...

blok bus

CW
1 6
8

LD

g e n e r is a n je
u p ra v lja k ih
s ig n a la
b lo k o v a
o p e ra c io n e
je d in ic e

5486
5487

CW

23

bropr

15

...

bradr

C W 8 C W
8

16

...

15

...

...

CLK

...

CW
0
8

signali logikih uslova

...

CW

...

...

CLK

CW

g e n e r is a n je
u p r a v lja k ih
s ig n a la

Slika 100 Struktura upravljake jedinice

5488 Blok generisanje nove vrednosti mikroprogramskog brojaa se sastoji od kombinacionih


5489mrea KMOPR i KMADR sa multiplekserom MP i razreda CW16...23 prihvatnog registra
5490mikroinstrukcije CW0...23 i slui za generisanje i selekciju vrednosti koju treba upisati u
5491mikroprogramski broja mPC7...0. Potreba za ovim se javlja kada treba odstupiti od
5492sekvencijalnog izvravanja mikroprograma. Vrednosti koje treba upisati u mikroprogramski
5493broja generiu se na tri naina i to pomou:

181

180

5494
5495 kombinacione mree KMOPR koja formira signale opr7...0,
5496 kombinacione mree KMADR koja formira signale adr7...0 i
5497 razreda CW16...23 prihvatnog registra mikroinstrukcije CW0...23.
5498Selekcija jedne od tri grupe signala koji daju novu vrednost mikroprogramskog brojaa mPC
5499obezbeuje se signalima bropr i bradr i to:
5500 signali opr7...0 ako signal bropr ima vrednost 1,
5501 signali adr7...0 ako signal bradr ima vrednost 1 i
5502 signali CW16...23 ako signali bropr i bradr imaju vrednost 0.
5503 Kombinacionom mreom KMOPR generiu se vrednosti (tabela 32) za realizaciju
5504viestrukog uslovnog skoka u koraku step 50 sekvence upravljakih signala po koracima. U
5505zavisnosti od toga koji od signala NOP, , RTS ima vrednost 1 zavisi koja e od vrednosti iz
5506tabele 32 da se pojavi tada na linijama op7...0. S obzirom da se na adresi 50 mikroprograma
5507nalazi mikroinstrukcija sa tako kodiranim poljem cc8...15 da njeno izvravanje daje vrednost 1
5508signala viestrukog uslovnog skoka bropr, vrednost na linijama opr7...0 prolazi tada kroz
5509multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojaa mPC7...0.
5510 Kombinacionom mreom KMADR generiu se vrednosti (tabela 43) za realizaciju
5511viestrukog uslovnog skoka u koraku step 20 sekvence upravljakih signala po koracima. U
5512zavisnosti od toga koji od signala regdir,..., imm ima vrednost 1 zavisi koja e od vrednosti iz
5513tabele 53 da se pojavi tada na linijama adr7...0. S obzirom da se na adresi madr20 mikroprograma
5514nalazi mikroinstrukcija sa tako kodiranim poljem cc8...15 da njeno izvravanje daje vrednost 1
5515signala viestrukog uslovnog skoka bradr, vrednost na linijama adr7...0 prolazi kroz
5516multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojaa mPC7...0.
5517 Razredi CW16...23 prihvatnog registra mikroinstrukcije CW0...23 sadre vrednost za upis u
5518mikroprogramski broja mPC7...0 za bezuslovne skokove (tabela 29) i uslovne skokove (tabela
551930) u sekvenci upravljakih signala po koracima. Signali viestrukih uslovnin skokova bropr i
5520bradr imaju vrednost 1 samo prilikom izvravanja mikroinstrukcija na adresama 20 i 50
5521mikroprograma, respektivno, a u svim ostalim situacijama imaju vrednost 0. S obzirom da
5522nijedan od ova dva signala nema vrednost 1 prilikom izvravanja mikroinstrukcija kojima se
5523realizuju bezuslovni ili uslovni skokovi u mikroprogramu, vrednost odreena razredima
5524CW16...23 prolazi kroz multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojaa
5525mPC7...0.
5526 Blok mikroprogramski broja sadri mikroprogramski broja mPC7...0. Mikroprogramski
5527broja mPC7...0 svojom trenutnom vrednou odreuje adresu mikroprogramske memorije
5528mMEM sa koje treba oitati mikroinstrukciju. Mikroprogramski broja mPC 7...0 moe da radi u
5529sledeim reimima:
5530 reim inkrementiranja,
5531 reim skoka i
5532 reim ekanja.
5533 U reimu inkrementiranja pri pojavi signala takta CLKmPC vri se uveavanje sadraja
5534mikroprogramskog brojaa mPC7...0 za jedan ime se obezbeuje sekvencijalno oitavanje
5535mikroinstrukcija iz mikroprogramske memorije. Ovaj reim rada se obezbeuje vrednou 1
5536signala inc. Signal inc ima vrednost 1 ako signali bropr, bradr i branch imaju vrednost 0.
5537Signali bropr, bradr i branch uvek imaju vrednost 0 sem kada treba obezbediti reim skoka.
5538 U reimu skoka pri pojavi signala takta CLKmPC vri se upis nove vrednosti u
5539mikroprogramski broja mPC7...0 ime se obezbeuje odstupanje od sekvencijalnog oitavanja
5540mikroinstrukcija iz mikroprogramske memorije. Ovaj reim rada se obezbeuje vrednou 1
182

181

5541signala ld. Signal ld ima vrednost 1 ako jedan od signala bropr, bradr i branch ima vrednost
55421. Signali bropr, bradr i branch uvek imaju vrednost 0 sem u sluaju izvravanja
5543mikroinstrukcije koje ima takvo polje cc8...15 da je specificiran neki viestruki uslovni skok,
5544bezuslovni skok ili neki od uslovnih skokova i uslov skoka je ispunjen.
5545 U reimu ekanja pri pojavi signala takta vri se upis tekue vrednosti u mikroprogramski
5546broja mPC7...0 ime se obezbeuje da se ne menja vrednost mikroprogramskog brojaa
5547mPC7...0. Ovaj reim rada se obezbeuje vrednou 1 signala ld i to kada je:
5548 ciklus procesora na magistrali u toku ili
5549 magistrala preputena ulazno/izlaznom ureaju sa kontrolerom za direktan pristup
5550memoriji, a procesor je doao u korak izvravanja instrukcije u kome mu je magistrala
5551potrebna.
5552 Mikroprogramski broja mPC7...0 je dimenzionisan prema veliini mikroprograma. S obzirom
5553da se mikroprogram svih faza izvravanja instrukcija nalazi u opsegu od adrese 00 do adrese
5554E4, usvojena je duina mikroprogramskog brojaa mPC7...0 od 8 bita.
5555 Blok mikroprogramski memorija sadri mikroprogramsku memoriju mMEM, koja slui za
5556smetanje mikroprograma. irina rei mikroprogramske memorije je odreena duinom
5557mikroinstrukcija i iznosi 24 bita, a kapacitet veliinom mikroprograma formiranog na osnovu
5558sekvence upravljakih signala po koracima (tabela 24) i iznosi 256 lokacija. Adresiranje
5559mikroprogramske memorije se realizuje sadrajem mikroprogramskog brojaa mPC7...0.
5560 Blok prihvatni registar mikroinstrukcije sadri prihvatni registar mikroinstrukcije CW0...23.
5561Prihvatni registar mikroinstrukcije CW0...23 slui za prihvatanje mikroinstrukcije oitane iz
5562mikroprogramske memorije mMEM. Na osnovu sadraja ovog registra generiu se upravljaki
5563signali. Razredi CW0...7 i CW8...15 se koriste u bloku generisanje upravljakih signala za
5564generisanje upravljakih signala operacione jedinice i upravljake jedinice, respektivno, dok se
5565razredi CW16...23 koriste u bloku generisanje nove vrednosti mikroprogramskog brojaa kao
5566adresa skoka u mikrorogramu u sluaju bezuslovnih i uslovnih skokova. Upis u ovaj registar se
5567realizuje signalom takta CLKCW. Signal takta CLKCW kasni za signalom takta CLKmPC
5568onoliko koliko je potrebno da se proita sadraj sa odgovarajue adrese mikroprogramske
5569memorije.
5570 Blok generisanje upravljakih signala sadri kombinacione mree koje na osnovu sadraja
5571razreda CW0...7 prihvatnog registra mikroinstrukcije generiu upravljake signale operacione
5572jedinice oper i na osnovu sadraja razreda CW8...15 prihvatnog registra mikroinstrukcije i signala
5573logikih uslova START, hack, ..., prekid koji dolaze iz operacione jedinice generiu
5574upravljake signale upravljake jedinice uprav.
5575 Upravljaki signala operacione jedinice se generiu tako to se najpre generiu signali
5576kombinacija upravljakih signala V00 do V54 (tabela 25) i to:
5577 V00 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5578 V01 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5579 V02 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5580 V03 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5581 V04 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5582 V05 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5583 V06 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5584 V07 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5585 V08 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5586 V09 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

183

182

5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629

184

V0 A CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V0 B CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V0C CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V0 D CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V0 E CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V0 F CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V10 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V11 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V12 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V13 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V14 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V15 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V16 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V17 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V18 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V19 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V1 A CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V1B CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V1C CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V1 D CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V1E CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V1F CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V20 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V21 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V22 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V23 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V24 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V25 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V26 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V27 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V28 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V29 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V2 A CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V2 B CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V2C CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V2 D CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V2 E CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V2 F CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V30 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V31 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V32 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7


V33 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

V34 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

183

5630 V35 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5631 V36 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5632 V37 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5633 V38 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5634 V39 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5635 V3 A CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5636 V3 B CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5637 V3C CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5638 V3 D CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5639 V3E CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5640 V3 F CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5641 V40 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5642 V41 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5643 V42 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5644 V43 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5645 V44 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5646 V45 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5647 V46 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5648 V47 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5649 V48 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5650 V49 CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5651 V4 A CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5652 V4 B CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5653 V4C CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5654 V4 D CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5655 V4 E CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5656 V4F CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
5657 V50 CW0 CW1 CW2 CW5 CW4 CW5 CW6 CW7
5658 V51 CW0 CW1 CW2 CW5 CW4 CW5 CW6 CW7
5659 V52 CW0 CW1 CW2 CW5 CW4 CW5 CW6 CW7
5660 V53 CW0 CW1 CW2 CW5 CW4 CW5 CW6 CW7
5661 V54 CW0 CW1 CW2 CW5 CW4 CW5 CW6 CW7
5662 Potom, se za svaki upravljaki signal operacione jedinice posmatra u kojim kombinacijama
5663upravljakih signala V00 do V54 se signal pojavljuje (tabela 25), pa se dati signal dobija kao
5664njihova unija.
5665

Upravljaki signali blokova operacione jedinice oper se daju posebno za svaki blok.

5666
5667
5668
5669
5670
5671
5672

Upravljaki signali bloka bus se generiu na sledei nain:


rdCPU = V02
wrCPU = V23
ldMDR = V22+ V25+ V26+ V40+ V41+ V45+ V46+ V53
mxMDR = V22+V25+ V26+ V40+ V41+ V45+ V46+ V53
MDRout = V03+ V05+ V07+ V08+ V0D+ V0E+ V0F+ V17+ V42+ V43
eMDR = V23

185

184

5673
5674
5675
5676
5677
5678

5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691

Upravljaki signali bloka fetch se generiu na sledei nain:


ldPC = V3A +V3D + V3E + V44
incPC = V01
PCHout = V40
PCout = V01 + V16 + V41
ldIR0 = V03
ldIR1 = V05
ldIR2 = V07
ldIR3 = V08
IRPOMout = V3C + V47
IRJAout = V3E + V4F
IRDAout = V0C + V12 + V14 +V19
IRBRout = V3B

5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704

Upravljaki signali bloka addr se generiu na sledei nain:


wrGPR = V24 + V27
GPRout = V09 + V0A + V0B + V11 + V15
ldGPRAR = V05
incGPRAR = V14
ldSP = V30
SPout = V28 + V29 + V2F
incSP = V2A
decSP = V29
ldCW = V11 + V16 + V4D + V50
incSP = V2A
ldCW1 = V12 + V14 + V15 + V3C + V4E
ADDout = V13 + V3D + V50

5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715

Upravljaki signali bloka exec se generiu na sledei nain:


add = V31
sub = V32
inc = V33
dec = V34
and = V35
or = V36
xor = V37
not = V38
ALUout = V31 + V32 + V33 + V34 + V35 + V36 + V37 + V38
ldAB = V1F + V31 + V32 + V33 + V34 + V35 + V36 + V37 + V38

186

ldMAR = V01+ V0B+ V0C + V10+ V13+ V28+V29


incMAR = V0E+ V53
eMAR = V02 + V23
ldDWL = V0F
ldDWH = V0D + V0E
DWout = V10 + V18 + V3A + V44

185

5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739

5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756

Upravljaki signali bloka intr se generiu na sledei nain:


ldIMR = V2E
IMRout = V2D
ldBR = V47 + V48 + V49 + V4A + V4B + V4C
IVTDSPout = V4E
ldIVTP = V2C
IVTPout = V2B + V4D
UINTout = V48 + V49 + V4A + V4B
UEXTout = V4C
stPRCOD = V04
stPRADR = V06
stPRINS = V3F
clPRCOD = V49
clPRADR = V4A
clPRINS = V47
clPRINM = V4B
clINTR = V4C

5757
5758

Upravljaki signali upravljake jedinice uprav se generiu na sledei nain:


bradr = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15

187

about = V22 + V24


shr = V39
shl = V51
ldBB = V09 + V17 + V4F
BBout = V1F
ldAW = V21 + V2B + V2D + V2F
AWout = V26 + V27 + V2C + V2E + V30 + V53
AWHout = V25
ldBW = V0A + V18 + V19
BWout = V21
ldPSWH = V43
ldPSWL = V42
ldN = V20 + V52 + V54
ldZ = V20 + V52 + V54
ldC = V20 + V31 + V32 + V33 + V34 + V39 + V51
ldV = V20 + V31 + V32 + V33 + V34 + V54
ldL = V4C
stPSWI = V1C
clPSWI = V1B + V3A
stPSWT = V1E
clPSWT = V1D + V3A
PSWHout = V45
PSWLout = V46
clSTART = V1A

186

5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788

bropr = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15


bruncnd = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brcnd = brnotstart START + brhack hack +
brnotfcCPU fcCPU + brnotgropr gropr + brI1 I1+
brnotgradr gradr + brl2_brnch l2_branch +
brl2_arlog l2_arlog + brl3_jump l3_jump + brl3_arlog l3_arlog +
brstore store + brLDW LDW + brregdir regdir +
brnotbrpom brpom + prekid prekid + brnotPRINS PRINS +
brnotPRCOD PRCOD + brnotPRADR PRADR +
brnotPRINM PRINM + brnotprintr printr
brnotstart = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brhack = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brnotfcCPU = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brnotgropr = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brl1 = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brnotgradr = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brl2_brnch = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brl2_arlog = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brl3_jump = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brl3_arlog = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brstore = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brLDW = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brregdir = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brnotbrpom = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brnotprekid = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brnotPRINS = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brnotPRCOD = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brnotPRADR = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brnotPRINM = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15
brnotprintr = CW8 CW9 CW10 CW11 CW12 CW13 CW14 CW15

5789 Pri generisanju signala branch koriste se sledei signali logikih uslova koji dolaze iz
5790blokova operacione jedinice oper i to:
5791 START blok exec,
5792 hack blok bus,
5793 fcCPU blok bus,
5794 gropr blok fetch,
5795 I1 blok fetch,
5796 gradr blok fetch,
5797 l2_brnch blok fetch,
5798 l2_arlog blok fetch,
5799 l3_jump blok fetch,
5800 l3_arlog blok fetch,
5801 store blok fetch,
5802 LDW blok fetch,
5803 regdir blok fetch,
188

187

5804
5805
5806
5807
5808
5809
5810

brpom blok exec,


prekid blok intr
PRINS blok intr,
PRCOD blok intr,
PRADR blok intr,
PRINM blok intr i
printr blok intr.

58114.3 PROCESOR DMMM

A B U S

1 5 ...0

D B U S

7 ...0

RD B U S
W RB U S
FCB U S

h req
hack

bus

fe tc h
addr

in tr

in m
FAU LT

exec
IB U S 1

in tr7
in tr6
in tr5
in tr4
in tr3
in tr2
in tr1


U/I

BUS

5812 U ovoj glavi se daje organizacija procesora CPU koji se sastoji iz operacione jedinice oper i
5813upravljake jedinice uprav (slika 101).

1 5 ...0

oper

IB U S 2

1 5 ...0

u p ra v

5814
5815

CPU

Slika 101 Organizacija procesora CPU

5816 Operaciona jedinica oper je kompozicija kombinacionih i sekvencijalnih prekidakih mrea


5817koje slue za pamenje binarnih rei, izvravanje mikrooperacija i generisanje signala logikih
5818uslova upravljake jedinice uprav. Realizacija operacione jedinice je sa dve interne magistrale.
5819Upravljaka jedinica uprav je kompozicija kombinacionih i sekvencijalnih prekidakih mrea
5820koje slue za generisanje upravljakih signala operacione jedinice oper na osnovu algoritama
5821operacija i signala logikih uslova. Realizacije upravljake jedinice je mikroprogramska sa
5822jednim tipom meovitih mikroinstrukcija.

189

188

5823

Struktura i opis operacione i upravljake jedinice se daju u daljem tekstu.

58244.3.1 Operaciona jedinica


5825 Operaciona jedinica oper (slika 101) se sastoji od sledeih blokova:
5826 blok bus,
5827 blok fetch,
5828 blok addr,
5829 blok exec i
5830 blok intr.
5831Ovi blokovi su meusobno povezani sa dve interne magistrale IBUS115...0 i IBUS215...0.
5832 Blok bus (slika 102) slui za arbitraciju procesora i ulazno/izlaznog ureaja U/I2 sa
5833kontrolerom za direktan pristup memoriji pri korienju magistrale BUS i realizaciju ciklusa na
5834magistrali BUS. Blok fetch (slike 103, 104, 105) slui za itanje instrukcije i smetanje u
5835prihvatni registar instrukcije. Blok addr (slika 106) slui za formiranje adrese operanda i itanje
5836operanda. Blok exec (slike 107, 108, 109 i 110) slui za izvravanje operacija. Blok intr (slike
5837111, 112 i 113) slui za prihvatanje prekida i i formiranje adrese prekidne rutine.
5838

Struktura i opis blokova operacione jedinice oper se daju u daljem tekstu.

58394.3.1.1 Blok bus


5840 Blok bus (slika 102) sadri registar MAR15...0, registar MDR7...0 sa multiplekserom MX2,
5841prihvatni registar DW15...0, bafere sa tri stanja za povezivanje registara MAR 15...0, MDR7...0 i
5842DW15...0 na linije internih magistrala IBUS115...0 i IBUS215...0 i sistemske magistrale BUS, bafere
5843sa tri stanja za povezivanje internih magistrala IBUS115...0 i IBUS215...0 i kombinacione mree za
5844realizaciju ciklusa na magistrali BUS kada je procesor gazda i za arbitraciju sa kontrolerom sa
5845direktnim pristupom memoriji pri korienju magistrale BUS.
5846 Registar MAR150 je 16-to razredni adresni registar iji se sadraj koristi pri realizaciji
5847ciklusa itanja ili upisa na magistrali BUS. Adresa se iz nekog od blokova operacione jedinice
5848oper preko linija interne magistrale IBUS115...0 vodi na paralelne ulaze registra MAR150 i u
5849njega upisuje vrednou 1 signala ldMAR. Sadraj registra MAR150 se inkrementira
5850vrednou 1 signala incMAR. Ovo se koristi u situacijama kada treba proitati ili upisati 16-to
5851bitnu veliinu koja se nalazi u dvema susednim 8-mo bitnim lokacijama. Tada se najpre u
5852registar MAR150 upisuje adresa nie lokacije, a posle se inkrementiranjem dobija adresa vie
5853lokacije. Pri realizaciji ciklusa itanja ili upisa formira se vrednost 1 signala eMAR, ime se
5854sadraj registra MAR150 puta na adresne linije ABUS150 magistrale BUS.
5855 Na paralelne ulaze registra MAR150 se preko linija interne magistrale IBUS115...0 dovode
5856sadraji PC150 bloka fetch, GPR150 bloka addr, IR150 bloka fetch, DW150, ADD150 i SP150
5857bloka addr. Pri tome sadraji PC150 i GPR150 dolaze na linije interne magistrale IBUS115...0 sa
5858linija interne magistrale IBUS215...0 tako to se vrednou 1 signala MOST2_1 puta sadraj sa
5859linija interne magistrale IBUS215...0 na linije interne magistrale IBUS115...0. Sadraj PC150
5860predstavlja adresu instrukcije. Sadraj GPR150 predstavlja adresu operanda u sluaju
5861registarskog indirektnog adresiranja. Sadraj IR 150 predstavlja adresu operanda u sluaju
5862memorijskog direktnog adresiranja. Sadraj IR150 predstavlja i adresu memorijske lokacije na
5863kojoj se nalazi adresa operanda u sluaju memorijskog indirektnog adresiranja, pa se tada sa
5864ove adrese ita iz memorije adresa operanda i upisuje u registar DW 150, tako da konano
5865sadraj DW150 predstavlja adresu operanda u sluaju memorijskog indirektnog adresiranja.
5866Sadraj ADD150 predstavlja adresu operanda u sluaju registarskog indirektnog sa pomerajem
5867adresiranja, bazno indeksnog sa pomerajem adresiranja i PC relativnog sa pomerajem
5868adresiranja i formira se na izlazu sabiraa ADD bloka addr. Sadraj SP150 se koristi prilikom
5869stavljanja sadraja na vrh steka i skidanja sadraja sa vrha steka.
190

189

5870 Registar MDR70 je 8-mo razredni registar podatka u koji se vrednou 1 jednog od signala
5871MDRin i ldMDR upisuje sadraj sa izlaza multipleksera MX2. Pri realizaciji ciklusa itanja
5872vrednou 1 signala MDRin i vrednou 0 signala mxMDR sadraj sa linija podataka
5873DBUS70 magistrale BUS se puta kroz multiplekser MX2 i upisuje u registar MDR 70. Pri
5874realizaciji ciklusa upisa vrednou 1 signala ldDR i vrednou 1 signala mxMDR sadraj sa
5875linija interne magistrale IBUS27...0 se puta kroz multiplekser MX2 i upisuje u registar MDR70.
5876Signal MDRin ima vrednost 1 kada signali rdCPU i fcCPU imaju vrednost 1. Signal rdCPU
5877ima vrednost 1 kada procesor kao gazda realizuje ciklus itanja na magistrali, dok signal
5878fcCPU ima vrednost 1 kada se na upravljakoj liniji magistrale FCBUS pojavi vrednost 0 kao
5879indikacija od memorije ili nekog od kontrolera kao sluge da je proitani podatak raspoloiv na
5880linijama podataka DBUS70 magistrale. Sadraj registra MDR70 se pri realizaciji ciklusa
5881itanja vrednou 1 signala MDRout2 puta na linije interne magistrale IBUS2 70 i vodi na
5882ulaze registara IR0, IR1, IR2 i IR3 bloka fetch i registara DW158 i DW70, dok se razredi
5883MDR40 preko linija IBUS240 vode na ulaze registra GPRAR40 bloka addr. Sadraj registra
5884MDR70 se pri realizaciji ciklusa upisa vrednou 1 signala eMDR puta na linije podataka
5885DBUS70 magistrale.

191

190

IB U S 1

IB U S 2

1 5 ...0

1 5 ...0

16

16
16
16
u p ra v M O S T 1 _ 2
16

16
M O S T 2 _ 1 u p ra v

BU S D B U S

IB U S 2

7 ...0

8
0

M X 2

u p ra v

7 ...0

u p ra v
m xM D R

ld M A R
in c M A R

uprav

16
LD

16

ld M D R

M R
C LK

M A R

IN C

rd C P U

m r

M D R in

M A R

A B U S
BU S

fc C P U
u p ra v

8
BU S
W RB U S

rd C P U
u p ra v

7 ...0

8
M D R o u t2
u p ra v
8

1 5 ...0

BU S
RD B U S

M D R

IB U S 2

u p ra v
eM D R
16

IB U S 1
16

1 5 ...0

u p ra v
eM A R

1 5 ...0

m r
M R
C LK

M D R

LD

FCB U S
BU S
16
IB U S 1

w rC P U
u p ra v

D B U S
BU S

U /I
h req
eM A R
u p ra v

16
IB U S 2

1 5 ...0

IB U S 2

1 5 ...0

7 ...0

hack
U /I
u p ra v

1 5 ...0

16
IB U S 2
8
C LK

ld D W H
u p ra v

192

16
16
D W o u t1
u p ra v

8
1 5 ...8
7 ...0

8
8

m r
M R

D W

LD

5886
5887

16
IB U S 1

7 ...0

D W
D W
D W

C LK

ld D W L
u p ra v

1 5 ...8

LD

m r
M R

D W
8

7 ...0

D W

7 ...0

1 5 ...8
7 ...0

16
IB U S 2

1 5 ...0

Slika 102 Blok bus

191

1 5 ...0

5888 Multiplekser MX2 je 8-mo razredni multiplekser sa dva ulaza. Na ulaze 0 multipleksera se
5889vodi sadraj DBUS70. Na ulaze 1 multipleksera se preko linija interne magistrale IBUS27...0
5890dovode sadraji AB70, AW158 i AW70 bloka exec, PC158 i PC70 bloka fetch i PSW158 i
5891PSW70 bloka exec. Sadraj DBUS70 se puta kod ciklusa itanja i predstavlja proitanu
5892vrednost memorijske lokacije ili registra kontrolera koja po linijama podataka magistrale BUS
5893dolazi u procesor CPU. Sadraji AB70, AW158, AW70, PC158, PC70, PSW158 i PSW70 se
5894putaju u sluaju ciklusa upisa u memorijsku lokaciju ili registar kontrolera. Sadraj AB70 se
5895puta u sluajevima u kojima se sadraj akumulatora AB70 upisuje, sadraji AW158 i AW70 u
5896sluajevima u kojima se u dva ciklusa na magistrali sadraji starijeg i mlaeg bajta akumulatora
5897AW150 upisuju, sadraji PC158 i PC70 u sluajevima u kojima se u dva ciklusa na magistrali
5898sadraji starijeg i mlaeg bajta programskog brojaa PC150 stavljaju na stek i sadraji PSW158
5899i PSW70 u sluajevima u kojima se u dva ciklusa na magistrali sadraji starijeg i mlaeg bajta
5900programske statusne rei PSW150 stavljaju na stek. Selektovani sadraj sa izlaza multipleksera
5901MX2 se vodi na paralelne ulaze registra MDR70.
5902 Registar DW150 je 16-to razredni pomoni registar koji se koristi za prihvatanje 16-to bitne
5903veliine koja se dobija iz dve susedne 8-mo bitne memorijske lokacije u dva posebna ciklusa na
5904magistrali. Stariji i mlai bajt oitane 16-to bitne veliine dolaze iz registra MDR 70 po linijama
5905interne magistrale IBUS270. Signalom ldDWH se u 8 starijih razreda registra DW158 upisuje
5906stariji bajt, dok se signalom ldDWL u 8 mlaih razreda registra DW70 upisuje mlai bajt.
5907Sadraj registra DW150 se potom vrednou 1 signala DWout1 kao 16-to bitna veliina puta
5908na internu magistralu IBUS1150 i upisuje u odgovarajui 16-to razredni registar. Registar
5909DW150 se koristi da se prihvati 16-to bitna adresa operanda u sluaju memorijskog
5910indirektnog adresiranja i da se posle upie u registar MAR 150. Pored toga registar DW150 se
5911koristi da se prihvati 16-to bitni operand u sluaju instrukcija koje se izvravaju nad 16-to
5912bitnim veliinama i da se posle upie u registar BW150 bloka exec. Registar DW150 se koristi i
5913da se prihvati 16-to bitna vrednost sa steka prilikom izvravanja instrukcije RTI ili 16-to bitna
5914vrednost adrese prekidne rutine iz tabele sa adresama prekidnih rutina prilikom opsluivanja
5915prekida i da se posle upie u programski broja PC150 bloka fetch.
5916 U nekim situacijama koje se pojavljuju u drugim blokovima sadraji jedne grupe registara
5917jedino mogu da se putaju na linije interne magistrale IBUS1150, a upis u drugu grupu
5918registara moe da se realizuje jedino sa linija interne magistrale IBUS2150. U takvim
5919situacijama se radi prebacivanja sadraja registra iz jedne u drugu grupu registara, vrednou 1
5920signala MOST1_2 sadraji sa linija interne magistrale IBUS1150 putaju na linije interne
5921magistrale IBUS2150.
5922 Kombinacione mree za realizaciju ciklusa na magistrali BUS kada je procesor gazda i za
5923arbitraciju sa kontrolerom sa direktnim pristupom memoriji pri korienju magistrale BUS
5924imaju identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB (odeljak 4.1.1.1).
59254.3.1.2 Blok fetch
5926 Blok fetch sadri registar PC15...0, registre IR07...0, IR17...0, IR27...0 i IR37...0, bafere sa tri stanja
5927za povezivanje registara PC15...0 i IR31...0 na linije interne magistrale IBUS115...0 i IBUS215...0 (slika
5928103), dekodere DC1 do DC11 signala logikih uslova operacija i naina adresiranja (slika 104)
5929i kombinacione mree signala logikih uslova duina instrukcija (slika 105).
5930 Registar PC150 je 16-to razredni programski broja iji sadraj predstavlja adresu
5931memorijske lokacije poev od koje treba proitati jedan do etiri bajta instrukcije (slika 103).
5932Adresa skoka u programu se iz nekog od blokova operacione jedinice oper preko linija interne
5933magistrale IBUS115...0 vodi na ulaze registra PC150 i u njega upisuje vrednou 1 signala ldPC.
5934Sadraj registra PC150 se inkrementira vrednou 1 signala incPC. Ovo se koristi prilikom
5935itanja svakog bajta instrukcije koji se nalaze u susednim 8-mo bitnim lokacijama.

193

192

IB U S 1
16

IB U S 2

1 5 ...0

1 5 ...0

16
16
u p r a v in c P C
u p r a v ld P C

IN C

m r
M R

PC

LD

16

PC

8
PC

C LK

1 5 ...0

16
16
u p r a v P C o u t2
1 5 ...8

8
8
u p r a v P C H o u t2
8
C LK

ld IR 0
u p ra v

M R

IR 0

LD

C LK

ld IR 1
u p ra v

IR

3 1 ...2 4

IB U S 2

7 ...0

m r
M R

IR 1

LD

7 ...0

m r

IB U S 2

IR

2 3 ...1 6

IB U S 2
8
C LK

ld IR 2
u p ra v

IB U S 1

3 ...0

4
4
u p ra v IR B R o u t1

5936
5937

16
IB U S 1

8
8

I R 1 5 ...8
I R 7 ...0

8
8

IR
IR

2 3 ...1 6

8
8

IR
IR

23

1 5 ...8
7 ...0

1 5 ...8
7 ...0

1 5 ...8
7 ...0

IR

m r
M R

IR 3

LD

1 5 ...8

16
16
u p ra v IR P O M o u t1

IR

16
16
u p r a v IR J A o u t1

C LK

ld IR 3
u p ra v

16
16
u p ra v IR D A o u t1

M R

IR 2

LD

m r

7 ...0

IR

7 ...0

1 5 ...8

2 3 ...1 6

2 7 ...2 4

16
IB U S 2

1 5 ...0

1 5 ...0

Slika 103 Blok fetch (prvi deo)

5938 Na paralelne ulaze registra PC150 se preko linija interne magistrale IBUS115...0 dovode
5939sadraji DW150 bloka bus, ADD150 bloka addr i IR238, koji predstavljaju adrese skoka za
5940upis u registar PC150. Sadraj DW150 predstavlja ili vrednost koja se restaurira sa steka
5941prilikom izvravanja instrukcija povratka iz potprograma ili povratka iz prekidne rutine ili
5942adresu prekidne rutine koja se ita iz tabele sa adresama prekidnih prilikom opsluivanja
5943prekida. Sadraj ADD150 predstavlja adresu skoka koja se dobija sabiranjem sadraja
5944programskog brojaa i pomeraja prilikom izvravanja instrukcija uslovnog skoka. Sadraj
5945IR238 predstavlja adresu skoka koja se uzima iz instrukcije prilikom izvravanja instrukcija
5946bezuslovnog skoka ili skoka na potprogram.

194

193

5947 Sadraj registra PC150 se vrednou 1 signala PCout2 i MOST2_1 puta najpre na linije
5948interne magistrale IBUS215...0 a zatim i na linije interne magistrale IBUS1150 (slika 102) i vodi
5949na ulaze registra MAR150 bloka bus pri itanju instrukcije. Sadraj registra PC150 se
5950vrednou 1 signala PCout2 puta na linije interne magistrale IBUS2 15...0 i vodi na ulaze B150
5951sabiraa ADD za formiranje adrese memorijske lokacije kada se za adresiranje koristi PC
5952relativno sa pomerajem adresiranje. Na linije interne magistrale IBUS270 se vrednostima 1
5953signala PCout2 i PCHout2 putaju sadraji mlaih 8 razreda PC 70 i starijih 8 razreda PC158
5954radi upisa u registar MDR70 bloka bus. Ovo se koristi kod stavljanja PC150 na stek.
5955 Registri IR070, IR170, IR270 i IR370 su 8-mo razredni registri koji formiraju razrede
59563124, 2316, 158 i 70, respektivno, prihvatnog registra instrukcije IR 310. Instrukcije
5957mogu, u zavisnosti od formata instrukcije, da budu duine 1, 2, 3 ili 4 bajta (poglavlje 2.1.3).
5958Saglasno formatu instrukcije prvi, drugi, trei i etvrti bajt instrukcije se smetaju redom u
5959registre IR070, IR170, IR270 i IR370. Sadraj prihvatnog registra podatka MDR7...0 bloka
5960bus, koji dolazi po linijama interne magistrale IBUS27...0 na paralelne ulaze registara IR070,
5961IR170, IR270 i IR370, se upisuje u jedan od ovih registara vrednou 1 jednog od signala
5962ldIR0, ldIR1, ldIR2 i ldIR3, respektivno. Razredi IR3124 se uvek popunjavaju i njihov sadraj
5963predstavlja kod operacije. Broj preostalih razreda koji se popunjavaju zavisi od koda operacije,
5964a u sluaju aritmetikih i logikih operacija, i od naina adresiranja i njihov sadraj ima razliito
5965znaenje (poglavlje 2.1.3).
5966 Odreene kombinacije razreda registra IR310 se vrednou 1 jednog od signala IRDAout1,
5967IRJAout1, IRPOMout1 i IRBRout1 putaju na linije interne magistrale IBUS115...0 i preko
5968njih vode u odreene blokove operacione jedinice. Sadraj IR15...0 se vodi u registar MAR150
5969bloka bus i koristi kao adresa memorijske lokacije kod memorijskog direktnog i memorijskog
5970indirektnog adresiranja, zatim u registar CW15...0 bloka addr i koristi kao pomeraj kod
5971registarskog indirektnog sa pomerajem, bazno indeksnog sa pomerajem i PC relativnog sa
5972pomerajem adresiranja i u registar BW15...0 bloka exec i koristi kao neposredna veliina kod
5973operacija nad 16-to bitnim veliinama. Sadraj IR23...8 se vodi u registar PC150 bloka fetch i
5974koristi kao adresa skoka za instrukcije bezuslovnog skoka i skoka na potprogram. Sadraj
5975registra IR158 se vrednou 1 signala IRJAout1 i MOST1_2 puta najpre na linije interne
5976magistrale IBUS17...0 i zatim na linije interne magistrale IBUS270 i vodi u registar BB70 bloka
5977exec gde se koristi kao neposredna veliina kod operacija nad 8-mo bitnim veliinama. Sadraj
5978IR23...16 proiren znakom IR23 na 16-to bitnu veliinu se vodi u registar CW150 bloka addr i
5979koristi kao pomeraj kod instrukcija uslovnog skoka, a samo 8-mo bitni sadraj IR 23...16 se po
5980linijama interne magistrale IBUS17...0 vodi u registar BR7...0 blok intr i koristi kao broj ulaza u
5981tabelu sa adresama programa prekida za instrukciju prekida INT. Pored toga 4-ro bitni sadraj
5982IR27...24 se po linijama interne magistrale IBUS13...0 vodi na ulaze multipleksera MX7, MX8 i
5983MX9 bloka exec i koristi za selekciju jednog od signala rezultata operacija kod instrukcija
5984uslovnog skoka.
5985 Dekoderi DC1 do DC11 signala logikih uslova operacija i naina adresiranja (slika 104) i
5986kombinacione mree signala logikih uslova duina instrukcija (slika 105) imaju identinu
5987strukturu i funkcionalnost kao i u sluaju procesora DVOB (odeljak 4.1.1.2).

195

194

IR
IR
IR

29
28
27

2
1
0

STA RT
exec

D C2

IR
IR
IR

26
25
24

24

G 0_PG 1

24

U SH W
U SH B
O PW
O PB
TW
TB
D W
D B

IR
IR
IR

26
25
24

25
24

2
1
0

D C 10

5988
5989

196

G 0_PG 7

R
R
L
A
R
R
L
A

O LC
O L
SL
SL
O RC
O R
SR
SR

uprav
exec

26

uprav

IR
IR
IR

26
25
24

D C8

IR
IR
IR

23
22
21

2
1
0

D C11

7
6
5
4
3
2
1
0

D C6

7
6
5
4
3
2
1
0

B
B
B
B
B
B
B
B

L
L
G
G
L
L
G
G

SSEU
SSU
RTEU
RTU
SSE
SS
RTE
RT

G 0_PG 3

G 0_PG 5
G 0_PG 5
STSP
LD SP
S T IM R
L D IM R
S T IV T P
L D IV T P

7
6

IR
IR
IR

26
25
24

2
1
0

D C9

7
6
5
4
3
2
1
0

G 0_PG 6

im m
pcpom
bxpom
re g in d p o m
m e m in d
m e m d ir
re g in d
re g d ir

Slika 104 Blok fetch (drugi deo)

195

2
1
0

G 0_PG 5

IR
IR
IR

2
1
0

7
6
5
4
3
2
1
0

G 0_PG 4

7
6
5
4
3
2
1
0

uprav

25

D C7

P
P
P
P
S
S
L
L

uprav
exec

26

2
1
0

G 0_PG 2

IR
IR
IR

7
6
5
4
3
2
1
0

D C5

A
R
V
F
E
G
Q
L

25

2
1
0

C
A
O
V
N
E
E
Q

uprav

26

N
C
N
O
N
N
N
E

24

D C4

IR
IR
IR

B
B
B
B
B
B
B
B

25

2
1
0

7
6
5
4
3
2
1
0

uprav

26

TRPE
TRPD
IN T E
IN T D
G 0_PG 03
G 0_PG 02
H A L T u p ra v
N O P u p ra v

G 0_PG 0

IR
IR
IR

G 0_PG 1
G 0_PG 1
RTI
IN T
RTS
JS R
JM P
G 0_PG 1

D C3

G 0

7
6
5
4
3
2
1
0

2
1
0

7
6
5
4
3
2
1
0

uprav

3
2
1
0

7
6
5
4
3
2
1
0

uprav

G
G
G
G

G
G
G
G
G
G
G
G

D C1

3
2
1
0

_P
_P
_P
_P
_P
_P
_P
_P

30

1
0

0
0
0
0
0
0
0
0

N O T
X O R
O R
A N D
D EC
IN C
SU B
A D D

uprav
exec

31

G
G
G
G
G
G
G
G

IR
IR

7
6
5
4
3
2
1
0

G
G
G
G
G
G
G

0
0
0
0
0
0
0

_
_
_
_
_
_
_

P
P
P
P
P
P
P

G 3
G 2
G 1
G 57
G 56
G 17
G 16
G 10
G 03
G 02

G 0_PG 3
G 0_PG 2
IN T
JS R
JM P

5990
5991

STB
STW

u p ra v
g ro p r

u p ra v
l2 _ b rn c h
u p ra v
l3 _ ju m p
u p ra v
s to re

u p ra v
g rad r

STB
STW
im m

X O R
O R
A N D
SU B
A D D
STW
STB
LD W
LD B

u p ra v
l2 _ a rlo g

G 0_PG 7
N O T
D EC
IN C
G 0_PG 5
PU SH W
PU SH B
PO PW
PO PB
RTI
RTS
G 0_PG 0
X O
O
A N
SU
A D
ST
LD

R
R
D
B
D
B
B

u p ra v
l1

u p ra v
l3 _ a r lo g

im m

re g d ir
re g in d

Slika 105 Blok fetch (trei deo)

59924.3.1.3 Blok addr


5993 Blok addr sadri registre opte namene GPR150 sa adresnim registrom registara opte
5994namene GPRAR40, sabira ADD sa prihvatnim registrom CW150, ukaziva na vrh steka
5995SP150 i bafere sa tri stanja za povezivanje registara opte namene GPR 150, sabiraa ADD i
5996registra SP15...0 na linije interne magistrale IBUS115...0 i IBUS215...0 (slika 106).
5997 Registri opte namene GPR150 su realizovani kao registarski fajl sa 32 registra irine 16
5998bita. Adresa registra opte namene koji se ita ili u koji se upisuje odreena je sadrajem
5999registra GPRAR40 iji se sadraj vodi na adresne linije A40 registarskog fajla GPR. Sadraj
6000koji se upisuje vodi se sa interne magistale IBUS2 150 na ulazne linije podataka DI150
6001registarskog fajla, a sadraj koji se ita GPR 150 pojavljuje se na izlaznim linijama podataka
6002DO150 registarskog fajla. Vrednostima 1 i 0 signala wrGPR na upravljakoj liniji WR
6003registarskog fajla realizuje se upis u registarski fajl i itanje iz registarskog fajla, respektivno.
6004 Na ulazne linije podataka podataka DI150 registarskog fajla GPR se preko linija interne
6005magistrale IBUS2150 dovode sadraji registara AB70 i AW150 bloka exec, pri emu je sadraj
6006registra AB70 proiren nulama do duine 16 bita. Ovo se korisi u instrukcijama prenosa STB i
6007STW sadraja akumulatora AB70 i AW150, respektivno, kada je registarskim direktnim
6008adresiranjem kao odredite specificiran neki od registara opte namene.
6009 Sadraj proitanog registra opte namene GPR 150 se vrednou 1 signala GPRout2 i
6010MOST2_1 puta najpre na internu magistralu IBUS215...0 a zatim na internu magistralu
6011IBUS1150 (slika 102) i vodi u registar MAR150 bloka bus u sluaju registarskog indirektnog
6012adresiranja i u registar BW150 bloka exec u sluaju registarskog direktnog adresiranja za
6013operacije nad 16-to bitnim veliinama. Sadraj proitanog registra opte namene GPR 150 se
6014vrednou 1 signala GPRout2 puta na internu magistralu IBUS2 15...0 i vodi na ulaze B150
6015sabiraa ADD u sluaju registarskog indirektnog sa pomerajem i bazno indeksnog sa
6016pomerajem adresiranja. Mlaih 8 razreda proitanog registra opte namene GPR70 se
6017vrednou 1 signala GPRout2 putaju na linije interne magistrale IBUS270 i vode u registar

197

196

6018BB70 bloka exec u sluaju registarskog direktnog adresiranja za operacije nad 8-mo bitnim
6019veliinama.
IB U S 1
16

IB U S 2

1 5 ...0

1 5 ...0

16

u p ra
in c G P R
ld G P R
u p ra

v
A R
A R
v

IB U S 2
IN C

4 ...0

m r
M R

G PR A R

LD

G PRA R

4 ...0

16

C LK

16

D I 1 5 ...0
A

G PR

4 ...0

D O

W R

1 5 ...0

16

G PR

1 5 ...0

16
u p ra v
in c S P
decSP
u p ra v

16
IN C

m r
M R

SP

D EC

16

w rG P R
u p ra v

LD

16
G P R o u t2 u p r a v
u p ra v
ld S P

C LK

SP

1 5 ...0

16
16
u p r a v S P o u t1
16

16
16
u p ra v A D D o u t1
A

A D D

CW

C LK

ld C W
u p ra v

6020
6021

16
IB U S 1

LD

1 5 ...0

16
16

A D D

1 5 ...0

1 5 ...0

16

1 5 ...0

CW
16

m r
IB U S 2

1 5 ...0

16
1 5 ...0

Slika 106 Blok addr

6022 Adresni registar registara opte namene GPRAR40 je 5-to razredni registar iji se sadraj
6023koristi kao adresa registra registarskog fajla prilikom upisa u registarski fajl i itanja iz
6024registarskog fajla. U registar GPRAR40 se vrednou 1 signala ldGPRAR upisuju razredi
60254...0 prihvatnog registra podatka MDR70 bloka bus koji dolazi po linijama interne magistrale
6026IBUS240. Ovo se koristi samo u fazi itanja instrukcije i to prilikom itanja drugog bajta
6027instrukcije. Tada ova grupa bitova, ukoliko se radi o aritmetikim ili logikim instrukcijama sa
6028adresiranjima koje koriste registre opte namene, predstavlja adresu registra opte namene.
6029Sadraj registra GPRAR40 se inkrementira vrednou 1 signala incGPRAR, to se koristi
6030samo ukoliko se radi o bazno indeksnom sa pomerajem adresiranju. Tada se registar opte
6031namene ija je adresa zadata bitovima 4...0 drugog bajta instrukcije koristi kao bazni registar, a
6032registar opte namene sa prve sledee adrese kao indeksni registar. Sadraj registra GPRAR 40
6033se vodi na adresne linije A40 registarskog fajla GPR.
6034 Sabira ADD je 16-to razredni sabira koji se koristi za formiranje16-to bitne vrednosti koja
6035moe da bude adresa sa koje treba da se proita adresa prekidne rutine, adresa sa koje treba da
198

197

6036se proita ili na kojoj treba da se upie operand ili adresa skoka. Sabiranje se realizuje nad
6037sadrajima prihvatnog registra CW150 i interne magistrale IBUS2150 koji se vode na ulaze
6038A150 i B150, respektivno, sabiraa ADD. Sadraj ADD150 se vrednou 1 signala ADDout1
6039puta na internu magistralu IBUS1150 i preko nje vodi u adresni registar MAR150 bloka bus,
6040programski broja PC150 bloka fetch i u registar CW150.
6041 Registar CW150 je 16-to razredni prihvatni registar za ulaze A150 sabiraa ADD. Na ulaze
6042registra CW150 se preko interne magistrale IBUS1150 dovode sadraji IVTP150 bloka intr,
6043IR150 bloka fetch, ADD150 i IR2316 proiren znakom do duine 16 bita bloka fetch i u njega
6044upisuju vrednou 1 signala ldCW.
6045 Na ulaze B150 sabiraa ADD se preko linija interne magistrale IBUS2150 dovode sadraji
6046IVTDSP150 bloka intr, GPR150 bloka fetch i PC150 bloka fetch.
6047 Sadraj IVTP150 se najpre upisuje u registar CW150 i zatim sabira sa IVTDSP150. Time se
6048u okviru opsluivanja prekida na izlazu sabiraa ADD dobija adresa sa koje treba da se proita
6049adresa prekidne rutine. Pri tome je IVTP150 sadraj registra koji ukazuje na poetak tabele sa
6050adresama prekidnih rutina i IVTDSP150 pomeraj u odnosu na poetak tabele formiran na
6051osnovu broja ulaza u tabelu. Rezultat sabiranja se upisuje u registar MAR150.
6052 Sadraj IR150 se najpre upisuje u registar CW150 i zatim sabira sa GPR150. Time se u
6053sluaju registarskog indirektnog sa pomerajem adresiranja na izlazu sabiraa ADD dobija
6054adresa sa koje treba da se proita ili na kojoj treba da se upie operand. Pri tome je GPR 150
6055sadraj registra opte namene ija je adresa zadata instrukcijom i IR 150 pomeraj. Rezultat
6056sabiranja se upisuje u registar MAR150. U sluaju baznog indeksnog sa pomerajem adresiranja
6057suma ADD150 sa izlaza sabiraa ADD se upisuje u registar CW150, pri emu je GPR150
6058sadraj registra opte namene koji se koristi kao bazni registar i ija je adresa zadata
6059instrukcijom i IR150 pomeraj. Zatim se sabiraju sadraji registra CW150 i GPR150, pri emu je
6060sada GPR150 sadraj registra opte namene koji se koristi kao indeksni registar i koji je
6061proitan sa adrese koja je prva posle adrese zadate instrukcijom. Rezultat sabiranja se upisuje u
6062registar MAR150.
6063 Sadraj IR150 se najpre upisuje u registar CW150 i zatim sabira sa PC150. Time se u sluaju
6064PC relativnog sa pomerajem adresiranja na izlazu sabiraa ADD dobija adresa sa koje treba da
6065se proita ili na kojoj treba da se upie operand. Pri tome je PC 150 sadraj programskog
6066brojaa i IR150 pomeraj. Rezultat sabiranja se upisuje u registar MAR150.
6067 Sadraj IR2316 proiren znakom do duine 16 bita se najpre upisuje u registar CW 150 i
6068zatim sabira sa PC150. Time se u sluaju instrukcija uslovnog skoka na izlazu sabiraa ADD
6069dobija adresa skoka. Pri tome je PC150 sadraj programskog brojaa i IR2316 proiren znakom
6070do duine 16 bita pomeraj u odnosu na tekuu vrednost programskog brojaa. Rezultat
6071sabiranja se upisuje u registar PC150.
6072 Registar SP150 je 16-to razredni ukaziva na vrh steka iji sadraj predstavlja adresu
6073memorijske lokacije prilikom upisa na stek i itanja sa steka. U registar SP 150 se vrednou 1
6074signala ldSP u fazi izvravanja instrukcije prenosa STSP upisuje sadraj 16-to razrednog
6075akumulatora AW15...0 bloka exec koji dolazi po linijama interne magistrale IBUS2150. Sadraj
6076registra SP150 se inkrementira i dekrementira vrednostima 1 signala incSP i decSP,
6077respektivno. Ovo se koristi pri upisu na stek i itanju sa steka, respektivno. Sadraj registra
6078SP150 se vrednou 1 signala SPout1 puta na internu magistralu IBUS1150 i vodi u registar
6079MAR150 bloka bus pri upisu ili itanju sa steka i u akumulator AW15...0 u fazi izvravanja
6080instrukcije prenosa LDSP.
60814.3.1.4 Blok exec
6082 Blok exec sadri aritmetiko logiku jedinicu ALU, registre AB7...0 i BB7...0, multipleksere
6083MX3 i MX4, kodere CD1 i CD2, registre AW150 i BW150 i bafere sa tri stanja za povezivanje
199

198

6084registara AB7...0, BB7...0, AW150 i BW150 i ALU na linije internih magistrala IBUS115...0 i
6085IBUS215...0 (slika 107), registar PSW15...0, bafere sa tri stanja za povezivanje registra PSW15...0 na
6086linije interne magistrale IBUS215...0 i flip-flop START (slika 108), kombinacione mree za
6087formiranje signala postavljanja indikatora N, Z, C i V (slika 109) i kombinacione mree za
6088formiranje signala rezultata operacija eql, ..., nneg i brpom sa multiplekserima MX7, MX8 i
6089MX9 (slika 110).
6090 Aritmetiko logika jedinica ALU (slika 107) ima identinu strukturu i funkcionalnost kao i
6091u sluaju procesora DVOB (odeljak 4.1.1.4). Sadraj ALU70 predstavlja rezultat aritmetike
6092ili logike operacije koje kao odredite implicitno koriste registar akumulatora AB70. Stoga se
6093vrednou 1 signala ALUout1 sadraj ALU70 puta na linije interne magistrale IBUS170 i
6094vodi u registar AB70.
6095 Registar AB7...0 je 8-mo razredni akumulator koji se koristi kao implicitno izvorite i
6096odredite u aritmetikim, logikim i pomerakim instrukcijama. Sadraj sa linija interne
6097magistrale IBUS17...0 se vodi na ulaze registra AB7...0 i u njega upisuje vrednou 1 signala
6098ldAB. Sadraj registra AB7...0 se pomera udesno za jedno mesto vrednou 1 signala shR. Tada
6099se u najstariiji razred registra AB7 upisuje signal IR koji dolazi sa izlaza multipleksera MX3.
6100Sadraj registra AB7...0 se pomera ulevo za jedno mesto vrednou 1 signala shL. Tada se u
6101najmlai razred registra AB0 upisuje signal IL koji dolazi sa izlaza multipleksera MX4. Sadraj
6102registra AB7...0 se vodi na ulaze ALU gde se koristi kao prvi izvorini operand u sluaju
6103aritmetikih i logikih operacija.
6104 Vrednou 1 signala ABout2 sadraj registra AB7...0 proiren nulama na 16-to bitnu vrednost
6105se puta na internu magistralu IBUS215...0 i upisuje u adresirani registar registarskog fajla GPR
6106bloka addr u sluaju registarskog direktnog adresiranja za instrukciju STB.
6107 Na paralelne ulaze registra AB70 se preko linija interne magistrale IBUS1 70 dovode
6108sadraji ALU70 i BB70. Sadraj ALU70 predstavlja rezultat aritmetikih ili logikih operacija
6109koje kao odredite implicitno koriste registar akumulatora AB70. Sadraj BB70 predstavlja
6110operand koji se u fazi izvravanja instrukcije LDB prebacuje iz prihvatnog registra operanda
6111BB70 u registar akumulatora AB70.
6112 Registar BB7...0 je 8-mo razredni prihvatni registar u koji se privremeno smeta izvorini
6113operand specificiran adresnim delom svih instrukcija sa jednoadresnim formatom. Sadraj sa
6114linija interne magistrale IBUS27...0 se vodi na ulaze registra BB7...0 i u njega upisuje vrednou 1
6115signala ldBB. Sadraj registra BB7...0 se vrednou 1 signala BBout2 puta na linije interne
6116magistrale IBUS27...0 i vodi na ulaze B7...0 ALU, gde se koristi kao drugi izvorini operand u
6117sluaju aritmetikih i logikih instrukcija. Pored toga sadraj registra BB 7...0 se vrednou 1
6118signala BBout2 i MOST2_1 puta najpre na linije interne magistrale IBUS27...0 a zatim na linije
6119interne magistrale IBUS17...0 (slika 102) i vodi u registar AB7...0 u sluaju instrukcije LDB.
6120 Na paralelne ulaze registra BB70 se preko linija interne magistrale IBUS2 70 dovode
6121sadraji GPR70 bloka addr, MDR70 i IR158 bloka fetch. Sadraj GPR70 predstavlja operand
6122u sluaju registarskog direktnog adresiranja, MDR70 operand u sluaju memorijskih
6123adresiranja i IR158 operand u sluaju neposrednog adresiranja.

200

199

IB U S 2

1 5 ...0

8
8

1 5 ...8
7 ...0

7 ...0

7 ...0

8
uprav

A LU

7 ...0

8
8
u p ra v A L U o u t1

not
xor
or
and

7 ...0

7 ...0

16
16
A B o u t2 u p r a v

dec
in c
sub
add

A LU

16
A B

IB U S 1

8
8

u p ra v sh r

RO R
RO
LS
A S

M X 3

IR

0
1

2
1

CD 1

fetch

fetch

C
R
R
R

B W

RO LC
RO L
LSL
A SL

2
1

A W

M X 4

IB U S 2

7 ...0

u p ra v
ld B B

m r

IB U S 2

7 ...0

IB U S 2

7 ...0

IL

0
1

2
1

C D 2

1
0

A W

1 5 ...8

ld B W
u p ra v

m r

8
A W H o u t2 u p r a v

16

16
A W o u t2 u p r a v

1 5 ...0

16

1 5 ...0

C LK
M R

7 ...0

M R

A W

A W

7 ...0

LD

16

16

6124
6125

IB U S 2
8
B B o u t2 u p r a v

B B

C LK

1 5 ...0

16

16
IB U S 1

16
16
B W o u t1

LD

B B

PSW C
A B 7
0
0

ld A B
shl

m r

PSW C
A B 0
0
A B 7

ld A W
u p ra v

LD
SH L
M R IL

A B

7 ...0

u p ra v

7 ...0

uprav

C LK
SH R
IR

A B

IB U S 1

1 5 ...0


uprav

IB U S 1
16

B W

LD

16

B W

1 5 ...0

C LK
M R

m r
16
IB U S 2

1 5 ...0

1 5 ...0

Slika 107 Blok exec (prvi deo)

6126 Multiplekseri MX3 i MX4 i koderi CD1 i CD2 imaju identinu strukturu i funkcionalnost
6127kao i u sluaju procesora DVOB (odeljak 4.1.1.4).
6128 Registar AW15...0 je 16-to razredni akumulator koji se koristi kao implicitno izvorite u
6129instrukcijama prenosa STW, PUSHW, STIVTP, STIMR i STSP i implicitno odredite u
6130instrukcijama prenosa LDW, POPW, LDIVTP, LDIMR i LDSP. Sadraj sa interne magistrale
6131IBUS115...0 se vodi na ulaze registra AW15...0 i u njega upisuje vrednou 1 signala ldAW.
201

200

6132Vrednou 1 signala AWout2 sadraj registra AW15...0 se puta na internu magistralu IBUS215...0 i
6133vodi u blok addr gde se, ukoliko se izvrava instrukcija prenosa STW sa zadatim registarskim
6134direktnim adresiranjem, upisuje u adresirani registar registarskog fajla GPR i ukoliko se
6135izvrava instrukcija STSP upisuje u registar SP 15...0, i u blok intr gde se, ukoliko se izvrava
6136instrukcija STIVTP ili STIMR, upisuje u registre IVTP 15...0 ili IMR15...0, respektivno.
6137Vrednostima 1 signala AWout2 i AWHout2 se na linije interne magistrale IBUS2 7...0 putaju
6138sadraji mlaih 8 razreda AW7...0 i starijih 8 razreda AW15...8 radi upisa u registar MDR7...0 bloka
6139bus. Ovo se radi kada se sadraj registra AW15...0, ukoliko se izvrava instrukcija prenosa STW
6140sa zadatim nekim od memorijskih adresiranja ili instrukcija prenosa PUSHW, upisuje u
6141memoriju.
6142 Na paralelne ulaze registra AW150 se preko interne magistrale IBUS1150 dovode sadraji
6143BW150, SP150 bloka addr, IVTP150 i IMR150 bloka intr. Sadraj BW150 se dovodi u sluaju
6144instrukcije LDW, sadraj SP150 u sluaju instrukcije LDSP, sadraj IVTP150 u sluaju
6145instrukcije LDIVTP i sadraj IMR150 u sluaju instrukcije LDIMR.
6146 Registar BW15...0 je 16-to razredni prihvatni registar u koji se privremeno smeta izvorini
6147operand specificiran adresnim delom instrukcije prenosa LDW. Sadraj sa interne magistrale
6148IBUS115...0 se vodi na ulaze registra BW15...0 i u njega upisuje vrednou 1 signala ldBW.
6149Sadraj registra BW15...0 se vrednou 1 signala BWout1 puta na internu magistralu IBUS115...0
6150i upisuje u registar AW15...0 u sluaju instrukcije LDW.
6151 Na paralelne ulaze registra BW150 se preko interne magistrale IBUS1 150 dovode sadraji
6152GPR150 bloka addr i DW150 i IR150 bloka fetch. Pri tome se sadraji GPR150 i DW150
6153putaju najpre na linije interne magistrale IBUS2150, a zatim sa njih na linije interne magistrale
6154IBUS1150 (slika 102). Sadraj GPR150 predstavlja operand u sluaju registarskog direktnog
6155adresiranja, sadraj DW150 u sluaju memorijskih adresiranja i sadraj IR150 u sluaju
6156neposrednog adresiranja.
6157 Registar PSW15...0 (slika 108) ima identinu strukturu i funkcionalnost kao i u sluaju
6158procesora DVOB (odeljak 4.1.1.4).
6159 U razrede PSW15.14 koji predstavljaju 2 najstarija razreda registra PSW 15...0 se vrednou 1
6160signala ldPSWH upisuje sadraj sa linija interne magistrale IBUS27.6 na kojima se tada nalaze
6161sadraji razreda MDR7.6 prihvatnog registra podatka MDR7...0 bloka bus, dok se u razrede
6162PSW6...0 koji predstavljaju 7 najmlaih razreda registra PSW 15...0 vrednou 1 signala ldPSWL
6163upisuje sadraj sa linija interne magistrale IBUS2 6...0 na kojima se tada nalaze sadraji razreda
6164MDR6...0 prihvatnog registra podatka MDR7...0. Ovo se koristi prilikom izvravanja instrukcije
6165RTI da se sadrajem sa vrha steka restaurira sadraj registra PSW 15...0. Sadraji 2 najstarija
6166razreda PSW15.14, 7 najmlaih razreda PSW6...0 i vrednosti 0 za nepostojee razrede PSW13...7
6167registra PSW15...0 se vrednostima 1 signala PSWHout2 i PSWLout2 putaju posebno kao 8
6168starijih razreda PSW15...8 i 8 mlaih razreda PSW7...0 registra PSW15...0 na linije interne magistrale
6169IBUS27...0 i vode u blok bus u kome se upisuju u prihvatni registar podatka MDR 7...0. Ovo se
6170koristi prilikom opsluivanja zahteva za prekida da se sadraj registra PSW 15...0 stavi na vrh
6171steka.
6172 Flip-flop START svojom vrednou 1 omoguava izvravanje instrukcija, dok vrednou 0
6173zaustavlja. U flip-flop START se upisuje vrednost 1 vrednou 1 signala TSTART koja se
6174generie ili pri ukljuenju napajanja ili aktiviranjem tastera START. U flip-flop se upisuje
6175vrednost 0 vrednou 1 signala clSTART koja se generie u okviru faze izvravanja instrukcije
6176HALT.

202

201

IB U S 2
16

IB U S 2

ld P S W H u p ra v
u p ra v
s tP S W I

ld P S W L

ld N
u p ra v
N
IB U S 2 0

u p ra v
S

ld Z
u p ra v
Z

IB U S 2

m r

PSW N

C LK
R

m r
in tr
PSW T

C LK

c lP S W T
u p ra v

IB U S 1
16

1 5 ...0

m r

u p ra v
s tP S W T

16
IB U S 2

in tr
PSW I

C LK

c lP S W I
u p ra v

IB U S 2

IB U S 2
16

1 5 ...0

C LK
1

m r

16
IB U S 2

PSW Z

ld C
u p ra v

1 5 ...0

1 5 ...0

C
IB U S 2 2

1 5 ...0

PSW C

C LK
R

m r
ld V
u p ra v

PSW I
PSW T
0
0
0
0
0
0

1
1
1
1
1
1

0
PSW L2
PSW L1
PSW L0
PSW V
PSW C
PSW Z
PSW N

TSTA RT

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

1 5 ...0

16
IB U S 1

V
IB U S 2 3
PSW

IB U S 2

15 8

6177
6178

PSW V

C LK
R

m r

7 ...0

8
P S W H o u t2
u p ra v

ld L
u p ra v
in tr
p rl0
IB U S 2 4

in tr
PSW L

in tr
PSW L

in tr
PSW L

C LK
R

m r
PSW

IB U S 2

7 0

7 ...0

8
P S W L o u t2
u p ra v

m r

in tr
p rl1
IB U S 2 5

C LK
R

m r

fe tc h
u p ra v
STA RT

in tr
p rl2
IB U S 2 6

C LK

c lS T A R T
u p ra v

16

IB U S 2

1 5 ...0

C LK
R

m r

Slika 108 Blok exec (drugi deo)

6179
Kombinacione mree signala postavljanja indikatora N, Z, C i V (slika 109) imaju
6180identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB (odeljak 4.1.1.4).

203

202

fetch
fetch
fetch

A B
B B
A LU

7
7
7

7
6
5

4
3
2
1
0

A D D

fetch

fetch

B
B
B
B
B
B
B
B

D
C
B
C

C8
A SR
LSR
R O R
RO RC
A B 0
A SL
LSL
RO L
RO LC
A B 7

LD B
PO PB
A D D
SU B
IN C
D EC
A N D
O R
X O R
N O T
A SR
LSR
RO R
RO RC
A SL
LSL
RO L
RO LC
A
A
A
A
A
A
A
A

6181
6182

N
7

A B

A D
IN
SU
D E

A D D

SU B
V
V

SU B

IN C
D EC

IN C

D EC

Slika 109 Blok exec (trei deo)

6183 Kombinacione mree za formiranje signala rezultata operacija eql, ..., nneg i brpom se
6184sastoje od logikih elemenata i multipleksera MX7, MX8 i MX9 (slika 110). Logikim
6185elementima se na osnovu sadraja flip-flopova PSWN, PSWZ, PSWC i PSWV programske
6186statusne rei formiraju signali eql, ..., nneg. Multiplekserima MX7, MX8 i MX9 se na osnovu
6187sadraja sa linija interne magistrale IBUS13...0 na kojima su sadraji razreda IR27...24 prihvatnog
6188registra instrukcije bloka fetch kojima se specificira kod operacije instrukcije uslovnog skoka
6189BEQL, ..., BNNEQ selektuje jedan od signala eql, ..., nneg i pojavljuje kao signal brpom koji
6190se koristi u upravljakoj jedinici uprav da bi se prilikom izvravanja instrukcija uslovnog skoka
6191utvrdilo da li je uslov za skok ispunjen ili nije. Selekcija jednog od signala eql, ..., nneg i
6192formiranje signala brpom se realizuje na osnovu kodiranja odgovarajuih kodova operacija
6193instrukcije uslovnog skoka BEQL, ..., BNNEQ. Kodiranje instrukcija je tako realizovano da se
6194razredom IR27 selektuje jedna od dve podgrupe G0_PG2 (poglavlje 2.1.5.1.3.1) i G0_PG3
6195(poglavlje 2.1.5.1.3.1) instrukcija uslovnog skoka (tabela 4), dok se razredima IR26...24 unutar
6196selektovane podrupe selektuje odgovarajua instrukcija (tabele 7 i 8).

204

203

PSW Z
PSW N
PSW V
PSW Z
PSW C
PSW Z

IB U S 1
16

PSW C

ls s u , c a r
g r te u , n c a r

ls s
g rte

PSW V

ovf
novf

ls s e
g rt

PSW N

neg
nneg

ls s e u
g rtu

1 5 ...0

ncar
car
novf
ovf
nneg
neg
neql
eql

IB U S 1

6197
6198

eql
neql

IB U S 1

7
6
5
4

M X 7

3
2
1
0


2 ...0

ls s e u
ls s u
g rte u
g rtu
ls s e
ls s
g r te
g rt
IB U S 1

7
6
5

M X 8

M X 9

IB U S 1

u p ra v
b rp o m

0
3

1
0

IB U S 2

2 ...0

1 5 ...0

16

3 ...0

4
16
I B U S 1 1 5 ...0

16
IB U S 2

1 5 ...0

Slika 110 Blok exec (etvrti deo)

6199 Signali rezultata operacija eql, ..., nneg imaju identino znaenje i formiraju se prema
6200identinim izrazima kao i u sluaju procesora DVOB (odeljak 4.1.1.4).
62014.3.1.5 Blok intr
6202 Blok intr sadri logiki ILI element za formiranje signala prekida prekid, kombinacione i
6203sekvencijalne mree za prihvatanje unutranjih prekida i spoljanjih nemaskirajuih i
6204maskirajuih prekida, registar IMR15...0 i bafere sa tri stanja za povezivanje registra IMR15...0 na
6205linije interne magistrale IBUS115...0 (slika 111), kombinacione prekidake mree za formiranje
6206signala spoljanjih maskirajuih prekida printr (slika 112) i kombinacione i sekvencijalne
6207mree za formiranje adrese prekidne rutine (slika 113).
6208 Logiki ILI element za formiranje signala prekida prekid i kombinacione i sekvencijalne
6209mree za prihvatanje unutranjih prekida i spoljanjih nemaskirajuih i maskirajuih prekida
6210(slika 111) imaju identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB (odeljak
62114.1.1.5).
6212 Registar maske IMR150 slui za pojedinano maskiranje spoljanjih maskirajuih zahteva za
6213prekid intr1 do intr7. Zahtevima za prekid intr1 do intr7 odgovaraju razredi IMR1 do IMR7
6214registra maske IMR150, dok se preostali razredi ne koriste. Upis sadraja registra AW150
6215bloka exec koji dolazi po linijama interne magistrale IBUS2 150 se obavlja vrednou 1 signala
6216ldIMR. Upis u registar IMR150 se realizuje samo kod izvravanja instrukcije STIMR, koja
6217slui za upis sadraja akumulatora AW15...0 u registar procesora IMR150. Vrednou 1 signala
6218IMRout1 sadraj registra IMR150 se puta na internu magistralu IBUS1150 i vodi u
6219akumulator AW15...0. Upis u akumulator AW150 se realizuje samo kod izvravanja instrukcije
6220LDIMR, koja slui za upis sadraja registra IMR150 u akumulator AW15...0.

205

204

u p ra v
s tP R IN S

u p ra v
P R IN S

u p ra v
s tP R C O D

C LK

c lP R IN S
u p ra v

c lP R C O D
u p ra v

IB U S 1
16

P R IN M

U /I 6
in tr6

c lIN T R

m r

P R IN T R

P R IN T R

U /I1
in tr 1

c lIN T R

m r

c lIN T R

P R IN S
PRCO D
PRA D R
P R IN M
p r in tr
exec
PSW T
RTI
fe tc h

u p ra v
p re k id

p rl2
p rl1
p rl0

1 5 ...0

P R IN T R

P R IN T R

U /I4
in tr 4

P R IN T R

P R IN T R

m r
S

C LK
R

c lIN T R

m r
7

2
1
0

16

C LK

1 5 ...0

C LK
R

C LK

IB U S 2

m r

U /I5
in tr 5

c lIN T R

6221
6222

C LK

c lIN T R

IM R

16
16
IM R o u t1 u p r a v
1 5 ...0

1 5 ...0

m r
M R

C LK
R

m r

IM R

LD

16

U /I2
in tr 2

16

16
IB U S 1

IB U S 2

ld IM R
u p ra v

C LK

c lIN T R

16

P R IN T R

1 5 ...0

c lP R A D R
u p ra v

m r

m r

U /I 3
in tr3

u p ra v
PRA D R

C LK

C LK

c lP R IN M
u p ra v

u p ra v
s tP R A D R

C LK

m r

FAU LT
in m

u p ra v
PR CO D

D C

7
6
5
4
3
2
1

c lIN
c lIN
c lIN
c lIN
c lIN
c lIN
c lIN

T
T
T
T
T
T
T

R
R
R
R
R
R
R

U /I7
in tr 7

m r
Q

C LK

5
3

6
4

c lIN T R

m r

c lIN T R u p r a v

Slika 111 Blok intr (prvi deo)

6223 Kombinacione prekidake mree za formiranje signala spoljanjih maskirajuih prekida


6224printr (slika 112) imaju identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB
6225(odeljak 4.1.1.5).
6226 Kombinacione i sekvencijalne mree za formiranje adrese prekidne rutine se sastoje od
6227kombinacionih i sekvencijalnih mrea za formiranje pomeraja za tabelu sa adresama prekidnih
6228rutina IVTDSP15...0, bafere sa tri stanja za povezivanje brojeva ulaza UINT7...0 i UEXT7...0 na
6229linije interne magistrale IBUS17...0 i pomeraja IVTDSP7...0 na linije interne magistrale IBUS27...0,
6230registar IVTP15...0 i bafere sa tri stanja za povezivanje registra IVTP 15...0 na linije interne
6231magistrale IBUS115...0 (slika 113)

206

205

IM
IM
IM
IM
IM
IM
IM

R
R
R
R
R
R
R

P
P
P
P
P
P
P

1
2
3
4
5
6
7

R
R
R
R
R
R
R

ir m
ir m
ir m
ir m
ir m
ir m
ir m

im rp rin tr
u p ra v
p rin tr

IN
IN
IN
IN
IN
IN
IN

T
T
T
T
T
T
T

R
R
R
R
R
R
R

1
2
3
4
5
6
7

7
6
5
4
3
2
1

PSW I
exec
7

acc

5
2

CD
1

6232
6233

2
1
0

b
b
b

2
1
0

CM P

p rl2
p rl1
p rl0

a2
a1
a0


exec

PSW L
PSW L
PSW L

exec

A >B

Slika 112 Blok intr (drugi deo)

6234 Kombinacione i sekvencijalne mree za formiranje pomeraja IVTDSP15...0 za tabelu sa


6235adresama prekidnih rutina se sastoje od kodera CD1 i CD2, i registra BR7...0.
6236 Koder CD1 ima identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB
6237(odeljak 4.1.1.5). Vrednou 1 signala UINTout1 sadraj UINT7...0 se puta na linije interne
6238magistrale IBUS170 i vodi u registar BR7...0. Upis u registar BR7...0 se realizuje samo kod
6239opsluivanja prekida ukoliko se prihvata neki od unutranjih prekida, spoljanji nemaskirajui
6240prekid ili unutranji prekid zbog zadatog reima rada prekid posle svake instrukcije.
6241 Koder CD2 ima identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB
6242(odeljak 4.1.1.5). Vrednou 1 signala UEXTout1 sadraj UEXT7...0 se puta na linije interne
6243magistrale IBUS170 i vodi u registar BR7...0. Upis u registar BR7...0 se realizuje samo kod
6244opsluivanja prekida ukoliko se prihvata neki od spoljanjih maskirajuih prekida.
6245 Registar BR7...0 slui za pamenje broja ulaza u tabelu sa adresama prekidnih rutina. Upis
6246sadraja sa linija interne magistrale IBUS17...0 u registar BR7...0 se obavlja vrednou 1 signala
6247ldBR. Sadraj registra BR7...0 se u okviru opsluivanja zahteva za prekid koristi za formiranje
6248pomeraja IVTDSP15...0 za ulazak u tabelu sa adresama prekidnih rutina. Kako adresa prekidne
6249rutine zauzima dve susedne memorijske lokacije, to se pomeraj IVTDSP 15...0 dobija pomeranjem
6250sadraja registra BR7...0 za jedno mesto ulevo. Vrednou 1 signala IVTDSPout2 se formirani
6251pomeraj IVTDSP15...0 puta na internu magistralu IBUS215...0 i vodi na ulaze B15...0 sabiraa ADD
6252bloka addr.

207

206

IB U S 1

PRCO D
PRA D R
P R IN M
PSW T
exec

3
2
1
0

CD 1

0
0

3
2
1
0

1
0

IB U S 2

1 5 ...0

...
...

IB U S 1
16

1 5 ...0

16
U IN T
8

7 0

7 ...0

IB U S 1

7
6
5
4
3
2
1

7
6
5
4
3
2
1
0

1
CD 2

2
1
0

3
2
1
0

irm
irm
irm
irm
irm
irm
irm

...
...

8
8
u p ra v U IN T o u t1

U EX T
8

7 0

7 ...0

8
8
u p r a v U E X T o u t1
IB U S 1

7 ...0

8
C LK

B R

LD

8
0

B R

ld B R
u p ra v

m r
M R

1 5 ... 9 8 ... 1

1 6 IV T D S P

7 ...0

0
0
1 5 ...0

16
16
u p r a v IV T D S P o u t2
16
CLK
ld IV T P
u p ra v

C LK

m r
M R

IV T P

LD

1 6 IV T P

1 5 ...0

16
16
u p ra v IV T P o u t1

6253
6254

16
IB U S 1

IB U S 2

1 5 ...0

16
1 5 ...0

Slika 113 Blok intr (trei deo)

6255 Na paralelne ulaze registra BR7...0 se preko linija interne magistrale IBUS1 7...0 dovode
6256sadraji IR2316 bloka fetch, UEXT70 i UINT70, koji predstavljaju brojeve ulaza u tabelu sa
6257adresama prekidnih rutina za instrukciju prekida INT, za spoljanje maskirajue prekide i za za
6258unutranje prekide i spoljanji nemaskirajui prekid, respektivno.
6259 Registar IVTP15...0 je ukaziva na tabelu sa adresama prekidnih rutina i sadri poetnu adresu
6260tabele. Upis sadraja sa interne magistrale IBUS215...0 u registar IVTP15...0 se realizuje vrednou
62611 signal ldIVTP.

208

207

6262 Na paralelne ulaze registra IVTP15...0 se preko interne magistrale IBUS215...0 dovodi sadraj
6263registra AW150 bloka exec. Upis u registar IVTP15...0 se realizuje samo kod izvravanja
6264instrukcije STIVTP, koja slui za upis sadraja akumulatora AW15...0 u registar procesora
6265IVTP15...0. Vrednou 1 signala IVTPout1 sadraj registra IVTP15...0 se puta na internu
6266magistralu IBUS1150 i vodi u akumulator AW15...0. Upis u akumulator AW150 se realizuje samo
6267kod izvravanja instrukcije LDIVTP, koja slui za upis sadraja registra IVTP15...0 u akumulator
6268AW15...0. Pored toga sadraj registra IVTP 15...0 se preko interne magistrale IBUS1 150 vodi i u
6269registar CW150 bloka addr.
6270 U okviru opsluivanja prekida u registru CW15...0 i na linijama interne magistrale IBUS2150
6271bloka addr se nalaze sadraji registra IVTP 15...0 i pomeraja IVTDSP15...0, pa se njihovim
6272sabiranjem dobija adresa sa koje se ita adresa prekidne rutine i upisuje u PC15...0.
62734.3.2 Upravljaka jedinica
6274 U ovom odeljku se daju dijagram toka izvravanja instrukcija, algoritam generisanja
6275upravljakih signala i struktura upravljake jedinice uprav.
62764.3.2.1 Dijagram toka izvravanja instrukcija
6277 Dijagram toka izvravanja instrukcija je identian kao i dijagram toka izvravanja instrukcija
6278procesora DVOB (odeljak 4.1.2.1).
62794.3.2.2 Algoritam generisanja upravljakih signala
6280 Algoritam generisanja upravljakih signala, formiran na osnovu dijagrama toka izvravanja
6281instrukcija (slika 4.1.2.1) i strukture operacione jedinice (poglavlje 4.3.1), dat je u obliku
6282dijagrama toka mikrooperacija, dijagrama toka upravljakih signala (slike 114 do 140) i
6283sekvence upravljakih signala po koracima (tabela 34), koji su formirani na identian nain kao
6284i u sluaju procesora DVOB (odeljak 4.1.2.2).
6285

Tabela 34 Sekvenca upravljakih signala po koracima

6286! Sekvenca upravljakih signala po koracima ima etiri celine koje odgovaraju fazama itanje
6287instrukcije, formiranje adrese operanda, izvravanje operacije i opsluivanje prekida. Faza itanje
6288instrukcije se realizuje u koracima step 00 do step18 koji su zajedniki za sve instrukcije. Faza formiranje
6289adrese operanda se realizuje u koracima step20 do step46 pri emu postoje posebni koraci za svaki nain
6290adresiranja operanda. Faza izvravanje operacije se realizuje u koracima step 50 do stepBA, pri emu
6291postoje posebni koraci za svaku operaciju. Faza opsluivanje prekida se realizuje u koracima step C0 do
6292stepE4. !
6293! itanje instrukcije !
6294! U koraku step00 se proverava vrednost signala START bloka exec koji vrednostima 0 i 1 ukazuje da li
6295je processor neaktivan ili aktivan, respektivno (slika 114). Ukoliko je procesor neaktivan ostaje se u
6296koraku step00, dok se u suprotnom sluaju prelazi na korak step01. !
6297
step00 br (if START then step00);
6298! U koracima step01 do step04 se ita prvi bajt instrukcije i smeta u razrede IR 3124 prihvatnog registra
6299instrukcije IR310. Sadraj registra PC 15..0 bloka fetch se signalima PCout2 bloka fetch i MOST2_1
6300puta najpre na internu magistralu IBUS2150 a zatim na internu magistralu IBUS1150 i signalom
6301ldMAR upisuje u adresni registar MAR15..0 bloka bus. Pored toga, signalom incPC se sadraj registra
6302PC15..0 inkrementira. U koraku step02 se proverava vrednost signala hack bloka bus koji vrednostima 1 i
63030 ukazuje da li je procesor prepustio magistralu kontroleru sa direktnim pristupom memoriji ili je
6304magistrala u posedu procesora, respektivno. Ukoliko je procesor prepustio magistralu ostaje se u koraku
6305step02, dok se u suprotnom sluaju prelazi na korak step 03. U koraku step03 se realizuje itanje jednog
6306bajta i upisivanje u registar podatka MDR7..0 bloka bus. Signalom eMAR se sadraj registra MAR150
6307puta na adresne linije ABUS150 magistrale BUS. Pored toga se signalom rdCPU generie vrednost 0
6308signala na upravljakoj liniji RDBUS magistrale BUS, ime se u memoriji MEM startuje operacija
6309itanja. U koraku step03 se ostaje onoliko perioda signala takta koliko je neophodno da se itanje
6310realizuje. Sve vreme dok je procesor u koraku step03 adresa je prisutna na linijama ABUS150 i na liniji

209

208

6311 RDBUS je vrednost 0. Po zavrenom itanju memorija MEM puta proitani sadraj na linije
6312podataka DBUS70 magistrale BUS. Radi indikacije da je sadraj na linijama DBUS70 vaei
6313memorija generie vrednost 0 signala na upravljakoj liniji FCBUS magistrale BUS. U koraku step03
6314se proverava vrednost signala fcCPU bloka bus koji vrednostima 0 i 1 ukazuje da itanje nije zavreno i
6315da je itanje zavreno, respektivno. Ukoliko itanje nije zavreno ostaje se u koraku step 03, dok se u
6316suprotnom sluaju sadraj sa linija DBUS 70 upisuje u registar podatka MDR 7..0 i prelazi na korak
6317step04. U koraku step04 se signalom MDRout2 sadraj registra MDR7..0 bloka bus puta na niih 8 linija
6318interne magistrale IBUS270 i signalom ldIR0 bloka fetch upisuje u prihvatni registar instrukcije i to u
6319razrede IR3124 bloka fetch. !
6320
step01 PCout2, MOST2_1, ldMAR, incPC;
6321
step02 br (if hack then step02);
6322
step03 eMAR, rdCPU,
6323
br (if fcCPU then step03);
6324
step04 MDRout2, ldIR0;

STA RT
1

M A R<=PC ,
PC<=PC +1

P C o u t2 , M O S T 2 _ 1 ,
ld M A R , in c P C

hack
0

e M A R , rd C P U
0

fc C P U
1

IR

3 1 ...2 4

M D R o u t2 , ld IR 0

7 ...0

g ro p r

g ro p r
1

PRC O D <=1

l1

s tP R C O D

l1

0
60

fc C P U
1

<=M D R

6325
6326

hack
0

M D R <=M EM
0

STA RT

0
1

13

56

60

13

56

Slika 114 itanje instrukcije (prvi deo)

6327! U koraku step05 se proverava vrednost signala gropr bloka fetch da bi se utvrdilo da li prvi bajt
6328instrukcije sadri korektnu vrednost koda operacije. U zavisnosti od toga da li signal gropr ima
6329vrednost 1 ili 0, prelazi na korak step06 ili step07, respektivno. Ukoliko prvi bajt instrukcije sadri
6330nekorektnu vrednost koda operacije, u koraku step06 se signalom stPRCOD bloka intr u flip-flop
6331PRCOD upisuje vrednost 1 i bezuslovno prelazi na korak stepC0 radi utvrivanja adrese prekidne rutine.
6332!

210

209

6333
step05 br (if gropr then step07);
6334
step06 stPRCOD,
6335
br stepC0;
6336! U koraku step07 se proverava vrednost signala l1 bloka fetch da bi se utvrdilo da li je duina instrukcije
6337jedan ili vie bajtova. U zavisnosti od toga da li signal l1 ima vrednost 1 ili 0, prelazi se ili na korak
6338step50 i fazu izvravanje operacije ili step08 i produava sa itanjem bajtova instrukcije. !
6339
step07 br (if l1 then step50);
6340! U koracima step08 do step0B se ita drugi bajt instrukcije i smeta u razrede IR 2316 prihvatnog registra
6341instrukcije IR310 (slika 115). Koraci step08 do step0A u kojima se ita drugi bajt instrukcije su isti kao
6342koraci step01 do step03 u kojima se ita prvi bajt instrukcije. U koraku step 0B se signalom MDRout2
6343bloka bus proitani bajt puta na linije interne magistrale IBUS270 i signalom ldIR1 bloka fetch
6344upisuje u prihvatni registar instrukcije i to u razrede IR 2316 bloka fetch. Istovremeno se signalom
6345ldGPRADR bloka addr razredi MDR4..0, koji se nalaze na niih 5 linija interne magistrale IBUS24...0,
6346upisuju u registar GPRADR4..0. Time se u registru GPRADR4..0 nalazi adresa registra opte namene. !
6347
step08 PCout2, MOST2_1, ldMAR, incPC;
6348
step09 br (if hack then step09);
6349
step0A eMAR, rdCPU,
6350
br (if fcCPU then step0A);
6351
step0B MDRout2, ldIR1, ldGPRAR;
60

13

56

60

M A R <=PC ,
PC<=PC +1

hack

fc C P U

56

fc C P U
1

I R 2 3 ...1 6 < = M D R 7 ...0 ,


G P R A R 4 ...0 < = M D R 4 ...0

M D R o u t2 , ld IR 1 ,
ld G P R A R

g ra d r
1

g ra d r
1

PRA D R <=1

l2 _ b rn c h

s tP R A D R

l2 _ b rn c h

l2 _ a r lo g

l2 _ a rlo g

0
60

13

eM A R , rd C P U

6352
6353

hack
0

M D R <=M EM

56

P C o u t2 , M O S T 2 _ 1 ,
ld M A R , in c P C

13

0
2

13

56

60

Slika 115 itanje instrukcije (drugi deo)

6354! U koraku step0C se proverava vrednost signala gradr bloka fetch da bi se utvrdilo da li je nekorektno
6355adresiranje specificirano. Ovo se deava ukoliko se za instrukcije STB i STW specificira neposredno
6356adresiranje. U zavisnosti od toga da li signal gradr ima vrednost 1 ili 0, prelazi se na korak step0D ili
6357step0E, respektivno. Ukoliko je nekorektno adresiranje specificirano, u koraku step0D se signalom
6358stPRADR bloka intr u flip-flop PRADR upisuje vrednost 1 i bezuslovno prelazi na korak stepC0 radi
6359utvrivanja adrese prekidne rutine. !
6360
step0C br (if gradr then step0E);
211

210

6361
step0D stPRADR,
6362
br stepC0;
6363! U koracima step0E i step0F se proverava vrednost signala l2_brnch i l2_arlog bloka fetch da bi se
6364utvrdilo da li je duina instrukcije dva ili vie bajtova. Iz koraka step 0E se u zavisnosti od toga da li
6365signal l2_brnch ima vrednost 1 ili 0, prelazi na korak step50 i fazu izvravanje operacije ili step0F i
6366proveru vrednosti signala l2_arlog. Iz koraka step0F se u zavisnosti od toga da li signal l2_arlog ima
6367vrednost 1 ili 0, prelazi na korak step20 i fazu formiranje adrese operanda ili step10 i produava sa
6368itanjem bajtova instrukcije.!
6369
step0E br (if l2_brnch then step50);
6370
step0F br (if l2_arlog then step20);
60

13

56

60

M A R<=PC,
PC<=PC+1

56

13

56

hack

M D R<=M EM

eM A R , rd C P U
0

fc C P U

fc C P U

IR

13

P C o u t2 , M O S T 2 _ 1 ,
ld M A R , in c P C

hack

1 5 ...8 < = M D R

M D R o u t2 , ld IR 2

7 ...0
1

l3 _ ju m p

l3 _ ju m p

0
0
1

l3 _ a rlo g

l3 _ a rlo g

M A R<=PC,
PC<=PC+1

P C o u t2 , M O S T 2 _ 1 ,
ld M A R , in c P C

hack

hack

M D R<=M EM
0

eM A R , rd C P U
0

fc C P U

fc C P U

IR

6371
6372

60

7 ...0 < = M D R
3

M D R o u t2 , ld IR 3

7 ...0
13

56

60

Slika 116 itanje instrukcije (trei deo)

6373! U koracima step10 do step13 se ita trei bajt instrukcije i smeta u razrede IR 158 prihvatnog registra
6374instrukcije IR310 (slika 116). Koraci step10 do step12 u kojima se ita trei bajt instrukcije su isti kao
6375koraci step01 do step03 u kojima se ita prvi bajt instrukcije.!
6376
step10 PCout2, MOST2_1, ldMAR, incPC;
6377
step11 br (if hack then step11);
6378
step12 eMAR, rdCPU,
6379
br (if fcCPU then step12);
6380! U koraku step13 se signalom MDRout2 bloka bus sadraj registra MDR7..0 bloka bus puta na niih 8
6381linija interne magistrale IBUS270 i signalom ldIR2 bloka fetch upisuje u prihvatni registar instrukcije
6382IR310 i to u razrede IR158 bloka fetch. !
6383! U koracima step13 i step14 se proverava vrednost signala l3_jump i l3_arlog bloka fetch da bi se
6384utvrdilo da li je duina instrukcije tri ili etiri bajta. Iz koraka step 13 se u zavisnosti od toga da li signal
6385l3_jump ima vrednost 1 ili 0, prelazi na korak step50 i fazu izvravanje operacije ili step14 i proveru
6386vrednosti signala l3_arlog. Iz koraka step14 se u zavisnosti od toga da li signal l3_arlog ima vrednost 1
212

211

6387ili 0, prelazi na korak step20 i fazu formiranje adrese operanda ili step15 i produava sa itanjem etvrtog
6388bajta instrukcije.!
6389
step13 MDRout2, ldIR2,
6390
br (if l3_jump then step50);
6391
step14 br (if l3_arlog then step20);
6392! U koracima step15 do step18 se ita etvrti bajt instrukcije i smeta u razrede IR 70 prihvatnog registra
6393instrukcije IR310 (slika 116). Koraci step15 do step17 u kojima se ita etvrti bajt instrukcije su isti kao
6394koraci step01 do step03 u kojima se ita prvi bajt instrukcije. U koraku step0B se signalom MDRout2
6395sadraj registra MDR7..0 bloka bus puta na niih 8 linija interne magistrale IBUS27...0 i signalom ldIR3
6396bloka fetch upisuje u prihvatni registar instrukcije i to u razrede IR 70 bloka fetch. Iz koraka step18 se
6397bezuslovno prelazi na korak step20 i fazu formiranje adrese operanda. !
6398
step15 PCout2, MOST2_1, ldMAR, incPC;
6399
step16 br (if hack then step16);
6400
step17 eMAR, rdCPU,
6401
br (if fcCPU then step17);
6402
step18 MDRout2, ldIR3,
6403
br step20;
6404! Formiranje adrese operanda !
6405! U korak step20 se dolazi iz koraka step0F, step14 i step18 ukoliko se radi o instrukcijama duine dva, tri i
6406etiri bajta koje zahtevaju da se do operanda doe saglasno specificiranom nainu adresiranja (slika
6407117). Za sve instrukcije, sem instrukcija STB i STW, operand se smeta u registar BB70 ili BW150.
6408Operand moe da bude u nekom od registara opte namene, u memorijskoj lokaciji ili samoj instrukciji.
6409U sluaju registarskog direktnog adresiranja kod koga se operand nalazi u nekom od registara opte
6410namene ili neposrednog adresiranja kod koga se operand nalazi u samoj instrukciji, ova faza se svodi na
6411prebacivanje operanda u registar BB70 ili BW150. U sluaju adresiranja kod kojih se operand nalazi u
6412memoriji, ova faza se sastoji od koraka u kojima se prvo formira adresa operanda u memoriji i zatim
6413ita operand i smeta u registar BB 70 ili BW150. Izuzetak su instrukcije STB i STW kod kojih se
6414operand upisuje. U sluaju registarskog direktnog adresiranja kod koga se operand upisuje u registar
6415opte namene, odmah se prelazi na fazu izvravanje operacije u kojoj se operand upisuje u registar opte
6416namene. U sluaju nekog od adresiranja kod kojih se operand upisuje u memoriju, u ovoj fazi se samo
6417formira adresa operanda i smeta u registar MAR 150, pa se prelazi na fazu izvravanje operacije u
6418kojoj se operand upisuje u memoriju na formiranoj adresi. Sluaj sa neposrednim adresiranjem
6419specificiranim u instrukcijama STB i STW nije dozvoljen i ne moe da se javi u ovoj fazi jer se on
6420otkriva jo u fazi itanje instrukcije i rezultuje prelaskom na fazu opsluivanje prekida. U koraku step 20
6421se realizuje viestruki uslovni skok na jedan od koraka step21, step25, , step44 u zavisnosti od toga koji
6422od signala adresiranja regdir, regind, memdir, memind, regindpom, bxpom, pcpom i imm bloka
6423addr ima vrednost 1. !
6424
step20 br (case (regdir, regind, memdir, memind, regindpom, bxpom, pcpom, imm) then
6425
(regdir, step21), (regind, step25), (memdir, step27), (memind, step29),
6426
(regindpom, step32), (bxpom, step35), (pcpom, step39), (imm, step44));
6427! Registarsko direktno adresiranje !
6428! U korak step21 se dolazi iz step20 ukoliko signal za registarsko direktno adresiranje regdir ima vrednost
64291. Ukoliko signal store bloka fetch ima vrednost 1, to znai da se radi o instrukciji STB ili instrukciji
6430STW za koje nema itanja operanda, prelazi se na korak step50 i fazu izvravanje operacije. U
6431suprotnom sluaju se prelazi na korak step22 u kome se proverava vrednost signala operacije LDW.
6432Ukoliko signal LDW ima vrednost 1, prelazi se na korak step24 u kome se signalima GPRout2 i
6433MOST2_1 16-to razredni sadraj adresiranog registra opte namene GPR 15...0 bloka addr puta najpre
6434na internu magistralu IBUS2150 a zatim i na internu magistralu IBUS1150 i na kraju signalom ldBW
6435upisuje u registar BW150 bloka exec. U suprotnom sluaju se prelazi na korak step23 u kome se
6436signalima GPRout2 i ldBB mlai bajt adresiranog registra opte namene GPR 7...0 puta na linije interne
6437magistrale IBUS270 i upisuje u registar BB70 bloka exec. U oba sluaja se prelazi na korak step50 i
6438fazu izvravanje operacije. !
6439
step21 br (if store then step50);
6440
step22 br (if LDW then step24);
6441
step23 GPRout2, ldBB,
6442
br step50;
6443
step24 GPRout2, MOST2_1, ldBW,
213

212

6444

br step50;
60

13

56

60

c a s e (re g d ir, re g in d , m e m d ir,


m e m in d , re g in d p o m , b x p o m ,
p c p o m , im m )
4

8
4

10

11

10

13

56

11

re g d ir
1

LD W

LD W
0

B B <=G PR

7 ...0

B W <=G PR

1 5 ...0

G P R o u t2 , ld B B

G P R o u t2 , M O S T 2 _ 1 ,
ld B W
5

re g in d

M A R<=G PR

re g in d

G P R o u t2 , M O S T 2 _ 1 ,
ld M A R

1 5 ...0
1

s to re

s to re

M A R < = IR
s to re

m e m d ir

m e m d ir
IR D A o u t1 , ld M A R

1 5 ...0
1

s to re

60

s to re

6445
6446

56

c a s e (re g d ir, re g in d , m e m d ir,


m e m in d , re g in d p o m , b x p o m ,
p c p o m , im m )

re g d ir

s to re

13

12

13

56

60

12

Slika 117 Formiranje adrese operanda (prvi deo)

6447! Registarsko indirektno adresiranje !


6448! U korak step25 se dolazi iz step20 ukoliko signal za registarsko indirektno adresiranje regind ima
6449vrednost 1. Sadraj adresiranog registra opte namene GPR 15...0 bloka addr se signalima GPRout2 i
6450MOST2_1 puta najpre na internu magistralu IBUS2 150 a zatim i na internu magistralu IBUS1 150 i
6451na kraju signalom ldMAR upisuje u registar MAR15...0 bloka bus. Time se u registru MAR15...0 nalazi
6452adresa operanda za sluaj registarskog indirektnog adresiranja. Ukoliko signal store bloka addr ima
6453vrednost 1, to znai da se radi o instrukciji STB ili instrukciji STW za koje nema itanja operanda,
6454prelazi se na korak step50 i fazu izvravanje operacije. U suprotnom sluaju se prelazi na korak step 26 iz
6455koga se bezuslovno prelazi na korak step3B i itanje operanda. !
6456
step25 GPRout2, MOST2_1, ldMAR,
6457
br (if store then step50);
6458
step26 br step3B;
6459! Memorijsko direktno adresiranje !
6460! U korak step27 se dolazi iz step20 ukoliko signal za memorijsko direktno adresiranje memdir ima
6461vrednost 1. Signalom IRDAout1 se sadraj registra IR15...0 bloka fetch puta na internu magistralu
6462IBUS1150 i signalom ldMAR upisuje u registar MAR15...0. Time se u registru MAR15...0 nalazi adresa
6463operanda za sluaj memorijskog direktnog adresiranja. Ukoliko signal store bloka addr ima vrednost 1,
6464to znai da se radi o instrukciji STB ili instrukciji STW za koje nema itanja operanda, prelazi se na
214

213

6465korak step50 i fazu izvravanje operacije. U suprotnom sluaju se prelazi na korak step 28 iz koga se
6466bezuslovno prelazi na korak step3B i itanje operanda. !
6467
step27 IRDAout1, ldMAR,
6468
br (if store then step50);
6469
step28 br step3B;
6470! Memorijsko indirektno adresiranje !
6471! U korak step29 se dolazi iz step20 ukoliko signal za memorijsko indirektno adresiranje memind ima
6472vrednost 1 (slika 118). Signalom IRDAout1 se sadraj registra IR15...0 bloka fetch puta na internu
6473magistralu IBUS1150 i signalom ldMAR upisuje u registar MAR15...0. Time se u registru MAR 15...0
6474nalazi adresa memorijske lokacije poev od koje treba proitati dva bajta koji predstavljaju vii i nii
6475bajt adrese operanda za sluaj memorijskog indirektnog adresiranja. itanje prvog bajta se realizuje u
6476koracima step2A i step2B, a drugog bajta u koracima step2D i step2E, na isti nain kao u koracima step02 i
6477step03 kod itanja prvog bajta instrukcije. U koraku step 2C se iz registra MDR7...0 bloka bus prvi bajt
6478signalom MDRout2 puta na linije interne magistrale IBUS270 i signalom ldDWH upisuje u stariji
6479bajt registra DW15...8 bloka bus, a signalom incMAR adresni registar MAR15...0 bloka bus inkrementira
6480na adresu sledeeg bajta. U koraku step2F se iz registra MDR7...0 bloka bus drugi bajt signalom
6481MDRout2 puta na linije interne magistrale IBUS270 i signalom ldDWL upisuje u mlai bajt registra
6482DW7...0. Na kraju se u koraku step30 signalom DWout1 sadraj registra DW15...0, koji predstavlja adresu
6483operanda, puta na internu magistralu IBUS1 150 i signalom ldMAR upisuje u registar MAR15...0.
6484Ukoliko signal store bloka fetch ima vrednost 1, to znai da se radi o instrukciji STB ili instrukciji
6485STW za koje nema itanja operanda, prelazi se na korak step50 i fazu izvravanje operacije. U
6486suprotnom sluaju se prelazi na korak step 31 iz koga se bezuslovno prelazi na korak step3B i itanje
6487operanda. !
6488
step29 IRDAout1, ldMAR;
6489
step2A br (if hack then step2A);
6490
step2B eMAR, rdCPU,
6491
br (if fcCPU then step2B);
6492
step2C MDRout2, ldDWH, incMAR;
6493
step2D br (if hack then step2D);
6494
step2E eMAR, rdCPU,
6495
br (if fcCPU then step2E);
6496
step2F MDRout2, ldDWL;
6497
step30 DWout1, ldMAR,
6498
br (if store then step50);
6499
step31 br step3B;

215

214

60

M A R < = IR

12

m e m in d

13

56

60

m e m in d
IR D A o u t1 , ld M A R

1 5 ...0

hack
0

fc C P U

56

M D R o u t2 , ld D W L

7 ...0

D W o u t1 , ld M A R

1 5 ...0
1

s to re

s to re

re g in d p o m
C W 1 5 ...0 < = I R 1 5 ...0
1 5 ...0 + C W

re g in d p o m
IR D A o u t1 , ld C W
G P R o u t2 , A D D o u t1 ,
ld M A R

1 5 ...0
1

s to re

s to re

CW

1 5 ...0 < = I R

CW

1 5 ...0

bxpom

bxpom
IR D A o u t1 , ld C W

1 5 ...0

<=
G P R 1 5 ...0 + C W 1 5 ...0 ,
G PRA R<=G PRA R+1

G P R o u t2 , A D D o u t1 ,
ld C W ,
in c G P R A R

M A R<=
CW

G P R o u t2 , A D D o u t1 ,
ld M A R

1 5 ...0

+G PR

s to re

1 5 ...0
1

s to re

216

13

fc C P U
1

7 ...0 < = M D R

M A R<=D W

60

12

eM A R , rd C P U

6500
6501

hack
0

M D R<=M EM

M A R<=
G PR

fc C P U
M D R o u t2 , ld D W H ,
in c M A R

hack

D W

hack

D W 1 5 ...8 < = M D R 7 ...0 ,


M A R<=M A R+1

56

eM A R , rd C P U

fc C P U

13

M D R<=M EM
0

12

12

13

56

60

Slika 118 Formiranje adrese operanda (drugi deo)

215

6502! Registarsko indirektno sa pomerajem adresiranje!


6503! U korak step32 se dolazi iz step20 ukoliko signal za registarsko indirektno sa pomerajem adresiranje
6504regindpom ima vrednost 1. U korak step32 se signalom IRDAout1 pomeraj iz IR15...0 bloka fetch puta
6505na internu magistralu IBUS1150 i signalom ldCW upisuje u prihvatni registar CW 15...0 sabiraa ADD
6506bloka addr. U koraku step33 se najpre na izlazima sabiraa ADD formira suma sadraja registra
6507CW15...0, koji se direktno vodi na ulaze sabiraa ADD, i adresiranog registra opte namene GPR 15...0
6508bloka addr, koji se signalom GPRout2 puta na linije interne magistrale IBUS2150 i ulaze sabiraa
6509ADD, a zatim se signalima ADDout1 i ldMAR dobijeni sadraj sa izlaza sabiraa ADD puta na
6510internu magistralu IBUS1150 i upisuje u registar MAR15...0. Time se u registru MAR15...0 nalazi adresa
6511operanda za sluaj registarskog indirektnog sa pomerajem adresiranja. Ukoliko signal store bloka addr
6512ima vrednost 1, to znai da se radi o instrukciji STB ili instrukciji STW za koje nema itanja operanda,
6513prelazi se na korak step50 i fazu izvravanje operacije. U suprotnom sluaju se prelazi na korak step 34 iz
6514koga se bezuslovno prelazi na korak step3B i itanje operanda. !
6515
step32 IRDAout1, ldCW;
6516
step33 GPRout2, ADDout1, ldMAR,
6517
br (if store then step50);
6518
step34 br step3B;
6519! Bazno indeksno sa pomerajem adresiranje !
6520! U korak step35 se dolazi iz step20 ukoliko signal za bazno indeksno sa pomerajem adresiranje bxpom
6521ima vrednost 1. U koraku step35 se signalom IRDAout1 pomeraj iz IR15...0 bloka fetch puta na internu
6522magistralu IBUS1150 i signalom ldCW upisuje u prihvatni registar CW15...0 sabiraa ADD bloka addr.
6523U koraku step36 se najpre na izlazima sabiraa ADD formira suma sadraja registra CW 15...0, koji se
6524direktno vodi na ulaze sabiraa ADD, i adresiranog registra opte namene GPR 15...0 bloka addr, koji se
6525signalom GPRout2 puta na internu magistralu IBUS2150 i ulaze sabiraa ADD, a zatim se signalima
6526ADDout1 i ldCW dobijeni sadraj sa izlaza sabiraa ADD puta na internu magistralu IBUS1 150 i
6527upisuje u registar CW15...0 bloka addr. Pored toga signalom incGPRAR bloka addr se vri
6528inkrementiranje adresnog registra GPRAR4...0 registara opte namene GPR 15...0. U koraku step37 se najpre
6529na izlazima sabiraa ADD formira suma sadraja registra CW15...0, koji se direktno vodi na ulaze
6530sabiraa ADD, i adresiranog registra opte namene GPR 15...0 bloka addr, koji se signalom GPRout2
6531puta na internu magistralu IBUS2150 i ulaze sabiraa ADD, a zatim se signalima ADDout1 i ldMAR
6532dobijeni sadraj sa izlaza sabiraa ADD puta na internu magistralu IBUS1 150 i upisuje u registar
6533MAR15...0 bloka bus. Time se u registru MAR15...0 nalazi adresa operanda za sluaj bazno indeksnog sa
6534pomerajem adresiranja. Ukoliko signal store bloka addr, ima vrednost 1, to znai da se radi o
6535instrukciji STB ili instrukciji STW za koje nema itanja operanda, prelazi se na korak step50 i fazu
6536izvravanje operacije. U suprotnom sluaju se prelazi na korak step38 iz koga se bezuslovno prelazi na
6537korak step3B i itanje operanda. !
6538
step35 IRDAout1, ldCW;
6539
step36 GPRout2, ADDout1, ldCW, incGPRAR;
6540
step37 GPRout2, ADDout1, ldMAR,
6541
br (if store then step50);
6542
step38 br step3B;
6543! PC relativno sa pomerajem adresiranje !
6544! U korak step39 se dolazi iz step20 ukoliko signal za PC relativno sa pomerajem adresiranje pcpom ima
6545vrednost 1 (slika 119). Signalom IRDAout1 pomeraj iz IR15...0 bloka fetch se puta na internu
6546magistralu IBUS1150 i signalom ldCW upisuje u prihvatni registar CW15...0 sabiraa ADD bloka addr.
6547U koraku step3A se najpre na izlazima sabiraa ADD formira suma sadraja registra CW 15...0, koji se
6548direktno vodi na ulaze sabiraa ADD, i programskog brojaa PC 15...0 bloka fetch, koji se signalom
6549PCout2 puta na internu magistralu IBUS2150 i ulaze sabiraa ADD, a zatim se signalima ADDout1 i
6550ldMAR dobijeni sadraj sa izlaza sabiraa ADD puta na internu magistralu IBUS1 150 i upisuje u
6551registar MAR15...0 bloka bus. Time se u registru MAR15...0 nalazi adresa operanda za sluaj PC relativnog
6552sa pomerajem adresiranja. Ukoliko signal store bloka addr ima vrednost 1, to znai da se radi o
6553instrukciji STB ili instrukciji STW za koje nema itanja operanda, prelazi se na korak step50 i fazu
6554izvravanje operacije. U suprotnom sluaju se prelazi na korak step3B i itanje operanda sa adrese koja
6555se nalazi u registru MAR15...0. !
6556
step39 IRDAout1, ldCW;
6557
step3A PCout2, ADDout1, ldMAR,
217

216

6558

br (if store then step50);


60

10

12

pcpom

C W < = IR

13

56

60

10

1 5 ...0

hack
0

eM A R , rd C P U
0

fc C P U
1

M D R o u t2 , ld B B

7 ...0

D W 1 5 ...8 < = M D R 7 ...0 ,


M A R<=M A R+1

M D R o u t2 , ld D W H ,
in c M A R

hack
0

eM A R , rd C P U
0

fc C P U
1

7 ...0 < = M D R

B W

1 5 ...0

<=D W
11

7 ...0

M D R o u t2 , ld D W L

1 5 ...0

D W o u t1 , ld B W
11

im m
1

LD W
0

60

im m

LD W
0

B B < = IR

6559
6560

fc C P U
1

D W

B W

hack
0

M D R<=M EM

LD W
0

B B <=M D R

fc C P U
1

LD W

hack
0

M D R<=M EM
0

56

s to re

13

P C o u t2 , A D D o u t1 ,
ld M A R

M A R<=PC+CW
s to re

12

pcpom
IR D A o u t1 , ld C W

1 5 ...0 <
13

IR J A o u t1 , M O S T 1 _ 2 ,
ld B B

1 5 ...8

= IR

IR D A o u t1 , ld B W

1 5 ...0
56

60

13

56

Slika 119 Formiranje adrese operanda (trei deo)

6561! itanje operanda !


6562! U korak step3B se dolazi iz step26 kod registarskog indirektnog adresiranja, iz step28 kod memorijskog
6563direktnog adresiranja, iz step31 kod memorijskog indirektnog adresiranja, iz step 34 kod registarskog
6564indirektnog sa pomerajem adresiranja, iz step38 kod baznog indeksnog sa pomerajem adresiranja i iz
6565step3A kod PC relativnog sa pomerajem adresiranja. U svim ovim situacijama adresa memorijske
6566lokacije sa koje treba proitati operand je sraunata u saglasnosti sa specificiranim nainom adresiranja
6567i nalazi se u registru MAR15...0 bloka bus. Za sve instrukcije za koje se ita operand iz memorije duina
6568operanda je jedan bajt sem za instrukciju LDW za koju je duina operanda dva bajta. Zbog toga se
6569najpre u koracima step3B i step3C ita jedan bajt i to na isti nain na koji se to radi u koracima step 02 i
218

217

6570step03 u kojima se ita prvi bajt instrukcije. Potom se u koraku step3D u zavisnosti od toga da li signal
6571LDW ima vrednost 0 ili 1 prelazi na korak step 3E ili korak step3F, respektivno. Kroz korak step3E se
6572prolazi samo kada je duina operanda jedan bajt. Tada se signalima MDRout2 bloka bus i ldBB bloka
6573exec sadraj registra MDR7...0 bloka bus puta na linije interne magistrale IBUS270 i upisuje u registar
6574BB7...0. Iz koraka step3E se prelazi na korak step50 i fazu izvravanje operacije. Kroz korake step3F do
6575step43 se prolazi samo kada je duina operanda dva bajta. Najpre se u koraku step 3F signalima
6576MDRout2 i ldDWH bloka bus sadraj registra MDR7...0 puta na linije interne magistrale IBUS270 i
6577upisuje u stariji bajt registra DW15...8 i signalom incMAR inkrementira sadraj registra MAR15...0 da bi
6578ukazivao na memorijsku lokaciju na kojoj se nalazi mlai bajt 16-to razrednog operanda. Potom se u
6579koracima step40 i step41 ita jedan bajt i to na isti nain na koji se to radi u koracima step 02 i step03 u
6580kojima se ita prvi bajt instrukcije. Zatim se u koraku step 42 signalima MDRout2 i ldDWL bloka bus
6581sadraj registra MDR7...0 puta na linije interne magistrale IBUS2 70 i upisuje u mlai bajt registra
6582DW7...0. Time se u registru DW15...0 nalazi 16-to bitni operand. Na kraju se u koraku step43 signalima
6583DWout1 i ldBW sadraj registra DW15...0 puta na internu magistralu IBUS1150 i upisuje u registar
6584BW15...0. Iz koraka step43 se prelazi na korak step50 i fazu izvravanje operacije. !
6585
step3B br (if hack then step3B);
6586
step3C eMAR, rdCPU,
6587
br (if fcCPU then step3C);
6588
step3D br (if LDW then step3F);
6589
step3E MDRout2, ldBB,
6590
br step50;
6591
step3F MDRout2, ldDWH, incMAR;
6592
step40 br (if hack then step40);
6593
step41 eMAR, rdCPU,
6594
br (if fcCPU then step41);
6595
step42 MDRout2, ldDWL;
6596
step43 DWout1, ldBW,
6597
br step50;
6598! Neposredno adresiranje !
6599! U korak step44 se dolazi iz step20 ukoliko signal za neposredno adresiranje imm ima vrednost 1. Iz
6600ovog koraka se ukoliko signal LDW ima vrednost 1 prelazi na korak step46 u kome se signalom
6601IRDAout1 bloka fetch 16-to bitna neposredna veliina koja se nalazi u razredima IR150 bloka fetch
6602puta na internu magistralu IBUS1150 i signalom ldBW upisuje u registar BW150. U suprotnom
6603sluaju se prelazi na korak step45 u kome se signalima IRJAout1 bloka fetch, MOST1_2 bloka bus i
6604ldBB bloka exec 8-mo bitna neposredna veliina koja se nalazi u razredima IR 158 puta najpre na linije
6605interne magistrale IBUS170 a zatim na linije interne magistrale IBUS270 i na kraju upisuje u registar
6606BB70. U oba sluaja se prelazi na korak step50 i fazu izvravanja operacije. !
6607
step44 br (if LDW then step46);
6608
step45 IRJAout1, MOST1_2, ldBB,
6609
br step50;
6610
step46 IRDAout1, ldBW,
6611
br step50;

219

218

6612! Izvravanje operacije !


6613! U korak step50 se dolazi iz koraka step07, step0E, step13, step21, step23, step24, step25, step27, step30, step33,
6614step37, step3A, step3E, step43, step45 i step46 radi izvravanja operacije (slika 120). U koraku step50 se
6615realizuje viestruki uslovni skok na jedan od koraka step51, step52, ..., stepB3 u zavisnosti od toga koji od
6616signala operacija NOP, HALT, ..., RTS ima vrednost 1. !
6617
step50 br (case (NOP, HALT, INTD, INTE, TRPD, TRPE,
6618
LDB, LDW, STB, STW, POPB, POPW, PUSHB, PUSHW,
6619
LDIVTP, STIVTP, LDIMR, STIMR, LDSP, STSP,
6620
ADD, SUB, INC, DEC, AND,OR, XOR, NOT,
6621
ASR, LSR, ROR, RORC, ASL, LSL, ROL, ROLC,
6622
BEQL, BNEQL, BNEG, BNNEG, BOVF, BNOVF, BCAR, BNCAR,
6623
BGRT, BGRTE, BLSS, BLSSE, BGRTU, BGRTEU, BLSSU, BLSSEU,
6624
JMP, INT, JSR, RTI, RTS) then
6625
(NOP, step51), (HALT, step52),
6626
(INTD, step53), (INTE, step54), (TRPD, step55), (TRPE, step56),
6627
(LDB, step57), (LDW, step59), (STB, step5A), (STW, step60),
6628
(POPB, step69), (POPW, step6E), (PUSHB, step76), (PUSHW, step7B),
6629
(LDIVTP, step84), (STIVTP, step85), (LDIMR, step86), (STIMR, step87),
6630
(LDSP, step88), (STSP, step89),
6631
(ADD, step8A), (SUB, ste8C), (INC, step8E), (DEC, step90),
6632
(AND, step92), (OR, step94), (XOR, step96), (NOT, step98),
6633
(ASR, step9A), (LSR, step9A), (ROR, step9A), (RORC, step9A),
6634
(ASL, step9C), (LSL, step9C), (ROL, step9C), (ROLC, step9C),
6635
(BEQL, step9E), (BNEQL, step9E), (BNEG, step9E), (BNNEG, step9E),
6636
(BOVF, step9E), (BNOVF, step9E), (BCAR, step9E), (BNCAR, step9E),
6637
(BGRT, step9E), (BGRE, step9E), (BLSS, step9E), (BLSSE, step9E),
6638
(BGRTU, step9E), (BGRTEU, step9E), (BLSSU, step9E), (BLSSEU, step9E),
6639
(JMP, stepA1), (INT, stepA2), (JSR, stepA3), (RTI, stepAC), (RTS, stepB3));
6640! NOP !
6641! U korak step51 se dolazi iz step50 ukoliko signal operacije NOP ima vrednost 1. Poto se radi o
6642instrukciji bez dejstva, nema generisanja upravljakih signala, ve se bezuslovno prelazi na korak step C0
6643i fazu opsluivanje prekida. !
6644
step51 br stepC0;
6645! HALT !
6646! U korak step51 se dolazi iz step50 ukoliko signal operacije HALT ima vrednost 1. Poto se radi o
6647instrukciji zaustavljanja procesora, generie se signal clSTART bloka exec, kojim se u flip-flop START
6648upisuje 0, i bezuslovno prelazi na poetni korak step00. !
6649
step52 clSTART,
6650
br step00;
6651! INTD !
6652! U korak step53 se dolazi iz step50 ukoliko signal operacije INTD ima vrednost 1. Signalom clPSWI se
6653razred PSWI bloka exec postavlja na vrednost 0. Iz koraka step53 se bezuslovno prelazi na korak stepC0 i
6654fazu opsluivanje prekida. !
6655
step53 clPSWI,
6656
br stepC0;
6657! INTE !
6658! U korak step54 se dolazi iz step50 ukoliko signal operacije INTE ima vrednost 1. Signalom stPSWI se
6659razred PSWI bloka exec postavlja na vrednost 1. Iz koraka step54 se bezuslovno prelazi na korak stepC0 i
6660fazu opsluivanje prekida. !
6661
step54 stPSWI,
6662
br stepC0;

220

219

60

13

56

60

13

56

c a s e (N O P , H A L T , ..., R T S )
...
14
15
55

c a s e (N O P , H A L T , ..., R T S )
...
14
15
55

14

14

N O P

15

N O P

15

H A LT
STA RT<=0

H A LT
c lS T A R T

16

16

IN T D
P S W I< = 0

IN T D

c lP S W I

17

17

IN T E
P S W I< = 1

IN T E

s tP S W I

18

18

TRPD
PSW T<=0

TRPD

c lP S W T

19

19

TRPE
PSW T<=1

TRPE

s tP S W T

60
56
60
56
6663
6664
Slika 120 Izvravanje operacije (prvi deo)
6665! TRPD !
6666! U korak step55 se dolazi iz step50 ukoliko signal operacije TRPD ima vrednost 1. Signalom clPSWT se
6667razred PSWT bloka exec postavlja na vrednost 0. Iz koraka step55 se bezuslovno prelazi na korak stepC0
6668i fazu opsluivanje prekida. !
6669
step55 clPSWT,
6670
br stepC0;
6671! TRPE !
6672! U korak step56 se dolazi iz step50 ukoliko signal operacije TRPE ima vrednost 1. Signalom stPSWT se
6673razred PSWT bloka exec postavlja na vrednost 1. Iz koraka step56 se bezuslovno prelazi na korak stepC0
6674i fazu opsluivanje prekida. !
6675
step56 stPSWT,
6676
br stepC0;
60

20

LD B

56

60

20

LD B

A B <=B B

B B o u t2 , M O S R 2 _ 1 ,
ld A B

PSW N <=N , PSW Z<=Z,


PSW C<=0, PSW V <=0,

ld N , ld Z ,
ld C , ld V

21

21

LD W
A W <=B W

56

LD W
B W o u t1 , ld A W

60
56
60
56
6677
6678
Slika 121 Izvravanje operacije (drugi deo)
6679! LDB !
6680! U korak step57 se dolazi iz step50 ukoliko signal operacije LDB ima vrednost 1 (slika 121). U fazi
6681izvravanja ove instrukcije se operand specificiran adresnim delom instrukcije prebacuje u registar
6682AB70. Stoga se signalima BBout2, MOST2_1 i ldAB bloka exec sadraj registra BB70 puta najpre
6683na internu magistrale IBUS270 a zatim na internu magistralu IBUS170 i na kraju upisuje u registar

221

220

6684AB70. Potom se u koraku step58 signalima ldN, ldZ, ldC i ldV bloka exec u razrede PSWN i PSWZ
6685programske statusne rei PSW15...0 upisuju vrednosti signala N i Z formirane na osnovu sadraja
6686upisanog u registar AB70 i u razrede PSWC i PSWV upisuje vrednost 0 i prelazi na korak stepC0 i fazu
6687opsluivanje prekida. !
6688
step57 BBout2, MOST2_1, ldAB;
6689
step58 ldN, ldZ, ldC, ldV,
6690
br stepC0;
6691! LDW !
6692! U korak step59 se dolazi iz step50 ukoliko signal operacije LDW ima vrednost 1. U ovom koraku se
6693signaliima BWout1 i ldAW bloka exec sadraj registra BW150 puta na internu magistralu IBUS1150 i
6694upisuje u registar AW150 i prelazi na korak stepC0 i fazu opsluivanje prekida. !
6695
step59 BWout1, ldAW,
6696
br stepC0;
60

22

STB

56

60

22

re g d ir
0

hack

hack
0

M EM <=M D R

e M A R ,e M D R ,w rC P U
0

fc C P U
1

G P R < = 0 ...0 .A B

re g d ir
0

56

A B o u t2 , m x M D R ,
ld M D R

M D R<=A B

STB

fc C P U
1

A B o u t2 , w rG P R

7 ...0

60
56
60
56
6697
6698
Slika 122 Izvravanje operacije (trei deo)
6699! STB !
6700! U korak step5A se dolazi iz step50 ukoliko signal operacije STB ima vrednost 1 (slika 122). Iz ovog
6701koraka se u zavisnosti od toga da signal regdir bloka fetch ima vrednost 0 ili 1 prelazi na korak step5B
6702ili step5F. !
6703
step5A br (if regdir then step5F);
6704! U koracima step5B, step5C, step5D i step5E se sadraj registra AB70 bloka exec upisuje u memorijsku
6705lokaciju na adresi koja je formirana u fazi formiranje adrese operanda i koja se nalazi i registru MAR 15
67060 bloka bus. Stoga se, najpre, u koraku step5B signalima ABout2 bloka exec, mxMDR i ldMDR bloka
6707bus sadraj registra AB70 puta na internu magistralu IBUS270 i kroz multiplekser MX2 i upisuje u
6708registar MDR70. Pre upisa se u koraku step5C proverava vrednost signala hack bloka bus koji
6709vrednostima 1 i 0 ukazuje da li je processor prepustio magistralu kontroleru sa direktnim pristupom
6710memoriji ili je magistrala u posedu procesora, respektivno. Ukoliko je procesor prepustio magistralu
6711ostaje se u koraku step5C, dok se u suprotnom sluaju prelazi na korak step5D. U koraku step5D se
6712realizuje upis. Signalima eMAR i eMDR bloka bus sadraji registara MAR150 i MDR70 se putaju na
6713adresne linije ABUS150 i linije podataka DBUS70 magistrale BUS i signalom wrCPU formira
6714vrednost 0 signala na upravljakoj liniji WRBUS magistrale BUS, ime se u memoriji MEM startuje
6715operacija upisa. U koraku step5D se ostaje onoliko perioda signala takta koliko je neophodno da se upis
6716realizuje. Sve vreme dok je processor u koraku step5D adresa i podatak su prisutni na linijama ABUS150
6717i DBUS70 i na liniji WRBUS je vrednost 0. Po zavrenom upisu memorija MEM generie vrednost 0
6718signala na upravljakoj liniji FCBUS magistrale BUS. U koraku step5D se proverava vrednost signala
6719fcCPU bloka bus koji vrednostima 0 i 1 ukazuje da upis nije zavren i da je upis zavren, respektivno.

222

221

6720Ukoliko upis nije zavren ostaje se u koraku step 5D, dok se u suprotnom sluaju prelazi na korak step 5E.
6721Iz koraka step5E se bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
6722
step5B ABout2, mxMDR, ldMDR;
6723
step5C br (if hack then step5C);
6724
step5D eMAR, eMDR, wrCPU,
6725
br (if fcCPU then step5D);
6726
step5E br stepC0;
6727! U koraku step5F se sadraj registra AB70 bloka exec proiren nulama do duine 16 bita signalom
6728ABout2 bloka exec puta na internu magistralu IBUS2 150 i signalom wrGPR bloka addr upisuje u
6729adresirani registar opte namene GPR 150 i bezuslovno prelazi na korak step C0 i fazu opsluivanje
6730prekida. !
6731
step5F ABout2, wrGPR,
6732
br stepC0;
60

23

STW

56

60

23

re g d ir
0

M D R<=A W

1 5 ...8

hack

hack
0

e M A R ,e M D R ,w rC P U
0

fc C P U
1

fc C P U
1

M D R < = A W 7 ...0 ,
M A R<=M A R+1

A W o u t2 , m x M D R ,
ld M D R , in c M A R

hack
0

hack
0

M EM <=M D R
0

re g d ir
0

M EM <=M D R

56

A W H o u t2 , m x M D R ,
ld M D R

STW

e M A R ,e M D R ,w rC P U
0

fc C P U
1

fc C P U
1

G PR<=A W

A W o u t2 , w rG P R

60
56
60
56
6733
6734
Slika 123 Izvravanje operacije (etvrti deo)
6735! STW !
6736! U korak step60 se dolazi iz step50 ukoliko signal operacije STW ima vrednost 1 (slika 123). Iz ovog
6737koraka se u zavisnosti od toga da li signal regdir bloka fetch ima vrednost 0 ili 1 prelazi na korak step61
6738ili step68.!
6739
step60 br (if regdir then step68);
6740! U koracima step60 do step67 se sadraj najpre starijeg bajta a zatim i mlaeg bajta registra AW150
6741bloka exec upisuje u dve susedne memorijske lokacije poev od memorijske lokacije ija je adresa
6742formirana u fazi formiranje adrese operanda i koja se nalazi i registru MAR 150 bloka bus. Stoga se,
6743najpre, u koraku step61 signalima AWHout2 bloka exec, mxMDR i ldMDR bloka bus sadraj registra
6744AW158 puta na internu magistralu IBUS270 i kroz multiplekser MX2 i upisuje u registar MDR70.
6745Upis se realizuje u koracima step62 i step63 na isti naina kao to se to radi u koracima step 5C i step5D
6746instrukcije STB. Potom se u koraku step64 signalima AWout2 bloka exec, mxMDR i ldMDR bloka bus

223

222

6747sadraj registra AW70 puta na internu magistralu IBUS270 i kroz multiplekser MX2 i upisuje u
6748registar MDR70. Upis se realizuje u koracima step65 i step66 na isti naina kao to se to radi u koracima
6749step62 i step63 za prethodni bajt. Po zavretku upisa se prelazi na korak step 67, a iz ovog koraka se
6750bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
6751
step61 AWHout2, mxMDR, ldMDR;
6752
step62 br (if hack then step62);
6753
step63 eMAR, eMDR, wrCPU,
6754
br (if fcCPU then step63);
6755
step64 AWout2, mxMDR, ldMDR, incMAR;
6756
step65 br (if hack then step65);
6757
step66 eMAR, eMDR, wrCPU,
6758
br (if fcCPU then step66);
6759
step67 br stepC0;
6760! U koraku step68 se signalima AWout2 bloka exec i wrGPR bloka addr sadraj registra AW150 bloka
6761exec puta na internu magistralu IBUS2150 i upisuje u adresirani registar opte namene GPR 150 i
6762bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
6763
step68 AWout2, wrGPR,
6764
br stepC0;
60

24

PO PB

56

60

24

M A R<=SP,
S P < = S P -1

56

S P o u t1 , ld M A R ,
decSP

hack
0

hack
0

M D R<=M EM
0

PO PB

eM A R , rd C P U
0

fc C P U
1

fc C P U
1

A B <=M D R

M D R o u t2 , M O S T 2 _ 1 ,
ld A B

PSW N <=N , PSW Z<=Z,


PSW C<=0, PSW V <=0,

ld N , ld Z ,
ld C , ld V

60
56
60
56
6765
6766
Slika 124 Izvravanje operacije (peti deo)
6767! POPB !
6768! U korak step69 se dolazi iz step50 ukoliko signal operacije POPB ima vrednost 1 (slika 124). U fazi
6769izvravanja ove instrukcije sa steka se skida bajt podatka i upisuje u registar AB70 bloka exec. Stoga
6770se, najpre, u koraku step69 signalima SPout1 bloka addr i ldMAR bloka bus sadraj registra SP150
6771puta na internu magistralu IBUS1150 i upisuje u registar MAR150. Pored toga se i signalom decSP
6772dekrementira sadraj registra SP150 bloka addr. itanje se realizuje u koracima step6A i step6B na isti
6773naina kao to se to radi u koracima step 02 i step03 u kojima se ita prvi bajt instrukcije. Potom se
6774signalima MDRout2, MOST2_1 i ldAB sadraj registra MDR70 bloka bus puta najpre na internu
6775magistralu IBUS270 a zatim na internu magistralu IBUS170 i na kraju upisuje u registar AB70 bloka
6776exec. Na kraju se signalima ldN, ldZ, ldC i ldV bloka exec u razrede PSWN i PSWZ programske
6777statusne rei PSW15...0 upisuju vrednosti signala N i Z formirane na osnovu sadraja upisanog u registar
6778AB70 i u razrede PSWC i PSWV upisuje vrednost 0 i prelazi na korak stepC0 i fazu opsluivanje
6779prekida. !
6780
step69 SPout1, ldMAR, decSP;
6781
step6A br (if hack then step6A);
6782
step6B eMAR, rdCPU,
6783
br (if fcCPU then step6B);
6784
step6C MDRout2, MOST2_1, ldAB;
6785
step6D ldN, ldZ, ldC, ldV,

224

223

6786

br stepC0;
60

25

PO PW

56

60

25

M A R<=SP,
S P < = S P -1

hack

eM A R , rd C P U
0

fc C P U
1

fc C P U
1

D W L<=M D R,
M A R<=SP,
S P < = S P -1

M D R o u t2 , ld D W L ,
S P o u t1 , ld M A R ,
decSP

hack
0

hack
0

M D R<=M EM
0

hack
0

M D R<=M EM

56

S P o u t1 , ld M A R ,
decSP

PO PW

eM A R , rd C P U
0

fc C P U
1

fc C P U
1

D W H <=M D R

M D R o u t2 , ld D W H

A W <=D W

M D R o u t2 , ld A W

60
56
60
56
6787
6788
Slika 125 Izvravanje operacije (esti deo)
6789! POPW !
6790! U korak step6E se dolazi iz step50 ukoliko signal operacije POPW ima vrednost 1 (slika 125). U fazi
6791izvravanja ove instrukcije sa steka se skidaju dva bajta podatka i upisuju u registar AW150 bloka exec.
6792Stoga se, najpre, u koraku step6E signalima SPout1 bloka addr i ldMAR bloka bus sadraj registra
6793SP150 puta na internu magistralu IBUS1 150 i upisuje u registar MAR150. Pored toga se i signalom
6794decSP dekrementira sadraj registra SP 150. itanje se realizuje u koracima step 6F i step70 na isti naina
6795kao to se to radi u koracima step02 i step03 u kojima se ita prvi bajt instrukcije. Potom se signalima
6796MDRout2 i ldDWL sadraj registra MDR70 bloka bus puta na internu magistralu IBUS270 i upisuje
6797u mlai bajt registra DW70 bloka exec, a signalima SPout1 i ldMAR sadraj registra SP150 puta na
6798internu magistralu IBUS1150 i upisuje u registar MAR150. Pored toga se i signalom decSP
6799dekrementira sadraj registra SP150. itanje se realizuje u koracima step72 i step73 na isti nain kao to
6800se to radi u koracima step6F i step70 u kojima se ita prethodni bajt. Potom se signalima MDRout2 i
6801ldDWH sadraj registra MDR70 puta na internu magistralu IBUS270 i upisuje u stariji bajt registra
6802DW158. Time se u registru DW150 nalazi 16-to bitna vrednost skinuta sa steka. Na kraju se signalom
6803DWout1 sadraj registra DW150 puta na internu magistralu IBUS1150 i signalom ldAW upisuje u
6804registar AW150 bloka exec i prelazi na korak stepC0 i fazu opsluivanje prekida. !
6805
step6E SPout1, ldMAR, decSP;
6806
step6F br (if hack then step6F);
6807
step70 eMAR, rdCPU,
6808
br (if fcCPU then step70);
6809
step71 MDRout2, ldDWL, SPout1, ldMAR, decSP;
6810
step72 br (if hack then step72);
6811
step73 eMAR, rdCPU,
6812
br (if fcCPU then step73);
6813
step74 MDRout2, ldDWH;
6814
step75 DWout1, ldAW;
6815
br stepC0;

225

224

60

26

PU SH B
SP<=SP+1

56

60

26

S P o u t1 , ld M A R ,
A B o u t2 , m x M D R ,
ld M D R

hack
0

hack
0

M EM <=M D R
0

56

in c S P

M A R<=SP,
M D R<=A B

PU SH B

e M A R ,e M D R ,w rC P U
0

fc C P U
1

fc C P U
1

60
56
60
56
6816
6817
Slika 126 Izvravanje operacije (sedmi deo)
6818! PUSHB !
6819! U korak step76 se dolazi iz step50 ukoliko signal operacije PUSHB ima vrednost 1 (slika 126). U fazi
6820izvravanja ove instrukcije se sadraj registra AB70 bloka exec stavlja na vrh steka. Stoga se najpre u
6821koraku step76 signalom incSP vri inkrementiranje registra SP150 bloka addr. Zatim se u koraku step77
6822signalima SPout1 i ldMAR sadraj registra SP150 puta na internu magistralu IBUS1150 i upisuje u
6823registar MAR150 i signalima ABout2, mxMDR i ldMDR sadraj registra AB70 puta na linije interne
6824magistrale IBUS270 i kroz multiplekser MX2 bloka bus i upisuje u registar MDR 70. Upis se realizuje
6825u koracima step78 i step79 na isti naina kao to se to radi u koracima step5C i step5D instrukcije STB. Na
6826kraju se iz koraka step7A bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
6827
step76 incSP;
6828
step77 SPout1, ldMAR, ABout2, mxMDR, ldMDR;
6829
step78 br (if hack then step78);
6830
step79 eMAR, eMDR, wrCPU,
6831
br (if fcCPU then step79);
6832
step7A br stepC0;
6833! PUSHW !
6834! U korak step7B se dolazi iz step50 ukoliko signal operacije PUSHW ima vrednost 1 (slika 127). U fazi
6835izvravanja ove instrukcije se sadraj registra AW150 bloka exec stavlja na stek i to prvo stariji a zatim
6836i mlai bajt. Stoga se u koraku step7B signalom incSP vri inkrementiranje registra SP150 bloka addr.
6837Zatim se u koraku step7C signalima SPout1 i ldMAR sadraj registra SP150 puta na internu
6838magistralu IBUS1150 i upisuje u registar MAR150 i signalima AWHout2, mxMDR i ldMDR sadraj
6839starijeg bajta registra AW158 puta na linije interne magistrale IBUS270 i kroz multiplekser MX2
6840bloka bus i upisuje u registar MDR70. Upis se realizuje u koracima step 7D i step7E na isti nain kao to
6841se to radi u koracima step5C i step5D instrukcije STB. Ponovo se sada u koraku step 7F signalom incSP
6842vri inkrementiranje registra SP150. Zatim se u koraku step80 signalima SPout1 i ldMAR sadraj
6843registra SP150 puta na internu magistralu IBUS1150 i upisuje u registar MAR150 i signalima
6844AWout2, mxMDR i ldMDR sadraj mlaeg bajta registra AW70 puta na linije interne magistrale
6845IBUS270 i kroz multiplekser MX2 bloka bus i upisuje u registar MDR70. Upis se realizuje u
6846koracima step81 i step82 na isti naina kao to se to radi u koracima step 7D i step7E. Na kraju se iz koraka
6847step83 bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
6848
step7B incSP;
6849
step7C SPout1, ldMAR, AWHout2, mxMDR, ldMDR;
6850
step7D br (if hack then step7D);
6851
step7E eMAR, eMDR, wrCPU,
6852
br (if fcCPU then step7E);
6853
step7F incSP;
6854
step80 SPout1, ldMAR, AWout2, mxMDR, ldMDR;
6855
step81 br (if hack then step81);

226

225

6856
6857
6858

step82 eMAR, eMDR, wrCPU,


br (if fcCPU then step82);
step83 br stepC0;
60

27

PU SH W
SP<=SP+1

56

60

27

S P o u t1 , ld M A R ,
A W H o u t2 , m x M D R ,
ld M D R

hack
0

e M A R ,e M D R ,w rC P U
0

fc C P U
1

in c S P

M A R<=SP,
M D R < = A W 7 ...0

S P o u t1 , ld M A R ,
A W o u t2 , m x M D R ,
ld M D R

hack

e M A R ,e M D R ,w rC P U
0

fc C P U
1

227

60

hack
0

M EM <=M D R

6859
6860

fc C P U

SP<=SP+1

hack
0

M EM <=M D R
0

56

in c S P

M A R<=SP,
M D R < = A W 1 5 ...8

PU SH W

fc C P U
1

56

60

Slika 127 Izvravanje operacije (osmi deo)

226

56

60

28

L D IV T P
A W < = IV T P

56

60

29

L D IV T P
IV T P o u t1 , ld A W

56

29

S T IV T P
IV T P < = A W

S T IV T P
A W o u t2 , ld IV T P

30

30

L D IM R
A W < = IM R

L D IM R
IM R o u t1 , ld A W

31

31

S T IM R
IM R < = A W

S T IM R
A W o u t2 , ld IM R

32

32

LD SP
A W <=SP
33

28

LD SP
S P o u t1 , ld A W
33

STSP

STSP
A W o u t2 , ld S P

SP<=A W

60
56
60
56
6861
6862
Slika 128 Izvravanje operacije (deveti deo)
6863! LDIVTP !
6864! U korak step84 se dolazi iz step50 ukoliko signal operacije LDIVTP ima vrednost 1 (slika 128). U fazi
6865izvravanja ove instrukcije se sadraj registra IVTP 150 bloka intr upisuje u registar AW150 bloka exec.
6866Stoga se signalima IVTPout1 i ldAW sadraj registra IVTP150 puta na internu magistralu IBUS1150
6867i upisuje u registar AW150. Na kraju se iz koraka step 84 bezuslovno prelazi na korak stepC0 i fazu
6868opsluivanje prekida. !
6869
step84 IVTPout1, ldAW,
6870
br stepC0;
6871! STIVTP !
6872! U korak step85 se dolazi iz step50 ukoliko signal operacije STIVTP ima vrednost 1. U fazi izvravanja
6873ove instrukcije se sadraj registra AW150 bloka exec upisuje u registar IVTP150 bloka intr. Stoga se
6874signalima AWout2 i ldIVTP sadraj registra AW150 puta na internu magistralu IBUS2150 i upisuje u
6875registar IVTP150. Na kraju se iz koraka step85 bezuslovno prelazi na korak stepC0 i fazu opsluivanje
6876prekida. !
6877
step85 AWout2, ldIVTP,
6878
br stepC0;
6879! LDIMR !
6880! U korak step86 se dolazi iz step50 ukoliko signal operacije LDIMR ima vrednost 1. U fazi izvravanja
6881ove instrukcije se sadraj registra IMR 150 bloka intr upisuje u registar AW150 bloka exec. Stoga se
6882signalima IMRout1 i ldAW sadraj registra IMR150 puta na internu magistralu IBUS1150 i upisuje u
6883registar AW150. Na kraju se iz koraka step86 bezuslovno prelazi na korak stepC0 i fazu opsluivanje
6884prekida. !
6885
step86 IMRout1, ldAW,
6886
br stepC0;
6887! STIMR !
6888! U korak step87 se dolazi iz step50 ukoliko signal operacije STIMR ima vrednost 1. U fazi izvravanja
6889ove instrukcije se sadraj registra AW150 bloka exec upisuje u registar IMR150 bloka intr. Stoga se
6890signalima AWout2 i ldIMR sadraj registra AW150 puta na internu magistralu IBUS2150 i upisuje u
6891registar IMR150. Na kraju se iz koraka step87 bezuslovno prelazi na korak stepC0 i fazu opsluivanje
6892prekida. !
6893
step87 AWout2, ldIMR,
6894
br stepC0;

228

227

6895! LDSP !
6896! U korak step88 se dolazi iz step50 ukoliko signal operacije LDSP ima vrednost 1. U fazi izvravanja
6897ove instrukcije se sadraj registra SP 150 bloka addr upisuje u registar AW150 bloka exec. Stoga se
6898signalima SPout1 i ldAW sadraj registra SP150 puta na internu magistralu IBUS1150 i upisuje u
6899registar AW150. Na kraju se iz koraka step88 bezuslovno prelazi na korak stepC0 i fazu opsluivanje
6900prekida. !
6901
step88 SPout1, ldAW,
6902
br stepC0;
6903! STSP !
6904! U korak step89 se dolazi iz step50 ukoliko signal operacije STSP ima vrednost 1. U fazi izvravanja ove
6905instrukcije se sadraj registra AW150 bloka exec upisuje u registar SP150 bloka addr. Stoga se signal
6906ima AWout2 i ldSP sadraj registra AW150 puta na internu magistralu IBUS2150 i upisuje u registar
6907SP150. Na kraju se iz koraka step89 bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
6908
step89 AWout2, ldSP,
6909
br stepC0;
60

34

A D D

56

60

34

A D D

A B <=A B +B B ,
PSW C<=C, PSW V <=V

B B o u t2 , a d d , A L U o u t1 ,
ld A B , ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

35

35

SU B

SU B

A B < = A B -B B ,
PSW C<=C, PSW V <=V

B B o u t2 , s u b , A L U o u t1 ,
ld A B , ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

36

36

IN C

IN C

A B <=A B +1,
PSW C<=C, PSW V <=V

in c , A L U o u t1 ,
ld A B , ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

37

37

D EC

56

D EC

A B < = A B -1 ,
PSW C<=C, PSW V <=V

d e c , A L U o u t1 ,
ld A B , ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

60
56
60
56
6910
6911
Slika 129 Izvravanje operacije (deseti deo)
6912! ADD !
6913! U korak step8A se dolazi iz step50 ukoliko signal operacije ADD ima vrednost 1 (slika 129). U fazi
6914izvravanja ove instrukcije se sabiraju sadraji registra AB70 bloka exec koji se koristi kao akumulator
6915i registra BB70 bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije i rezultat
6916upisuje u registar AB70. Stoga se, najpre, signalom add bloka exec na izlazima ALU70 formira suma
6917sadraja registara AB70, koji se na ulaz ALU dovodi direktno, i BB 70, koji se na ulaz ALU dovodi
6918signalom BBout2 preko linija interne magistrale IBUS270, pa se zatim signalima ALUout1 i ldAB
6919dobijena suma puta na linije interne magistrale IBUS170 i upisuje u registar AB70. Istovremeno se
6920signalima ldC i ldV bloka exec u razrede PSWC i PSWV programske statusne rei PSW 150 upisuju
6921vrednosti signala C i V bloka exec formirane na osnovu dobijenog rezultata na izlazima ALU70. U
6922koraku step8B se signalima ldN i ldZ bloka exec u razrede PSWN i PSWZ programske statusne rei
6923PSW150 upisuju vrednosti signala N i Z bloka exec formirane na osnovu sadraja upisanog u registar
6924AB70 i prelazi na korak stepC0 i fazu opsluivanje prekida. !
6925
step8A BBout2, add, ALUout1, ldAB, ldC, ldV;
6926
step8B ldN, ldZ,
6927
br stepC0;

229

228

6928! SUB !
6929! U korak step8C se dolazi iz step50 ukoliko signal operacije SUB ima vrednost 1. U fazi izvravanja ove
6930instrukcije se od sadraja registra AB70 bloka exec koji se koristi kao akumulator oduzima sadraj
6931registra BB70 bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije i rezultat
6932upisuje u registar AB70. Stoga se, najpre, signalom sub bloka exec na izlazima ALU70 formira razlika
6933sadraja registara AB70, koji se na ulaz ALU dovodi direktno, i BB 70, koji se na ulaz ALU dovodi
6934signalom BBout2 preko linija interne magistrale IBUS270, pa se zatim signalima ALUout1 i ldAB
6935dobijena razlika puta na linije interne magistrale IBUS170 i upisuje u registar AB70. Istovremeno se
6936signalima ldC i ldV bloka exec u razrede PSWC i PSWV programske statusne rei PSW 150 upisuju
6937vrednosti signala C i V bloka exec formirane na osnovu dobijenog rezultata na izlazima ALU70. U
6938koraku step8D se signalima ldN i ldZ bloka exec u razrede PSWN i PSWZ programske statusne rei
6939PSW150 upisuju vrednosti signala N i Z bloka exec formirane na osnovu sadraja upisanog u registar
6940AB70 i prelazi na korak stepC0 i fazu opsluivanje prekida. !
6941
step8C BBout2, sub, ALUout1, ldAB, ldC, ldV;
6942
step8D ldN, ldZ,
6943
br stepC0;
6944! INC !
6945! U korak step8E se dolazi iz step50 ukoliko signal operacije INC ima vrednost 1. U fazi izvravanja ove
6946instrukcije se sabira sadraj registra AB70 bloka exec koji se koristi kao akumulator i vrednost 1 i
6947rezultat upisuje u registar AB70. Stoga se, najpre, signalom inc bloka exec na izlazima ALU70 formira
6948suma sadraja registra AB70 i vrednosti 1, pa se zatim signalima ALUout1 i ldAB dobijena suma
6949puta na linije interne magistrale IBUS170 i upisuje u registar AB70. Istovremeno se signalima ldC i
6950ldV bloka exec u razrede PSWC i PSWV programske statusne rei PSW 150 upisuju vrednosti signala
6951C i V bloka exec formirane na osnovu dobijenog rezultata na izlazima ALU70. U koraku step8F se
6952signalima ldN i ldZ bloka exec u razrede PSWN i PSWZ programske statusne rei PSW 150 upisuju
6953vrednosti signala N i Z bloka exec formirane na osnovu sadraja upisanog u registar AB70 i prelazi na
6954korak stepC0 i fazu opsluivanje prekida. !
6955
step8E inc, ALUout1, ldAB, ldC, ldV;
6956
step8F ldN, ldZ,
6957
br stepC0;
6958! DEC !
6959! U korak step90 se dolazi iz step50 ukoliko signal operacije DEC ima vrednost 1. U fazi izvravanja ove
6960instrukcije se od sadraj registra AB70 bloka exec koji se koristi kao akumulator i oduzima vrednost 1 i
6961rezultat upisuje u registar AB70. Stoga se, najpre, signalom dec bloka exec na izlazima ALU70 formira
6962razlika sadraja registra AB70 i vrednosti 1, pa se zatim signalima ALUout1 i ldAB dobijena razlika
6963puta na linije interne magistrale IBUS170 i upisuje u registar AB70. Istovremeno se signalima ldC i
6964ldV bloka exec u razrede PSWC i PSWV programske statusne rei PSW 150 upisuju vrednosti signala
6965C i V bloka exec formirane na osnovu dobijenog rezultata na izlazima ALU70. U koraku step91 se
6966signalima ldN i ldZ bloka exec u razrede PSWN i PSWZ programske statusne rei PSW 150 upisuju
6967vrednosti signala N i Z bloka exec formirane na osnovu sadraja upisanog u registar AB70 i prelazi na
6968korak stepC0 i fazu opsluivanje prekida. !
6969
step90 dec, ALUout1, ldAB, ldC, ldV;
6970
step91 ldN, ldZ,
6971
br stepC0;
6972! AND !
6973! U korak step92 se dolazi iz step50 ukoliko signal operacije AND ima vrednost 1 (slika 130). U fazi
6974izvravanja ove instrukcije se nad sadrajima registra AB70 bloka exec koji se koristi kao akumulator i
6975registra BB70 bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije realizuje
6976logika I operacija i rezultat upisuje u registar AB 70. Stoga se, najpre, signalom and bloka exec na
6977izlazima ALU70 formira rezultat logike I operacije sadraja registara AB70, koji se na ulaz ALU
6978dovodi direktno, i BB70, koji se na ulaz ALU dovodi signalom BBout2 preko linija interne magistrale
6979IBUS270, pa se zatim signalima ALUout1 i ldAB dobijen rezultat puta na linije interne magistrale
6980IBUS170 i upisuje u registar AB70. U koraku step93 se signalima ldN, ldZ, ldC i ldV bloka exec u
6981razrede PSWN i PSWZ programske statusne PSW150 rei upisuju vrednosti signala N i Z formirane na
6982osnovu sadraja upisanog u registar AB70 i u razrede PSWC i PSWV upisuje vrednost 0 i prelazi na
6983korak stepC0 i fazu opsluivanje prekida. !
6984
step92 BBout2, and, ALUout1, ldAB;
230

229

6985
6986

step93 ldN, ldZ, ldC, ldV,


br stepC0;
60

38

A N D

56

60

38

A N D

A B < = A B B B

B B o u t2 , a n d ,
A L U o u t1 , ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

39

39

O R

O R

A B < = A B B B

B B o u t2 , o r,
A L U o u t1 , ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

40

40

X O R

X O R

A B <=A B B B

B B o u t2 , x o r,
A L U o u t1 , ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

41

41

N O T
n o t, A L U o u t1 , ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

N O T
A B <=A B

56

60
56
60
56
6987
6988
Slika 130 Izvravanje operacije (jedanaesti deo)
6989! OR !
6990! U korak step94 se dolazi iz step50 ukoliko signal operacije OR ima vrednost 1. U fazi izvravanja ove
6991instrukcije se nad sadrajima registra AB70 bloka exec koji se koristi kao akumulator i registra BB70
6992bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije realizuje logika ILI
6993operacija i rezultat upisuje u registar AB70. Stoga se, najpre, signalom or bloka exec na izlazima
6994ALU70 formira rezultat logike ILI operacije sadraja registara AB70, koji se na ulaz ALU dovodi
6995direktno, i BB70, koji se na ulaz ALU dovodi signalom BBout2 preko linija interne magistrale IBUS27
69960, pa se zatim signalima ALUout1 i ldAB dobijeni rezultat puta na linije interne magistrale IBUS170 i
6997upisuje u registar AB70. U koraku step95 se signalima ldN, ldZ, ldC i ldV bloka exec u razrede PSWN
6998i PSWZ programske statusne rei PSW 150 upisuju vrednosti signala N i Z formirane na osnovu
6999sadraja upisanog u registar AB70 i u razrede PSWC i PSWV upisuje vrednost 0 i prelazi na korak
7000stepC0 i fazu opsluivanje prekida. !
7001
step94 BBout2, or, ALUout1, ldAB;
7002
step95 ldN, ldZ, ldC, ldV,
7003
br stepC0;

231

230

7004! XOR !
7005! U korak step96 se dolazi iz step50 ukoliko signal operacije XOR ima vrednost 1. U fazi izvravanja ove
7006instrukcije se nad sadrajima registra AB70 bloka exec koji se koristi kao akumulator i registra AB70
7007bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije realizuje logika
7008ekskluzivno ILI operacija i rezultat upisuje u registar AB70. Stoga se, najpre, signalom xor bloka exec
7009na izlazima ALU70 formira rezultat logike ekskluzivno ILI operacije sadraja registara AB70, koji se
7010na ulaz ALU dovodi direktno, i BB70, koji se na ulaz ALU dovodi signalom BBout2 preko linija interne
7011magistrale IBUS270, pa se zatim signalima ALUout1 i ldAB dobijen rezultat puta na linije interne
7012magistrale IBUS170 i upisuje u registar AB70. U koraku step97 se signalima ldN, ldZ, ldC i ldV bloka
7013exec u razrede PSWN i PSWZ programske statusne rei PSW 150 upisuju vrednosti signala N i Z
7014formirane na osnovu sadraja upisanog u registar AB70 i u razrede PSWC i PSWV upisuje vrednost 0
7015i prelazi na korak stepC0 i fazu opsluivanje prekida. !
7016
step96 BBout2, xor, ALUout1, ldAB;
7017
step97 ldN, ldZ, ldC, ldV,
7018
br stepC0;
7019! NOT !
7020! U korak step98 se dolazi iz step50 ukoliko signal operacije NOT ima vrednost 1. U fazi izvravanja ove
7021instrukcije se invertuju bitovi registra AB70 bloka exec koji se koristi kao akumulator i rezultat upisuje
7022u registar AB70. Stoga se, najpre, signalom not bloka exec na izlazima ALU70 formiraju invertovane
7023vrednosti bitova registra AB70, pa se zatim signalima ALUout1 i ldAB dobijeni rezultat puta na linije
7024interne magistrale IBUS170 i upisuju u registar AB70. U koraku step99 se signalima ldN, ldZ, ldC i
7025ldV bloka exec u razrede PSWN i PSWZ programske statusne rei PSW 150 upisuju vrednosti signala
7026N i Z formirane na osnovu sadraja upisanog u registar AB70 i u razrede PSWC i PSWV upisuje
7027vrednost 0 i prelazi na korak stepC0 i fazu opsluivanje prekida. !
7028
step98 not, ALUout1, ldAB;
7029
step99 ldN, ldZ, ldC, ldV,
7030
br stepC0;
7031! ASR, LSR, ROR i ROLC !
7032! U korak step9A se dolazi iz step50 ukoliko neki od signala operacije ASR, LSR, ROR i ROLC ima
7033vrednost 1 (slika 131). U fazi izvravanja ove instrukcije se bitovi registra AB 70 bloka exec koji se
7034koristi kao akumulator aritmetiki pomeraju za jedno mesto udesno ukoliko signal ASR ima vrednost 1,
7035logiki pomeraju za jedno mesto udesno ukoliko signal LSR ima vrednost 1, rotiraju za jedno mesto
7036udesno ukoliko signal ROR ima vrednost 1 i rotiraju zajedno sa razredom PSWC programske statusne
7037rei PSW150 za jedno mesto udesno ukoliko signal RORC ima vrednost 1. Stoga se signalom shr bloka
7038exec bitovi registra AB70 pomeraju udesno za jedno mesto, pri emu se u u razred AB7 upisuje signal
7039IR sa izlaza multipleksera MX3 bloka exec. U sluaju aritmetikog pomeranja za jedno mesto udesno
7040to je signal AB7. Ovaj signal se selektuje na izlazu IR multipleksera MX3 binarnom vrednou 0 signala
7041selekcije multipleksera MX3 koji se dobijaju na izlazu kodera CD1 zbog vrednosti 1 signala ASR na
7042ulazu 0 kodera CD1. U sluaju logikog pomeranja za jedno mesto udesno to je signal 0. Ovaj signal se
7043selektuje na izlazu IR multipleksera MX3 binarnom vrednou 1 signala selekcije multipleksera MX3
7044koji se dobijaju na izlazu kodera CD1 zbog vrednosti 1 signala LSR na ulazu 1 kodera CD1. U sluaju
7045rotiranja za jedno mesto udesno to je signal AB0. Ovaj signal se selektuje na izlazu IR multipleksera
7046MX3 binarnom vrednou 2 signala selekcije multipleksera MX3 koji se dobijaju na izlazu kodera CD1
7047zbog vrednosti 1 signala ROR na ulazu 2 kodera CD1. U sluaju rotiranja zajedno sa razredom PSWC
7048programske statusne rei PSW150 za jedno mesto udesno to je signal PSWC. Ovaj signal se selektuje
7049na izlazu IR multipleksera MX3 binarnom vrednou 3 signala selekcije multipleksera MX3 koji se
7050dobijaju na izlazu kodera CD1 zbog vrednosti 1 signala RORC na ulazu 3 kodera CD1. Istovremeno se
7051signalom ldC bloka exec u razred PSWC programske statusne rei PSW 150 upisuje vrednost signala C
7052bloka exec. U sluaju svih pomeranja i rotiranja za jedno mesto udesno to je signal AB0. U koraku
7053step9B se signalima ldN i ldZ bloka exec u razrede PSWN i PSWZ programske statusne PSW 150 rei
7054upisuju vrednosti signala N i Z bloka exec formirane na osnovu sadraja upisanog u registar AB70 i
7055signalom ldV bloka exec u razred PSWV programske statusne rei PSW 150 upisuje vrednost 0 signala
7056V. Iz koraka step9B se bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
7057
step9A shr, ldC;
7058
step9B ldN, ldZ, ldV,
7059
br stepC0;

232

231

60

42

A B

7 ...0 <

= A B 7.A B
PSW C<=C

A B

7 ...1

60

ld N ,
ld Z ,
ld V

43

43

LSR

7 ...0 < = 0 . A B
PSW C<=C

7 ...1 ,

ld N ,
ld Z ,
ld V

44

44

RO R
7 ...1 ,

ld N ,
ld Z ,
ld V

45

45

RO RC

< = P S W C .A B
PSW C<=C

7 ...1

60

LSR

RO R

sh r,
ld C

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

7 ...0

56

sh r,
ld C

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

7 ...0 < = A B 0 . A B
PSW C<=C

A SR

sh r,
ld C

RO RC

sh r,
ld C

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

7060
7061

42

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

A B

A B

56

A SR

ld N ,
ld Z ,
ld V
56

60

56

Slika 131 Izvravanje operacije (dvanaesti deo)

7062! ASL, LSL, ROL i ROLC !


7063! U korak step9C se dolazi iz step50 ukoliko neki od signala operacije ASL, LSL, ROL i ROLC ima
7064vrednost 1 (slika 132). U fazi izvravanja ove instrukcije se bitovi registra AB 70 bloka exec koji se
7065koristi kao akumulator aritmetiki pomeraju za jedno mesto ulevo ukoliko signal ASL ima vrednost 1,
7066logiki pomeraju za jedno mesto ulevo ukoliko signal LSL ima vrednost 1, rotiraju za jedno mesto ulevo
7067ukoliko signal ROL ima vrednost 1 i rotiraju zajedno sa razredom PSWC programske statusne rei
7068PSW150 za jedno mesto ulevo ukoliko signal ROLC ima vrednost 1. Stoga se signalom shl bloka exec
7069bitovi registra AB70 pomeraju ulevo za jedno mesto, pri emu se u u razred AB 0 upisuje signal IL sa
7070izlaza multipleksera MX4 bloka exec. U sluaju aritmetikog pomeranja za jedno mesto ulevo to je
7071signal 0. Ovaj signal se selektuje na izlazu IL multipleksera MX4 binarnom vrednou 0 signala
7072selekcije multipleksera MX3 koji se dobijaju na izlazu kodera CD2 zbog vrednosti 1 signala ASL na
7073ulazu 0 kodera CD2. U sluaju logikog pomeranja za jedno mesto ulevo to je signal 0. Ovaj signal se
7074selektuje na izlazu IL multipleksera MX4 binarnom vrednou 1 signala selekcije multipleksera MX4
7075koji se dobijaju na izlazu kodera CD2 zbog vrednosti 1 signala LSL na ulazu 1 kodera CD2. U sluaju
7076rotiranja za jedno mesto ulevo to je signal AB7. Ovaj signal se selektuje na izlazu IL multipleksera MX4
7077binarnom vrednou 2 signala selekcije multipleksera MX4 koji se dobijaju na izlazu kodera CD2 zbog
7078vrednosti 1 signala ROL na ulazu 2 kodera CD2. U sluaju rotiranja zajedno sa razredom PSWC
7079programske statusne rei PSW150 za jedno mesto ulevo to je signal PSWC. Ovaj signal se selektuje na
7080izlazu IL multipleksera MX4 binarnom vrednou 3 signala selekcije multipleksera MX4 koji se
7081dobijaju na izlazu kodera CD2 zbog vrednosti 1 signala ROLC na ulazu 3 kodera CD2. Istovremeno se
7082signalom ldC bloka exec u razred PSWC programske statusne rei PSW 150 upisuje vrednost signala C
7083bloka exec. U sluaju svih pomeranja i rotiranja za jedno mesto ulevo to je signal AB7. U koraku stepA0

233

232

7084se signalima ldN i ldZ bloka exec u razrede PSWN i PSWZ programske statusne PSW 150 rei upisuju
7085vrednosti signala N i Z bloka exec formirane na osnovu sadraja upisanog u registar AB70 i signalom
7086ldV bloka exec u razred PSWV programske statusne rei PSW 150 upisuje vrednost 0 signala V. Iz
7087koraka step9D se bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
7088
step9C shl, ldC;
7089
step9D ldN, ldZ, ldV,
7090
br stepC0;
60

46

A B

A SL

56

60

7 ...0 < = A B 6 ...0 . 0 ,


PSW C<=C

46

A SL

s h l,
ld C

PSW N <=N , PSW Z<=Z,


PSW V <=0

ld N , ld Z ,
ld V

47

47

A B

LSL

7 ...0 < = A B 6 ...0 . 0 ,


PSW C<=C

LSL

s h l,
ld C

PSW N <=N , PSW Z<=Z,


PSW V <=0

ld N , ld Z ,
ld V

48

48

A B

RO L

7 ...0 < = A B 6 ...0 . A B 7 ,


PSW C<=C

RO L

s h l,
ld C

PSW N <=N , PSW Z<=Z,


PSW V <=0

ld N , ld Z ,
ld V

49

49

A B

56

RO LC

7 ...0 < = A B 6 ...0 . P S W C ,


PSW C<=C

RO LC

s h l,
ld C

PSW N <=N , PSW Z<=Z,


PSW V <=0

ld N , ld Z ,
ld V

60
56
60
56
7091
7092
Slika 132 Izvravanje operacije (trinaesti deo)
7093! BEQL,, BLSSEU !
7094! U korak step9E se dolazi iz step50 ukoliko jedan od 16 signala operacija uslovnog skoka BEQL,
7095BNEQL, BNEG, BNNEG, BOVF, BNOVF, BCAR, BNCAR, BGRT, BGRTE, BLSS, BLSSE,
7096BGRTU, BGRTEU, BLSSU i BLSSEU ima vrednost 1 (slika 133). Iz koraka step9E se prelazi na
7097stepC0 i fazu opsluivanje prekida ukoliko signal brpom bloka exec ima vrednost 0 i na korak step9F
7098ukoliko ima vrednost 1. Signal brpom ima vrednost 1 ukoliko od 16 signala rezultata operacije eql,
7099neql, neg, nneg, ovf, novf, car, ncar, grt, grte, lss, lsse, grtu, grteu, lssu i lsseu vrednost 1 ima onaj
7100signal koji je odreen vrednou 1 odgovarajueg signala od 16 signala operacija uslovnog skoka
7101BEQL, BNEQL, BNEG, BNNEG, BOVF, BNOVF, BCAR, BNCAR, BGRT, BGRTE, BLSS,
7102BLSSE, BGRTU, BGRTEU, BLSSU i BLSSEU. Signalom IRBRout1 se u koraku step9E na linije
7103interne magistrale IBUS13..0 puta sadraj razreda IR27... 24 registra IR31...0 bloka fetch. Bitovi IBUS12..0 se
7104vode na upravljake ulaze multipleksera MX7 i MX8 bloka exec, ime se vri selekcija po jednog
7105signala iz dve grupe signala rezultata operacije, dok se bit IBUS13 vodi na upravljaki ulaz
7106multipleksera MX9, ime se izmeu signala rezultata operacije selektovanih multiplekserima MX7 i
7107MX8 selektuje signal rezultata operacije koji odgovara kodu operacije uslovnog skoka. Selektovani
7108signal rezultata operacije je oznaen sa brpom. !
7109
step9E IRBRout1,
7110
br (if brpom then stepC0);

234

233

60

50

B E Q L ,...,B L S S E U
I B U S 1 3 ..0 < = I R 2 7 ...2 4

56

60

b rp o m

23

...IR

51

P C < = IR

23

.I R

IR P O M o u t1 , ld C W
2 3 ...1 6

P C o u t2 , A D D o u t1 ,
ld P C
51

JM P

JM P
IR J A o u t1 , ld P C

2 3 ...8

52

52

IN T
P R IN S < = 1
60

56

PC<=PC+CW

7111
7112

B E Q L ,...,B L S S E U
IR B R o u t1
b rp o m

CW <=
IR

50

IN T

s tP R IN S
56

60

56

Slika 133 Izvravanje operacije (etrnaesti deo)

7113! U korak step9F se dolazi iz step9E ukoliko signal brpom ima vrednost 1, ime je uslov za skok ispunjen.
7114U ovom koraku se signalom IRPOMout1 pomeraj iz IR23...16 bloka fetch proiren znakom na 16 bita
7115puta na internu magistralu IBUS1150 i signalom ldCW upisuje u prihvatni registar CW15...0 sabiraa
7116ADD bloka addr. U koraku stepA0 se, najpre, na izlazima sabiraa ADD bloka addr formira suma
7117sadraja registra CW15...0, koji se direktno vodi na ulaze sabiraa, i registra PC 150, koji se signalom
7118PCout2 puta na linije interne magistrale IBUS2 150 i ulaze sabiraa, pa se zatim dobijena suma
7119signalima ADDout1 i ldPC puta na internu magistralu IBUS1150 i upisuje u registar PC15...0. Pored
7120toga iz koraka stepA0 se bezuslovno prelazi na stepC0 i fazu opsluivanje prekida. !
7121
step9F IRPOMout1, ldCW;
7122
stepA0 PCout2, ADDout1, ldPC,
7123
br stepC0;
7124! JMP !
7125! U korak stepA1 se dolazi iz step50 ukoliko signal operacije JMP ima vrednost 1. U fazi izvravanja ove
7126instrukcije se realizuje bezuslovni skok na adresu koja je data u samoj instrukciji. Stoga se sadraj
7127registra IR238 bloka fetch koji predstavlja adresu skoka signalima IRJAout1 i ldPC puta na internu
7128magistralu IBUS1150 i upisuje u registar PC 150. Pored toga iz koraka stepA1 se bezuslovno prelazi na
7129stepC0 i fazu opsluivanje prekida. !
7130
stepA1 IRJAout1, ldPC,
7131
br stepC0;
7132! INT !
7133! U korak stepA2 se dolazi iz step50 ukoliko signal operacije INT ima vrednost 1. U fazi izvravanja ove
7134instrukcije se samo evidentira da se radi o instrukciji prekida i prelazi na fazu opsluivanje prekida iz
7135koje se zatim skae na prekidnu rutinu na osnovu broja ulaza u tabelu sa adresama prekidnih rutina koji
7136je dat u samoj instrukciji. Stoga se signalom stPRINS flip-flop PRINS bloka intr postavlja na vrednost
71371 i bezuslovno prelazi na stepC0 i fazu opsluivanje prekida. !
7138
stepA2 stPRINS,
7139
br stepC0;

235

234

60

53

JS R
SP<=SP+1

56

60

53

S P o u t1 , ld M A R ,
P C H o u t2 , m x M D R ,
ld M D R

hack
0

e M A R ,e M D R ,w rC P U
0

fc C P U
1

fc C P U
1

SP<=SP+1

in c S P

M A R<=SP,
M D R < = P C 7 ...0

S P o u t1 , ld M A R ,
P C o u t2 , m x M D R ,
ld M D R

hack
0

e M A R ,e M D R ,w rC P U
0

fc C P U
1

P C < = IR

hack
0

M EM <=M D R
0

hack
0

M EM <=M D R
0

56

in c S P

M A R<=SP,
M D R < = P C 1 5 ...8

JS R

fc C P U
1

IR J A o u t1 , ld P C

2 3 ...8

60
56
60
56
7140
7141
Slika 134 Izvravanje operacije (petnaesti deo)
7142! JSR !
7143! U korak stepA3 se dolazi iz step50 ukoliko signal operacije JSR ima vrednost 1 (slika 134). U fazi
7144izvravanja ove instrukcije se realizuje skok na potprogram tako to se prvo na stek stavi tekui sadraj
7145programskog brojaa PC150 i zatim realizuje bezuslovni skok na adresu koja je data u samoj instrukciji.
7146Na stek se stavlja prvo stariji a zatim i mlai bajt registra PC 150. Stoga se, najpre, u koraku stepA3
7147signalom incSP vri inkrementiranje registra SP150 bloka addr. Zatim se u koraku stepA4 signalima
7148SPout1 i ldMAR, sadraj registra SP150 puta na internu magistralu IBUS1150 i upisuje u registar
7149MAR150 i signalima PCHout2, mxMDR i ldMDR sadraj starijeg bajta registra PC 158 puta na linije
7150interne magistrale IBUS270 i kroz multiplekser MX2 bloka bus i upisuje u registar MDR70. Upis se
7151realizuje u koracima stepA5 i stepA6 na isti nain kao to se to radi u koracima step5C i step5D instrukcije
7152STB. Potom se u koraku stepA7 signalom incSP vri inkrementiranje registra SP 150. Zatim se u koraku
7153stepA8 signalima SPout1 i ldMAR, sadraj registra SP150 puta na internu magistralu IBUS1150 i
7154upisuje u registar MAR150 i signalima PCout2, mxMDR i ldMDR sadraj mlaeg bajta registra PC 7
71550 puta na linije interne magistrale IBUS270 i kroz multiplekser MX2 bloka bus i upisuje u registar
7156MDR70. Upis se realizuje u koracima stepA9 i stepAA na isti naina kao to se to radi u koracima stepA5 i
7157stepA6 prilikom upisa starijeg bajta. Na kraju se u koraku step AB sadraj registra IR238 bloka fetch koji
7158predstavlja adresu skoka signalima IRJAout1 i ldPC puta na internu magistralu IBUS1150 i upisuje u
7159registar PC150 i bezuslovno prelazi na stepC0 i fazu opsluivanje prekida. !
7160
stepA3 incSP;
7161
stepA4 SPout1, ldMAR, PCHout2, mxMDR, ldMDR;
7162
stepA5 br (if hack then stepA5);
7163
stepA6 eMAR, eMDR, wrCPU,
7164
br (if fcCPU then stepA6);
7165
stepA7 incSP;
7166
stepA8 SPout1, ldMAR, PCout2, mxMDR, ldMDR;

236

235

7167
7168
7169
7170
7171

stepA9 br (if hack then stepA9);


stepAA eMAR, eMDR, wrCPU,
br (if fcCPU then stepAA);
stepAB IRJAout1, ldPC,
br stepC0;
60

54

RTI

56

60

54

M A R<=SP,
S P < = S P 1

eM A R , rd C P U
0

fc C P U
1

M D R o u t2 , ld P S W L ,
S P o u t1 , ld M A R ,
decSP

hack
0

eM A R , rd C P U
0

fc C P U
1

1 5 ...8

hack
0

M D R<=M EM

PSW

fc C P U
1

P S W 7 ...0 < = M D R ,
M A R<=SP,
S P < = S P -1

hack
0

M D R<=M EM

56

S P o u t1 , ld M A R ,
decSP

hack

RTI

fc C P U
1

<=M D R

M D R o u t2 , ld P S W H

60
55
56
60
55
56
7172
7173
Slika 135 Izvravanje operacije (esnaesti deo)
7174! RTI !
7175! U korak stepAC se dolazi iz step50 ukoliko signal operacije RTI ima vrednost 1 (slika 135). U fazi
7176izvravanja ove instrukcije vrednostima sa steka se restauriraju programska statusna re PSW 15..0 i
7177programski broja PC15...0. U koracima stepAC do stepB2 se najpre vrednou sa steka restaurira
7178programska statusna re PSW15...0 bloka exec. Sa steka se najpre skida mlai a zatim i stariji bajt
7179registra PSW15...0. Stoga se u koraku stepAC signalima SPout1 bloka addr i ldMAR bloka bus sadraj
7180registra SP150 puta na internu magistralu IBUS1150 i upisuje u registar MAR150. Pored toga se i
7181signalom decSP dekrementira sadraj registra SP 150. itanje se realizuje u koracima stepAD i stepAE na
7182isti naina kao to se to radi u koracima step 02 i step03 u kojima se ita prvi bajt instrukcije. Potom se u
7183koraku stepAF signalima MDRout2 i ldPSWL sadraj registra MDR70 bloka bus puta na linije interne
7184magistrale IBUS270 i upisuje u mlai bajt registra PSW70 bloka exec, a signalima SPout1 i ldMAR
7185sadraj registra SP150 puta na internu magistralu IBUS1150 i upisuje u registar MAR150. Pored toga
7186se i signalom decSP dekrementira sadraj registra SP150. itanje se realizuje u koracima stepB0 i stepB1
7187na isti naina kao to se to radi u koracima step AD i stepAE u kojima se ita mlai bajt. Na kraju se u
7188koraku stepB2 signalima MDRout2 i ldPSWH sadraj registra MDR70 bloka bus puta na linije
7189interne magistrale IBUS270 i upisuje u stariji bajt registra PSW158. Time je 16-to bitna vrednost
7190skinuta sa steka i smetena u registar PSW 150, pa se prelazi na sledei korak poev od koga se kao i u
7191sluaju instrukcije RTS sa steka skida 16-to bitna vrednost i smeta u registar PC 150. !
7192
stepAC SPout1, ldMAR, decSP;
7193
stepAD br (if hack then stepAD);
7194
stepAE eMAR, rdCPU,
7195
br (if fcCPU then stepAE);
7196
stepAF MDRout2, ldPSWL, SPout1, ldMAR, decSP;
7197
stepB0 br (if hack then stepB0);
7198
stepB1 eMAR, rdCPU,

237

236

7199
7200

br (if fcCPU then stepB1);


stepB2 MDRout2, ldPSWH;
60

55

RTS

56

60

55

M A R<=SP,
S P < = S P 1

eM A R , rd C P U
0

fc C P U
1

M D R o u t2 , ld D W L ,
S P o u t1 , ld M A R ,
decSP

hack
0

eM A R , rd C P U
0

fc C P U
1

fc C P U
1

1 5 ...8 < = M D R

PC<=D W

hack
0

M D R<=M EM

D W

fc C P U
1

D W 7 ...0 < = M D R ,
M A R<=SP,
S P < = S P -1

hack
0

M D R<=M EM

56

S P o u t1 , ld M A R ,
decSP

hack

RTS

M D R o u t2 , ld D W H
D W o u t1 , ld P C

1 5 ...0

60
56
60
56
7201
7202
Slika 136 Izvravanje operacije (sedamnaesti deo)
7203! RTS !
7204! U korak stepB3 se dolazi iz step50 ukoliko signal operacije RTS ima vrednost 1 (slika 136). Pored toga
7205u korak stepB3 se dolazi i iz koraka stepB2 kada signal operacije RTI ima vrednost 1. U oba sluaja se u
7206koracima stepB3 do stepBA vrednou sa steka restaurira programski broja PC 15...0. Sa steka se najpre
7207skida mlai a zatim i stariji bajt registra PC15...0. Stoga se u koraku stepB3 signalima SPout1 bloka addr i
7208ldMAR bloka bus sadraj registra SP150 puta na internu magistralu IBUS1150 i upisuje u registar
7209MAR150. Pored toga se i signalom decSP dekrementira sadraj registra SP150. itanje se realizuje u
7210koracima stepB4 i stepB5 na isti nain kao to se to radi u koracima step 02 i step03 u kojima se ita prvi
7211bajt instrukcije. Na kraju se u koraku step B6 signalima MDRout2 i ldDWL sadraj registra MDR70
7212bloka bus puta na linije interne magistrale IBUS270 i upisuje u mlai bajt registra DW70 bloka bus, a
7213signalima SPout1 i ldMAR sadraj registra SP150 puta na internu magistralu IBUS1150 i upisuje u
7214registar MAR150. Pored toga se i signalom decSP dekrementira sadraj registra SP 150. itanje se
7215realizuje u koracima stepB7 i stepB8 na isti nain kao to se to radi u koracima stepB4 i stepB5 u kojima se
7216ita mlai bajt. Na kraju se u koraku stepB9 signalima MDRout2 i ldDWH sadraj registra MDR70
7217puta na linije interne magistrale IBUS270 i upisuje u stariji bajt registra DW158. Time je 16-to bitna
7218vrednost skinuta sa steka i smetena u registar DW 150. Konano se u koraku stepBA signalom DWout1
7219sadraj registra DW150 puta na internu magistralu IBUS1150 i signalom ldPC upisuje u registar
7220PC150 i bezuslovno prelazi na stepC0 i fazu opsluivanje prekida. !

238

237

7221
stepB3 SPout1, ldMAR, decSP;
7222
stepB4 br (if hack then stepB4);
7223
stepB5 eMAR, rdCPU,
7224
br (if fcCPU then stepB5);
7225
stepB6 MDRout2, ldDWL, SPout1, ldMAR, decSP;
7226
stepB7 br (if hack then stepB7);
7227
stepB8 eMAR, rdCPU,
7228
br (if fcCPU then stepB8);
7229
stepB9 MDRout2, ldDWH;
7230
stepBA DWout1, ldPC,
7231
br stepC0;
7232! Opsluivanje prekida !
60

56

60

56

p re k id

p re k id

SP<=SP+1

in c S P

M A R <=SP,
M D R < = P C 1 5 ...8

S P o u t1 , ld M A R ,
P C H o u t2 , m x M D R ,
ld M D R

hack

hack

M EM <=M D R
0

e M A R ,e M D R ,w r C P U
0

fc C P U

fc C P U

SP<=SP+1

in c S P

M A R <=SP,
M D R < = P C 7 ...0

S P o u t1 , ld M A R ,
P C o u t2 , m x M D R ,
ld M D R

hack

hack

M EM <=M D R
0

e M A R ,e M D R ,w r C P U
0

fc C P U

fc C P U

7233
7234

60

1
57

60

57

Slika 137 Opsluivanje prekida (prvi deo)

7235! U korak stepC0 se dolazi koraka step06 ukoliko signal PRCOD ima vrednost 1, koraka step0D ukoliko
7236signal PRADR ima vrednost 1 i koraka step51, step52, ..., stepBA na zavretku faze izvravanje
7237instrukcije svake od instrukcija (slika 137). U koraku stepC0 se, u zavisnosti od toga da li signal prekid
7238bloka intr ima vrednost 0 ili 1, ili zavrava izvravanje tekue instrukcije i prelaskom na korak step00
7239zapoinje faza itanje instrukcije sledee instrukcije ili se produava izvravanje tekue instrukcije i
7240prelaskom na korak stepC1 produava faza opsluivanje prekida tekue instrukcije. !
7241
stepC0 br (if prekid then step00);
7242! Opsluivanje prekida se sastoji iz dve grupe koraka u kojima se realizuje uvanje konteksta procesora
7243i skok na prekidnu rutinu. !

239

238

7244! uvanje konteksta procesora !


7245! Kontekst procesora i to PC150 i PSW150 se uva u koracima stepC1 do stepD0. U koracima stepC1 do
7246stepC8 se na stek stavlja programski broja PC 150. Na stek se stavlja prvo stariji a zatim i mlai bajt
7247registra PC150. Stoga se najpre u koraku stepC1 signalom incSP vri inkrementiranje registra SP150
7248bloka addr. Zatim se u koraku stepC2 signalima SPout1 i ldMAR, sadraj registra SP150 puta na
7249internu magistralu IBUS1150 i upisuje u registar MAR150 i signalima PCHout2, mxMDR i ldMDR
7250sadraj starijeg bajta registra PC 158 puta na linije interne magistrale IBUS270 i kroz multiplekser
7251MX2 bloka bus i upisuje u registar MDR 70.. Upis se realizuje u koracima stepC3 i stepC4 na isti naina
7252kao to se to radi u koracima step5C i step5D instrukcije STB. Potom se u koraku stepC5 signalom incSP
7253vri inkrementiranje registra SP150. Zatim se u koraku stepC6 signalima SPout1 i ldMAR, sadraj
7254registra SP150 puta na internu magistralu IBUS1150 i upisuje u registar MAR150 i signalima PCout2,
7255mxMDR i ldMDR sadraj mlaeg bajta registra PC70 puta na linije interne magistrale IBUS270 i
7256kroz multiplekser MX2 bloka bus i upisuje u registar MDR70. Upis se realizuje u koracima stepC7 i
7257stepC8 na isti naina kao to se to radi u koracima stepC3 i stepC4 prilikom upisa starijeg bajta.!
7258
stepC1 incSP;
7259
stepC2 SPout1, ldMAR, PCHout2, mxMDR, ldMDR;
7260
stepC3 br (if hack then stepC3);
7261
stepC4 eMAR, eMDR, wrCPU,
7262
br (if fcCPU then stepC4);
7263
stepC5 incSP;
7264
stepC6 SPout1, ldMAR, PCout2, mxMDR, ldMDR;
7265
stepC7 br (if hack then stepC7);
7266
stepC8 eMAR, eMDR, wrCPU,
7267
br (if fcCPU then stepC8);
7268! U koracima stepC9 do stepD0 se na stek stavlja programska statusna re PSW 150 bloka exec (slika
7269138). Na stek se stavlja prvo stariji a zatim i mlai bajt registra PSW 150. Stoga se najpre u koraku
7270stepC9 signalom incSP vri inkrementiranje registra SP150 bloka addr. Zatim se u koraku stepCA
7271signalima SPout1 i ldMAR sadraj registra SP150 puta na internu magistralu IBUS1150 i upisuje u
7272registar MAR150 i signalima PSWHout2, mxMDR i ldMDR sadraj starijeg bajta registra PSW 158
7273puta na linije interne magistrale IBUS270 i kroz multiplekser MX2 bloka bus i upisuje u registar
7274MDR70. Upis se realizuje u koracima stepCB i stepCC na isti naina kao to se to radi u koracima step5C i
7275step5D instrukcije STB. Potom se u koraku stepCD signalom incSP vri inkrementiranje registra SP150.
7276Zatim se u koraku stepCE signalima SPout1 i ldMAR, sadraj registra SP 150 puta na internu
7277magistralu IBUS1150 i upisuje u registar MAR150 i signalima PSWout, mxMDR i ldMDR sadraj
7278mlaeg bajta registra PSW70 puta na linije interne magistrale IBUS2150 i kroz multiplekser MX2
7279bloka bus i upisuje u registar MDR70. Upis se realizuje u koracima stepCF i stepD0 na isti naina kao to
7280se to radi u koracima stepCB i stepCC prilikom upisa starijeg bajta. !
7281
stepC9 incSP;
7282
stepCA SPout1, ldMAR, PSWHout2, mxMDR, ldMDR;
7283
stepCB br (if hack then stepCB);
7284
stepCC eMAR, eMDR, wrCPU,
7285
br (if fcCPU then stepCC);
7286
stepCD incSP;
7287
stepCE SPout1, ldMAR, PSWLout2, mxMDR, ldMDR;
7288
stepCF br (if hack then stepCF);
7289
stepD0 eMAR, eMDR, wrCPU,
7290
br (if fcCPU then stepD0);

240

239

60

57

60

57

SP<=SP+1

in c S P

M A R <=SP,
M D R < = P S W 1 5 ...8

S P o u t1 , ld M A R ,
P S W H o u t2 ,
m x M D R , ld M D R

hack
0

M EM <=M D R
0

e M A R ,e M D R ,w r C P U
0

fc C P U
1

fc C P U
1

SP<=SP+1

in c S P

M A R <=SP,
M D R < = P S W 7 ...0

S P o u t1 , ld M A R ,
P S W L o u t2 ,
m x M D R , ld M D R

hack
0

hack
0

M EM <=M D R
0

hack

e M A R ,e M D R ,w r C P U
0

fc C P U
1

fc C P U
1

58
60
58
7291 6 0
7292
Slika 138 Opsluivanje prekida (drugi deo)
7293! Skok na prekidnu rutinu !
7294! Skok na prekidnu rutinu se sastoji iz utvrivanja broja ulaza i utvrivanja adrese prekidne rutine. !
7295! Utvrivanje broja ulaza !
7296! U korak stepD1 se dolazi iz stepD0 (slika 139). U koracima stepD1 do stepDB se utvruje broj ulaza u
7297tabelu sa adresama prekidnih rutina i upisuje u registar BR 70 bloka intr. U ovim koracima se po
7298opadajuim prioritetima utvruje zahtev za prekid najvieg prioriteta i za njega odreuje broj ulaza u
7299tabelu sa adresama prekidnih rutina. !
7300! Provera da li postoji zahtev za prekid zbog izvravanja instrukcije prekida INT. !
7301! U koraku stepD1 se vri provera da li signal PRINS bloka intr ima vrednost 1 ili 0 i prelazi na korak
7302stepD2 ili stepD3, respektivno. Ukoliko signal PRINS ima vrednost 1 jer postoji odgovarajui zahtev za
7303prekid, u koraku stepD2 se signalom IRPOMout1 bloka fetch sadraj razreda IR2316, koji sadri broj
7304ulaza, puta na linije interne magistrale IBUS170 i signalom ldBR upisuje u registar BR70.
7305Istovremeno se signalom clPRINS bloka intr flip-flop PRINS postavlja na vrednost 0. Iz koraka stepD2
7306se prelazi na korak stepDC radi utvrivanja adrese prekidne rutine. !
7307
stepD1 br (if PRINS then stepD3);
7308
stepD2 IRPOMout1, ldBR, clPRINS,
7309
br stepDC;

241

240

60

58

60

58

P R IN S

P R IN S

B R

7 ...0 < = I R 2 3 ...1 6 ,


P R IN S < = 0

IR P O M o u t1 , ld B R ,
c lP R IN S

PR CO D

PR CO D

B R

7 ...0 < = U I N T 7 ...0 ,


PR CO D <=0

U IN T o u t1 , ld B R ,
c lP R C O D

PR A D R

PR A D R

B R

7 ...0 < = U N I T 7 ...0 ,


PRA D R<=0

U IN T o u t1 , ld B R ,
c lP R A D R

P R IN M

P R IN M

B R

7 ...0 <

= U I N T 7 ...0 ,
P R IN M < = 0

U IN T o u t1 , ld B R ,
c lP R IN M

p rin tr

p rin tr

B R 7 ...0 < = U E X T 7 ...0 ,


c a s e p r l 2 ...0
b e g in
0 : -,
1 : P R IN T R 1 < = 0 ,
2 : P R IN T R 2 < = 0 ,
3 : P R IN T R 3 < = 0 ,
4 : P R IN T R 4 < = 0 ,
5 : P R IN T R 5 < = 0 ,
6 : P R IN T R 6 < = 0 ,
7 : P R IN T R 7 < = 0
end,
P S W L 2 ...0 < = p r l 2 ...0

B R

7310
7311

242

60

7 ...0 <

= U IN T

U E X T o u t1 , ld B R ,

c lIN T R ,

ld L

U IN T o u t1 , ld B R

7 ...0

59

60

Slika 139 Opsluivanje prekida (trei deo)

241

59

7312! Provera da li postoji zahtev za prekid zbog greke u kodu operacije. !


7313! U koraku stepD3 se vri provera da li signal PRCOD bloka intr ima vrednost 1 ili 0 i prelazi na korak
7314stepD4 ili stepD5, respektivno. Ukoliko signal PRCOD ima vrednost 1 jer postoji odgovarajui zahtev za
7315prekid, u koraku stepD4 se signalom UINTout1 bloka intr sadraj UINT70 sa izlaza kodera CD2, koji
7316sadri broj ulaza, puta na linije interne magistrale IBUS170 i signalom ldBR upisuje u registar BR70.
7317Istovremeno se signalom clPRCOD bloka intr flip-flop PRCOD postavlja na vrednost 0. Iz koraka
7318stepD4 se prelazi na korak stepDC radi utvrivanja adrese prekidne rutine. !
7319
stepD3 br (if PRCOD then stepD5);
7320
stepD4 UINTout1, ldBR, clPRCOD,
7321
br stepDC;
7322! Provera da li postoji zahtev za prekid zbog greke u adresiranju. !
7323! U koraku stepD5 se vri provera da li signal PRADR bloka intr ima vrednost 1 ili 0 i prelazi na korak
7324stepD6 ili stepD7, respektivno. Ukoliko signal PRADR ima vrednost 1 jer postoji odgovarajui zahtev za
7325prekid, u koraku stepD6 se signalom UINTout1 bloka intr sadraj UINT70 sa izlaza kodera CD2, koji
7326sadri broj ulaza, puta na linije interne magistrale IBUS170 i signalom ldBR upisuje u registar BR70.
7327Istovremeno se signalom clPRADR bloka intr flip-flop PRADR postavlja na vrednost 0. Iz koraka
7328stepD6 se prelazi na korak stepDC radi utvrivanja adrese prekidne rutine. !
7329
stepD5 br (if PRADR then stepD7);
7330
stepD6 UINTout1, ldBR, clPRADR,
7331
br stepDC;
7332! Provera da li postoji spoljanji nemaskirajui zahtev za prekid. !
7333! U koraku stepD7 se vri provera da li signal PRINM bloka intr ima vrednost 1 ili 0 i prelazi na korak
7334stepD8 ili stepD9, respektivno. Ukoliko signal PRINM ima vrednost 1 jer postoji odgovarajui zahtev za
7335prekid, u koraku stepD8 se signalom UINTout1 bloka intr sadraj UINT70 sa izlaza kodera CD2, koji
7336sadri broj ulaza, puta na linije interne magistrale IBUS170 i signalom ldBR upisuje u registar BR70.
7337Istovremeno se signalom clPRINM bloka intr flip-flop PRINM postavlja na vrednost 0. Iz koraka
7338stepD8 se prelazi na korak stepDC radi utvrivanja adrese prekidne rutine. !
7339
stepD7 br (if PRINM then stepD9);
7340
stepD8 UINTout1, ldBR, clPRINM,
7341
br stepDC;
7342! Provera da li postoji spoljanji maskirajui zahtev za prekid. !
7343! U koraku stepD9 se vri provera da li signal printr bloka intr ima vrednost 1 ili 0 i prelazi na korak
7344stepDA ili stepDB, respektivno. Ukoliko signal printr ima vrednost 1 jer postoji odgovarajui zahtev za
7345prekid, u koraku stepDA se signalom UEXTout1 bloka intr sadraj UEXT70 sa izlaza kodera CD3, koji
7346sadri broj ulaza, puta na linije interne magistrale IBUS170 i signalom ldBR upisuje u registar BR70.
7347Istovremeno se signalom clINTR bloka intr jedan od flip-flopova PRINTR7 do PRINTR1 postavlja na
7348vrednost 0. Flip-flop PRINTR7 do PRINTR1 koji se postavlja na vrednost 0 je selektovan binarnim
7349vrednostima 7 do 1, respektivno, signala prl2 do prl0 bloka intr i odgovara liniji najvieg nivoa
7350prioriteta po kojoj je stigao spoljanji maskirajui zahtev za prekid koji nije selektivno maskiran
7351odgovarajuim razredom registra maske IMR150. Pored toga signalom ldL bloka exec se signali prl2 do
7352prl0, koji predstavljaju binarnu vrednost nivoa prioriteta prekidne rutine na koju se skae, upisuju u
7353razrede PSWL2 do PSWL0 programske statusne rei PSW150 bloka exec. Iz koraka stepDA se prelazi na
7354korak stepDC radi utvrivanja adrese prekidne rutine. !
7355
stepD9 br (if printr then stepDB);
7356
stepDA UEXTout1, ldBR, clINTR, ldL,
7357
br stepDC;
7358! Prekid posle svake instrukcije !
7359! U korak stepDB se dolazi iz stepD9 ukoliko signal printr ima vrednost 0. U ovaj korak se dolazi jedino
7360ukoliko se proverom signala prekid u koraku stepC0 utvrdi da ovaj signal ima vrednost 1 i proverom
7361signala PRINS, PRCOD, PRADR, PRINM i printr u koracima stepD1, stepD3, stepD5, stepD7 i stepD9
7362utvrdi da ovi signali imaju vrednost 0. To znai da jedino preostaje da signal prekid ima vrednost 1 jer,
7363zbog zadatog reima rada prekid posle svake instrukcije, signal PSWT ima vrednost 1. Stoga se
7364signalom UINTout1 bloka intr sadraj UINT70 sa izlaza kodera CD2, koji sadri broj ulaza, puta na
7365linije interne magistrale IBUS170 i signalom ldBR upisuje u registar BR70. Iz koraka stepDB se prelazi
7366na korak stepDC radi utvrivanja adrese prekidne rutine. !
7367
stepDB UINTout1, ldBR;

243

242

60

59

60

59

C W < = IV T P

IV T P o u t1 , ld C W

M A R<=
C W + IV T D S P

IV T D S P o u t2 ,
A D D o u t1 , ld M A R

1 5 ...0

hack

hack

M D R <=M EM
0

eM A R , rd C P U
0

fc C P U

fc C P U

D W 1 5 ...8 < = M D R 7 ...0 ,


M A R <=M A R +1

M D R o u t2 , ld D W H ,
in c M A R

hack

hack

M D R <=M EM
0

eM A R , rd C P U
0

fc C P U

fc C P U

D W

7 ...0 < = M D R

M D R o u t2 , ld D W L

7 ...0

P C < = D W 1 5 ...0 ,
P S W I< = 0 ,
PSW T<=0

7368
7369

D W o u t1 , ld P C ,
c lP S W I,
c lP S W T

Slika 140 Opsluivanje prekida (etvrti deo)

7370! Utvrivanje adrese prekidne rutine !


7371! U koracima stepDC do stepE4 se na osnovu dobijenog broja ulaza i sadraja registra koji ukazuje na
7372poetnu adresu tabele sa adresama pekidnih rutina, iz odgovarajueg ulaza ita adresa prekidne rutine i
7373upisuje u programski broja PC 150 bloka fetch (slika 140). U koraku stepDC se signalom IVTPout1
7374bloka intr na internu magistralu IBUS1150 puta sadraj registra IVTP 15...0 i signalom ldCW upisuje u
7375prihvatni registar CW15...0 sabiraa ADD bloka addr. U koraku stepDD se, najpre, na izlazima sabiraa
7376ADD formira suma sadraja registra CW 15...0, koji se direktno vodi na ulaze sabiraa, i sadraja
7377IVTDSP15...0, koji predstavlja sadraj registra BR 70 pomeren ulevo za jedno mesto i proiren nulama do
7378duine 16 bitova, koji se signalom IVTDSPout2 puta na internu magistralu IBUS2150 i ulaze
7379sabiraa, pa se, zatim, signalima ADDout1 i ldMAR dobijena suma sa izlaza sabiraa ADD puta na
7380internu magistralu IBUS1150 i upisuje u registar MAR15...0 bloka bus. Time se u registru MAR15...0
7381nalazi adresa memorijske lokacije poev od koje treba proitati dva bajta koji predstavljaju vii i nii
7382bajt adrese prekidne rutine. itanje prvog bajta se realizuje u koracima step DE i stepDF, a drugog bajta u
7383koracima stepE1 i stepE2 na isti nain kao u koracima step02 i step03 kod itanja prvog bajta instrukcije. U
7384koraku stepE0 se signalima MDRout2 i ldDWH prvi bajt iz registra MDR 7...0 puta na linije interne
7385magistrale IBUS270 i upisuje u stariji bajt registra DW158 bloka bus, a signalom incMAR adresni
7386registar MAR15...0 inkrementira na adresu sledeeg bajta. U koraku step E3 se signalima MDRout2 i
7387ldDWL drugi bajt iz registra MDR7...0 puta na linije interne magistrale IBUS270 i upisuje u mlai bajt
7388registra DW70. Time se u registru DW150 nalazi adresa prekidne rutine. Na kraju se u koraku step E4
7389signalom DWout1 sadraj registra DW150 puta na internu magistralu IBUS1 150 i signalom ldPC
7390upisuje u registar PC15...0. Time se u registru PC15...0 nalazi adresa prve instrukcije prekidne rutine.
7391Signalima clPSWI i clPSWT se u razrede PSWI i PSWT bloka exec upisuju vrednosti 0. Time se u
7392prekidnu rutinu ulazi sa reimom rada u kome su maskirani svi maskirajui prekidi i u kome nema
7393prekida posle svake instrukcije. Iz koraka stepE4 se bezuslovno prelazi na step00. !
7394
stepDC IVTPout1, ldCW;

244

243

7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405

stepDD IVTDSPout2, ADDout1, ldMAR;


stepDE br (if hack then stepDE);
stepDF eMAR, rdCPU,
br (if fcCPU then stepDF);
stepE0 MDRout2, ldDWH, incMAR;
stepE1 br (if hack then stepE1);
stepE2 eMAR, rdCPU,
br (if fcCPU then stepE2);
stepE3 MDRout2, ldDWL;
stepE4 DWout1, ldPC, clPSWI, clPSWT,
br step00;

74064.3.2.3 Struktura upravljake jedinice


7407 U ovom odeljku se daje struktura upravljake jedinice mikroprogramske realizacije sa
7408meovitim kodiranjem signala i jednim tipom mikroinstrukcija koja generie dve vrste
7409upravljakih signala i to upravljake signale blokova operacione jedinice oper i upravljake
7410signale upravljake jedinice uprav. Upravljaki signali blokova operacione jedinice oper se
7411koriste u blokovima operacione jedinice oper radi izvravanja mikrooperacija. Upravljaki
7412signali upravljake jedinice uprav se koriste u upravljakoj jedinici uprav radi inkrementiranja
7413mikroprogramskog brojaa ili upisa nove vrednosti u mikroprogramski broja.
7414 U sluaju upravljake jedinice mikroprogramske realizacije sa meovitim kodiranjem signala
7415i jednim tipom mikroinstrukcija upravljaki signali i operacione i upravljake jedinice se
7416generiu na osnovu mikroprograma, koji je potrebno prethodno formirati tako to se svakom
7417koraku u sekvenci upravljakih signala po koracima (tabela 34) pridruuje binarna re
7418odreene strukture (slika 141). Ta binarna re se naziva mikroinstrukcija, mikronaredba ili
7419mikrokomanda, a tako dobijeni ureeni niz mikroinstrukcija pridruenih koracima sekvence
7420upravljakih signala po koracima, naziva se mikroprogram.
m
0 . . .

M 1

7421
7422

cc

ba

4 5 . . . 8 9 . . . 1 2 1 3 . . . 1 6 1 7 . . .1 9 2 0 . . .2 2 2 3 . . . 2 7 2 8

M 2

M 3

M 4

M 5

M 6

u slo v

...

35

ad resa sk o k a

o p e ra c io n i d e o

u p ra v lja k i d e o

Slika 141 Format mikroinstrukcije

7423 Poljem m0...22 duine 23 bita mikroinstrukcije odreuju se vrednosti svih upravljakih signala
7424operacione jedinice. Upravljaki signali operacione jedinice grupisani su u est grupa oznaenih
7425sa M1, M2, M3, M4, M5 i M6, pri emu je svaki signali kodiran jednom od binarnih vrednosti
7426grupe u kojoj se nalazi. Ovakav nain kodiranja upravljakih signala se naziva meoviti nain
7427kodiranja. Poljem cc23...27 duine 5 bita mikroinstrukcije specificira se bezuslovni skok, uslovni
7428skokovi na osnovu vrednosti svakog od signala logikog uslova i viestruki uslovni skokovi.
7429Polje ba28...35 duine 8 bita mikroinstrukcije predstalja adresu mikroinstrukcije u mikroprogramu
7430na koju se skae u sluaju bezuslovnog skoka i u sluaju uslovnog skoka ukoliko odgovarajui
7431signal logikog uslova ima vrednost 1.
7432 Upravljaka jedinica se sastoji iz mikroprogramske memorije, mikroprogramskog brojaa,
7433prihvatnog registra mikroinstrukcije, kombinacione mree za generisanje upravljakih signala i
7434kombinacione mree za generisanje nove vrednosti mikroprogramskog brojaa.
7435Mikroprogramska memorija slui za smetanje mikroprograma. Mikroprogramski broja
7436odreuje adresu mikroinstrukcije u mikroprogramskoj memoriji. Prihvatni registar
7437mikroinstrukcije slui za prihvatanje mikroinstrukcije oitane iz mikroprogramske memorije.
7438Kombinaciona mrea za generisanje upravljakih signala generie na osnovu oitane
7439mikroinstrukcije dve grupe upravljakih signala i to upravljake signale operacione jedinice i
7440upravljake signale upravljake jedinice. Upravljaki signali operacione jedinice se generiu na
245

244

7441osnovu vrednosti bitova polja m0...22. Njima se omoguava izvravanje odgovarajuih


7442mikrooperacija u operacionoj jedinici. Upravljaki signali upravljake jedinice se generiu na
7443osnovu vrednosti bitova polja cc23...27 i signala logikih uslova. Njima se ili sadraj
7444mikroprogramskog brojaa inkrementira ili se u mikroprogramski broja preko kombinacione
7445mree za generisanje nove vrednosti mikroprogramskog brojaa upisuje nova vrednost i time
7446realizuje skok u mikroprogramskoj memoriji.
7447

Detalji formata mikroinstrukcije (slika 141) su dati u daljem tekstu.

7448 Bitovi 0 do 22 pripadaju polju m0...22 mikroinstrukcije i dodeljeni su upravljakim signalima


7449operacione jedinice. Upravljaki signali operacione jedinice grupisani su u est grupa oznaenih
7450sa M1, M2, M3, M4, M5 i M6. Usvojeno kodiranje upravljakih signala operacione jedinice
7451unutar svake grupe je dato u tabelama 35, 36 i 37. Polje M1 se koristi za kodiranje 28 signala,
7452pa je njegova duina 5 bitova, polja M2, M3 i M4 se koriste za kodiranje po 15 signala, pa je
7453njihova duina 4 bita, i polja M5 i M6 se koriste za kodiranje 7 i 6 signala, respektivno, pa je
7454njihova duina 3 bita. Prilikom odreivanja broja grupa i rasporeivanja signala po grupama
7455usvojeno je da svi signali koji se u sekvenci upravljakih signala po koracima javljaju u istom
7456koraku budu u razliitim grupama. Kodom M11 se oznaava da je binarna vrednost bitova
7457grupe M1 jedan i da od signala iz date grupe samo signal PCout2 ima vrednost 1, dok svi
7458ostali imaju vrednost 0. Na slian nain se oznaavaju i binarne vrednosti preostalih grupa i
7459time za svaku grupu odreuje koji od signala iz date grupe treba da ima vrednost 1. Ukoliko za
7460neke od grupa ni jedan od signala iz date grupe signala ne treba da ima vrednost 1, vrednost
7461polja date grupe treba da bude nula. Iz tabela 35, 36 i 37 se vidi da je za kodiranje est grupa
7462upravljakih signala operacione jedinice oznaenih sa M1, M2, M3, M4, M5 i M6 potreban
7463broj bitova 5, 4, 4, 4, 3 i 3, respektivno, pa je usvojeno da duina polja m bude 23 bita.

246

245

7464
7465

Tabela 35 Vrednosti polja M1 i M2, simbolike oznake kodova polja M1 i M2


i upravljaki signali operacione jedinice
m0m4
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F

M1
kod
M10
M11
M12
M13
M14
M15
M16
M17
M18
M19
M1A
M1B
M1C
M1D
M1E
M1F
M110
M111
M112
M113
M114
M115
M116
M117
M118
M119
M11A
M11B
M11C
M11D
M11E
M11F

signal
PCout2
PCHout2
PSWLout2
PSWHout2
GPRout2
MDRout2
IRPOMout1
IRJAout1
IRDAout1
IRBRout1
DWout1
ABout2
AWout2
AWHout2
BWout1
ALUout1
IMRout1
IVTPout1
IVTDSPout2
UINTout1
UEXTout1
rdCPU
wrCPU
stPRADR
stPRCOD
clSTART
stPSWT
ldZ
-

m5m8
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

7466

247

246

M2
kod
M20
M21
M22
M23
M24
M25
M26
M27
M28
M29
M2A
M2B
M2C
M2D
M2E
M2F

signal
ldMAR
ldIR0
ldIR1
ldIR2
ldIR3
ldDWH
ldAB
ldBB
ldAW
ldBW
ldCW
ldPC
ldPSWH
ldSP
ldN

7467
7468

Tabela 36 Vrednosti polja M3 i M4, simbolike oznake kodova polja M3 i M4


i upravljaki signali operacione jedinice
m9m12
0
1
2
3
4
5
6
7
8
9
A
B
C
D
0E
0F

7469
7470

M3
kod
M30
M31
M32
M33
M34
M35
M36
M37
M38
M39
M3A
M3B
M3C
M3D
M3E
M3F

signal
ldGPRAR
SPout1
ADDout1
ldC
eMDR
stPSWI
clPSWI
stPRINS
clPRINS
clPRCOD
clPRADR
clPRINM
clINTR
MOST2_1
MOST1_2

m13m16
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

M4
kod
M40
M41
M42
M43
M44
M45
M46
M47
M48
M49
M4A
M4B
M4C
M4D
M4E
M4F

signal

ldMDR
ldDWL
ldPSWL
ldL
eMAR
add
sub
inc
dec
and
or
xor
not
shr
shl

Tabela 37 Vrednosti polja M5 i M6, simbolike oznake kodova polja M5 i M6


i upravljaki signali operacione jedinice
m17m19
0
1
2
3
4
5
6
7

M5
kod
M50
M51
M52
M53
M54
M55
M56
M57

signal
incPC
incSP
decSP
incMAR
incGPRAR
ldV
clPSWT

m20m22
0
1
2
3
4
5
6
7

M6
kod
M60
M61
M62
M63
M64
M65
M66
M67

signal
BBout2
wrGPR
ldIVTP
ldIMR
ldBR
mxMDR
-

7471 Bitovi 23 do 27 pripadaju polju cc23...27 mikroinstrukcije i koriste se za kodiranje upravljakih


7472signala upravljake jedinice za korake u kojima se javljaju bezuslovni skok, uslovni skokovi i
7473viestruki uslovni skokovi.
7474 Bezuslovni skok se realizuje u onim koracima sekvence upravljakih signala po koracima
7475(tabela 34) u kojima se pojavljuju iskazi tipa
7476 br stepA.
7477Nain kodiranja signala bezuslovnog skoka bitovima polja cc23...27 mikroinstrukcije i simbolika
7478oznaka signala bezuslovnog skoka dati su u tabeli 38.
7479

Tabela 38 Signal bezuslovnog skoka


cc2327
01

signal bezuslovnog skoka


bruncnd

7480 Uslovni skokovi se realizuju u onim koracima sekvence upravljakih signala po koracima u
7481kojima se pojavljuju iskazi tipa
7482 br (if uslov then stepA).
7483Nain kodiranja signala uslovnih skokova bitovima polja cc23...27 mikroinstrukcije, simbolike
7484oznake signala uslovnih skokova i signal uslova koji treba da ima vrednost 1 da bi se
7485realizovao skok dati su u tabeli 39.
7486
Tabela 39 Signali uslovnih skokova
cc2327

248

signal uslovnog
skoka

signal
uslova

cc2327

247

signal uslovnog
skoka

signal
uslova

02
03
04
05
06

brnotSTART
brhack
brnotfcCPU
brnotgropr
brl1

START

0C
0D
0E
0F
10

brstore
brLDW
brregdir
brnotbrpom
brnotPREKID

07

brnotgradr

gradr

11

brnotPRINS

08
09
0A
0B

brl2_branch
brl2_arlog
brl3_jump
brl3_arlog

l2_branch
l2_arlog
l3_jump
l3_arlog

12
13
14
15

brnotPRCOD
brnotPRADR
brnotPRINM
brnotprintr

hack
fcCPU
gropr

I1

store
LDW
regdir
brprom
prekid

PRINS
PRCOD

PRADR
PRINM
printr

7487 Viestruki uslovni skokovi se realizuju u onim koracima sekvence upravljakih signala po
7488koracima u kojima se pojavljuju iskazi tipa
7489 br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn).
7490Nain kodiranja signala viestrukih uslovnih skokova bitovima polja cc23...27 mikroinstrukcije,
7491koraci u sekvenci upravljakih signala po koracima u kojima se pojavljuju iskazi ovog tipa i
7492simbolike oznake signala viestrukih uslovnih skokova dati su u tabeli 40.
7493

Tabela 40 Signali viestrukih uslovnih skokova


cc2327
16
17

stepi
step20
step50

signal
bradr
bropr

7494 Vrednost 00 polja cc23...27 i sve ostale vrednosti koje nisu dodeljene signalu bezuslovnog
7495skoka, signalima uslovnih skokova i signalima viestrukih uslovnih skokova odreuju da treba
7496prei na sledeu mikroinstrukciju. Iz tabela 38, 39 i 40 se vidi da su za kodiranje signala
7497bezuslovnog skoka, uslovnih skokova i viestrukih uslovnih skokova upravljake jedinice
7498potrebni kodovi od 00h do 17h, pa je usvojeno da duina polja cc bude 5 bitova.
7499 Bitovi 28 do 35 pripadaju polju ba28...35 mikroinstrukcije i koriste se za specificiranje adrese
7500mikroinstrukcije na koju treba skoiti kod uslovnih i bezuslovnih skokova u sekvenci
7501upravljakih signala po koracima (tabela 34). Ovi bitovi sadre vrednost koju treba upisati u
7502mikroprogramski broja u sluaju bezuslovnih skokova i ukoliko signal uslova ima vrednost 1
7503u sluaju uslovnih skokova. Za kodiranje polja ba28...35 usvojeno je 8 bitova, jer je za kompletan
7504mikroprogram dovoljan kapacitet mikroprogramske memorije od 256 rei.
7505 Mikroprogram se formira tako to se za svaki korak u sekvenci upravljakih signala po
7506koracima (tabela 34) formira jedna mikroinstrukcija.
7507 Kod formiranja mikroinstrukcije bitovi grupa M1, M2, M3, M4, M5 i M6 polja m0...22 se
7508postavljaju ili na odgovarajue binarne vrednosti ukoliko se neki od signala operacione jedinice
7509(tabele 35, 36 i 37) iz svake od grupa M1, M2, M3, M4, M5 i M6 javlja u datom koraku ili na
7510nule za one grupe za koje se ni jedan od signala iz date grupe ne javlja u datom koraku.
7511 U koracima u kojima se javlja neki od iskaza br stepA, br (if uslov then stepA) i br (case
7512(uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) se bitovi polja cc23...27 i ba28...35
7513kodiraju u zavisnosti od toga koji se od ova tri iskaza javlja u datom koraku, dok se u
7514suprotnom sluaju postavljaju na nule.
7515 Za iskaz br stepA se za polje cc23...27 uzima kod dodeljen signalu bezuslovnog skoka koji
7516odreuje da se bezuslovno prelazi na korak step A i za polje ba28...35 binarna vrednost A koju
7517treba upisati u mikroprogramski broja. Simbolika oznaka signala bezuslovnog skoka i nain
7518njegovog kodiranja poljem cc23...27 dati su u tabeli 38. Koraci stepi u kojima se bezuslovni
7519skokovi javljaju, koraci stepA na koje se bezuslovno skae i sama vrednost A, koju treba upisati

249

248

7520u mikroprogramski broja, za sve korake u sekvenci upravljakih signala po koracima u kojima
7521se javljaju iskazi ovog tipa, dati su u tabeli 41.
7522

Tabela 41 Koraci stepi, stepA i vrednosti A za bezuslovne skokove


stepi
step06
step0D
step18
step23
step24
step26
step28
step31
step34
step38
step3E
step43
step45
step46
step51
step52
step53
step54
step55

stepA
stepC0
stepC0
step20
step50
step50
step3B
step3B
step3B
step3B
step3B
step50
step50
step50
step50
stepC0
step00
stepC0
stepC0
stepC0

A
C0
C0
20
50
50
3B
3B
3B
3B
3B
50
50
50
50
C0
00
C0
C0
C0

stepi
step56
step58
step59
step5E
step5F
step67
step68
step6D
step75
step7A
step83
step84
step85
step86
step87
step88
step89
step8B
step8D

stepA
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0

A
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0

stepi
step8F
step91
step93
step95
step97
step99
step9B
step9D
stepA0
stepA1
stepA2
stepAB
stepBA
stepD2
stepD4
stepD6
stepD8
stepDA
stepE4

stepA
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepDC
stepDC
stepD8
stepD8
stepD8
step00

A
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
DC
DC
DC
DC
DC
00

7523 Za iskaz br (if uslov then stepA) se za polje cc23...27 uzima kod dodeljen signalu uslovnog
7524skoka koji odreuje signal uslov koji treba da ima vrednost 1 da bi se realizovao prelaz na
7525korak stepA i za polje ba28...35 binarna vrednost A koju treba upisati u mikroprogramski broja u
7526sluaju da signal uslov ima vrednost 1. Simbolike oznake signala uslovnog skoka, nain
7527njihovog kodiranja poljem cc23...27 i signali uslov za sve iskaze ovog tipa koji se javljaju u
7528sekvenci upravljakih signala po koracima dati su u tabeli 39. Koraci stepi u kojima se uslovni
7529skokovi javljaju, signali uslova uslov, koraci stepA na koje se uslovno skae i vrednosti A koju
7530treba upisati u mikroprogramski broja u sluaju da signal uslov ima vrednost 1, za sve korake
7531u sekvenci upravljakih signala po koracima u kojima se javljaju iskazi ovog tipa dati su u
7532tabeli 42.

250

249

7533

Tabela 42 Koraci stepi, uslovi uslov, koraci stepA i vrednosti A za uslovne skokove
stepi
uslov
step00 START
step02
hack
step03 fcCPU
step05 gropr
step07
l1
step09
hack
step0A fcCPU
step0C gradr
step0E l2_brnch
step0F l2_arlog
step11
hack
step12 fcCPU
step13 l3_jump
step14 l3_arlog
step16
hack
step17 fcCPU
step21
store
step22
LDW
step25
store
step27
store
step2A
hack
step2B fcCPU
step2D
hack
step2E fcCPU
step30
store
step33
store
step37
store
step3A
store
step3B
hack
step3C fcCPU
step3D
LDW
step40
hack
step41 fcCPU
step44
LDW
step5A
regdir
step5C
hack
step5D fcCPU
step60
regdir
step62
hack
step63 fcCPU
step65
hack
step66 fcCPU
step6A
hack

stepA
step00
step02
step03
step07
step50
step09
step0A
step0E
step50
step20
step11
step12
step50
step20
step16
step17
step50
step24
step50
step50
step2A
step2B
step2D
step2E
step50
step50
step50
step50
step3B
step3C
step3C
step40
step41
step46
step5F
step5C
step5D
step68
step62
step63
step65
step66
step6A

A
00
02
03
07
50
09
0A
0E
50
20
11
12
50
20
16
17
50
24
50
50
2A
2B
2D
2E
50
50
50
50
3B
3C
3F
40
41
46
5F
5C
5D
68
62
63
65
66
6A

stepi
step6B
step6F
step70
step72
step73
step78
step79
step7D
step7E
step81
step82
step9E
stepA5
stepA6
stepA9
stepAA
stepAD
stepAE
stepB0
stepB1
stepB4
stepB5
stepB7
stepB8
stepC0
stepC3
stepC4
stepC7
stepC8
stepCB
stepCC
stepCF
stepD0
stepD1
stepD3
stepD5
stepD7
stepD9
stepDE
stepDF
stepE1
stepE2

7534

251

250

uslov

stepA
step
6B
fcCPU
hack
step6F
fcCPU step70
step72
hack
fcCPU step73
hack
step78
fcCPU step79
step7D
hack
fcCPU step7E
hack
step81
fcCPU step82
brprom stepC0
hack
stepA5
fcCPU stepA6
hack
stepA9
step
AA
fcCPU
hack
stepAD
fcCPU stepAE
hack
stepB0
fcCPU stepB1
hack
stepB4
fcCPU stepB5
hack
stepB7
fcCPU stepB8
step00
prekid
hack
stepC3
fcCPU stepC4
hack
stepC7
fcCPU stepC8
stepCB
hack
fcCPU stepCC
hack
stepCF
fcCPU stepD0
PRINS stepD3
PRCOD stepD5
PRADR stepD7
PRINM stepD9
printr
stepDB
hack
stepDE
fcCPU stepDF
hack
stepE1
fcCPU stepE2

A
6B
6F
70
72
73
78
79
7D
7E
81
82
C0
A5
A6
A9
AA
AD
AE
B0
B1
B4
B5
B7
B8
00
C3
C4
C7
C8
CB
CC
CF
D0
D3
D5
D7
D9
DB
DE
DF
E1
E2

7535 Za iskaz br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) se za polje
7536cc23...27 uzima kod dodeljen signalu viestrukog uslovnog skoka koji odreuje signale uslov1, ...,
7537uslovn za koje treba izvriti proveru koji od njih ima vrednost 1 da bi se na osnovu toga
7538realizovao prelaz na jedan od koraka stepA1, ..., stepAn i za polje ba28...35 nule jer njegova
7539vrednost nije bitna. Upravljaka jedinica mora da bude tako realizovana da za svaki viestruki
7540uslovni skok generie vrednosti A1,..., An koje treba upisati u mikroprogramski broja. Ona
7541mora da obezbedi i selekciju jedne od vrednosti A1,..., An u zavisnosti od toga koji od signala
7542uslova uslov1, ..., uslovn ima vrednost 1. Simbolike oznake signala viestrukih uslovnih
7543skokova, nain njihovog kodiranja poljem cc23...27 i koraci u sekvenci upravljakih signala po
7544koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli 40. Vrednosti A1,..., An koje
7545treba upisati u mikroprogramski broja i signali uslova uslov1, ..., uslovn za koje treba izvriti
7546proveru koji od njih ima vrednost 1 da bi se na osnovu toga realizovao prelaz na jedan od
7547koraka stepA1, ..., stepAn za dva iskaza ovog tipa koji se javljaju u sekvenci upravljakih signala
7548po koracima dati su u tabelama 43 i 44.
7549 Tabela 43 Signali uslova, koraci na koje se skae i vrednosti za upis u mikroprogramski broja
7550
za viestruki uslovni skok u koraku step20
uslov
regdir
regind
memdir
memind
regindpom
bxpom
pcpom
imm

stepA
step21
step25
step27
step29
step32
step35
step39
step44

A
21
25
27
29
32
35
39
44

7551 Tabela 44 Signali uslova, koraci na koje se skae i vrednosti za upis u mikroprogramski broja
7552
za viestruki uslovni skok u koraku step50
uslov
NOP
HALT
INTD
INTE
TRPD
TRPE
LDB
LDW
STB
STW
POPB
POPW
PUSHB
PUSHW
LDIVTP
STIVTP
LDIMR
STIMR
LDSP
STSP
ADD

stepA
step51
step52
step53
step54
step55
step56
step57
step59
step5A
step60
step69
step6E
step76
step7B
step84
step85
step86
step87
step88
step89
step8A

opr7...0
51
52
53
54
55
56
57
59
5A
60
69
6E
76
7B
84
85
86
87
88
89
8A

uslov
SUB
INC
DEC
AND
OR
XOR
NOT
ASR
LSR
ROR
RORC
ASL
LSL
ROL
ROLC
BEQL
BNEQ
BNEG
BNNEG
BOVF
BNOVF

stepA
ste8C
step8E
step90
step92
step94
step96
step98
step9A
step9A
step9A
step9A
step9A
step9A
step9A
step9A
step9E
step9E
step9E
step9E
step9E
step9E

7553

252

251

opr7...0
8C
8E
90
92
94
96
98
9A
9A
9A
9A
9A
9A
9A
9A
9E
9E
9E
9E
9E
9E

uslov
BCAR
BNCAR
BGRT
BGRE
BLSS
BLSSE
BGRT
BGRE
BLSS
BLSSE
BGRTU
BGRTEU
BLSSU
BLSSEU
JMP
INT
JSR
RTI
RTS

stepA
step9E
step9E
step9E
step9E
step9E
step9E
step9E
step9E
step9E
step9E
step9E
step9E
step9E
step9E
stepA1
stepA2

stepA7
stepAC
stepB3

opr7...0
9E
9E
9E
9E
9E
9E
9E
9E
9E
9E
9E
9E
9E
9E
A1
A2
A7
AC
B3

7554 Tabela 45 Mikroprogram za upravljaku jedinicu mikroprogramske realizacije sa meovitim


kodiranjem signala i jednim tipom mikroinstrukcija
! itanje instrukcije !
0 0 0 0 0 0 0 0 2 0 0 ! brnotSTART, maddr00 !
0 1 0 8 F 0 1 0 0 0 0 ! M11(PCout2), M3E(MOST2_1), M21(ldMAR), M51(incPC) !
0 2 0 0 0 0 0 0 3 0 2 ! brhack, maddr02 !
0 3 B 0 0 2 8 0 4 0 3 ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddr03 !
0 4 3 1 0 0 0 0 0 0 0 ! M16(MDRout2), M22(ldIR0) !
0 5 0 0 0 0 0 0 5 0 7 ! brnotgropr, maddr07!
0 6 C 8 0 0 0 0 1 C 0 ! M119(stPRCOD), bruncnd, maddrC0 !
0 7 0 0 0 0 0 0 6 5 0 ! brl1, maddr50 !
0 8 0 8 F 0 1 0 0 0 0 ! M11(PCout2), M3E(MOST2_1), M21(ldMAR), M51(incPC) !
0 9 0 0 0 0 0 0 3 0 9 ! brhack, maddr09 !
0 A B 0 0 2 8 0 4 0A ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddr0A !
0 B 3 1 8 8 0 0 0 0 0 ! M16(MDRout2), M23(ldIR1), M31(ldGPRAR) !
0 C 0 0 0 0 0 0 7 0 E ! brnotgradr, maddr0E !
0 D C 0 0 0 0 0 1 C 0 ! M118(stPRADR), bruncnd, maddrC0 !
0 E 0 0 0 0 0 0 8 5 0 ! brl2_brnch, maddr50 !
0 F 0 0 0 0 0 0 9 2 0 ! brl2_arlog, maddr20 !
1 0 0 8 F 0 1 0 0 0 0 ! M11(PCout2), M3E(MOST2_1), M21(ldMAR), M51(incPC) !
1 1 0 0 0 0 0 0 3 1 1 ! brhack, maddr11!
1 2 B 0 0 2 8 0 4 1 2 ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddr12 !
1 3 3 2 0 0 0 0A5 0 ! M16(MDRout2), M24(ldIR2), brl3_jump, maddr50 !
1 4 0 0 0 0 0 0 B 2 0 ! brl3_arlog, maddr20 !
1 5 0 8 F 0 1 0 0 0 0 ! M11(PCout2), M3E(MOST2_1), M21(ldMAR), M51(incPC)!
1 6 0 0 0 0 0 0 3 1 6 ! brhack, maddr16 !
1 7 B 0 0 2 8 0 4 1 7 !M45(eMAR), M116(rdCPU), brnotfcCPU, maddr17!
1 8 3 2 8 0 0 0 1 2 0 ! M16(MDRout2), M25(ldIR3), bruncnd, maddr20 !
! Formiranje adrese operanda !
2 0 0 0 0 0 0 1 6 0 0 ! bradr !
! Registarsko direktno adresiranje !
2 1 0 0 0 0 0 0 C 5 0 ! brstore, maddr50 !
2 2 0 0 0 0 0 0D2 4 ! brLDW, maddr24 !
2 3 2 C 0 0 0 0 1 5 0 ! M15(GPRout2), M28(ldBB), bruncnd, maddr50 !
2 4 2D7 0 0 0 1 5 0 ! M15(GPRout2), M3E(MOST2_1), M2A(ldBW), bruncnd, maddr50 !
! Registarsko indirektno adresiranje !
2 5 2 8 F 0 0 0 C 5 0 ! M15(GPRout2), M3E(MOST2_1), M21(ldMAR), brstore, maddr50!
2 6 0 0 0 0 0 0 1 3 B ! bruncnd, maddr3B!
! Memorijsko direktno adresiranje !
2 7 4 8 8 0 0 0 C 5 0 ! M19(IRDAout1), M21(ldMAR), brstore, maddr50 !
2 8 0 0 0 0 0 0 1 3 B ! bruncnd, maddr3B!
! Memorijsko indirektno adresiranje !
2 9 4 8 8 0 0 0 0 0 0 ! M19(IRDAout1), M21(ldMAR) !
2 A 0 0 0 0 0 0 3 2A ! brhack, maddr2A!
2 B B 0 0 2 8 0 4 2 B ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddr2B !
2 C 3 3 0 0 4 0 0 0 0 ! M16(MDRout2), M26(ldDWH), M54(incMAR) !
2 D 0 0 0 0 0 0 3 2D ! brhack, maddr2D!
2 E B 0 0 2 8 0 4 2 E ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddr2E!
2 F 3 0 0 1 0 0 0 0 0 ! M16(MDRout2), M42(ldDWL) !
3 0 5 8 8 0 0 0 C 5 0 ! M1B(DWout1), M21(ldMAR), brstore, maddr50!
3 1 0 0 0 0 0 0 1 3 B ! bruncnd, maddr3B!
! Registarsko indirektno sa pomerajem adresiranje!
3 2 4D8 0 0 0 0 0 0 ! M19(IRDAout1), M2B(ldCW) !
3 3 2 8 9 8 0 0 C 5 0 ! M15(GPRout2), M33(ADDout1), M21(ldMAR), brstore, madr50 !
3 4 0 0 0 0 0 0 1 3 B ! bruncnd, maddr3B !
! Bazno indeksno adresiranje sa pomerajem !
3 5 4D8 0 0 0 0 0 0 ! M19(IRDAout1), M2B(ldCW) !
3 6 2D9 8 5 0 0 0 0 ! M15 (GPRout2), M33(ADDout1), M2B(ldCW), M55(incGPRAR) !
3 7 2 8 9 8 0 0 C 5 0 ! M15 (GPRout2), M33(ADDout1), M21(ldMAR), brstore, madr50 !
3 8 0 0 0 0 0 0 1 3 B ! bruncnd, madr3B !

253

252

7556
! PC relativno sa pomerajem adresiranje !
3 9 4D8 0 0 0 0 0 0 ! M19(IRDAout1), M2B(ldCW) !
3 A 0 8 9 8 0 0 C 5 0 ! M11(PCout2), M33(ADDout1), M21(ldMAR), brstore, madr50 !
! itanje operanda !
3 B 0 0 0 0 0 0 3 3 B ! brhack, maddr3B !
3 C B 0 0 2 8 0 4 3 C ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddr3C !
3 D 0 0 0 0 0 0D3 F ! brLDW, maddr3F !
3 E 3 4 0 0 0 0 1 5 0 ! M16(MDRout2), M28(ldBB), bruncnd, maddr50 !
3 F 3 3 0 0 4 0 0 0 0 ! M16(MDRout2), M26(ldDWH), M54(incMAR) !
4 0 0 0 0 0 0 0 3 4 0 ! brhack, maddr40 !
4 1 B 0 0 2 8 0 4 4 1 ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddr41!
4 2 3 0 0 1 0 0 0 0 0 ! M16(MDRout2), M42(ldDWL) !
4 3 5D0 0 0 0 1 5 0 ! M1B(DWout1), M2A(ldBW), bruncnd, maddr50 !
! Neposredno adresiranje !
4 4 0 0 0 0 0 0D4 6 ! brLDW, maddr46 !
4 5 4 4 7 8 0 0 1 5 0 ! M18(IRJAout1), M3F(MOST1_2), M28(ldBB), bruncnd, maddr50 !
4 6 4D0 0 0 0 1 5 0 ! M19(IRDAout1), M2A(ldBW), bruncnd, maddr50 !
! Izvravanje operacije !
5 0 0 0 0 0 0 1 7 0 0 ! bropr !
! NOP !
5 1 0 0 0 0 0 0 1 C 0 ! bruncnd, maddrC0 !
! HALT !
5 2 D0 0 0 0 0 1 0 0 ! M11A(clSTART), bruncnd, maddr00 !
! INTD !
5 3 0 0 3 8 0 0 1 C 0 ! M37(clPSWI), bruncnd, maddrC0 !
! INTE !
5 4 0 0 3 0 0 0 1 C 0 ! M36(stPSWI), bruncnd, maddrC0 !
! TRPD !
5 5 0 0 0 0 7 0 1 C 0 ! M57(clPSWT), bruncnd, maddrC0 !
! TRPE !
5 6 D8 0 0 0 0 1 C 0 ! M11B(stPSWT), bruncnd, maddrC0 !
4 !
! LDB
5 7 0 3 F 0 0 2 0 0 0 ! M61(BBout2), M3E(MOST2_1), M27(ldAB) !
5 8 E 7A0 6 0 1 C 0 ! M2F(ldN), M11C(ldZ), M34(ldC), M56(ldV), bruncnd, maddrC0 !
! LDW !
5 9 7 C 8 0 0 0 1 C 0 ! M1F(BWout1), M29(ldAW), bruncnd, maddrC0!
! STB !
5 A 0 0 0 0 0 0 E 5 F ! brregdir, maddr5F !
5 B 6 0 0 0 8 C 0 0 0 ! M1C(ABout2), M66(mxMDR), M41(ldMDR) !
5 C 0 0 0 0 0 0 3 5 C ! brhack, maddr5C !
5 D B 8 2A8 0 4 5D ! M45(eMAR), M35(eMDR), M117(wrCPU), brnotfcCPU, maddr5D !
5 E 0 0 0 0 0 0 1 C 0 ! bruncnd, maddrC0 !
5 F 6 0 0 0 0 4 1 C 0 ! M1C(ABout2), M62(wrGPR), bruncnd, maddrC0 !
! STW !
6 0 0 0 0 0 0 0 E 6 8 ! brregdir, maddr68 !
6 1 7 0 0 0 8 C 0 0 0 ! M1E(AWHout2), M66(mxMDR), M41(ldMDR) !
6 2 0 0 0 0 0 0 3 6 2 ! brhack, maddr62 !
6 3 B 8 2A8 0 4 6 3 ! M45(eMAR), M35(eMDR), M117(wrCPU), brnotfcCPU, maddr63 !
6 4 6 8 0 0 CC 0 0 0 ! M1D(AWout2), M66(mxMDR), M41(ldMDR), M54(incMAR) !
6 5 0 0 0 0 0 0 3 6 5 ! brhack, maddr65 !
6 6 B 8 2A8 0 4 6 6 ! M45(eMAR), M35(eMDR), M117(wrCPU), brnotfcCPU, maddr66 !
6 7 0 0 0 0 0 0 1 C 0 ! bruncnd, maddrC0 !
6 8 6 8 0 0 0 4 1 C 0 ! M1D(AWout2), M62(wrGPR), bruncnd, maddrC0 !
! POPB !
6 9 0 0 9 0 3 0 0 0 0 ! M32(SPout1), M21(ldMAR), M53(decSP) !
6 A 0 0 0 0 0 0 3 6A ! brhack, maddr6A !
6 B B 0 0 2 8 0 4 6 B ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddr6B !
6 C 3 3 F 0 0 0 0 0 0 ! M16(MDRout2), M3E(MOST2_1), M27(ldAB) !
6 D E 7A0 6 0 1 C 0 ! M2F(ldN), M11C(ldZ), M34(ldC), M56(ldV), bruncnd, maddrC0 !

254

253

7557
! POPW !
6 E 0 0 9 0 3 0 0 0 0 ! M32(SPout1), M21(ldMAR), M53(decSP) !
7 0 0 0 0 0 0 3 6 F ! brhack, maddr6F!
6F
7 07 B 0 0 2 8 0 4 7 0 ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddr70 !
7 1 3 0 9 1 3 0 0 0 0 ! M16(MDRout2), M42(ldDWL), M32(SPout1), M21(ldMAR), M53(decSP) !
7 2 0 0 0 0 0 0 3 7 2 ! brhack, maddr72!
7 3 B 0 0 2 8 0 4 7 3 ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddr73 !
7 4 3 3 0 0 0 0 0 0 0 ! M16(MDRout2), M26(ldDWH) !
7 5 5 C 8 0 0 0 1 C 0 ! M1B(DWout1), M29(ldAW), bruncnd, maddrC0!
! PUSHB !
7 6 0 0 0 0 2 0 0 0 0 ! M52(incSP) !
7 7 6 0 9 0 8 C 0 0 0 ! M32(SPout1), M21(ldMAR), M1C(ABout2), M66(mxMDR), M41(ldMDR) !
A
7 8 0 0 0 0 0 0 3 7 8 ! brhack, maddr78!
A
7 9 B 8 2A8 0 4 7 9 ! M45(eMAR), M35(eMDR), M117(wrCPU), brnotfcCPU, maddr79 !
7 A 0 0 0 0 0 0 1 C 0 ! bruncnd, maddrC0 !
! PUSHW !
7 B 0 0 0 0 2 0 0 0 0 ! M52(incSP) !
7 C 7 0 9 0 8 C 0 0 0 ! M32(SPout1), M21(ldMAR), M1E(AWHout2), M66(mxMDR), M41(ldMDR) !
7 D 0 0 0 0 0 0 3 7D ! brhack, maddr7D!
7 E B 8 2A8 0 4 7 E ! M45(eMAR), M35(eMDR), M117(wrCPU), brnotfcCPU, maddr7E !
7 F 0 0 0 0 2 0 0 0 0 ! M52(incSP) !
8 0 6 8 9 0 8 C 0 0 0 ! M32(SPout1), M21(ldMAR), M1D(AWout2), M66(mxMDR), M41(ldMDR) !
8 1 0 0 0 0 0 0 3 8 1 ! brhack, maddr81!
8 2 B 8 2A8 0 4 8 2 ! M45(eMAR), M35(eMDR), M117(wrCPU), brnotfcCPU, maddr82!
8 3 0 0 0 0 0 0 1 C 0 ! bruncnd, maddrC0!
! LDIVTP !
8 4 9 4 8 0 0 0 1 C 0 ! M112(IVTPout1), M29(ldAW), bruncnd,maddrC0 !
! STIVTP !
8 5 6 8 0 0 0 6 1 C 0 ! M1D(AWout2), M63(ldIVTP), bruncnd, maddrC0 !
! LDIMR !
8 6 8 C 8 0 0 0 1 C 0 ! M111(IMRout1), M29(ldAW), bruncnd, maddrC0 !
! STIMR !
8 7 6 8 0 0 0 8 1 C 0 ! M1D(AWout2), M64(ldIMR), bruncnd, maddrC0 !
! LDSP !
8 8 0 4 9 0 0 0 1 C 0 ! M32(SPout1), M29(ldAW), bruncnd, maddrC0 !
! STSP !
8 9 6 F 0 0 0 0 1 C 0 ! M1D(AWout2), M2E(ldSP), bruncnd, maddrC0 !
! ADD !
8 A 8 3A3 6 2 0 0 0 ! M61(BBout2), M46(add), M110(ALUout1), M27(ldAB), M34(ldC), M56(ldV) !
8 B E 7 8 0 0 0 1 C 0 ! M2F(ldN), M11C(ldZ), bruncnd, maddrC0 !
! SUB !
8 C 8 3A3 E 2 0 0 0 ! M61(BBout2), M47(sub), M110(ALUout1), M27(ldAB), M34(ldC), M56(ldV) !
8 D E 7 8 0 0 0 1 C 0 ! M2F(ldN), M11C(ldZ), bruncnd, maddrC0 !
! INC !
8 E 8 3A4 6 0 0 0 0 ! M48(inc), M110(ALUout1), M27(ldAB), M34(ldC), M56(ldV) !
8 F E 7 8 0 0 0 1 C 0 ! M2F(ldN), M11C(ldZ), bruncnd, maddrC0 !
! DEC !
9 0 8 3A4 E 0 0 0 0 ! M49(dec), M110(ALUout1), M27(ldAB), M34(ldC), M56(ldV) !
9 1 E 7 8 0 0 0 1 C 0 ! M2F(ldN), M11C(ldZ), bruncnd, maddrC0 !
! AND !
9 2 8 3 8 5 0 2 0 0 0 ! M110(ALUout1), M61(BBout2), M4A(and), M27(ldAB) !
9 3 E 7A0 6 0 1 C 0 ! M2F(ldN), M11C(ldZ), M34(ldC), M56(ldV), bruncnd, maddrC0 !
! OR !
9 4 8 3 8 5 8 2 0 0 0 ! M61(BBout2), M4B(or), M110(ALUout1), M27(ldAB) !
9 5 E 7A0 6 0 1 C 0 ! M2F(ldN), M11C(ldZ), M34(ldC), M56(ldV), bruncnd, maddrC0 !
! XOR !
9 6 8 3 8 6 0 2 0 0 0 ! M61(BBout2), M4C(xor), M110(ALUout1), M27(ldAB) !
9 7 E 7A0 6 0 1 C 0 ! M2F(ldN), M11C(ldZ), M34(ldC), M56(ldV), bruncnd, maddrC0 !

255

254

7558
! NOT !
9 8 8 3 8 6 8 0 0 0 0 ! M4D(not), M110(ALUout1), M27(ldAB) !
9C
9 E 7A0 6 0 1 C 0 ! M2F(ldN), M11C(ldZ), M34(ldC), M56(ldV), bruncnd, maddrC0 !
, V20( ldV),
bruncnd, maddrC0!
! ASR, LSR, ROR i ROLC
!
9 A 0 0 2 7 0 0 0 0 0 ! M4E(shr), M34(ldC) !
9C
B E 7 8 0 6 0 1 C 0 ! M2F(ldN), M11C(ldZ), M56(ldV), bruncnd, maddrC0 !
! ASL, LSL, ROL i ROLC !
9 C 0 0 2 7 8 0 0 0 0 ! M4F(shl), M34(ldC) !
C E 7 8 0 6 0 1 C 0 ! M2F(ldN), M11C(ldZ), M56(ldV), bruncnd, maddrC0 !
9D
! BEQL,, BLSSEU !
9 E 5 0 0 0 0 0 FC 0 ! M1A(IRBRout1), brnotbrpom, maddrC0 !
9C
F 3D8 0 0 0 0 0 0 ! M17(IRPOMout1), M2B(ldCW) !
A 0 0 E 1 8 0 0 1 C 0 ! M11(PCout2), M33(ADDout1), M2C(ldPC), bruncnd, maddrC0 !
! JMP !
A 1 4 6 0 0 0 0 1 C 0 ! M18(IRJAout1), M2C(ldPC), bruncnd, maddrC0 !
! INT !
A 2 0 0 4 0 0 0 1 C 0 ! M38(stPRINS), bruncnd, maddrC0 !
! JSR !
A 3 0 0 0 0 2 0 0 0 0 ! M52(incSP) !
A 4 1 0 9 0 8 C 0 0 0 ! M32(SPout1), M21(ldMAR), M12(PCHout2), M66(mxMDR), M41(ldMDR) !
AA
5 0 0 0 0 0 0 3A5 ! brhack, maddrA5 !
A 6 B 8 2A8 0 4A6 ! M45(eMAR), M35(eMDR), M117(wrCPU), brnotfcCPU, maddrA6 !
A 7 0 0 0 0 2 0 0 0 0 ! M52(incSP) !
A 8 0 8 9 0 8 C 0 0 0 ! M32(SPout1), M21(ldMAR), M11(PCout2), M66(mxMDR), M41(ldMDR) !
A 9 0 0 0 0 0 0 3A9 ! brhack, maddrA9!
A B 8 2A8 0 4AA ! M45(eMAR), M35(eMDR), M117(wrCPU), brnotfcCPU, maddrAA !
AA
A 4 6 0 0 0 0 1 C 0 ! M18(IRJAout1), M2C(ldPC), bruncnd, maddrC0 !
AB
A !
! RTI
AC 0 0 9 0 3 0 0 0 0 ! M32(SPout1), M21(ldMAR), M53(decSP) !
A 0 0 0 0 0 0 3AD ! brhack, maddrAD !
AD
A B 0 0 2 8 0 4AE ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddrAE!
AE
A 3 0 9 1 B 0 0 0 0 ! M16(MDRout2), M43(ldPSWL), M32(SPout1), M21(ldMAR), M53(decSP) !
AF
BA
0 0 0 0 0 0 0 3 B0 ! brhack, maddrB0 !
B 1 B 0 0 2 8 0 4 B1 ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddrB1 !
B 2 3 6 8 0 0 0 0 0 0 ! M16(MDRout2), M2D(ldPSWH) !
! RTS !
B 3 0 0 9 0 3 0 0 0 0 ! M32(SPout1), M21(ldMAR), M53(decSP) !
B 4 0 0 0 0 0 0 3 B4 ! brhack, maddrB4!
B 5 B 0 0 2 8 0 4 B5 ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddrB5!
B 6 3 0 9 1 3 0 0 0 0 ! M16(MDRout2), M43(ldPSWL), M32(SPout1), M21(ldMAR), M53(decSP) !
B 7 0 0 0 0 0 0 3 B7 ! brhack, maddrB7!
B 8 B 0 0 2 8 0 4 B8 ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddrB8 !
B 9 3 3 0 0 0 0 0 0 0 ! M16(MDRout2), M26(ldDWH) !
BA 5 E 0 0 0 0 1 C 0 ! M1B(DWout1), M2C(ldPC), bruncnd, maddrC0 !
! Opsluivanje prekida !
C 0 0 0 0 0 0 1 0 0 0 ! brnotprekid, maddr00!
! uvanje konteksta procesora !
C 1 0 0 0 0 2 0 0 0 0 ! M52(incSP) !
C 2 1 0 9 0 8 C 0 0 0 ! M32(SPout1), M21(ldMAR), M12(PCHout2), M66(mxMDR), M41(ldMDR) !
C 3 0 0 0 0 0 0 3 C 3 ! brhack, maddrC3!
C 40 B 8 2A8 0 4 C 4 ! M45(eMAR), M35(eMDR), M117(wrCPU), brnotfcCPU, maddrC4 !
C 5 0 0 0 0 2 0 0 0 0 ! M52(incSP) !
C 6 0 8 9 0 8 C 0 0 0 ! M32(SPout1), M21(ldMAR), M11(PCout2), M66(mxMDR), M41(ldMDR) !
C 7 0 0 0 0 0 0 3 C 7 ! brhack, maddrC7!
C 8 B 8 2A8 0 4 C 8 ! M45(eMAR), M35(eMDR), M117(wrCPU), brnotfcCPU, maddrC8 !
C 9 0 0 0 0 2 0 0 0 0 ! M52(incSP) !
CA 2 0 9 0 8 C 0 0 0 ! M32(SPout1), M21(ldMAR), M12(PCHout2), M66(mxMDR), M41(ldMDR) !
0 0 0 0 0 0 0 3 CB ! brhack, maddrCB!
CB
CC B 8 2A8 0 4 CC ! M45(eMAR), M35(eMDR), M117(wrCPU), brnotfcCPU, maddrCC !
CD 0 0 0 0 2 0 0 0 0 ! M52(incSP) !

256

255

CE 1 8 9 0 8 C 0 0 0 ! M32(SPout1), M21(ldMAR), M13(PSWLout2), M66(mxMDR), M41(ldMDR) !


C F 0 0 0 0 0 0 3 CF ! brhack, maddrCF!
D 0 B 8 2A8 0 4D0 ! M45(eMAR), M35(eMDR), M117(wrCPU), brnotfcCPU, maddrD0 !
! Skok na prekidnu rutinu !
! Utvrivanje broja ulaza !
! Provera da li postoji zahtev za prekid zbog izvravanja instrukcije prekida INT!
D 1 0 0 0 0 0 1 1D3 ! brnotPRINS, maddrD3!
D 2 3 8 4 8 0A1DC ! M17(IRPOMout1), M65(ldBR), M39(clPRINS), bruncnd, maddrDC !
! Provera da li postoji zahtev za prekid zbog greke u kodu operacije!
D 3 0 0 0 0 0 1 2D5 ! brnotPRCOD, maddrD5!
D 4 A0 5 0 0A1DC ! M114(UINTout1), M65(ldBR), M3A(clPRCOD), bruncnd, maddrDC !
! Provera da li postoji zahtev za prekid zbog greke u adresiranju !
D 5 0 0 0 0 0 1 3D7 ! brnotPRADR, maddrD7!
D 6 A0 5 8 0A1DC ! M114(UINTout1), M65(ldBR), M3B(clPRADR), bruncnd, maddrDC !
! Provera da li postoji spoljanji nemaskirajui zahtev za prekid!
D 7 0 0 0 0 0 1 4D9 ! brnotPRINM, maddrD9!
0 8 A0 6 0 0A1DC ! M114(UINTout1), M65(ldBR), M3C(clPRINM), bruncnd, maddrDC !
D
! Provera da li postoji spoljanji maskirajui zahtev za prekid!
D 9 0 0 0 0 0 1 5DB ! brnotprintr, maddrDB!
0 A8 6A0A1DC ! M115(UEXTout1), M65(ldBR), M3D(clINTR), M44(ldL), bruncnd, maddrDC !
DA
! Prekid posle svake instrukcije !
DB A0 0 0 0A0 0 0 ! M114(UINTout1), M65(ldBR) !
! Utvrivanje adrese prekidne rutine !
DC 9 5 8 0 0 0 0 0 0 ! M112(IVTPout1), M2B(ldCW) !
DD 9 8 9 8 0 0 0 0 0 ! M113(IVTPDSPout2), M33(ADDout1), M21(ldMAR) !
DE 0 0 0 0 0 0 3DE ! brhack, maddrDE !
DF B 0 0 2 8 0 4DF ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddrDF !
E 0 3 3 0 0 4 0 0 0 0 ! M16(MDRout2), M26(ldDWH), M54(incMAR) !
E 1 0 0 0 0 0 0 3 E 1 ! brhack, maddrE1!
E 2 B 0 0 2 8 0 4 E 2 ! M45(eMAR), M116(rdCPU), brnotfcCPU, maddrE2 !
E 3 3 0 0 1 0 0 0 0 0 ! M16(MDRout2), M42(ldDWL) !
E 4 5 E 3 8 7 0 1 0 0 ! M1B(DWout1), M2C(ldPC), M37(clPSWI), M57(clPSWT), bruncnd, maddr00 !

7559 Upravljaka jedinica mikroprogramske realizacije sa meovitim kodiranjem signala i jednim


7560tipom mikroinstrukcija se sastoji od sledeih blokova: blok generisanje nove vrednosti
7561mikroprogramskog brojaa, blok mikroprogramski broja, blok mikroprogramska memorija,
7562blok prihvatni registar mikroinstrukcije i blok generisanje upravljakih signala (slika 142).
7563Struktura i opis blokova upravljake jedinice se daju u daljem tekstu.
7564 Blok generisanje nove vrednosti mikroprogramskog brojaa se sastoji od kombinacionih
7565mrea KMOPR i KMADR sa multiplekserom MP i razreda CW28...35 prihvatnog registra
7566mikroinstrukcije CW i slui za generisanje i selekciju vrednosti koju treba upisati u
7567mikroprogramski broja mPC7...0. Potreba za ovim se javlja kada treba odstupiti od
7568sekvencijalnog izvravanja mikroprograma. Vrednosti koje treba upisati u mikroprogramski
7569broja generiu se na tri naina i to pomou:
7570 kombinacione mree KMOPR koja formira signale opr7...0,
7571 kombinacione mree KMADR koja formira signale adr7...0 i
7572 razreda CW28...35 prihvatnog registra mikroinstrukcije CW0...35.
7573Selekcija jedne od tri grupe signala koji daju novu vrednost mikroprogramskog brojaa mPC7...0
7574obezbeuje se signalima bropr i bradr i to:
7575 signali opr7...0 ako signal bropr ima vrednost 1,
7576 signali adr7...0 ako signal bradr ima vrednost 1 i
7577 signali CW7...0 ako signali bropr i bradr imaju vrednost 0.

257

256


imm

RTS

regdir
regind

s ig n a li lo g i k ih u s lo v a

NOP
HALT

s ig n a li lo g i k ih u s lo v a

...
51 52

K M O PR

B 3

21 25


o p r 7 ...0
8
3

8
2

g e n e r is a n je
nove
v r e d n o s ti
m ik r o p r o g r a m s k o g
b r o ja a

...

K M A D R

44


a d r 7 ...0

C W

2 8 ...3 5

8
1

M P

0 S

b ra d r
b ro p r

8
CLK

m PC

IN C

m PC

8
0

LD

m PC

C LK

b rad r
b ro p r
b ru n cn d
b rcn d

ld
in c

m ik r o p r o g r a m s k i
b r o ja

7 ...0

m ik r o p r o g r a m s k a
m e m o r ija

m M EM

W R

36

g ro p r
l1

N O P
b rp o m
p re k id

brcnd

bruncnd

bropr

bradr

blok intr


signali logikih uslova

g e n e ris a n je
u p ra v lja k ih
s ig n a la
u p ra v lja k e
je d in ic e

...

blok exec

re g d ir

STA RT
hack
fc C P U

...

...

blok addr

35

...

blok fetch

p r ih v a tn i
r e g is ta r
m ik r o in s tr u k c ije

...

blok bus

W 28
CW

8

g e n e r is a n je
u p ra v lja k ih
s ig n a la
b lo k o v a
o p e ra c io n e
je d in ic e

7578
7579

27C

LD

35

...

CW
2 3
5

...

28

CW

...

CW

27

CLK

...

22

...

signali logikih uslova

CW

23

23

...

CW

22

C LK

...

...

CW

g e n e r is a n je
u p r a v lja k ih
s ig n a la

Slika 142 Struktura upravljake jedinice

7580 Kombinacionom mreom KMOPR generiu se vrednosti (tabela 44) za realizaciju


7581viestrukog uslovnog skoka u koraku step 50 sekvence upravljakih signala po koracima. U
7582zavisnosti od toga koji od signala NOP, , RTS ima vrednost 1 zavisi koja e od vrednosti iz
7583tabele 44 da se pojavi tada na linijama opr7...0. S obzirom da se na adresi madr50 mikroprograma
7584nalazi mikroinstrukcija sa tako kodiranim poljem cc23...28 da njeno izvravanje daje vrednost 1
7585signala viestrukog uslovnog skoka bropr, vrednost na linijama opr7...0 prolazi tada kroz
7586multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojaa mPC7...0.

258

257

7587 Kombinacionom mreom KMADR generiu se vrednosti (tabela 43) za realizaciju


7588viestrukog uslovnog skoka u koraku step 20 sekvence upravljakih signala po koracima. U
7589zavisnosti od toga koji od signala regdir,..., imm ima vrednost 1 zavisi koja e od vrednosti iz
7590tabele 43 da se pojavi tada na linijama adr7...0. S obzirom da se na adresi madr20 mikroprograma
7591nalazi mikroinstrukcija sa tako kodiranim poljem cc23...28 da njeno izvravanje daje vrednost 1
7592signala viestrukog uslovnog skoka bradr, vrednost na linijama adr7...0 prolazi kroz
7593multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojaa mPC7...0.
7594 Razredi CW28...35 prihvatnog registra mikroinstrukcije CW0...35 sadre vrednost za upis u
7595mikroprogramski broja mPC7...0 za bezuslovne skokove (tabela 41) i uslovne skokove (tabela
759642) u sekvenci upravljakih signala po koracima. Signali viestrukih uslovnin skokova bropr i
7597bradr imaju vrednost 1 samo prilikom izvravanja mikroinstrukcija na adresama 50 i 20
7598mikroprograma, respektivno, a u svim ostalim situacijama imaju vrednost 0. S obzirom da ni
7599jedan od ova dva signala nema vrednost 1 prilikom izvravanja mikroinstrukcija kojima se
7600realizuju bezuslovni ili uslovni skokovi u mikroprogramu, vrednost odreena razredima
7601CW28...35 prolazi kroz multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojaa
7602mPC7...0.
7603 Blok mikroprogramski broja sadri mikroprogramski broja mPC7...0. Mikroprogramski
7604broja mPC7...0 svojom trenutnom vrednou odreuje adresu mikroprogramske memorije
7605mMEM sa koje treba oitati mikroinstrukciju. Mikroprogramski broja mPC 7...0 moe da radi u
7606sledeim reimima:
7607 reim inkrementiranja,
7608 reim skoka i
7609 reim ekanja.
7610 U reimu inkrementiranja pri pojavi signala takta CLKmPC vri se uveavanje sadraja
7611mikroprogramskog brojaa mPC7...0 za jedan ime se obezbeuje sekvencijalno oitavanje
7612mikroinstrukcija iz mikroprogramske memorije. Ovaj reim rada se obezbeuje vrednou 1
7613signala inc. Signal inc ima vrednost 1 ako signali bropr, bradr i branch imaju vrednost 0.
7614Signali bropr, bradr i branch uvek imaju vrednost 0 sem kada treba obezbediti reim skoka.
7615 U reimu skoka pri pojavi signala takta CLKmPC vri se upis nove vrednosti u
7616mikroprogramski broja mPC7...0 ime se obezbeuje odstupanje od sekvencijalnog oitavanja
7617mikroinstrukcija iz mikroprogramske memorije. Ovaj reim rada se obezbeuje vrednou 1
7618signala ld. Signal ld ima vrednost 1 ako jedan od signala bropr, bradr i branch ima vrednost
76191. Signali bropr, bradr i branch uvek imaju vrednost 0 sem u sluaju izvravanja
7620mikroinstrukcije koja ima takvo polje cc28...35 da je specificiran neki viestruki uslovni skok,
7621bezuslovni skok ili neki od uslovnih skokova i uslov skoka je ispunjen.
7622 U reimu ekanja pri pojavi signala takta vri se upis tekue vrednosti u mikroprogramski
7623broja mPC7...0 ime se obezbeuje da se ne menja vrednost mikroprogramskog brojaa
7624mPC7...0. Ovaj reim rada se obezbeuje vrednou 1 signala ld i to kada je:
7625 ciklus procesora na magistrali u toku ili
7626 magistrala preputena ulazno/izlaznom ureaju sa kontrolerom za direktan pristup
7627memoriji, a procesor je doao u korak izvravanja instrukcije u kome mu je magistrala
7628potrebna.
7629 Mikroprogramski broja mPC7...0 je dimenzionisan prema veliini mikroprograma. S obzirom
7630da se mikroprogram svih faza izvravanja instrukcija nalazi u opsegu od adrese 00 do adrese
7631E4, usvojena je duina mikroprogramskog brojaa mPC7...0 od 8 bitova.
7632 Blok mikroprogramski memorija sadri mikroprogramsku memoriju mMEM, koja slui za
7633smetanje mikroprograma. irina rei mikroprogramske memorije je odreena duinom
7634mikroinstrukcija i iznosi 36 bita, a kapacitet veliinom mikroprograma formiranog na osnovu
259

258

7635sekvence upravljakih signala po koracima (tabela 34) i iznosi 256 lokacija. Adresiranje
7636mikroprogramske memorije se realizuje sadrajem mikroprogramskog brojaa mPC7...0.
7637 Blok prihvatni registar mikroinstrukcije sadri prihvatni registar mikroinstrukcije CW0...35.
7638Prihvatni registar mikroinstrukcije CW0...35 slui za prihvatanje mikroinstrukcije oitane iz
7639mikroprogramske memorije mMEM. Na osnovu sadraja ovog registra generiu se upravljaki
7640signali. Razredi CW0...22 i CW23...27 se koriste u bloku generisanje upravljakih signala za
7641generisanje upravljakih signala operacione jedinice i upravljake jedinice, respektivno, dok se
7642razredi CW28...35 koriste u bloku generisanje nove vrednosti mikroprogramskog brojaa kao
7643adresa skoka u mikrorogramu u sluaju bezuslovnih i uslovnih skokova. Upis u ovaj registar se
7644realizuje signalom takta CLKCW. Signal takta CLKCW kasni za signalom takta CLKmPC
7645onoliko koliko je potrebno da se proita sadraj sa odgovarajue adrese mikroprogramske
7646memorije.
7647 Blok generisanje upravljakih signala sadri kombinacione mree koje na osnovu sadraja
7648razreda CW0...22 prihvatnog registra mikroinstrukcije CW0...35 generiu upravljake signale
7649operacione jedinice oper i na osnovu sadraja razreda CW23...27 prihvatnog registra
7650mikroinstrukcije CW0...35 i signala logikih uslova START, hack, ..., prekid koji dolaze iz
7651operacione jedinice generiu upravljake signale upravljake jedinice uprav.
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666

Upravljaki signali bloka bus se generiu na sledei nain (tabele 35, 36 i 37):
ldMAR = CW5 CW6 CW7 CW8
incMAR = CW17 CW18 CW19
mxMDR = CW20 CW21 CW22
ldMDR = CW13 CW14 CW15 CW16
MDRout2 = CW0 CW1 CW2 CW3 CW4
eMAR = CW13 CW14 CW15 CW16
eMDR = CW9 CW10 CW11 CW12
wrCPU = CW0 CW1 CW2 CW3 CW4
rdCPU = CW0 CW1 CW2 CW3 CW4
ldDWH = CW5 CW6 CW7 CW8
ldDWL = CW13 CW14 CW15 CW16
DWout1 = CW0 CW1 CW2 CW3 CW4
MOST1_2 = CW9 CW10 CW11 CW12
MOST2_1 = CW9 CW10 CW11 CW12

7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679

Upravljaki signali bloka fetch se generiu na sledei nain:


ldPC = CW5 CW6 CW7 CW8
incPC = CW17 CW18 CW19
PCout2 = CW0 CW1 CW2 CW3 CW4
PCHout2 = CW0 CW1 CW2 CW3 CW4
ldIR0 = CW5 CW6 CW7 CW8
ldIR1 = CW5 CW6 CW7 CW8
ldIR2 = CW5 CW6 CW7 CW8
ldIR3 = CW5 CW6 CW7 CW8
IRJAout1 = CW0 CW1 CW2 CW3 CW4
IRDAout1 = CW0 CW1 CW2 CW3 CW4
IRPOMout1 = CW0 CW1 CW2 CW3 CW4
IRBRout1 = CW0 CW1 CW2 CW3 CW4

260

259

7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690

Upravljaki signali bloka addr se generiu na sledei nain:


ldGPRAR = CW9 CW10 CW11 CW12
incGPRAR = CW17 CW18 CW19
wrGPR = CW20 CW21 CW22
GPRout2 = CW0 CW1 CW2 CW3 CW4
ldSP = CW5 CW6 CW7 CW8
incSP = CW17 CW18 CW19
decSP = CW17 CW18 CW19
SPout1 = CW9 CW10 CW11 CW12
ldCW = CW5 CW6 CW7 CW8
ADDout1 = CW9 CW10 CW11 CW12

7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722

Upravljaki signali bloka exec se generiu na sledei nain:


ldAB = CW5 CW6 CW7 CW8
ABout2 = CW0 CW1 CW2 CW3 CW4
shr = CW13 CW14 CW15 CW16
shl = CW13 CW14 CW15 CW16
ldBB = CW5 CW6 CW7 CW8
BBout2 = CW20 CW21 CW22
ldAW = CW5 CW6 CW7 CW8
AWout2 = CW0 CW1 CW2 CW3 CW4
AWHout2 = CW0 CW1 CW2 CW3 CW4
ldBW = CW5 CW6 CW7 CW8
BWout1 = CW0 CW1 CW2 CW3 CW4
ALUout1 = CW0 CW1 CW2 CW3 CW4
stPSWI = CW9 CW10 CW11 CW12
clPSWI = CW9 CW10 CW11 CW12
stPSWT = CW0 CW1 CW2 CW3 CW4
clPSWT = CW17 CW18 CW19
ldL = CW13 CW14 CW15 CW16
ldN = CW5 CW6 CW7 CW8
ldZ = CW0 CW1 CW2 CW3 CW4
ldC = CW9 CW10 CW11 CW12
ldV = CW17 CW18 CW19
ldPSWL = CW13 CW14 CW15 CW16
ldPSWH = CW5 CW6 CW7 CW8
PSWHout2 = CW0 CW1 CW2 CW3 CW4
PSWLout2 = CW0 CW1 CW2 CW3 CW4
clSTART = CW0 CW1 CW2 CW2 CW4
add = CW13 CW14 CW15 CW16
sub = CW13 CW14 CW15 CW16
inc = CW13 CW14 CW15 CW16
dec = CW13 CW14 CW15 CW16
and = CW13 CW14 CW15 CW16

261

260

7723
7724
7725

or = CW13 CW14 CW15 CW16


xor = CW13 CW14 CW15 CW16
not = CW13 CW14 CW15 CW16

7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742

Upravljaki signali bloka intr se generiu na sledei nain:


stPRINS = CW9 CW10 CW11 CW12
clPRINS = CW9 CW10 CW11 CW12
stPRCOD = CW0 CW1 CW2 CW3 CW4
clPRCOD = CW9 CW10 CW11 CW12
stPRADR = CW0 CW1 CW2 CW3 CW4
clPRADR = CW9 CW10 CW11 CW12
clPRINM = CW9 CW10 CW11 CW12
clINTR = CW9 CW10 CW11 CW12
ldIMR = CW20 CW21 CW22
IMRout1 = CW0 CW1 CW2 CW3 CW4
ldIVTP = CW20 CW21 CW22
IVTPout1 = CW0 CW1 CW2 CW3 CW4
ldBR = CW20 CW21 CW22
IVTDSPout2 = CW0 CW1 CW2 CW3 CW4
UINTout1 = CW0 CW1 CW2 CW3 CW4
UEXTout1 = CW0 CW1 CW2 CW3 CW4

7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766

Upravljaki signali upravljake jedinice uprav se generiu na sledei nain:


bradr = CW23 CW24 CW25 CW26 CW27
bropr = CW23 CW24 CW25 CW26 CW27
bruncnd = CW23 CW24 CW25 CW26 CW27
brcnd = brnotstart START + brhack hack +
brnotfcCPU fcCPU + brnotgropr gropr + brI1 I1+
brnotgradr gradr + brl2_brnch l2_branch +
brl2_arlog l2_arlog + brl3_jump l3_jump + brl3_arlog l3_arlog +
brstore store + brLDW LDW + brregdir regdir +
brnotbrpom brpom + prekid prekid + brnotPRINS PRINS +
brnotPRCOD PRCOD + brnotPRADR PRADR +
brnotPRINM PRINM + brnotprintr printr
brnotstart = CW23 CW24 CW25 CW26 CW27
brhack = CW23 CW24 CW25 CW26 CW27
brnotfcCPU = CW23 CW24 CW25 CW26 CW27
brnotgropr = CW23 CW24 CW25 CW26 CW27
brl1 = CW23 CW24 CW25 CW26 CW27
brnotgradr = CW23 CW24 CW25 CW26 CW27
brl2_brnch = CW23 CW24 CW25 CW26 CW27
brl2_arlog = CW23 CW24 CW25 CW26 CW27
brl3_jump = CW23 CW24 CW25 CW26 CW27
brl3_arlog = CW23 CW24 CW25 CW26 CW27
brstore = CW23 CW24 CW25 CW26 CW27
brLDW = CW23 CW24 CW25 CW26 CW27

262

261

7767
7768
7769
7770
7771
7772
7773
7774

brregdir = CW23 CW24 CW25 CW26 CW27


brnotbrpom = CW23 CW24 CW25 CW26 CW27
brnotprekid = CW23 CW24 CW25 CW26 CW27
brnotPRINS = CW23 CW24 CW25 CW26 CW27
brnotPRCOD = CW23 CW24 CW25 CW26 CW27
brnotPRADR = CW23 CW24 CW25 CW26 CW27
brnotPRINM = CW23 CW24 CW25 CW26 CW27
brnotprintr = CW23 CW24 CW25 CW26 CW27

7775 Pri generisanju signala branch koriste se sledei signali logikih uslova koji dolaze iz
7776blokova operacione jedinice oper i to:
7777 START blok exec,
7778 hack blok bus,
7779 fcCPU blok bus,
7780 gropr blok fetch,
7781 I1 blok fetch,
7782 gradr blok fetch,
7783 l2_brnch blok fetch,
7784 l2_arlog blok fetch,
7785 l3_jump blok fetch,
7786 l3_arlog blok fetch,
7787 store blok fetch,
7788 LDW blok fetch,
7789 regdir blok fetch,
7790 brpom blok exec,
7791 prekid blok intr
7792 PRINS blok intr,
7793 PRCOD blok intr,
7794 PRADR blok intr,
7795 PRINM blok intr i
7796 printr blok intr.
77974.4 PROCESOR TMHM
7798 U ovoj glavi se daje organizacija procesora CPU koji se sastoji iz operacione jedinice oper i
7799upravljake jedinice uprav (slika 143).
7800 Operaciona jedinica oper je kompozicija kombinacionih i sekvencijalnih prekidakih mrea
7801koje slue za pamenje binarnih rei, izvravanje mikrooperacija i generisanje signala logikih
7802uslova upravljake jedinice uprav. Realizacija operacione jedinica je sa tri interne magistrale.
7803Upravljaka jedinica uprav je kompozicija kombinacionih i sekvencijalnih prekidakih mrea
7804koje slue za generisanje upravljakih signala operacione jedinice oper na osnovu algoritama
7805operacija i signala logikih uslova. Realizacije upravljake jedinice je mikroprogramska sa
7806jednim tipom horizontalnih mikroinstrukcija.
7807
7808

263

Struktura i opis operacione i upravljake jedinice se daju u daljem tekstu.

262

1 5 ...0

D B U S

7 ...0

RD B U S
W RB U S
FCB U S

h req
hack

bus

fe tc h
addr

in tr

in tr7
in tr6
in tr5
in tr4
in tr3
in tr2
in tr1


U/I

BUS

A B U S

in m
FAU LT

exec
I B U S 3 1 5 ...0
I B U S 2 1 5 ...0
I B U S 1 1 5 ...0
oper
u p ra v

7809
7810

CPU

Slika 143 Organizacija procesora CPU

78114.4.1 Operaciona jedinica


7812 Operaciona jedinica oper (slika 143) se sastoji od sledeih blokova:
7813 blok bus,
7814 blok fetch,
7815 blok addr,
7816 blok exec i
7817 blok intr.
7818Ovi blokovi su meusobno povezani sa tri interne magistrale IBUS115...0, IBUS215...0 i
7819IBUS315...0.
7820 Blok bus (slika 144) slui za arbitraciju procesora i ulazno/izlaznog ureaja U/I2 sa
7821kontrolerom za direktan pristup memoriji pri korienju magistrale BUS i realizaciju ciklusa na
7822magistrali BUS. Blok fetch (slike 145, 146, 147) slui za itanje instrukcije i smetanje u
7823prihvatni registar instrukcije. Blok addr (slika 148) slui za formiranje adrese operanda i itanje
7824operanda. Blok exec (slike 149, 150, 151 i 152) slui za izvravanje operacija. Blok intr (slike
7825153, 154 i 155) slui za prihvatanje prekida i i formiranje adrese prekidne rutine.
7826

264

Struktura i opis blokova operacione jedinice oper se daju u daljem tekstu.

263

78274.4.1.1 Blok bus


7828 Blok bus (slika 144) sadri registar MAR15...0, registar MDR7...0 sa multiplekserom MX2,
7829prihvatni registar DW15...0, bafere sa tri stanja za povezivanje registara MAR 15...0, MDR7...0 i
7830DW15...0 na linije internih magistrala IBUS115...0 i IBUS315...0 i sistemske magistrale BUS, bafere
7831sa tri stanja za povezivanje internih magistrala IBUS1 15...0, IBUS215...0 i IBUS315...0, i
7832kombinacione mree za realizaciju ciklusa na magistrali BUS kada je procesor gazda i za
7833arbitraciju sa kontrolerom sa direktnim pristupom memoriji pri korienju magistrale BUS.
7834 Registar MAR150 je 16-to razredni adresni registar iji se sadraj koristi pri realizaciji
7835ciklusa itanja ili upisa na magistrali BUS. Adresa se iz nekog od blokova operacione jedinice
7836oper preko linija interne magistrale IBUS215...0 vodi na paralelne ulaze registra MAR150 i u
7837njega upisuje vrednou 1 signala ldMAR. Sadraj registra MAR150 se inkrementira
7838vrednou 1 signala incMAR. Ovo se koristi u situacijama kada treba proitati ili upisati 16-to
7839bitnu veliinu koja se nalazi u dvema susednim 8-mo bitnim lokacijama. Tada se najpre u
7840registar MAR150 upisuje adresa nie lokacije, a posle se inkrementiranjem dobija adresa vie
7841lokacije. Pri realizaciji ciklusa itanja ili upisa formira se vrednost 1 signala eMAR, ime se
7842sadraj registra MAR150 puta na adresne linije ABUS150 magistrale BUS.
7843 Na paralelne ulaze registra MAR150 se preko linija interne magistrale IBUS215...0 dovode
7844sadraji PC150 bloka fetch, GPR150 bloka addr, IR150 bloka fetch, DW150, ADD150 i SP150
7845bloka addr. Pri tome sadraji PC150 i GPR150 dolaze na linije interne magistrale IBUS215...0
7846preko linija interne magistrale IBUS115...0 tako to se generie vrednost 1 signala MOST1_2
7847koja otvara bafere sa tri stanja za povezivanje internih magistrala IBUS1 15...0 i IBUS215...0. Pored
7848toga sadraji IR150 i DW150 dolaze na linije interne magistrale IBUS215...0 preko linija interne
7849magistrale IBUS315...0 tako to se generie vrednost 1 signala MOST3_2 koja otvara bafere sa
7850tri stanja za povezivanje internih magistrala IBUS315...0 i IBUS215...0. Sadraj PC150 predstavlja
7851adresu instrukcije. Sadraj GPR150 predstavlja adresu operanda u sluaju registarskog
7852indirektnog adresiranja. Sadraj IR150 predstavlja adresu operanda u sluaju memorijskog
7853direktnog adresiranja. Sadraj IR150 predstavlja i adresu memorijske lokacije na kojoj se nalazi
7854adresa operanda u sluaju memorijskog indirektnog adresiranja, pa se tada sa ove adrese ita iz
7855memorije adresa operanda i upisuje u registar DW150, tako da konano sadraj DW150
7856predstavlja adresu operanda u sluaju memorijskog indirektnog adresiranja. Sadraj ADD150
7857predstavlja adresu operanda u sluaju registarskog indirektnog sa pomerajem adresiranja,
7858bazno indeksnog sa pomerajem adresiranja i PC relativnog sa pomerajem adresiranja i formira
7859se na izlazu sabiraa ADD bloka addr. Sadraj SP150 se koristi prilikom stavljanja sadraja na
7860vrh steka i skidanja sadraja sa vrha steka.
7861 Registar MDR70 je 8-mo razredni registar podatka u koji se vrednou 1 jednog od signala
7862MDRin i ldMDR upisuje sadraj sa izlaza multipleksera MX2. Pri realizaciji ciklusa itanja
7863vrednou 1 signala MDRin i vrednou 0 signala mxMDR sadraj sa linija podataka
7864DBUS70 magistrale BUS se puta kroz multiplekser MX2 i upisuje u registar MDR 70. Pri
7865realizaciji ciklusa upisa vrednou 1 signala ldDR i vrednou 1 signala mxMDR sadraj sa
7866linija interne magistrale IBUS37...0 se puta kroz multiplekser MX2 i upisuje u registar MDR70.
7867Signal MDRin je 1 kada se generiu vrednosti 1 signala rdCPU i fcCPU. Signal rdCPU je 1
7868kada procesor kao gazda realizuje ciklus itanja na magistrali, dok je signal fcCPU 1 kada se
7869na upravljakoj liniji magistrale FCBUS pojavi vrednost 0 kao indikacija od memorije ili
7870nekog od kontrolera kao sluge da je proitani podatak raspoloiv na linijama podataka
7871DBUS70 magistrale. Sadraj registra MDR70 se pri realizaciji ciklusa itanja vrednou 1
7872signala MDRout1 puta na linije interne magistrale IBUS170 i vodi na ulaze registara IR0,
7873IR1, IR2 i IR3 bloka fetch i registara DW158 i DW70, dok se razredi MDR40 preko linija
7874IBUS140 vode na ulaze registra GPRAR40 bloka addr. Sadraj registra MDR70 se pri
7875realizaciji ciklusa upisa vrednou 1 signala eMDR puta na linije podataka DBUS 70
7876magistrale.
265

264

I B U S 1 1 5 ...0
I B U S 2 1 5 ...0 1 6
I B U S 3 1 5 ...0 1 6
16
BU S D B U S

7 ...0

8 IB U S 3

8
0

u p ra v

M X

rd C P U
16

u p ra v
ld M A R
in c M A R
u p ra v

LD

16

m r
M R
C LK

M D R

LD

M D R in

1 5 ...0

M D R

7 ...0

IB U S 1

FCB U S
BU S

fc C P U
u p ra v

7 ...0

8
M D R o u t1
u p ra v

u p ra v
eM A R

u p ra v
eM D R
16

A B U S

BU S
RD B U S

M R
C LK

M A R

7 ...0

u p ra v
m xM D R

ld M D R

m r

M A R

IN C

1 5 ...0

BU S
BU S
W RB U S

rd C P U
u p ra v

w rC P U
u p ra v

U /I
h req
eM A R
u p ra v

D B U S

7 ...0

BU S

hack
U /I
u p ra v
IB U S 1

8
ld D W H
u p ra v

LD

m r
M R

D W
8

D W

ld D W L
u p ra v

1 5 ...8

D W 1 5 ...8
D W 7 ...0

8
1 5 ...8
7 ...0

M R

D W

LD

8
8

7 ...0

m r

C LK

D W

7 ...0

16

C LK

16
D W o u t3

u p ra v

16
16
M O S T 1 _ 3 u p ra v
16
16
M O S T 1 _ 2 u p ra v
16
16
M O S T 3 _ 2 u p ra v

7877
7878

IB U S 3

16

IB U S 2

1 5 ...0

16
1 5 ...0

16
16
M O S T 2 _ 1 u p ra v
16
I B U S 1 1 5 ...0

Slika 144 Blok bus

7879
7880 Multiplekser MX2 je 8-mo razredni multiplekser sa dva ulaza. Na ulaze 0 multipleksera se
7881vodi sadraj DBUS70. Na ulaze 1 multipleksera se preko linija interne magistrale IBUS37...0
7882dovode sadraji AB70, AW158 i AW70 bloka exec, PC158 i PC70 bloka fetch i PSW158 i

266

265

7883PSW70 bloka exec. Sadraj DBUS70 se puta kod ciklusa itanja i predstavlja proitanu
7884vrednost memorijske lokacije ili registra kontrolera koja po linijama podataka magistrale BUS
7885dolazi u procesor CPU. Sadraji AB70, AW158, AW70, PC158, PC70, PSW158 i PSW70 se
7886putaju u sluaju ciklusa upisa u memorijsku lokaciju ili registar kontrolera. Sadraj AB70 se
7887puta u sluajevima u kojima se sadraj akumulatora AB70 upisuje, sadraji AW158 i AW70 u
7888sluajevima u kojima se u dva ciklusa na magistrali sadraji starijeg i mlaeg bajta akumulatora
7889AW150 upisuju, sadraji PC158 i PC70 u sluajevima u kojima se u dva ciklusa na magistrali
7890sadraji starijeg i mlaeg bajta programskog brojaa PC150 stavljaju na stek i sadraji PSW158
7891i PSW70 u sluajevima u kojima se u dva ciklusa na magistrali sadraji starijeg i mlaeg bajta
7892programske statusne rei PSW150 stavljaju na stek. Selektovani sadraj sa izlaza multipleksera
7893MX2 se vodi na paralelne ulaze registra MDR70.
7894 Registar DW150 je 16-to razredni pomoni registar koji se koristi za prihvatanje 16-to bitne
7895veliine koja se dobija iz dve susedne 8-mo bitne memorijske lokacije u dva posebna ciklusa na
7896magistrali. Stariji i mlai bajt oitane 16-to bitne veliine dolaze iz registra MDR 70 po linijama
7897interne magistrale IBUS170. Signalom ldDWH se u 8 starijih razreda registra DW158 upisuje
7898stariji bajt, dok se signalom ldDWL u 8 mlaih razreda registra DW70 upisuje mlai bajt.
7899Sadraj registra DW150 se potom vrednou 1 signala DWout3 kao 16-to bitna veliina puta
7900na linije interne magistrale IBUS3150 i upisuje u odgovarajui 16-to razredni registar. Registar
7901DW150 se koristi da se prihvati 16-to bitna adresa operanda u sluaju memorijskog
7902indirektnog adresiranja i da se posle upie u registar MAR 150. Pored toga registar DW150 se
7903koristi da se prihvati 16-to bitni operand u sluaju instrukcija koje se izvravaju nad 16-to
7904bitnim veliinama i da se posle upie u registar BW150 bloka exec. Registar DW150 se koristi i
7905da se prihvati 16-to bitna vrednost sa steka prilikom izvravanja instrukcije RTI ili 16-to bitna
7906vrednost adrese prekidne rutine iz tabele sa adresama prekidnih rutina prilikom opsluivanja
7907prekida i da se posle upie u programski broja PC150 bloka fetch. Pri tome sadraji DW150
7908dolaze na linije interne magistrale IBUS215...0 preko linija interne magistrale IBUS3 15...0 tako to
7909se generie vrednost 1 signala MOST3_2 koja otvara bafere sa tri stanja za povezivanje
7910internih magistrala IBUS315...0 i IBUS215...0. Pogledati zato DW150 ide na IBUS315...0 a ne na
7911IBUS215...0.
7912 U nekim situacijama koje se pojavljuju u drugim blokovima sadraji jedne grupe registara
7913jedino mogu da se putaju na linije interne magistrale IBUS1150, a upis u drugu grupu
7914registara moe da se realizuje jedino sa linija interne magistrale IBUS2150. U takvim
7915situacijama se radi prebacivanja sadraja registra iz jedne u drugu grupu registara, vrednou 1
7916signala MOST1_2 sadraji sa linija interne magistrale IBUS1150 putaju na linije interne
7917magistrale IBUS2150. Ovo staviti za sva povezivanja magistrala.
7918 Kombinacione mree za realizaciju ciklusa na magistrali BUS kada je procesor gazda i za
7919arbitraciju sa kontrolerom sa direktnim pristupom memoriji pri korienju magistrale BUS
7920imaju identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB (odeljak 4.1.1.1).
79214.4.1.2 Blok fetch
7922 Blok fetch sadri registar PC15...0, registre IR0, IR1, IR2 i IR3, bafere sa tri stanja za
7923povezivanje registara PC15...0 i IR31...0 na linije interne magistrale IBUS115...0, i IBUS215...0 i
7924IBUS315...0 (slika 145), dekodere DC1 do DC11 signala logikih uslova operacija i naina
7925adresiranja (slika 146) i kombinacione mree signala logikih uslova duina instrukcija (slika
7926147).

267

266

I B U S 1 1 5 ...0
I B U S 2 1 5 ...0 1 6
I B U S 3 1 5 ...0 1 6
16
16
u p r a v in c P C
u p ra v ld P C

IN C

m r
M R

PC

LD

16

PC

1 5 ...0

16
16
u p ra v P C o u t1

16
PC
PC

CLK

1 5 ...8

IB U S 3

7 ...0

IB U S 3

7 ...0

IB U S 1

7 ...0

8
8
u p r a v P C H o u t3
7 ...0

8
8
u p r a v P C L o u t3
8
C LK

ld IR 0
u p ra v

m r
M R

IR 0

LD

IR

C LK

ld IR 1
u p ra v

IR 1

LD

3 1 ...2 4

m r
M R

IR

2 3 ...1 6

IB U S 1
8
IR 2
8

IR

1 5 ...8

ld IR 3
u p ra v

I R 1 5 ...8
I R 7 ...0

8
8

I R 2 3 ...1 6
I R 1 5 ...8

8
8

IR
IR

23

2 3 ...1 6

8
8

1 5 ...8
7 ...0

1 5 ...8
7 ...0

1 5 ...8
7 ...0

IR

7927
7928

m r
M R

IR 3

LD

IR

7 ...0

16

LD

C LK

16
I R D A o u t3 u p r a v

16

ld IR 2
u p ra v

m r
M R

16
IR J A o u t2

u p ra v

16
IR P O M o u t3

u p ra v

16

C LK

7 ...0

IB U S 3

4
2 7 ...2 4

4
IR B R o u t3

3 ...0

u p ra v
16
I B U S 3 1 5 ...0 1 6
I B U S 2 1 5 ...0 1 6
I B U S 1 1 5 ...0

Slika 145 Blok fetch (prvi deo)

7929 Registar PC150 je 16-to razredni programski broja iji sadraj predstavlja adresu
7930memorijske lokacije poev od koje treba proitati jedan do etiri bajta instrukcije (slika 145).
7931Adresa skoka u programu se iz nekog od blokova operacione jedinice oper preko linija interne
7932magistrale IBUS215...0 vodi na ulaze registra PC150 i u njega upisuje vrednou 1 signala ldPC.
7933Sadraj registra PC150 se inkrementira vrednou 1 signala incPC. Ovo se koristi prilikom
7934itanja svakog bajta instrukcije koji se nalaze u susednim 8-mo bitnim lokacijama.

268

267

7935 Na paralelne ulaze registra PC150 se preko linija interne magistrale IBUS215...0 dovode
7936sadraji DW150 bloka bus, ADD150 bloka addr i IR238, koji predstavljaju adrese skoka za
7937upis u registar PC150. Pri tome sadraji DW150 dolaze na linije interne magistrale IBUS215...0
7938preko linija interne magistrale IBUS315...0 tako to se generie vrednost 1 signala MOST3_2
7939koja otvara bafere sa tri stanja za povezivanje internih magistrala IBUS3 15...0 i IBUS215...0.
7940Sadraj DW150 predstavlja ili vrednost koja se restaurira sa steka prilikom izvravanja
7941instrukcija povratka iz potprograma ili povratka iz prekidne rutine ili adresu prekidne rutine
7942koja se ita iz tabele sa adresama prekidnih prilikom opsluivanja prekida. Sadraj ADD 150
7943predstavlja adresu skoka koja se dobija sabiranjem sadraja programskog brojaa i pomeraja
7944prilikom izvravanja instrukcija uslovnog skoka. Sadraj IR238 predstavlja adresu skoka koja
7945se uzima iz instrukcije prilikom izvravanja instrukcija bezuslovnog skoka ili skoka na
7946potprogram.
7947 Sadraj registra PC150 se vrednou 1 signala PCout1 i MOST1_2 puta najpre na linije
7948interne magistrale IBUS115...0 a zatim na linije interne magistrale IBUS2150 (slika 144) i vodi u
7949registar MAR150 bloka bus pri itanju instrukcije. Sadraj registra PC150 se vrednou 1
7950signala PCout1 puta na linije interne magistrale IBUS115...0 i vodi se na ulaze B150 sabiraa
7951ADD za formiranje adrese memorijske lokacije kada se za adresiranje koristi PC relativno sa
7952pomerajem adresiranje. Na linije interne magistrale IBUS370 se vrednostima 1 signala PCout3
7953i PCHout3 putaju sadraji mlaih 8 razreda PC70 i starijih 8 razreda PC158 radi upisa u
7954registar MDR70 bloka bus. Ovo se koristi kod stavljanja PC150 na stek.
7955 Registri IR0, IR1, IR2 i IR3 su 8-mo razredni registri koji formiraju razrede 3124, 23
795616, 158 i 70, respektivno, prihvatnog registra instrukcije IR 310. Instrukcije mogu, u
7957zavisnosti od formata instrukcije, da budu duine 1, 2, 3 ili 4 bajta (poglavlje 2.1.3). Saglasno
7958formatu instrukcije prvi, drugi, trei i etvrti bajt instrukcije se smetaju redom u registre IR0,
7959IR1, IR2 i IR3. Sadraj prihvatnog registra podatka MDR7...0 bloka bus, koji dolazi po linijama
7960interne magistrale IBUS17...0 na paralelne ulaze registara IR0, IR1, IR2 i IR3, se upisuje u jedan
7961od ovih registara vrednou 1 jednog od signala ldIR0, ldIR1, ldIR2 i ldIR3, respektivno.
7962Razredi IR3124 se uvek popunjavaju i njihov sadraj predstavlja kod operacije. Broj preostalih
7963razreda koji se popunjavaju zavisi od koda operacije, a u sluaju aritmetikih i logikih
7964operacija, i od naina adresiranja i njihov sadraj ima razliito znaenje (poglavlje 2.1.3).
7965 Odreene kombinacije razreda registra IR310 se vrednou 1 jednog od signala IRDAout3,
7966IRJAout2, IRPOMout3 i IRBRout3 putaju na linije interne magistrale IBUS315...0 i
7967IBUS215...0 i preko njih vode u odreene blokove operacione jedinice.
7968 Sadraj IR15...0 se vodi u registar MAR150 bloka bus i koristi kao adresa memorijske lokacije
7969kod memorijskog direktnog i memorijskog indirektnog adresiranja, zatim na ulaze A15...0
7970sabiraa ADD bloka addr i koristi kao pomeraj kod registarskog indirektnog sa pomerajem,
7971bazno indeksnog sa pomerajem i PC relativnog sa pomerajem adresiranja i u registar BW15...0
7972bloka exec i koristi kao neposredna veliina kod operacija nad 16-to bitnim veliinama. Sadraj
7973IR15...0 se vrednou 1 signala IRDAout3 puta na linije interne magistrale IBUS3 15...0 i sa njih
7974vodi na ulaze A15...0 sabiraa ADD. Meutim, u sluaju registara MAR150 i BW15...0 u koje se
7975upisuje sa linija interne magistrale IBUS215...0, sadraj IR15...0 dolazi na linije interne magistrale
7976IBUS215...0 preko linija interne magistrale IBUS315...0 tako to se generie vrednost 1 signala
7977MOST3_2 koja otvara bafere sa tri stanja za povezivanje internih magistrala IBUS3 15...0 i
7978IBUS215...0.
7979 Sadraj IR23...8 se vodi u registar PC150 bloka fetch i koristi kao adresa skoka za instrukcije
7980bezuslovnog skoka i skoka na potprogram. Sadraj IR23...8 se vrednou 1 signala IRJAout2
7981puta na linije interne magistrale IBUS2 15...0 i sa njih vodi u registar PC 15...0. Pored toga sadraj
7982IR158 se vrednou 1 signala IRJA2out i MOST2_1 puta najpre na linije interne magistrale

269

268

7983IBUS27...0 i zatim na linije interne magistrale IBUS170 (slika 144) i vodi u registar BB70 bloka
7984exec i koristi kao neposredna veliina kod operacija nad 8-mo bitnim veliinama.

29
28
27

2
1
0

STA RT
exec

D C2

IR
IR
IR

26
25
24

24

G 0_PG 1

24

2
1
0

D C7

U SH W
U SH B
O PW
O PB
TW
TB
D W
D B

IR
IR
IR

26
25
24

25
24

2
1
0

D C10

7985
7986

270

G 0_PG 7

R
R
L
A
R
R
L
A

O LC
O L
SL
SL
O R C
O R
SR
SR

uprav
exec

26

F
G
L

uprav

IR
IR
IR

26
25
24

D C8

7
6
5
4
3
2
1
0

IR
IR
IR

23
22
21

2
1
0

D C 11

7
6
5
4
3
2
1
0

2
1
0

D C6

7
6
5
4
3
2
1
0

B
B
B
B
B
B
B
B

L
L
G
G
L
L
G
G

SSEU
SSU
R TEU
R TU
SSE
SS
R TE
R T

G 0_PG 3

G 0_PG 57
G 0_PG 56
STSP
LD SP
S T IM R
L D IM R
S T IV T P
L D IV T P

IR
IR
IR

26
25
24

2
1
0

D C9

G 0_PG 5

IR
IR
IR

2
1
0

G 0_PG 4

7
6
5
4
3
2
1
0

A
R
V
F
E
G
Q
L

7
6
5
4
3
2
1
0

G 0_PG 6

im m
pcpom
bxpom
re g in d p o m
m e m in d
m e m d ir
re g in d
re g d ir

uprav

25

P
P
P
P
S
S
L
L

uprav
exec

26

C
A
O
V
N
E
E
Q

G 0_PG 2

IR
IR
IR

7
6
5
4
3
2
1
0

D C5

N
C
N
O
N
N
N
E

25

2
1
0

B
B
B
B
B
B
B
B

uprav

26

7
6
5
4
3
2
1
0

24

IR
IR
IR

TRPE
TRPD
IN T E
IN T D
G 0_PG 03
G 0_PG 02
H A L T u p ra v
N O P u p ra v

G 0_PG 0

25

D C4

uprav

26

2
1
0

IR
IR
IR

G 0_PG 1
G 0_PG 1
RTI
IN T
RTS
JS R
JM P
G 0_PG 1

D C3

G 0

7
6
5
4
3
2
1
0

2
1
0

7
6
5
4
3
2
1
0

uprav

IR
IR
IR

7
6
5
4
3
2
1
0

3
2
1
0

G
G
G
G
G
G
G
G

uprav

G
G
G
G

P
P
P
P
P
P
P
P

30

D C1

3
2
1
0

0_
0_
0_
0_
0_
0_
0_
0_

Slika 146 Blok fetch (drugi deo)

269

N O T
X O R
O R
A N D
D EC
IN C
SU B
A D D

uprav
exec

31

1
0

G
G
G
G
G
G
G
G

IR
IR

7
6
5
4
3
2
1
0

7987 Sadraj IR23...16 proiren znakom IR23 na 16-to bitnu veliinu se vodi na ulaze A150 sabiraa
7988ADD bloka addr i koristi kao pomeraj kod instrukcija uslovnog skoka. Sadraj IR 23...16 proiren
7989znakom IR23 na 16-to bitnu veliinu se vrednou 1 signala IRPOMout3 puta na linije interne
7990magistrale IBUS315...0 i sa njih vodi na ulaze A150 sabiraa ADD. Pored toga sadraj IR23...16 se
7991vrednou 1 signala IRPOMout3 puta na linije interne magistrale IBUS1 7...0 i vodi u registar
7992BR7...0 blok intr gde se koristi kao broj ulaza u tabelu sa adresama programa prekida za
7993instrukciju prekida INT. Pored toga 4-ro bitni sadraj IR 27...24 se vrednou 1 signala
7994IRPOMout3 puta na linije interne magistrale IBUS33...0 i vodi se na ulaze multipleksera MX7,
7995MX8 i MX9 bloka exec gde se koristi za selekciju jednog od signala rezultata operacija kod
7996instrukcija uslovnog skoka.

G
G
G
G
G
G
G

0
0
0
0
0
0
0

_
_
_
_
_
_
_

P
P
P
P
P
P
P

G 3
G 2
G 1
G 57
G 56
G 17
G 16
G 10
G 03
G 02

G 0_PG 3
G 0_PG 2
IN T
JS R
JM P

7997
7998

STB
STW

u p ra v
g ro p r

u p ra v
l2 _ b rn c h
u p ra v
l3 _ ju m p
u p ra v
s to re

u p ra v
g rad r

STB
STW
im m

X O R
O R
A N D
SU B
A D D
STW
STB
LD W
LD B

u p ra v
l2 _ a rlo g

G 0_PG 7
N O T
D EC
IN C
G 0_PG 5
PU SH W
PU SH B
PO PW
PO PB
RTI
RTS
G 0_PG 0
X O
O
A N
SU
A D
ST
LD

R
R
D
B
D
B
B

u p ra v
l1

u p ra v
l3 _ a r lo g

im m

re g d ir
re g in d

Slika 147 Blok fetch (trei deo)

7999 Dekoderi DC1 do DC11 signala logikih uslova operacija i naina adresiranja (slika 146) i
8000kombinacione mree signala logikih uslova duina instrukcija (slika 147) imaju identinu
8001strukturu i funkcionalnost kao i u sluaju procesora DVOB (odeljak 4.1.1.2).
80024.4.1.3 Blok addr
8003 Blok addr sadri registre opte namene GPR sa adresnim registrom registara opte namene
8004GPRAR40, sabira ADD sa prihvatnim registrom CW150, ukaziva na vrh steka SP 150 i
8005bafere sa tri stanja za povezivanje registara opte namene GPR, sabiraa ADD i registra SP 15...0
8006na linije interne magistrale IBUS115...0 i IBUS215...0 (slika 148).
8007 Registri opte namene GPR su realizovani kao registarski fajl sa 32 registra irine 16 bita.
8008Adresa registra opte namene koji se ita ili u koji se upisuje odreena je sadrajem registra
8009GPRAR40 iji se sadraj vodi na adresne linije A40 registarskog fajla GPR. Sadraj koji se
8010upisuje vodi se sa linija interne magistale IBUS3150 na ulazne linije podataka DI150
8011registarskog fajla, a sadraj koji se ita GPR 150 pojavljuje se na izlaznim linijama podataka
8012DO150 registarskog fajla. Vrednostima 1 i 0 signala wrGPR na upravljakoj liniji WR
8013registarskog fajla realizuje se upis u registarski fajl i itanje iz registarskog fajla, respektivno.

271

270

IB U S 1
u p ra
in c G P R
ld G P R
u p ra

v
A R
A R
v

4 ...0

5
IN C
LD

m r
M R

G PRA R
5

I B U S 1 1 5 ...0
I B U S 2 1 5 ...0 1 6
I B U S 3 1 5 ...0 1 6
16

G PRA R

C LK

4 ...0

16
D I 1 5 ...0

G PR

4 ...0

D O

W R

1 5 ...0

16

G PR

1 5 ...0

16
u p ra v
in c S P
decSP
u p ra v

16

16

8014
8015

LD

1 5 ...0

A D D

16

16
S P o u t2 u p r a v

16

16
A D D o u t2 u p r a v

16

16
C W o u t3 u p r a v

1 5 ...0

1 5 ...0

16

CW

16
ld C W
u p ra v

SP

1 5 ...0

16

u p ra v
ld S P

LD
C LK

A D D

16

C LK

M R

SP

D EC

16
G P R o u t1 u p r a v

m r

IN C

w rG P R
u p ra v

1 5 ...0

CW
m r

16

16
I B U S 3 1 5 ...0 1 6
I B U S 2 1 5 ...0 1 6
I B U S 1 1 5 ...0

Slika 148 Blok addr

8016 Na ulazne linije podataka podataka DI150 registarskog fajla GPR se preko linija interne
8017magistrale IBUS3150 dovode sadraji registara AB70 i AW150 bloka exec, pri emu je sadraj
8018registra AB70 proiren nulama do duine 16 bita. Ovo se korisi u instrukcijama prenosa STB i
8019STW sadraja akumulatora AB70 i AW150, respektivno, kada je registarskim direktnim
8020adresiranjem kao odredite specificiran neki od registara opte namene.
8021 Sadraj proitanog registra opte namene GPR 150 se vrednou 1 signala GPRout1 i
8022MOST1_2 puta najpre na linije interne magistrale IBUS1 15...0 i zatim na linije interne
8023magistrale IBUS2150 (slika 144) i vodi u registar MAR150 bloka bus u sluaju registarskog

272

271

8024indirektnog adresiranja i u registar BW150 bloka exec u sluaju registarskog direktnog


8025adresiranja za operacije nad 16-to bitnim veliinama. Sadraj proitanog registra opte namene
8026GPR150 se vrednou 1 signala GPRout1 puta na linije interne magistrale IBUS1 15...0 i vodi na
8027ulaze B150 sabiraa ADD u sluaju registarskog indirektnog sa pomerajem i bazno indeksnog
8028sa pomerajem adresiranja. Mlaih 8 razreda proitanog registra opte namene GPR70 se
8029vrednou 1 signala GPRout1 putaju na linije interne magistrale IBUS170 i vode u registar
8030BB70 bloka exec u sluaju registarskog direktnog adresiranja za operacije nad 8-mo bitnim
8031veliinama.
8032 Adresni registar registara opte namene GPRAR40 je 5-to razredni registar iji se sadraj
8033koristi kao adresa registra registarskog fajla prilikom upisa u registarski fajl i itanja iz
8034registarskog fajla. U registar GPRAR40 se vrednou 1 signala ldGPRAR upisuju razredi
80354...0 prihvatnog registra podatka MDR70 bloka bus koji dolazi po linijama interne magistrale
8036IBUS140. Ovo se koristi samo u fazi itanja instrukcije i to prilikom itanja drugog bajta
8037instrukcije. Tada ova grupa bitova, ukoliko se radi o aritmetikim ili logikim instrukcijama sa
8038adresiranjima koja koriste registre registre opte namene, predstavlja adresu registra opte
8039namene. Sadraj registra GPRAR40 se inkrementira vrednou 1 signala incGPRAR, to se
8040koristi samo ukoliko se radi o bazno indeksnom sa pomerajem adresiranju. Tada se registar
8041opte namene ija je adresa zadata bitovima 4...0 drugog bajta instrukcije koristi kao bazni
8042registar, a registar opte namene sa prve sledee adrese kao indeksni registar. Sadraj registra
8043GPRAR40 se vodi na adresne linije A40 registarskog fajla GPR.
8044 Sabira ADD je 16-to razredni sabira koji se koristi za formiranje16-to bitne vrednosti koja
8045moe da bude adresa sa koje treba da se proita adresa prekidne rutine, adresa sa koje treba da
8046se proita ili na kojoj treba da se upie operand ili adresa skoka. Sabiranje se realizuje nad
8047sadrajima internih magistrala IBUS3150 i IBUS1150 koji se vode na ulaze A150 i B150,
8048respektivno, sabiraa ADD. Sadraj ADD150 se vrednou 1 signala ADDout2 puta na linije
8049interne magistrale IBUS2150 i preko njih vodi u adresni registar MAR150 bloka bus,
8050programski broja PC150 bloka fetch i u registar CW150.
8051 Registar CW150 je 16-to razredni prihvatni registar sabiraa ADD koji se koristi samo u
8052sluaju bazno indeksnog sa pomerajem adresiranja. Na ulaze registra CW150 se preko linija
8053interne magistrale IBUS2150 dovode sadraji ADD150 i u njega upisuju vrednou 1 signala
8054ldCW. Sadraj CW150 se vrednou 1 signala CWout3 puta na linije interne magistrale
8055IBUS3150 i preko njih vodi na ulaze A150 sabiraa ADD.
8056 Na ulaze A150 sabiraa ADD se preko linija interne magistrale IBUS3150 dovode sadraji
8057IVTDSP150 bloka intr, IR150 bloka fetch, registra CW150 i IR2316 proiren znakom do
8058duine 16 bita bloka fetch.
8059 Na ulaze B150 sabiraa ADD se preko linija interne magistrale IBUS1150 dovode sadraji
8060IVTP150 bloka intr, GPR150 bloka fetch i PC150 bloka fetch.
8061 Sadraji IVTDSP150 i IVTP150 se dovode u okviru opsluivanja prekida. Tada se na izlazu
8062sabiraa ADD dobija adresa sa koje treba da se proita adresa prekidne rutine. Pri tome je
8063IVTP150 sadraj registra koji ukazuje na poetak tabele sa adresama prekidnih rutina i
8064IVTDSP150 pomeraj u odnosu na poetak tabele formiran na osnovu broja ulaza u tabelu.
8065Rezultat sabiranja se upisuje u registar MAR150.
8066 Sadraji IR150 i GPR150 se dovode u okviru registarskog indirektnog sa pomerajem i
8067baznog indeksnog sa pomerajem adresiranja. U okviru registarskog indirektnog sa pomerajem
8068adresiranja se na izlazu sabiraa ADD dobija adresa sa koje treba da se proita ili na kojoj treba
8069da se upie operand. Pri tome je GPR 150 sadraj registra opte namene ija je adresa zadata
8070instrukcijom i IR150 pomeraj. Rezultat sabiranja se upisuje u registar MAR 150. U okviru
8071baznog indeksnog sa pomerajem adresiranja suma ADD150 sa izlaza sabiraa ADD se najpre

273

272

8072upisuje u registar CW150, pri emu je GPR150 sadraj registra opte namene koji se koristi
8073kao bazni registar i ija je adresa zadata instrukcijom i IR 150 pomeraj. Zatim se sabiraju
8074sadraji registra CW150 i GPR150, pri emu je sada GPR150 sadraj registra opte namene
8075koji se koristi kao indeksni registar i koji je proitan sa adrese koja je prva posle adrese zadate
8076instrukcijom. Rezultat sabiranja se upisuje u registar MAR150.
8077 Sadraj IR150 i PC150 se dovode u okviru PC relativnog sa pomerajem adresiranja. Tada se
8078na izlazu sabiraa ADD dobija adresa sa koje treba da se proita ili na kojoj treba da se upie
8079operand. Pri tome je PC150 sadraj programskog brojaa i IR 150 pomeraj. Rezultat sabiranja
8080se upisuje u registar MAR150.
8081 Sadraj IR2316 proiren znakom do duine 16 bita i PC 150 se dovode u sluaju instrukcija
8082uslovnog skoka. Tada se na izlazu sabiraa ADD dobija adresa skoka. Pri tome je PC 150
8083sadraj programskog brojaa i IR2316 proiren znakom do duine 16 bita pomeraj u odnosu na
8084tekuu vrednost programskog brojaa. Rezultat sabiranja se upisuje u registar PC 150.
8085 Registar SP150 je 16-to razredni ukaziva na vrh steka iji sadraj predstavlja adresu
8086memorijske lokacije prilikom upisa na stek i itanja sa steka. U registar SP 150 se vrednou 1
8087signala ldSP u fazi izvravanja instrukcije prenosa STSP upisuje sadraj 16-to razrednog
8088akumulatora AW15...0 bloka exec koji dolazi po linijama interne magistrale IBUS3150. Sadraj
8089registra SP150 se inkrementira i dekrementira vrednostima 1 signala incSP i decSP,
8090respektivno. Ovo se koristi pri upisu na stek i itanju sa steka, respektivno. Sadraj registra
8091SP150 se vrednou 1 signala SPout2 puta na linije interne magistrale IBUS2 150 i preko njih
8092vodi u registar MAR150 bloka bus pri upisu ili itanju sa steka i u akumulator AW15...0 u fazi
8093izvravanja instrukcije prenosa LDSP.
80944.4.1.4 Blok exec
8095 Blok exec sadri aritmetiko logiku jedinicu ALU, registre AB7...0 i BB7...0, multipleksere
8096MX3 i MX4, kodere CD1 i CD2, registre AW150 i BW150 i bafere sa tri stanja za povezivanje
8097registara AB7...0, BB7...0, AW150 i BW150 i ALU na linije internih magistrala IBUS115...0 i
8098IBUS215...0 (slika 149), registar PSW15...0, bafere sa tri stanja za povezivanje registra PSW15...0 na
8099linije interne magistrale IBUS215...0 i flip-flop START (slika 150), kombinacione mree za
8100formiranje signala postavljanja indikatora N, Z, C i V (slika 151) i kombinacione mree za
8101formiranje signala rezultata operacija eql, ..., nneg i brpom sa multiplekserima MX7, MX8 i
8102MX9 (slika 152).
8103 Aritmetiko logika jedinica ALU (slika 149) ima identinu strukturu i funkcionalnost kao i
8104u sluaju procesora DVOB (odeljak 4.1.1.4). Sadraj ALU70 predstavlja rezultat aritmetikih
8105ili logikih operacija koje kao odredite implicitno koriste registar akumulatora AB70. Stoga
8106se vrednou 1 signala ALUout1 sadraj ALU70 puta na linije interne magistrale IBUS170 i
8107vodi u registar AB70.
8108 Registar AB7...0 je 8-mo razredni akumulator koji se koristi kao implicitno izvorite i
8109odredite u aritmetikim, logikim i pomerakim instrukcijama. Sadraj sa linija interne
8110magistrale IBUS17...0 se vodi na ulaze registra AB7...0 i u njega upisuje vrednou 1 signala
8111ldAB. Sadraj registra AB7...0 se pomera udesno za jedno mesto vrednou 1 signala shR. Tada
8112se u najstariiji razred registra AB7 upisuje signal IR koji dolazi sa izlaza multipleksera MX3.
8113Sadraj registra AB7...0 se pomera ulevo za jedno mesto vrednou 1 signala shL. Tada se u
8114najmlai razred registra AB0 upisuje signal IL koji dolazi sa izlaza multipleksera MX4.

274

273

8
8

7 ...0

7 ...0

not
xor
or
and

uprav

A LU

7 ...0

7 ...0

dec
in c
sub
add

A LU
C

16

1 5 ...8
7 ...0

A B

16

16
A B o u t3 u p ra v
IB U S 1

8
A L U o u t1 u p ra v

IB U S 2
IB U S 3

IB U S 2
8

shr

7 ...0

ld A B
shl

LD
SH L
M R IL

A B

uprav

C LK
SH R
IR

B B o u t2

7 ...0
7 ...0
7 ...0

u p ra v

7 ...0

B B

C LK

m r

B B

uprav

A B

7 ...0


uprav

I B U S 1 1 5 ...0
I B U S 2 1 5 ...0 1 6
I B U S 3 1 5 ...0 1 6
16

LD

ld B B
u p ra v
IB U S 1

7 ...0

IB U S 3

7 ...0

8
3

RO R
RO
LS
A S

M X 3

LD

IR

0
1

2
1

2
1

M X 4

1
0

A W

RO LC
RO L
LSL
A SL

A W
3
2
1

CD 2

16

16

1 5 ...0

C LK

ld B W
u p ra v

LD

1 5 ...8

A W

16

8115
8116

IL

0
1

A W

CD 1

16
ld A W
u p ra v

PSW C
A B 7
0
0

fetch

fetch

C
R
R
R

PSW C
A B 0
0
A B 7

1 5 ...0

B W

8
A W H o u t3 u p r a v

16

16
A W o u t3

16

16
B W o u t2 u p ra v

u p ra v

1 5 ...0

B W

CLK

16
16
I B U S 3 1 5 ...0 1 6
I B U S 2 1 5 ...0 1 6
I B U S 1 1 5 ...0

Slika 149 Blok exec (prvi deo)

8117 Sadraj registra AB7...0 se vrednou 1 signala ABout3 puta na linije interne magistrale
8118IBUS37...0 i sa njih vodi na ulaze A7...0 ALU gde se koristi kao prvi izvorini operand u sluaju
8119aritmetikih i logikih operacija. Pored toga sadraj registra AB7...0 proiren nulama na 16-to

275

274

8120bitnu vrednost se vrednou 1 signala ABout3 puta na linije interne magistrale IBUS315...0 i
8121upisuje u adresirani registar registarskog fajla GPR bloka addr u sluaju registarskog direktnog
8122adresiranja za instrukciju STB.
8123 Na paralelne ulaze registra AB70 se preko linija interne magistrale IBUS1 70 dovode
8124sadraji ALU70 i BB70. Sadraj ALU70 predstavlja rezultat aritmetikih ili logikih operacija
8125koje kao odredite implicitno koriste registar akumulatora AB70. Sadraj BB70 predstavlja
8126operand koji se u fazi izvravanja instrukcije LDB prebacuje iz prihvatnog registra operanda
8127BB70 u registar akumulatora AB70. Pri tome sadraj BB70 dolazi na linije interne magistrale
8128IBUS17...0 preko linija interne magistrale IBUS215...0 tako to se generie vrednost 1 signala
8129MOST2_1 koja otvara bafere sa tri stanja za povezivanje internih magistrala IBUS2 7...0 i
8130IBUS17...0.
8131 Registar BB7...0 je 8-mo razredni prihvatni registar u koji se privremeno smeta izvorini
8132operand specificiran adresnim delom svih instrukcija sa jednoadresnim formatom. Sadraj sa
8133linija interne magistrale IBUS17...0 se vodi na ulaze registra BB7...0 i u njega upisuje vrednou 1
8134signala ldBB. Sadraj registra BB7...0 se vrednou 1 signala BBout2 puta na linije interne
8135magistrale IBUS27...0 i vodi na ulaze B7...0 ALU, gde se koristi kao drugi izvorini operand u
8136sluaju aritmetikih i logikih instrukcija. Pored toga sadraj registra BB 7...0 se vrednou 1
8137signala BBout2 i MOST2_1 puta najpre na linije interne magistrale IBUS27...0 a zatim na linije
8138interne magistrale IBUS17...0 i vodi u registar AB7...0 u sluaju instrukcije LDB.
8139 Na paralelne ulaze registra BB70 se preko linija interne magistrale IBUS1 70 dovode
8140sadraji GPR70 bloka addr, MDR70 i IR158 bloka fetch. Pri tome sadraji IR158 dolaze na
8141linije interne magistrale IBUS17...0 preko linija interne magistrale IBUS2 7...0 tako to se generie
8142vrednost 1 signala MOST2_1 koja otvara bafere sa tri stanja za povezivanje internih magistrala
8143IBUS27...0 i IBUS17...0. Sadraj GPR70 predstavlja operand u sluaju registarskog direktnog
8144adresiranja, MDR70 u sluaju memorijskih adresiranja i IR158 u sluaju neposrednog
8145adresiranja.
8146 Multiplekseri MX3 i MX4 i koderi CD1 i CD2 imaju identinu strukturu i funkcionalnost
8147kao i u sluaju procesora DVOB (odeljak 4.1.1.4).
8148 Registar AW15...0 je 16-to razredni akumulator koji se koristi kao implicitno izvorite u
8149instrukcijama prenosa STW, PUSHW, STIVTP, STIMR i STSP i implicitno odredite u
8150instrukcijama prenosa LDW, POPW, LDIVTP, LDIMR i LDSP. Sadraj sa linija interne
8151magistrale IBUS215...0 se vodi na ulaze registra AW15...0 i u njega upisuje vrednou 1 signala
8152ldAW. Vrednou 1 signala AWout3 sadraj registra AW15...0 se preko bafera sa tri stanja puta
8153na linije interne magistrale IBUS315...0 i vodi u blok addr gde se, ukoliko se izvrava instrukcija
8154prenosa STW sa zadatim registarskim direktnim adresiranjem, upisuje u adresirani registar
8155registarskog fajla GPR i ukoliko se izvrava instrukcija STSP upisuje u registar SP 15...0, i u blok
8156intr gde se, ukoliko se izvrava instrukcija STIVTP ili STIMR, upisuje u registre IVTP 15...0 ili
8157IMR15...0, respektivno. Vrednostima 1 signala AWout3 i AWHout3 se preko bafera sa tri stanja
8158na linije interne magistrale IBUS37...0 putaju sadraji mlaih 8 razreda AW7...0 i starijih 8 razreda
8159AW15...8 radi upisa u registar MDR7...0 bloka bus. Ovo se radi kada se sadraj registra AW15...0,
8160ukoliko se izvrava instrukcija prenosa STW sa zadatim nekim od memorijskih adresiranja ili
8161instrukcija prenosa PUSHW, upisuje u memoriju.
8162 Na paralelne ulaze registra AW150 se preko linija interne magistrale IBUS2 150 dovode
8163sadraji BW150, SP150 bloka addr, IVTP150 i IMR150 bloka intr. Pri tome sadraj IVTP150
8164dolazi na linije interne magistrale IBUS215...0 preko linija interne magistrale IBUS115...0 tako to
8165se generie vrednost 1 signala MOST1_2 koja otvara bafere sa tri stanja za povezivanje
8166internih magistrala IBUS115...0 i IBUS215...0. Sadraj BW150 se dovodi u sluaju instrukcije
8167LDW, sadraj SP150 u sluaju instrukcije LDSP, sadraj IVTP150 u sluaju instrukcije
8168LDIVTP i sadraj IMR150 u sluaju instrukcije LDIMR.
276

275

8169 Registar BW15...0 je 16-to razredni prihvatni registar u koji se privremeno smeta izvorini
8170operand specificiran adresnim delom instrukcije prenosa LDW. Sadraj sa linija interne
8171magistrale IBUS215...0 se vodi na ulaze registra BW15...0 i u njega upisuje vrednou 1 signala
8172ldBW. Sadraj registra BW15...0 se vrednou 1 signala BWout2 puta na linije interne
8173magistrale IBUS215...0 i upisuje u registar AW15...0 u sluaju instrukcije LDW.
8174 Na paralelne ulaze registra BW150 se preko linija interne magistrale IBUS2 150 dovode
8175sadraji GPR150 bloka addr, DW150 bloka bus i IR150 bloka fetch. Pri tome se sadraji
8176GPR150 putaju na linije interne magistrale IBUS1150, a zatim sa njih na linije interne
8177magistrale IBUS2150 (slika 144). Takoe se i sadraji DW150 i IR150 putaju na linije interne
8178magistrale IBUS3150, a zatim sa njih na linije interne magistrale IBUS2150 (slika 144). Sadraj
8179GPR150 predstavlja operand u sluaju registarskog direktnog adresiranja, sadraj DW 150 u
8180sluaju memorijskih adresiranja i sadraj IR150 u sluaju neposrednog adresiranja.
8181 Registar PSW15...0 (slika 150) ima identinu strukturu i funkcionalnost kao i u sluaju
8182procesora DVOB (odeljak 4.1.1.4).
8183 U razrede PSW15.14 koji predstavljaju 2 najstarija razreda registra PSW 15...0 se vrednou 1
8184signala ldPSWH upisuje sadraj sa linija interne magistrale IBUS17.6 na kojima se tada nalaze
8185sadraji razreda MDR7.6 prihvatnog registra podatka MDR7...0 bloka bus, dok se u razrede
8186PSW6...0 koji predstavljaju 7 najmlaih razreda registra PSW 15...0 vrednou 1 signala ldPSWL
8187upisuje sadraj sa linija interne magistrale IBUS1 6...0 na kojima se tada nalaze sadraji razreda
8188MDR6...0 prihvatnog registra podatka MDR7...0. Ovo se koristi prilikom izvravanja instrukcije
8189RTI da se sadrajem sa vrha steka restaurira sadraj registra PSW 15...0. Sadraji 2 najstarija
8190razreda PSW15.14, 7 najmlaih razreda PSW6...0 i vrednosti 0 za nepostojee razrede PSW13...7
8191registra PSW15...0 se vrednostima 1 signala PSWHout3 i PSWLout3 putaju posebno kao 8
8192starijih razreda PSW15...8 i 8 mlaih razreda PSW7...0 registra PSW15...0 na linije interne magistrale
8193IBUS37...0 i vode u blok bus u kome se upisuju u prihvatni registar podatka MDR 7...0. Ovo se
8194koristi prilikom opsluivanja zahteva za prekida da se sadraj registra PSW 15...0 stavi na vrh
8195steka.
8196 Flip-flop START svojom vrednou 1 omoguuje izvravanje instrukcija, dok se vrednou
81970 zaustavlja. U flip-flop START se upisuje vrednost 1 vrednou 1 signala TSTART koja se
8198generie ili pri ukljuenju napajanja ili aktiviranjem tastera START. U flip-flop se upisuje
8199vrednost 0 vrednou 1 signala clSTART koja se generie u okviru faze izvravanja instrukcije
8200HALT
8201

277

276

IB U S 1
16

IB U S 1
16

1 5 ...0

ld P S W H u p ra v
u p ra v
s tP S W I

in tr
PSW I

c lP S W I
u p ra v
u p ra v
s tP S W T

N
IB U S 1 0

c lP S W T
u p ra v

ld Z
u p ra v

IB U S 1
R

m r

0
PSW L2
PSW L1
PSW L0
PSW V
PSW C
PSW Z
PSW N

TSTA RT

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

1
1
1
1
1
1

IB U S 3

15 8

Z
1

7 ...0

C
IB U S 1 2

ld V
u p ra v
V
IB U S 1 3

in tr
p rl0
IB U S 1 4

7 ...0

278

PSW V

C LK
R

in tr
PSW L

in tr
PSW L

in tr
PSW L

C LK
R

m r

in tr
p rl1
IB U S 1 5

fe tc h
u p ra v
STA RT

C LK
R

m r
R

m r
16
I B U S 3 1 5 ...0 1 6
I B U S 2 1 5 ...0 1 6
I B U S 1 1 5 ...0

8202
8203
8204

C LK

c lS T A R T
u p ra v

PSW C

C LK

8
P S W L o u t3
u p ra v

PSW Z

m r

IB U S 3

7 0

m r

ld L
u p ra v

C LK

C LK

ld C
u p ra v

1 5 ...0

8
P S W H o u t3
u p ra v

PSW

PSW N

m r

I B U S 1 1 5 ...0
I B U S 2 1 5 ...0 1 6
I B U S 3 1 5 ...0 1 6
16
PSW

16

1 5 ...0

PSW I
PSW T
0
0
0
0
0
0

m r
in tr
PSW T

IB U S 1

16
IB U S 1

u p ra v

m r

C LK

IB U S 1

ld P S W L

ld N
u p ra v

C LK

IB U S 1

1 5 ...0

in tr
p rl2
IB U S 1 6

Slika 150 Blok exec (drugi deo)


.

277

C LK
R

m r

fetch
fetch

D
C
B
C
C

A B
B B
A LU

7
7
7

7
6
5

4
3
2
1
0

A D D

fetch

fetch

B
B
B
B
B
B
B
B

A D
IN
SU
D E

C8
A SR
LSR
R O R
RO RC
A B 0
A SL
LSL
RO L
RO LC
A B 7

LD B
PO PB
A D D
SU B
IN C
D EC
A N D
O R
X O R
N O T
A SR
LSR
RO R
RO RC
A SL
LSL
RO L
RO LC
A
A
A
A
A
A
A
A

8207
8208

N
7

A B

fetch

8205
Kombinacione mree signala postavljanja indikatora N, Z, C i V (slika 151) imaju
8206identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB (odeljak 4.1.1.4).

A D D

SU B
V
V

SU B

IN C
D EC

IN C

D EC

Slika 151 Blok exec (trei deo)

8209 Kombinacione mree za formiranje signala rezultata operacija eql, ..., nneg i brpom se
8210sastoje od logikih elemenata i multipleksera MX7, MX8 i MX9 (slika 152). Logikim
8211elementima se na osnovu sadraja flip-flopova PSWN, PSWZ, PSWC i PSWV programske
8212statusne rei formiraju signali eql, ..., nneg. Multiplekserima MX7, MX8 i MX9 se na osnovu
8213sadraja sa linija interne magistrale IBUS33...0 na kojima su sadraji razreda IR27...24 prihvatnog
8214registra instrukcije bloka fetch kojima se specificira kod operacije instrukcije uslovnog skoka
8215BEQL, ..., BNNEQ selektuje jedan od signala eql, ..., nneg i pojavljuje kao signal brpom koji
8216se koristi u upravljakoj jedinici uprav da bi se prilikom izvravanja instrukcija uslovnog skoka
8217utvrdilo da li je uslov za skok ispunjen ili nije. Selekcija jednog od signala eql, ..., nneg i
8218formiranje signala brpom se realizuje na osnovu kodiranja odgovarajuih kodova operacija
8219instrukcije uslovnog skoka BEQL, ..., BNNEQ. Kodiranje instrukcija je tako realizovano da se
8220razredom IR27 selektuje jedna od dve podgrupe G0_PG2 (poglavlje 2.1.5.1.3.1) i G0_PG3
8221(poglavlje 2.1.5.1.3.1) instrukcija uslovnog skoka (tabela 4), dok se razredima IR26...24 unutar
8222selektovane podrupe selektuje odgovarajua instrukcija (tabele 7 i 8).

279

278

PSW Z
PSW N
PSW V
PSW Z
PSW C
PSW Z

ls s u , c a r
g r te u , n c a r

ls s
g r te

PSW V

ovf
novf

ls s e
g rt

PSW N

neg
nneg

ncar
car
novf
ovf
nneg
neg
neql
eql
IB U S 1
IB U S 3 1

8223
8224

PSW C

ls s e u
g r tu

I B U S 1 1 5 ...0
I B U S 2 1 5 ...0 1 6
I B U S 3 1 5 ...0 1 6
16
I B U S 3 7 ...0
16
I B U S 3 1 5 ...0 1 6
I B U S 2 1 5 ...0 1 6
I B U S 1 1 5 ...0

eql
neql

ls s e u
ls s u
g r te u
g r tu
ls s e
ls s
g r te
g rt

7
6
5
4

M X 7

3
2
1
0


2 ...0

IB U S 1

7
6
5

M X 8

M X 9

IB U S 1

u p ra v
b rp o m

0
3

1
0


2 ...0

3 ...0

Slika 152 Blok exec (etvrti deo)

8225 Signali rezultata operacija eql, ..., nneg imaju identino znaenje i formiraju se prema
8226identinim izrazima kao i u sluaju procesora DVOB (odeljak 4.1.1.4).
82274.4.1.5 Blok intr
8228 Blok intr sadri logiki ILI element za formiranje signala prekida prekid, kombinacione i
8229sekvencijalne mree za prihvatanje unutranjih prekida i spoljanjih nemaskirajuih i
8230maskirajuih prekida, registar IMR15...0 i bafere sa tri stanja za povezivanje registra IMR15...0 na
8231linije interne magistrale IBUS115...0 (slika 153), kombinacione prekidake mree za formiranje
8232signala spoljanjih maskirajuih prekida printr (slika 154) i kombinacione i sekvencijalne
8233mree za formiranje adrese prekidne rutine (slika 155).
8234 Logiki ILI element za formiranje signala prekida prekid i kombinacione i sekvencijalne
8235mree za prihvatanje unutranjih prekida i spoljanjih nemaskirajuih i maskirajuih prekida
8236(slika 153) imaju identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB (odeljak
82374.1.1.5).
8238 Registar maske IMR150 slui za pojedinano maskiranje spoljanjih maskirajuih zahteva za
8239prekid intr1 do intr7. Zahtevima za prekid intr1 do intr7 odgovaraju razredi IMR1 do IMR7
8240registra maske IMR150, dok se preostali razredi ne koriste. Upis sadraja registra AW150
8241bloka exec koji dolazi po linijama interne magistrale IBUS3 150 se obavlja vrednou 1 signala
8242ldIMR. Upis u registar IMR150 se realizuje samo kod izvravanja instrukcije STIMR, koja
8243slui za upis sadraja akumulatora AW15...0 u registar procesora IMR150. Vrednou 1 signala
8244IMRout sadraj registra IMR150 se puta na linije interne magistrale IBUS2 150 i vodi u

280

279

8245akumulator AW15...0. Upis u akumulator AW150 se realizuje samo kod izvravanja instrukcije
8246LDIMR, koja slui za upis sadraja registra IMR150 u akumulator AW15...0.
u p ra v
s tP R IN S

u p ra v
P R IN S

u p ra v
s tP R C O D

C LK

c lP R IN S
u p ra v

u p ra v
PR CO D

u p ra v
s tP R A D R

C LK
R

c lP R C O D
u p ra v

m r

u p ra v
PRA D R

C LK
R

c lP R A D R
u p ra v

m r

m r
I B U S 1 1 5 ...0
I B U S 2 1 5 ...0 1 6
I B U S 3 1 5 ...0 1 6
16

FAU LT
in m

P R IN M

16
ld IM R
u p ra v

C LK

c lP R IN M
u p ra v

16

U /I 6
in tr6

P R IN T R

U /I 2
in tr 2

c lIN T R

m r
S

P R IN T R

16
I B U S 3 1 5 ...0 1 6
I B U S 2 1 5 ...0 1 6
I B U S 1 1 5 ...0

U /I 1
in tr 1

P R IN T R

U /I 5
in tr 5

c lIN T R

m r

u p ra v
p re k id

c lIN T R

m r
S

p rl2
p rl1
p rl0

P R IN T R

P R IN T R

U /I 4
in tr 4

P R IN T R

P R IN T R

m r
S

C LK
R

c lIN T R

m r

2
1
0

C LK

C LK

P R IN S
PRCO D
PRA D R
P R IN M
p r in tr
exec
PSW T
RTI
fe tc h

D C

7
6
5
4
3
2
1

c lIN
c lIN
c lIN
c lIN
c lIN
c lIN
c lIN

T
T
T
T
T
T
T

R
R
R
R
R
R
R

U /I 7
in tr 7

4
3
2
1

m r
S

C LK

Slika 153 Blok intr (prvi deo)

280

c lIN T R u p r a v

8249

281

1 5 ...0

C LK

C LK

8247
8248

IM R

C LK

16
16
u p r a v IM R o u t2

C LK

c lIN T R

IM R

LD

m r

U /I 3
in tr3

c lIN T R

m r
M R

c lIN T R

m r

8250 Kombinacione prekidake mree za formiranje signala spoljanjih maskirajuih prekida


8251printr (slika 154) imaju identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB
8252(odeljak 4.1.1.5).
IM
IM
IM
IM
IM
IM
IM

R
R
R
R
R
R
R

P
P
P
P
P
P
P

1
2
3
4
5
6
7

R
R
R
R
R
R
R

ir m
ir m
ir m
ir m
ir m
ir m
ir m

im rp rin tr
u p ra v
p rin tr

IN
IN
IN
IN
IN
IN
IN

T
T
T
T
T
T
T

R
R
R
R
R
R
R

1
2
3
4
5
6
7

7
6
5
4
3
2
1

PSW I
exec
7

acc

5
2

CD
1

8253
8254

2
1
0

b
b
b

2
1
0

CM P

p rl2
p rl1
p rl0

a2
a1
a0


exec

PSW L
PSW L
PSW L

exec

A >B

Slika 154 Blok intr (drugi deo)

8255 Kombinacione i sekvencijalne mree za formiranje adrese prekidne rutine se sastoje od


8256kombinacionih i sekvencijalnih mrea za formiranje pomeraja za tabelu sa adresama prekidnih
8257rutina IVTDSP15...0, bafere sa tri stanja za povezivanje brojeva ulaza UINT7...0 i UEXT7...0 na
8258linije interne magistrale IBUS37...0 i pomeraja IVTDSP7...0 na linije interne magistrale IBUS37...0,
8259registar IVTP15...0 i bafere sa tri stanja za povezivanje registra IVTP 15...0 na linije interne
8260magistrale IBUS115...0 (slika 155).
8261 Kombinacione i sekvencijalne mree za formiranje pomeraja IVTDSP15...0 za tabelu sa
8262adresama prekidnih rutina se sastoje od kodera CD1 i CD2 i registra BR 7...0.
8263 Koder CD1 ima identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB
8264(odeljak 4.1.1.5). Vrednou 1 signala UINTout sadraj UINT7...0 se puta na linije interne
8265magistrale IBUS370 i vodi u registar BR7...0. Upis u registar BR7...0 se realizuje samo kod
8266opsluivanja prekida ukoliko se prihvata neki od unutranjih prekida, spoljanji nemaskirajui
8267prekid ili unutranji prekid zbog zadatog reima rada prekid posle svake instrukcije.
8268 Koder CD2 ima identinu strukturu i funkcionalnost kao i u sluaju procesora DVOB
8269(odeljak 4.1.1.5). Vrednou 1 signala UEXTout sadraj UEXT7...0 se puta na linije interne
8270magistrale IBUS370 i vodi u registar BR7...0. Upis u registar BR7...0 se realizuje samo kod
8271opsluivanja prekida ukoliko se prihvata neki od spoljanjih maskirajuih prekida.

282

281

7
6
5
4
3
2
1

7
6
5
4
3
2
1
0

3
2
1
0

1
0

1
CD 2

2
1
0

3
2
1
0

ir m
ir m
ir m
ir m
ir m
ir m
ir m

CD 1

0
0

...
...

PRCO D
PRA D R
P R IN M
PSW T
exec

3
2
1
0

U IN T
8

...
...

U EX T
8

I B U S 1 1 5 ...0
I B U S 2 1 5 ...0 1 6
I B U S 3 1 5 ...0 1 6
16
I B U S 3 7 ...0

7 0

u p ra v

7 0

u p ra v

8
C LK

8
0

7 ...0

IB U S 3

7 ...0

8
U EX Tout

m r

B R

LD

IB U S 3

M R

B R

7 ...0

ld B R
u p ra v

8
U IN IT o u t

1 5 ... 9 8 ... 1

1 6 IV T D S P

0
1 5 ...0

16
16
u p ra v IV T D S P o u t3
16
CLK
ld IV T P
u p ra v

C LK
LD

m r
M R

IV T P
1 6 IV T P

1 5 ...0

16
16
u p r a v I V T P o u t1

8272
8273

16
I B U S 3 1 5 ...0 1 6
I B U S 2 1 5 ...0 1 6
I B U S 1 1 5 ...0

Slika 155 Blok intr (trei deo)

8274 Registar BR7...0 slui za pamenje broja ulaza u tabelu sa adresama prekidnih rutina. Upis
8275sadraja sa linija interne magistrale IBUS37...0 u registar BR7...0 se obavlja vrednou 1 signala
8276ldBR. Sadraj registra BR7...0 se u okviru opsluivanja zahteva za prekid koristi za formiranje
8277pomeraja IVTDSP15...0 za ulazak u tabelu sa adresama prekidnih rutina. Kako adresa prekidne
8278rutine zauzima dve susedne memorijske lokacije, to se pomeraj IVTDSP 15...0 dobija pomeranjem
8279sadraja registra BR7...0 za jedno mesto ulevo. Vrednou 1 signala IVTDSPout3 se formirani
8280pomeraj IVTDSP15...0 puta na linije interne magistrale IBUS3 15...0 i vodi na ulaze A15...0 sabiraa
8281ADD bloka addr.
8282
8283

283

282

8284 Na paralelne ulaze registra BR7...0 se preko linija interne magistrale IBUS3 7...0 dovode
8285sadraji IR2316 bloka fetch, UEXT70 i UINT70, koji predstavljaju brojeve ulaza u tabelu sa
8286adresama prekidnih rutina za instrukciju prekida INT, za spoljanje maskirajue prekide i za za
8287unutranje prekide i spoljanji nemaskirajui prekid, respektivno.
8288 Registar IVTP15...0 je ukaziva na tabelu sa adresama prekidnih rutina i sadri poetnu adresu
8289tabele. Upis sadraja sa linija interne magistrale IBUS315...0 u registar IVTP15...0 se obavlja
8290vrednou 1 signal ldIVTP.
8291 Na paralelne ulaze registra IVTP15...0 se preko linija interne magistrale IBUS3 15...0 dovodi
8292sadraj registra AW150 bloka exec. Upis u registar IVTP15...0 se realizuje samo kod izvravanja
8293instrukcije STIVTP, koja slui za upis sadraja akumulatora AW15...0 u registar procesora
8294IVTP15...0. Vrednou 1 signala IVTPout1 sadraj registra IVTP15...0 se puta na linije interne
8295magistrale IBUS1150 i vodi u akumulator AW15...0. Upis u akumulator AW150 se realizuje samo
8296kod izvravanja instrukcije LDIVTP, koja slui za upis sadraja registra IVTP15...0 u akumulator
8297AW15...0. Pored toga sadraj registra IVTP 15...0 se preko linija interne magistrale IBUS1150 vodi
8298na ulaze B15...0 sabiraa ADD bloka addr.
8299 U okviru opsluivanja prekida preko linijama internih magistrala IBUS1150 i IBUS3150 na
8300ulaze sabiraa ADD bloka addr dolaze sadraji registra IVTP 15...0 i pomeraja IVTDSP15...0, pa se
8301njihovim sabiranjem dobija adresa sa koje se ita adresa prekidne rutine i upisuje u PC15...0.
83024.4.2 Upravljaka jedinica
8303 U ovom odeljku se daju dijagram toka izvravanja instrukcija, algoritam generisanja
8304upravljakih signala i struktura upravljake jedinice uprav.
83054.4.2.1 Dijagram toka izvravanja instrukcija
8306 Dijagram toka izvravanja instrukcija je identian kao i dijagram toka izvravanja instrukcija
8307procesora DVOB (odeljak 4.1.2.1).
83084.4.2.2 Algoritam generisanja upravljakih signala
8309 Algoritam generisanja upravljakih signala, formiran na osnovu dijagrama toka izvravanja
8310instrukcija (slika 30) i strukture operacione jedinice (poglavlje 4.4.1), dat je u obliku dijagrama
8311toka mikrooperacija, dijagrama toka upravljakih signala (slike 156 do 182) i sekvence
8312upravljakih signala po koracima (tabela 46), koji su formirani na identian nain kao i u
8313sluaju procesora DVOB (odeljak 4.1.2.2).
8314
Tabela 46 Sekvenca upravljakih signala po koracima
8315! Sekvenca upravljakih signala po koracima ima etiri celine koje odgovaraju fazama itanje
8316instrukcije, formiranje adrese operanda, izvravanje operacije i opsluivanje prekida. Faza itanje
8317instrukcije se realizuje u koracima step 00 do step18 koji su zajedniki za sve instrukcije. Faza formiranje
8318adrese operanda se realizuje u koracima step19 do step3C pri emu postoje posebni koraci za svaki nain
8319adresiranja operanda. Faza izvravanje operacije se realizuje u koracima step 3D do stepA8, pri emu
8320postoje posebni koraci za svaku operaciju. Faza opsluivanje prekida se realizuje u koracima step A9 do
8321stepCC. !

284

283

8322! itanje instrukcije !

STA R T
1

M A R <=PC ,
PC<=PC +1

P C o u t1 , M O S T 1 _ 2 ,
ld M A R , in c P C

hack
0

eM A R , rd C P U
0

fc C P U
1

IR

3 1 ...2 4

M D R o u t1 , ld IR 0

7 ...0

g ro p r

g ro p r
1

PR C O D <=1

l1

s tP R C O D

l1

0
60

fc C P U
1

<=M D R

8323
8324

hack
0

M D R <=M EM
0

STA RT

0
1

13

56

60

13

56

Slika 156 itanje instrukcije (prvi deo)

8325! U koraku step00 se proverava vrednost signala START bloka exec koji vrednostima 0 i 1 ukazuje da li
8326je processor neaktivan ili aktivan, respektivno (slika 156). Ukoliko je procesor neaktivan ostaje se u
8327koraku step00, dok se u suprotnom sluaju prelazi na korak step01. !
8328
step00 br (if START then step00);
8329! U koracima step01 do step04 se ita prvi bajt instrukcije i smeta u razrede IR 3124 prihvatnog registra
8330instrukcije IR310. Sadraj registra PC15..0 se signalima PCout1 bloka fetch i MOST1_2 bloka bus puta
8331najpre na internu magistralu IBUS115...0 a zatim na internu magistralu IBUS2 15...0 i signalom ldMAR
8332upisuje u adresni registar MAR15..0 bloka bus. Pored toga, signalom incPC se sadraj registra PC 15..0
8333inkrementira. U koraku step02 se proverava vrednost signala hack bloka bus koji vrednostima 1 i 0
8334ukazuje da li je processor prepustio magistralu kontroleru sa direktnim pristupom memoriji ili je
8335magistrala u posedu procesora, respektivno. Ukoliko je procesor prepustio magistralu ostaje se u koraku
8336step02, dok se u suprotnom sluaju prelazi na korak step 03. U koraku step03 se realizuje itanje jednog
8337bajta i upisivanje u registar podatka MDR 7..0 bloka bus. Signalom eMAR se sadraj registra MAR150
8338puta na adresne linije ABUS150 magistrale BUS. Pored toga se signalom rdCPU generie vrednost 0
8339signala na upravljakoj liniji RDBUS magistrale BUS, ime se u memoriji MEM startuje operacija
8340itanja. U koraku step03 se ostaje onoliko perioda signala takta koliko je neophodno da se itanje
8341realizuje. Sve vreme dok je processor u koraku step 03 adresa je prisutna na linijama ABUS150 i na liniji
8342 RDBUS je vrednost 0. Po zavrenom itanju memorija MEM puta proitani sadraj na linije
8343podataka DBUS70 magistrale BUS. Radi indikacije da je sadraj na linijama DBUS70 vaei
8344memorija generie vrednost 0 signala na upravljakoj liniji FCBUS magistrale BUS. U koraku step03
8345se proverava vrednost signala fcCPU bloka bus koji vrednostima 0 i 1 ukazuje da itanje nije zavreno i
8346da je itanje zavreno, respektivno. Ukoliko itanje nije zavreno ostaje se u koraku step 03, dok se u
8347suprotnom sluaju sadraj sa linija DBUS 70 upisuje u registar podatka MDR 7..0 i prelazi na korak
8348step04. U koraku step04 se signalom MDRout1 sadraj registra MDR7..0 bloka bus puta na niih 8 linija
8349interne magistrale IBUS17...0 i signalom ldIR0 bloka fetch upisuje u prihvatni registar instrukcije i to u
8350razrede IR3124 bloka bus. !
285

284

8351
step01 PCout1, MOST1_2, ldMAR, incPC;
8352
step02 br ( if hack then step02);
8353
step03 eMAR, rdCPU,
8354
br (if fcCPU then step03);
8355
step04 MDRout1, ldIR0;
8356! U koraku step05 se proverava vrednost signala gropr bloka fetch da bi se utvrdilo da li prvi bajt
8357instrukcije sadri korektnu vrednost koda operacije. U zavisnosti od toga da li signal gropr ima
8358vrednost 1 ili 0, prelazi se na korak step06 ili step07, respektivno. Ukoliko prvi bajt instrukcije sadri
8359nekorektnu vrednost koda operacije, u koraku step06 se signalom stPRCOD bloka intr u flip-flop
8360PRCOD upisuje vrednost 1 i bezuslovno prelazi na korak stepC0 radi utvrivanja adrese prekidne rutine.
8361!
8362
step05 br (if gropr then step07);
8363
step06 stPRCOD, br stepA9;
8364! U koraku step07 se proverava vrednost signala l1 bloka fetch da bi se utvrdilo da li je duina instrukcije
8365jedan ili vie bajtova. U zavisnosti od toga da li signal l1 ima vrednost 1 ili 0, prelazi se na korak step3D
8366i fazu izvravanje operacije ili step07 i produava sa itanjem bajtova instrukcije. !
8367
step07 br (if l1 then step3D);
8368! U koracima step08 do step0B se ita drugi bajt instrukcije i smeta u razrede IR 2316 prihvatnog registra
8369instrukcije IR310 (slika 157). Koraci step08 do step0A u kojima se ita drugi bajt instrukcije su isti kao
8370koraci step01 do step03 u kojima se ita prvi bajt instrukcije. U koraku step 0B se signalom MDRout1
8371sadraj registra MDR7..0 bloka bus puta na niih 8 linija interne magistrale IBUS17...0 i signalom ldIR1
8372bloka fetch upisuje u prihvatni registar instrukcije i to u razrede IR 2316 bloka bus. Istovremeno se
8373signalom MOST1_3 sadraj sa interne magistrale IBUS115...0 prenosi na internu magistralu IBUS315...0 i
8374signalom ldGPRADR bloka addr se razredi MDR4..0, koji se nalaze na niih 5 linija interne magistrale
8375IBUS34...0, upisuju u registar GPRADR4..0. Time se u registru GPRADR4..0 nalazi adresa registra opte
8376namene. !
8377
step08 PCout1, MOST1_2, ldMAR, incPC;
8378
step09 br (if hack then step09);
8379
step0A eMAR, rdCPU,
8380
br (if fcCPU then step0A);
8381
step0B MDRout1, MOST1_3, ldIR1, ldGPRAR;
8382! U koraku step0C se proverava vrednost signala gradr bloka fetch da bi se utvrdilo da li je nekorektno
8383adresiranje specificirano. Ovo se deava ukoliko se za instrukcije STB i STW specificira neposredno
8384adresiranje. U zavisnosti od toga da li signal gradr ima vrednost 1 ili 0, prelazi se na korak step0D ili
8385step0E, respektivno. Ukoliko je nekorektno adresiranje specificirano, u koraku step0D se signalom
8386stPRADR bloka intr u flip-flop PRADR upisuje vrednost 1 i bezuslovno prelazi na korak stepC0 radi
8387utvrivanja adrese prekidne rutine. !
8388
step0C br (if gradr then step0E);
8389
step0D stPRADR,
8390
br stepA9;
8391! U koracima step0E i step0F se proverava vrednost signala l2_brnch i l2_arlog bloka fetch da bi se
8392utvrdilo da li je duina instrukcije dva ili vie bajtova. Iz koraka step 0E se u zavisnosti od toga da li je
8393signal l2_brnch ima vrednost 1 ili 0, prelazi na korak step3D i fazu izvravanje operacije ili step0F i
8394proveru vrednosti signala l2_arlog. Iz koraka step0F se u zavisnosti od toga da li signal l2_arlog ima
8395vrednost 1 ili 0, prelazi na korak step19 i fazu formiranje adrese operanda ili step10 i produava sa
8396itanjem bajtova instrukcije.!
8397
step0E br (if l2_brnch then step3D);
8398
step0F br (if l2_arlog then step19);

286

285

60

13

56

60

M A R <=PC ,
PC<=PC +1

hack

fc C P U

56

fc C P U
1

I R 2 3 ...1 6 < = M D R 7 ...0 ,


G P R A R 4 ...0 < = M D R 4 ...0

M D R o u t1 , M O S T 1 _ 3 ,
ld IR 1 , ld G P R A R

g ra d r
1

g ra d r
1

PRA D R <=1

l2 _ b rn c h

s tP R A D R

l2 _ b rn c h

l2 _ a r lo g

l2 _ a rlo g

0
60

13

eM A R , rd C P U

8399
8400

hack
0

M D R <=M EM

56

P C o u t1 , M O S T 1 _ 2 ,
ld M A R , in c P C

13

0
2

13

56

60

Slika 157 itanje instrukcije (drugi deo)

8401! U koracima step10 do step12 se ita trei bajt instrukcije i smeta u razrede IR 158 prihvatnog registra
8402instrukcije IR310 (slika 158). Koraci step10 do step12 u kojima se ita trei bajt instrukcije su isti kao
8403koraci step01 do step03 u kojima se ita prvi bajt instrukcije.!
8404
step10 PCout1, MOST1_2, ldMAR, incPC;
8405
step11 br (if hack then step11);
8406
step12 eMAR, rdCPU,
8407
br (if fcCPU then step12);
8408! U koraku step0B se signalom MDRout1 sadraj registra MDR7..0 bloka bus puta na niih 8 linija
8409interne magistrale IBUS115...0 i signalom ldIR2 bloka fetch upisuje u prihvatni registar instrukcije i to u
8410razrede IR158 bloka bus.!
8411! U koracima step13 i step14 se proverava vrednost signala l3_jump i l3_arlog bloka fetch da bi se
8412utvrdilo da li je duina instrukcije tri ili etiri bajta. Iz koraka step 13 se u zavisnosti od toga da li signal
8413l3_jump ima vrednost 1 ili 0, prelazi na korak step50 i fazu izvravanje operacije ili step14 i proveru
8414vrednosti signala l3_arlog. Iz koraka step14 se u zavisnosti od toga da li signal l3_arlog ima vrednost 1
8415ili 0, prelazi na korak step20 i fazu formiranje adrese operanda ili step15 i produava sa itanjem etvrtog
8416bajta instrukcije.!
8417
step13 MDRout1, ldIR2,
8418
br (if l3_jump then step3D);
8419
step14 br (if l3_arlog then step19);

287

286

60

13

56

60

M A R<=PC,
PC<=PC+1

fc C P U

<=M D R

M D R o u t1 , ld IR 2

7 ...0
1

l3 _ ju m p

l3 _ ju m p

l3 _ a rlo g

P C o u t1 , M O S T 1 _ 2 ,
ld M A R , in c P C

hack

hack

M D R<=M EM

eM A R , rd C P U
0

fc C P U

fc C P U

8420
8421

60

7 ...0 <

M A R<=PC,
PC<=PC+1

IR

l3 _ a rlo g

56

eM A R , rd C P U
0

fc C P U

13

M D R<=M EM

1 5 ...8

56

hack

IR

13

P C o u t1 , M O S T 1 _ 2 ,
ld M A R , in c P C

hack

=M D R
3

M D R o u t1 , ld IR 3

7 ...0
13

56

60

Slika 158 itanje instrukcije (trei deo)

8422! U koracima step15 do step17 se ita etvrti bajt instrukcije i smeta u razrede IR 70 prihvatnog registra
8423instrukcije IR310 (slika 158). Koraci step15 do step17 u kojima se ita etvrti bajt instrukcije su isti kao
8424koraci step01 do step03 u kojima se ita prvi bajt instrukcije. U koraku step 18 se signalom MDRout1
8425sadraj registra MDR7..0 bloka bus puta na niih 8 linija interne magistrale IBUS17...0 i signalom ldIR3
8426bloka fetch upisuje u prihvatni registar instrukcije i to u razrede IR 70 bloka bus. Iz koraka step18
8427prelazi na korak step19 i fazu formiranje adrese operanda. !
8428
step15 PCout1, MOST1_2, ldMAR, incPC;
8429
step16 br (if hack then step16);
8430
step17 eMAR, rdCPU,
8431
br (if fcCPU then step17);
8432
step18 MDRout1, ldIR3;
8433! Formiranje adrese operanda !
8434! U korak step19 se dolazi iz koraka step0F, step14 i step18 ukoliko se radi o instrukcijama duine dva, tri i
8435etiri bajta koje zahtevaju da se do operanda doe saglasno specificiranom nainu adresiranja (slika
8436159). Za sve instrukcije, sem instrukcija STB i STW, operand se smeta u registar BB 70 ili BW150.
8437Operand moe da bude u nekom od registara opte namene, u memorijskoj lokaciji ili samoj instrukciji.
8438U sluaju registarskog direktnog adresiranja kod koga se operand nalazi u nekom od registara opte
8439namene ili neposrednog adresiranja kod koga se operand nalazi u samoj instrukciji, ova faza se svodi na
8440prebacivanje operanda u registar BB70 ili BW150. U sluaju adresiranja kod kojih se operand nalazi u
8441memoriji, ova faza se sastoji od koraka u kojima se prvo formira adresa operanda u memoriji i zatim
8442ita operand i smeta u registar BB 70 ili BW150. Izuzetak su instrukcije STB i STW kod kojih se
8443operand upisuje. U sluaju registarskog direktnog adresiranja kod koga se operand upisuje u registar
8444opte namene, odmah se prelazi na fazu izvravanje operacije u kojoj se operand upisuje u registar opte
8445namene. U sluaju nekog od adresiranja kod kojih se operand upisuje u memoriju, u ovoj fazi se samo
288

287

8446formira adresa operanda i smeta u registar MAR 150, pa se prelazi na fazu izvravanje operacije u
8447kojoj se operand upisuje u memoriju na formiranoj adresi. Sluaj sa neposrednim adresiranjem
8448specificiranim u instrukcijama STB i STW nije dozvoljen i ne moe da se javi u ovoj fazi jer se on
8449otkriva jo u fazi itanje instrukcije i rezultuje prelaskom na fazu opsluivanje prekida. U koraku step19
8450se realizuje viestruki uslovni skok na jedan od koraka step1A, step1E, , step3A u zavisnosti od toga koji
8451od signala adresiranja regdir, regind, memdir, memind, regindpom, bxpom, bcpom i imm bloka
8452addr ima vrednost 1. !
8453
step19 br (case (regdir, regind, memdir, memind, regindpom, bxpom, bcpom, imm) then
8454
(regdir, step1A), (regind, step1E), (memdir, step20), (memind, step22),
8455
(regindpom, step2B), (bxpom, step2D), (pcpom, step30), (imm, step3A));
60

13

56

60

c a s e (re g d ir, re g in d , m e m d ir,


m e m in d , re g in d p o m , b x p o m ,
p c p o m , im m )
4

8
4

10

11

10

13

56

11

re g d ir
1

LD W

LD W
0

B B <=G PR

7 ...0

B W <=G PR

1 5 ...0

G P R o u t1 , ld B B

G P R o u t1 ,
M O S T 1 _ 2 , ld B W
5

re g in d

M A R<=G PR

re g in d

G P R o u t1 ,
M O S T 1 _ 2 , ld M A R

1 5 ...0
1

s to re

s to re

M A R < = IR
s to re

m e m d ir

m e m d ir

IR D A o u t3 ,
M O S T 3 _ 2 , ld M A R

1 5 ...0
1

s to re

60

s to re

8456
8457

56

c a s e (re g d ir, re g in d , m e m d ir,


m e m in d , re g in d p o m , b x p o m ,
p c p o m , im m )

re g d ir

s to re

13

12

13

56

60

12

Slika 159 Formiranje adrese operanda (prvi deo)

8458! Registarsko direktno adresiranje !


8459! U korak step1A se dolazi iz step19 ukoliko signal za registarsko direktno adresiranje regdir ima vrednost
84601. Ukoliko signal store bloka addr ima vrednost 1, to znai da se radi o instrukciji STB ili instrukciji
8461STW za koje nema itanja operanda, prelazi se na korak step3D i fazu izvravanje operacije. U
8462suprotnom sluaju se prelazi na korak step 1B u kome se proverava vrednost signala operacije LDW.
8463Ukoliko signal LDW ima vrednost 1, prelazi se na korak step1D u kome se 16-to razredni sadraj
8464adresiranog registra opte namene GPR 15...0 bloka addr signalima GPRout1 i MOST1_2 puta najpre
8465na internu magistralu IBUS115...0 a zatim na internu magistralu IBUS215...0 i na kraju signalom ldBW
289

288

8466upisuje u registar BW150 bloka exec. U suprotnom sluaju se prelazi na sledei korak u kome se
8467signalom GPRout1 mlai bajt adresiranog registra opte namene GPR 7...0 puta na linije interne
8468magistrale IBUS17...0 i signalom ldBB upisuje u registar BB70 bloka exec. U oba sluaja se prelazi na
8469korak step3D i fazu izvravanje operacije. !
8470
step1A br (if store then step3D);
8471
step1B br (if LDW then step1D);
8472
step1C GPRout1, ldBB,
8473
br step3D;
8474
step1D GPRout1, MOST1_2, ldBW,
8475
br step3D;
8476! Registarsko indirektno adresiranje !
8477! U korak step1E se dolazi iz step19 ukoliko signal za registarsko indirektno adresiranje regind ima
8478vrednost 1. Sadraj adresiranog registra opte namene GPR 15...0 bloka addr se signalima GPRout1 i
8479MOST1_2 puta najpre na internu magistrale IBUS1150 a zatim i na internu magistrale IBUS2150 i na
8480kraju signalom ldMAR upisuje u registar MAR15...0 bloka bus. Time se u registru MAR15...0 nalazi
8481adresa operanda za sluaj registarskog indirektnog adresiranja. Ukoliko signal store bloka addr ima
8482vrednost 1, to znai da se radi o instrukciji STB ili instrukciji STW za koje nema itanja operanda,
8483prelazi se na korak step3D i fazu izvravanje operacije. U suprotnom sluaju se prelazi na korak step1F iz
8484koga se bezuslovno prelazi na korak step31 i itanje operanda. !
8485
step1E GPRout1, MOST1_2, ldMAR,
8486
br (if store then step3D);
8487
step1F br step31;
8488! Memorijsko direktno adresiranje !
8489! U korak step20 se dolazi iz step19 ukoliko signal za memorijsko direktno adresiranje memdir ima
8490vrednost 1. Sadraj registra IR15...0 bloka fetch se signalima IRDAout3 i MOST3_2 puta najpre na
8491internu magistralu IBUS3150 a zatim i na internu magistralu IBUS2 150 i na kraju signalom ldMAR
8492upisuje u registar MAR15...0. Time se u registru MAR15...0 nalazi adresa operanda za sluaj memorijskog
8493direktnog adresiranja. Ukoliko signal store bloka addr ima vrednost 1, to znai da se radi o instrukciji
8494STB ili instrukciji STW za koje nema itanja operanda, prelazi se na korak step3D i fazu izvravanje
8495operacije. U suprotnom sluaju se prelazi na korak step21 iz koga se bezuslovno prelazi na korak step31 i
8496itanje operanda. !
8497
step20 IRDAout3, MOST3_2, ldMAR,
8498
br (if store then step3D);
8499
step21 br step31;
8500! Memorijsko indirektno adresiranje !
8501! U korak step22 se dolazi iz step19 ukoliko signal za memorijsko indirektno adresiranje memind ima
8502vrednost 1 (slika 160). Sadraj registra IR15...0 bloka fetch se signalima IRDAout3 i MOST3_2 puta
8503najpre na internu magistralu IBUS3150 a zatim i na internu magistralu IBUS2150 i na kraju signalom
8504ldMAR upisuje u registar MAR15...0. Time se u registru MAR15...0 nalazi adresa memorijske lokacije
8505poev od koje treba proitati dva bajta koji predstavljaju vii i nii bajt adrese operanda za sluaj
8506memorijskog indirektnog adresiranja. itanje prvog bajta se realizuje u koracima step23 i step24, a
8507drugog bajta u koracima step26 i step27, na isti nain kao u koracima step02 i step03, kod itanja prvog
8508bajta instrukcije. U koraku step25 se iz registra MDR7...0 bloka bus prvi bajt signalom MDRout1 puta
8509na linije interne magistrale IBUS170 i signalom ldDWH upisuje u stariji bajt registra DW15...8 bloka
8510bus, a signalom incMAR adresni registar MAR15...0 bloka bus inkrementira na adresu sledeeg bajta. U
8511koraku step28 se iz registra MDR7...0 bloka bus drugi bajt signalom MDRout1 puta na linije interne
8512magistrale IBUS170 i signalom ldDWL upisuje u mlai bajt registra DW7...0. Na kraju se u koraku
8513step29 signalom DWout2 sadraj registra DW15...0 koji predstavlja adresu operanda puta na internu
8514magistralu IBUS215...0 i signalom ldMAR upisuje u registar MAR15...0. Ukoliko signal store bloka addr
8515ima vrednost 1, to znai da se radi o instrukciji STB ili instrukciji STW za koje nema itanja operanda,
8516prelazi se na korak step50 i fazu izvravanje operacije. U suprotnom sluaju se prelazi na korak step 2A iz
8517koga se bezuslovno prelazi na korak step38 i itanje operanda. !

290

289

60

M A R < = IR

12

m e m in d

13

56

60

fc C P U

56

M D R o u t1 , ld D W L

7 ...0

D W o u t2 , ld M A R

1 5 ...0
1

s to re

s to re

M A R<=
G PR

re g in d p o m
1 5 ...0

+ IR

re g in d p o m

G P R o u t1 , IR D A o u t3 ,
A D D o u t2 , ld M A R

1 5 ...0
1

s to re

s to re

bxpom

CW

1 5 ...0 < =
G P R 1 5 ...0 + I R 1 5 ...0 ,
G PRA R<=G PRA R+1

1 5 ...0 + G P R

s to re

bxpom

G P R o u t1 , IR D A o u t3 ,
A D D o u t2 , ld C W ,
in c G P R A R
G P R o u t1 , C W o u t3 ,
A D D o u t2 , ld M A R

1 5 ...0
1

s to re

291

13

fc C P U
1

7 ...0 < = M D R

M A R<=D W

8520
8521
8522
8523
8524
8525
8526

12

eM A R , rd C P U

60

hack
0

M D R<=M EM

8518
8519

fc C P U
M D R o u t1 , ld D W H ,
in c M A R

hack

M A R<=
CW

hack

D W 1 5 ...8 < = M D R 7 ...0 ,


M A R<=M A R+1

D W

56

eM A R , rd C P U
0

fc C P U

13

M D R<=M EM

12

IR D A o u t3 ,
M O S T 3 _ 2 , ld M A R

1 5 ...0

hack

m e m in d

12

13

56

60

Slika 160 Formiranje adrese operanda (drugi deo)


step22 IRDAout3, MOST3_2, ldMAR;
step23 br (if hack then step23);
step24 eMAR, rdCPU,
br (if fcCPU then step24);
step25 MDRout1, ldDWH, incMAR;
step26 br (if hack then step26);
step27 eMAR, rdCPU,

290

8527
8528
8529
8530
8531

br (if fcCPU then step27);


step28 MDRout1, ldDWL;
step29 DWout2, ldMAR,
br (if store then step3D);
step2A br step31;

8532! Registarsko indirektno sa pomerajem adresiranje!


8533! U korak step2B se dolazi iz step19 ukoliko signal za registarsko indirektno sa pomerajem adresiranje
8534regindpom ima vrednost 1. Signalima GPRout1 i IRDAout3 se adresirani registar opte namene
8535GPR15...0 bloka addr i pomeraj iz IR15...0 bloka fetch najpre putaju na internu magistralu IBUS1 15...0 i
8536IBUS315...0, respektivno, i dovode na ulaze sabiraa ADD bloka addr, a zatim se signalom ADDout2
8537dobijeni sadraj sa izlaza sabiraa ADD puta na internu magistralu IBUS2 15...0 i signalom ldMAR
8538upisuje u registar MAR15...0. Time se u registru MAR15...0 nalazi adresa operanda za sluaj registarskog
8539indirektnog sa pomerajem adresiranja. Ukoliko signal store bloka addr ima vrednost 1, to znai da se
8540radi o instrukciji STB ili instrukciji STW za koje nema itanja operanda, prelazi se na korak step3D i
8541fazu izvravanje operacije. U suprotnom sluaju se prelazi na korak step2C iz koga se bezuslovno prelazi
8542na korak step31 i itanje operanda. !
8543
step2B GPRout1, IRDAout3, ADDout2, ldMAR,
8544
br (if store then step3D);
8545
step2C br step31;
8546! Bazno indeksno sa pomerajem adresiranje!
8547! U korak step2D se dolazi iz step19 ukoliko signal za bazno indeksno sa pomerajem adresiranje bxpom
8548ima vrednost 1. U koraku step2D se signalima GPRout1 i IRDAout3 adresirani registar opte namene
8549GPR15...0 bloka addr i pomeraj iz IR15...0 bloka fetch najpre putaju na internu magistralu IBUS1 15...0 i
8550IBUS315...0, respektivno, i dovode na ulaze sabiraa ADD bloka addr, a zatim se signalom ADDout2
8551dobijeni sadraj sa izlaza sabiraa ADD puta na internu magistralu IBUS2 15...0 i signalom ldCW
8552upisuje u registar CW15...0 bloka addr. Pored toga signalom incGPRAR bloka addr se vri
8553inkrementiranje adresnog registra GPRAR4...0 registara opte namene GPR15...0. U koraku step2E se
8554signalima GPRout1 i CWout3 sadraji adresiranog registra opte namene GPR 15...0 i registra CW15...0
8555najpre pruputaju na interne magistrale IBUS115...0 i IBUS315...0, respektivno, i dovode na ulaze sabiraa
8556ADD, a zatim se signalom ADDout2 dobijeni sadraj ADD15...0 sa izlaza sabiraa ADD puta na internu
8557magistralu IBUS215...0 i signalom ldMAR upisuje u registar MAR15...0 bloka bus. Time se u registru
8558MAR15...0 nalazi adresa operanda za sluaj bazno indeksnog sa pomerajem adresiranja. Ukoliko signal
8559store bloka addr ima vrednost 1, to znai da se radi o instrukciji STB ili instrukciji STW za koje nema
8560itanja operanda, prelazi se na korak step3D i fazu izvravanje operacije. U suprotnom sluaju se prelazi
8561na korak step2F iz koga se bezuslovno prelazi na korak step31 i itanje operanda. !
8562
step2D GPRout1, IRDAout3, ADDout2, ldCW, incGPRAR;
8563
step2E GPRout1, CWout3, ADDout2, ldMAR,
8564
br (if store then step3D);
8565
step2F br step31;
8566! PC relativno sa pomerajem adresiranje !
8567! U korak step30 se dolazi iz step19 ukoliko signal za PC relativno sa pomerajem adresiranje pcpom ima
8568vrednost 1 (slika 161 ). U koraku step30 se signalima PCout1 i IRDAout3 programski broja PC15...0
8569bloka fetch i pomeraj iz IR15...0 bloka fetch najpre putaju na interne magistrale IBUS115...0 i IBUS315...0,
8570respektivno, i dovode na ulaze sabiraa ADD bloka addr, a zatim se signalom ADDout2 dobijeni
8571sadraj ADD15...0 sa izlaza sabiraa ADD puta na internu magistralu IBUS2 15...0 i signalom ldMAR
8572upisuje u registar MAR15...0 bloka bus. Time se u registru MAR15...0 nalazi adresa operanda za sluaj PC
8573relativnog sa pomerajem adresiranja. Ukoliko signal store bloka addr ima vrednost 1, to znai da se
8574radi o instrukciji STB ili instrukciji STW za koje nema itanja operanda, prelazi se na korak step3D i
8575fazu izvravanje operacije. U suprotnom sluaju se prelazi na korak step 31 i itanje operanda sa adrese
8576koja se nalazi u registru MAR15...0. !
8577
step30 PCout1, IRDAout3, ADDout2, ldMAR,
8578
br (if store then step3D);

292

291

60

10

12

pcpom

M A R < = P C + IR

13

56

60

10

hack
0

eM A R , rd C P U
0

fc C P U
1

M D R o u t1 , ld B B

7 ...0

D W 1 5 ...8 < = M D R 7 ...0 ,


M A R<=M A R+1

M D R o u t1 , ld D W H ,
in c M A R

hack
0

eM A R , rd C P U
0

fc C P U
1

7 ...0

B W

1 5 ...0

7 ...0

M D R o u t1 , ld D W L

<=D W

1 5 ...0

D W o u t2 , ld B W
11

im m
1

LD W
0

1 5 ...0 <

im m

LD W
0

B B < = IR

B W

fc C P U

<=M D R

11

hack
0

M D R<=M EM

D W

LD W
0

B B <=M D R

fc C P U
1

LD W

hack
0

M D R<=M EM
0

56

s to re

13

P C o u t1 , IR D A o u t3 ,
A D D o u t2 , ld M A R

1 5 ...0

s to re

12

pcpom

IR J A o u t2 , M O S T 2 _ 1 ,
ld B B

1 5 ...8

= IR

IR D A o u t3 ,
M O S T 3 _ 1 , ld B W

1 5 ...0

60
13
56
60
13
56
8579
8580
Slika 161 Formiranje adrese operanda (trei deo)
8581! itanje operanda !
8582! U korak step31 se dolazi iz step1F kod registarskog indirektnog adresiranja, iz step21 kod memorijskog
8583direktnog adresiranja, iz step2A kod memorijskog indirektnog adresiranja, iz step2C kod registarskog
8584indirektnog sa pomerajem adresiranja, iz step2F kod baznog indeksnog sa pomerajem adresiranja i iz
8585step30 kod PC relativnog sa pomerajem adresiranja. U svim ovim situacijama adresa memorijske
8586lokacije sa koje treba proitati operand je sraunata u saglasnosti sa specificiranim nainom adresiranja
8587i nalazi se u registru MAR15...0 bloka bus. Za sve instrukcije za koje se ita operand iz memorije duina
8588operanda je jedan bajt sem za instrukciju LDW za koju je duina operanda dva bajta. Zbog toga se
8589najpre u koracima step31 i step32 ita jedan bajt i to na isti nain na koji se to radi u koracima step 02 i
8590step03 u kojima se ita prvi bajt instrukcije. Potom se u koraku step 33 u zavisnosti od toga da li signal
8591LDW ima vrednost 0 ili 1 prelazi na korak step 34 ili korak step35, respektivno. Kroz korak step34 se

293

292

8592prolazi samo kada je duina operanda jedan bajt. Tada se signalima MDRout1 i ldBB sadraj registra
8593MDR7...0 bloka bus puta na linije interne magistrale IBUS170 i upisuje u registar BB7...0. Iz koraka
8594step34 se prelazi na korak step3D i fazu izvravanje operacije. Kroz korake step35 do step39 se prolazi
8595samo kada je duina operanda dva bajta. Najpre se u koraku step 35 signalima MDRout1 i ldDWH
8596bloka bus sadraj registra MDR7...0 puta na linije interne magistrale IBUS17..0 i upisuje u stariji bajt
8597registra DW15...8, a signalom incMAR se inkrementira sadraj registra MAR15...0 da bi ukazivao na
8598memorijsku lokaciju na kojoj se nalazi mlai bajt 16-to razrednog operanda. Potom se u koracima step36
8599i step37 ita jedan bajt i to na isti nain na koji se to radi u koracima step02 i step03 u kojima se ita prvi
8600bajt instrukcije. Zatim se u koraku step38 signalom signalom MDRout1 sadraj registra MDR7...0 puta
8601na linije interne magistrale IBUS17..0 i signalom ldDWL bloka bus upisuje u mlai bajt registra DW7...0.
8602Time se u registru DW15...0 nalazi 16-to bitni operand. Na kraju se u koraku step39 signalom DWout2
8603bloka bus sadraj registra DW15...0 puta na internu magistralu IBUS2 15...0 i signalom ldBW upisuje u
8604registar BW15...0. Iz koraka step39 se prelazi na korak step3D i fazu izvravanje operacije. !
8605
step31 br (if hack then step31);
8606
step32 eMAR, rdCPU,
8607
br (if fcCPU then step32);
8608
step33 br (if LDW then step35);
8609
step34 MDRout1, ldBB,
8610
br step3D;
8611
step35 MDRout1, ldDWH, incMAR;
8612
step36 br (if hack then step36);
8613
step37 eMAR, rdCPU,
8614
br (if fcCPU then step37);
8615
step38 MDRout1, ldDWL;
8616
step39 DWout2, ldBW,
8617
br step3D;
8618! Neposredno adresiranje !
8619! U korak step3A se dolazi iz step19 ukoliko signal za neposredno adresiranje imm ima vrednost 1. Iz
8620ovog koraka se ukoliko signal LDW ima vrednost 1 prelazi na korak step3C u kome se 16-to bitna
8621neposredna veliina koja se nalazi u razredima IR 150 bloka fetch signalima IRJAout2 i MOST2_1
8622najpre puta na internu magistralu IBUS215...0 a zatim na internu magistralu IBUS115...0 i na kraju
8623signalom ldBW upisuje u registar BW150. U suprotnom sluaju se prelazi na korak step 3B u kome se
86248-mo bitna neposredna veliina koja se nalazi u razredima IR 158 signalima IRDAout3 i MOST3_2
8625puta najpre na linije interne magistrale IBUS3 7...0 i zatim na linije interne magistrale IBUS27...0 i na
8626kraju signalom ldBB upisuje u registar BB70. U oba sluaja se prelazi na korak step3D i fazu
8627izvravanje operacije. !
8628
step3A br (if LDW then step3C);
8629
step3B IRJAout2, MOST2_1, ldBB,
8630
br step3D;
8631
step3C IRDAout3, MOST3_2, ldBW,
8632
br step3D;
8633! Izvravanje operacije !
8634! U korak step3D se dolazi iz koraka step07, step0E, step13, step1A, step1C, step1D, step1E, step20, step29,
8635step2B, step2E, step30, step34, step39, step3B i step3C radi izvravanja operacije (slika 162). U koraku step3D
8636se realizuje viestruki uslovni skok na jedan od koraka step3E, step3F, ..., stepA0 u zavisnosti od toga koji
8637od signala operacija NOP, HALT, ..., RTS ima vrednost 1. !

294

293

8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660

step3D br (case (NOP, HALT, INTD, INTE, TRPD, TRPE,


LDB, LDW, STB, STW, POPB, POPW, PUSHB, PUSHW,
LDIVTP, STIVTP, LDIMR, STIMR, LDSP, STSP,
ADD, SUB, INC, DEC, AND,OR, XOR, NOT,
ASR, LSR, ROR, RORC, ASL, LSL, ROL, ROLC,
BEQL, BNEQL, BNEG, BNNEG, BOVF, BNOVF, BCAR, BNCAR,
BGRT, BGRTE, BLSS, BLSSE, BGRTU, BGRTEU, BLSSU, BLSSEU,
JMP, INT, JSR, RTI, RTS) then
(NOP, step3E), (HALT, step3F),
(INTD, step40), (INTE, step41), (TRPD, step42), (TRPE, step43),
(LDB, step44), (LDW, step46), (STB, step47), (STW, step4D),
(POPB, step56), (POPW, step5B), (PUSHB, step63), (PUSHW, step68),
(LDIVTP, step71), (STIVTP, step72), (LDIMR, step73), (STIMR, step74),
(LDSP, step75), (STSP, step76),
(ADD, step77), (SUB, ste79), (INC, step7B), (DEC, step7D),
(AND, step7F), (OR, step81), (XOR, step83), (NOT, step85),
(ASR, step87), (LSR, step87), (ROR, step87), (RORC, step87),
(ASL, step89), (LSL, step89), (ROL, step89), (ROLC, step89),
(BEQL, step8B), (BNEQL, step8B), (BNEG, step8B), (BNNEG, step8B),
(BOVF, step8B), (BNOVF, step8B), (BCAR, step8B), (BNCAR, step8B),
(BGRT, step8B), (BGRTE, step8B), (BLSS, step8B), (BLSSE, step8B),
(BGRTU, step8B), (BGRTEU, step8B), (BLSSU, step8B), (BLSSEU, step8B),
(JMP, step8D), (INT, step8E), (JSR, step8F), (RTI, step98), (RTS, stepA0));
60

13

56

60

13

c a s e (N O P , H A L T , ..., R T S )
...
14
15
55

c a s e (N O P , H A L T , ..., R T S )
...
14
15
55

14

14

N O P

15

H A LT
c lS T A R T

16

16

IN T D
P S W I< = 0

17

IN T E
P S W I< = 1

IN T E

s tP S W I

18

18

TRPD
PSW T<=0

TRPD

c lP S W T

19

19

TRPE
PSW T<=1

295

IN T D

c lP S W I

17

60

N O P

15

H A LT
STA RT<=0

8661
8662

56

TRPE

s tP S W T
56

60

Slika 162 Izvravanje operacije (prvi deo)

294

56

8663! NOP !
8664! U korak step3E se dolazi iz step3D ukoliko signal operacije NOP ima vrednost 1. Poto se radi o
8665instrukciji bez dejstva, nema generisanja upravljakih signala, ve se bezuslovno prelazi na korak stepA9
8666i fazu opsluivanje prekida. !
8667
step3E br stepA9;
8668! HALT !
8669! U korak step3F se dolazi iz step3D ukoliko signal operacije HALT ima vrednost 1. Poto se radi o
8670instrukciji zaustavljanja procesora, generie se signal clSTART bloka exec, kojim se u flip-flop START
8671upisuje 0, i bezuslovno prelazi na poetni korak step00. !
8672
step3F clSTART,
8673
br step00;
8674! INTD !
8675! U korak step40 se dolazi iz step3D ukoliko signal operacije INTD ima vrednost 1. Signalom clPSWI se
8676razred PSWI bloka exec postavlja na vrednost 0. Iz koraka step 40 se bezuslovno prelazi na korak stepA9 i
8677fazu opsluivanje prekida. !
8678
step40 clPSWI,
8679
br stepA9;
8680! INTE !
8681! U korak step41 se dolazi iz step3D ukoliko signal operacije INTE ima vrednost 1. Signalom stPSWI se
8682razred PSWI bloka exec postavlja na vrednost 1. Iz koraka step 41 se bezuslovno prelazi na korak stepA9 i
8683fazu opsluivanje prekida.!
8684
step41 stPSWI,
8685
br stepA9;
8686! TRPD !
8687! U korak step42 se dolazi iz step3D ukoliko je signal operacije TRPD ima vrednost 1. Signalom clPSWT
8688se razred PSWT bloka exec postavlja na vrednost 0. Iz koraka step42 se bezuslovno prelazi na korak
8689stepA9 i fazu opsluivanje prekida. !
8690
step42 clPSWT,
8691
br stepA9;
8692! TRPE !
8693! U korak step43 se dolazi iz step3D ukoliko signal operacije TRPE ima vrednost 1. Signalom stPSWT
8694se razred PSWT bloka exec postavlja na vrednost 1. Iz koraka step43 se bezuslovno prelazi na korak
8695stepA9 i fazu opsluivanje prekida.!
8696
step43 stPSWT,
8697
br stepA9;
60

20

LD B

56

60

20

LD B

A B <=B B

B B o u t2 , M O S T 2 _ 1 ,
ld A B

PSW N <=N , PSW Z<=Z,


PSW C<=0, PSW V <=0,

ld N , ld Z ,
ld C , ld V

21

21

LD W
A W <=B W

56

LD W
B W o u t2 , ld A W

60
56
60
56
8698
8699
Slika 163 Izvravanje operacije (drugi deo)
8700! LDB !
8701! U korak step44 se dolazi iz step3D ukoliko signal operacije LDB ima vrednost 1 (slika 163). U fazi
8702izvravanja ove instrukcije se operand specificiran adresnim delom instrukcije prebacuje u registar
8703AB70. Stoga se signalima BBout2 i MOST2_1 sadraj registra BB70 puta najpre na linije interne
8704magistrale IBUS27...0 a zatim na linije interne magistrale IBUS17...0 i na kraju signalom ldAB bloka exec
8705upisuje u registar AB70. Potom se u koraku step45 signalima ldN, ldZ, ldC i ldV bloka exec u razrede
8706PSWN i PSWZ programske statusne rei PSW 15...0 upisuju vrednosti signala N i Z formirane na osnovu
8707sadraja upisanog u registar AB70 i u razrede PSWC i PSWV upisuju vrednosti 0 i prelazi na korak
8708stepA9 i fazu opsluivanje prekida. !

296

295

8709
step44 BBout2, MOST2_1, ldAB;
8710
step45 ldN, ldZ, ldC, ldV,
8711
br stepA9;
8712! LDW !
8713! U korak step46 se dolazi iz step3D ukoliko signal operacije LDW ima vrednost 1. U ovom koraku se
8714signalima BWout2 i ldAW bloka exec sadraj registra BW150 puta na internumagistralu IBUS215...0 i
8715upisuje u registar AW150 i prelazi na korak stepA9 i fazu opsluivanje prekida. !
8716
step46 BWout2, ldAW,
8717
br stepA9;
60

22

STB

56

60

22

re g d ir
0

hack

hack
0

M EM <=M D R

e M A R ,e M D R ,w rC P U
0

fc C P U
1

G P R < = 0 ...0 .A B

re g d ir
0

56

A B o u t3 , m x M D R ,
ld M D R

M D R<=A B

STB

fc C P U
1

A B o u t3 , w rG P R

7 ...0

60
56
60
56
8718
8719
Slika 164 Izvravanje operacije (trei deo)
8720! STB !
8721! U korak step47 se dolazi iz step3D ukoliko signal operacije STB ima vrednost 1 (slika 164). Iz ovog
8722koraka se u zavisnosti od toga da li signal regdir bloka fetch ima vrednost 0 ili 1 prelazi na korak step48
8723ili step4C. !
8724
step47 br (if regdir then step4C)
8725! U koracima step48, step49, step4A i step4B se sadraj registra AB70 bloka exec upisuje u memorijsku
8726lokaciju na adresi koja je formirana u fazi formiranje adrese operanda i koja se nalazi i registru MAR 15
87270 bloka bus. Stoga se u koraku step48 signalima ABout3 i mxMDR sadraj registra AB70 puta najpre
8728na linije interne magistrale IBUS37..0 a zatim i kroz multiplekser MX i na kraju signalom ldMDR bloka
8729bus upisuje u registar MDR70. Pre upisa se u koraku step49 proverava vrednost signala hack bloka bus
8730koji vrednostima 1 i 0 ukazuje da li je procesor prepustio magistralu kontroleru sa direktnim pristupom
8731memoriji ili je magistrala u posedu procesora, respektivno. Ukoliko je procesor prepustio magistralu
8732ostaje se u koraku step49, dok se u suprotnom sluaju prelazi na korak step 4A. U koraku step4A se
8733realizuje upis. Signalima eMAR i eMDR bloka bus sadraji registara MAR150 i MDR70 se putaju na
8734adresne linije ABUS150 i linije podataka DBUS70 magistrale BUS i signalom wrCPU na upravljakoj
8735liniji WRBUS magistrale BUS formira vrednost 0, ime se u memoriji MEM startuje operacija upisa.
8736U koraku step4A se ostaje onoliko perioda signala takta koliko je neophodno da se upis realizuje. Sve
8737vreme dok je processor u koraku step4A adresa i podatak se prisutni na linijama ABUS150 i DBUS70 i
8738na liniji WRBUS je vrednost 0. Po zavrenom upisu memorija MEM generie vrednost 0 signala na
8739upravljakoj liniji FCBUS magistrale BUS. U koraku step4A se proverava vrednost signala fcCPU
8740bloka bus koji vrednostima 0 i 1 ukazuje da upis nije zavren i da je upis zavren, respektivno. Ukoliko
8741upis nije zavren ostaje se u koraku step4A, dok se u suprotnom sluaju prelazi na korak step4B. Iz
8742koraka step4B se bezuslovno prelazi na korak stepA9 i fazu opsluivanje prekida. !
8743
step48 ABout3, mxMDR, ldMDR;
8744
step49 br (if hack then step49);
8745
step4A eMAR, eMDR, wrCPU,

297

296

8746
br (if fcCPU then step4A);
8747
step4B br stepA9;
8748! U koraku step55 se sadraj registra AB70 bloka exec najpre signalom ABout3 puta na linije interne
8749magistrale IBUS370 i zatim signalom wrGPR bloka addr upisuje u adresirani registar opte namene
8750GPR70 i bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
8751
step4C ABout3, wrGPR,
8752
br stepA9;
60

23

STW

56

60

23

re g d ir
0

M D R<=A W

1 5 ...8

hack

hack
0

eM A R , e M D R , w rC P U
0

fc C P U
1

fc C P U
1

M D R < = A W 7 ...0 ,
M A R<=M A R+1

A W o u t3 , m x M D R ,
ld M D R , in c M A R

hack
0

hack
0

M EM <=M D R
0

re g d ir
0

M EM <=M D R

56

A W H o u t3 , m x M D R ,
ld M D R

STW

eM A R , e M D R , w rC P U
0

fc C P U
1

fc C P U
1

G PR<=A W

A W o u t3 , w rG P R

60
56
60
56
8753
8754
Slika 165 Izvravanje operacije (etvrti deo)
8755! STW !
8756! U korak step4D se dolazi iz step3D ukoliko signal operacije STW ima vrednost 1 (slika 165). Iz ovog
8757koraka se u zavisnosti od toga da li signal regdir bloka fetch ima vrednost 0 ili 1 prelazi na korak step4E
8758ili step55. !
8759
step4D br (if regdir then step55);
8760! U koracima step4E do step54 se sadraj najpre starijeg bajta a zatim i mlaeg bajta registra AW150
8761bloka exec upisuje u dve susedne memorijske lokacije poev od memorijske lokacije ija je adresa
8762formirana u fazi formiranje adrese operanda i koja se nalazi i registru MAR 150 bloka bus. Stoga se u
8763koraku step4E sadraj registra AW158 signalima AWHout3 i mxMDR puta najpre na linije interne
8764magistrale IBUS370 a zatim kroz multiplekser MX2 i signalom ldMDR upisuje u registar MDR70.
8765Upis se realizuje u koracima step4F i step50 na isti naina kao to se to radi u koracima step 49 i step4A
8766instrukcije STB. Potom se u koraku step4E sadraj registra AW70 signalima AWout3 i mxMDR puta
8767najpre na linije interne magistrale IBUS370 a zatim kroz multiplekser MX2 i signalom ldMDR upisuje
8768u registar MDR70. Upis se realizuje u koracima step52 i step53 na isti naina kao to se to radi u
8769koracima step4F i step50 za prethodni bajt. Po zavretku upisa se prelazi na korak step54, a iz ovog koraka
8770se bezuslovno prelazi na korak stepA9 i fazu opsluivanje prekida. !
8771
step4E AWHout3, mxMDR, ldMDR;
8772
step4F br (if hack then step4F);

298

297

8773
step50 eMAR, eMDR, wrCPU,
8774
br (if fcCPU then step50);
8775
step51 AWout3, mxMDR, ldMDR, incMAR;
8776
step52 br (if hack then step52);
8777
step53 eMAR, eMDR, wrCPU,
8778
br (if fcCPU then step53);
8779
step54 br stepA9;
8780! U koraku step55 se signalom AWout3 sadraj registra AW150 bloka exec puta na internu magistralu
8781IBUS3150 i signalom wrGPR bloka addr upisuje u adresirani registar opte namene GPR 150 i
8782bezuslovno prelazi na korak stepC0 i fazu opsluivanje prekida. !
8783
step55 AWout3, wrGPR,
8784
br stepA9;
60

24

PO PB

56

60

24

M A R<=SP,
S P < = S P -1

hack

hack
0

M D R<=M EM

eM A R , rd C P U
0

fc C P U
1

60

56

S P o u t2 , ld M A R ,
decSP

PO PB

fc C P U
1

B B <=M D R,
A B <=M D R

M D R o u t1 , ld A B ,
ld B B

PSW N <=N , PSW Z<=Z,


PSW C<=0, PSW V <=0,

ld N , ld Z ,
ld C , ld V
56

60

56

8785
8786
Slika 166 Izvravanje operacije (peti deo)
8787! POPB !
8788! U korak step56 se dolazi iz step3D ukoliko signal operacije POPB ima vrednost 1 (slika 166). U fazi
8789izvravanja ove instrukcije sa steka se skida bajt podatka i upisuje u registar AB70 bloka exec. Stoga
8790se, najpre, u koraku step69 signalima SPout2 i ldMAR sadraj registra SP150 puta na internu
8791magistralu IBUS2150 i upisuje u registar MAR150. Pored toga se i signalom decSP dekrementira
8792sadraj registra SP150 bloka addr. itanje se realizuje u koracima step57 i step58 na isti naina kao to
8793se to radi u koracima step02 i step03 u kojima se ita prvi bajt instrukcije. Potom se signalima MDRout1,
8794ldAB i ldBB sadraj registra MDR7...0 bloka bus puta na linije interne magistrale IBUS170 i upisuje u
8795registre AB7...0 i BB7...0 bloka exec. Na kraju se signalima ldN, ldZ, ldC i ldV bloka exec u razrede
8796PSWN i PSWZ programske statusne rei PSW 150 upisuju vrednosti signala N i Z formirane na
8797osnovu sadraja upisanog u registar AB i u razrede PSWC i PSWV upisuju vrednosti 0 i prelazi na
8798korak stepA9 i fazu opsluivanje prekida. !
8799
step56 SPout2, ldMAR, decSP;
8800
step57 br (if hack then step57);
8801
step58 eMAR, rdCPU,
8802
br (if fcCPU then step58);
8803
step59 MDRout1, ldAB, ldBB;
8804
step5A ldN, ldZ, ldC, ldV,
8805
br stepA9;

299

298

60

25

PO PW

56

60

25

M A R<=SP,
S P < = S P -1

hack

eM A R , rd C P U
0

fc C P U
1

fc C P U
1

D W L<=M D R,
M A R<=SP,
S P < = S P -1

M D R o u t1 , ld D W L ,
S P o u t2 , ld M A R ,
decSP

hack
0

hack
0

M D R<=M EM
0

hack
0

M D R<=M EM

56

S P o u t2 , ld M A R ,
decSP

PO PW

eM A R , rd C P U
0

fc C P U
1

fc C P U
1

D W H <=M D R

M D R o u t1 , ld D W H

B W <=D W ,
A W <=D W

D W o u t2 , ld B W ,
ld A W

60
56
60
56
8806
8807
Slika 167 Izvravanje operacije (esti deo)
8808! POPW !
8809! U korak step5B se dolazi iz step3D ukoliko signal operacije POPW ima vrednost 1 (slika 167). U fazi
8810izvravanja ove instrukcije sa steka se skidaju dva bajta podatka i upisuju u registar AW150 bloka exec.
8811Stoga se, najpre, u koraku step69 signalima SPout2 i ldMAR sadraj registra SP 150 puta na internu
8812magistralu IBUS2150 i upisuje u registar MAR150. Pored toga se i signalom decSP dekrementira
8813sadraj registra SP150. itanje se realizuje u koracima step5C i step5D na isti naina kao to se to radi u
8814koracima step02 i step03 u kojima se ita prvi bajt instrukcije. Potom se signalima SPout2 i ldMAR
8815sadraj registra SP150 puta na internu magistralu IBUS2150 i upisuje u registar MAR 150 i signalima
8816MDRout1 i ldDWL sadraj registra MDR7...0 bloka bus puta na linije interne magistrale IBUS1 70 i
8817upisuje u mlai bajt registra DW70 bloka exec. Pored toga se i signalom decSP dekrementira sadraj
8818registra SP150. itanje se realizuje u koracima step5F i step60 na isti naina kao to se to radi u koracima
8819step5C i step5D u kojima se ita prethodni bajt. Potom se signalima MDRout1 i ldDWH sadraj registra
8820MDR7...0 puta na linije interne magistrale IBUS170 i upisuje u stariji bajt registra DW158. Time se u
8821registru DW150 nalazi 16-to bitna vrednost skinuta sa steka. Na kraju se signalima DWout2, ldAW i
8822ldBW sadraj registra DW150 puta na internu magistralu IBUS2150 i upisuje u registre AW150 i
8823BW150 bloka exec i prealazi na korak stepA9 i fazu opsluivanje prekida. !

300

299

8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834

step5B SPout2, ldMAR, decSP;


step5C br (if hack then step5C);
step5D eMAR, rdCPU,
br (if fcCPU then step5D);
step5E SPout2, ldMAR, decSP, MDRout1, ldDWL;
step5F br (if hack then step5F);
step60 eMAR, rdCPU,
br (if fcCPU then step60);
step61 MDRout1, ldDWH;
step62 DWout2, ldAW, ldBW,
br stepA9;
60

26

PU SH B
SP<=SP+1

56

60

26

S P o u t2 , ld M A R ,
A B o u t3 , m x M D R ,
ld M D R

hack
0

hack
0

M EM <=M D R
0

56

in c S P

M A R<=SP,
M D R<=A B

PU SH B

e M A R ,e M D R ,w rC P U
0

fc C P U
1

fc C P U
1

60
56
60
56
8835
8836
Slika 168 Izvravanje operacije (sedmi deo)
8837! PUSHB !
8838! U korak step63 se dolazi iz step3D ukoliko signal operacije PUSHB ima vrednost 1 (slika 168). U fazi
8839izvravanja ove instrukcije se sadraj registra AB70 bloka exec stavlja na vrh steka. Stoga se najpre u
8840koraku step79 signalom incSP vri inkrementiranje registra SP150 bloka addr. Zatim se u koraku step64
8841sadraj registra SP150 signalima SPout2 i ldMAR puta na internu magistralu IBUS2150 i upisuje u
8842registar MAR150 i sadraj registra AB70 signalima ABout3, mxMDR i ldMDR puta najpre na linije
8843interne magistrale IBUS37...0 a zatim kroz multiplekser MX bloka bus i upisuje u registar MDR70. Upis
8844se realizuje u koracima step65 i step66 na isti naina kao to se to radi u koracima step49 i step4A
8845instrukcije STB. Na kraju se iz koraka step67 bezuslovno prelazi na korak stepA9 i fazu opsluivanje
8846prekida. !
8847
step63 incSP;
8848
step64 SPout2, ldMAR, ABout3, mxMDR, ldMDR;
8849
step65 br (if hack then step65);
8850
step66 eMAR, eMDR, wrCPU,
8851
br (if fcCPU then step66);
8852
step67 br stepA9;
8853! PUSHW !
8854! U korak step68 se dolazi iz step3D ukoliko signal operacije PUSHW ima vrednost 1 (slika 169). U fazi
8855izvravanja ove instrukcije se sadraj registra AW150 bloka exec stavlja na stek i to prvo stariji a zatim
8856i mlai bajt. Stoga se u koraku step7E signalom incSP vri inkrementiranje registra SP150 bloka addr.
8857Zatim se u koraku step64 sadraj registra SP150 signalima SPout2 i ldMAR puta na internu magistralu
8858IBUS2150 i upisuje u registar MAR150 i sadraj registra AW158 signalima AWHout3, mxMDR i
8859ldMDR puta najpre na linije interne magistrale IBUS370 a zatim kroz multiplekser MX bloka bus i
8860upisuje u registar MDR70. Upis se realizuje u koracima step6A i step6B na isti nain kao to se to radi u
8861koracima step49 i step4A instrukcije STB. Ponovo se sada u koraku step 6C signalom incSP vri
8862inkrementiranje registra SP150. Zatim se u koraku step64 sadraj registra SP150 signalima SPout2 i
8863ldMAR puta na internu magistralu IBUS2150 i upisuje u registar MAR150 i sadraj registra AW70

301

300

8864signalima AWout3, mxMDR i ldMDR puta najpre na linije interne magistrale IBUS370 a zatim kroz
8865multiplekser MX bloka bus i upisuje u registar MDR70. Upis se realizuje u koracima step6E i step6F na
8866isti naina kao to se to radi u koracima step 6A i step6B. Na kraju se iz koraka step 70 bezuslovno prelazi
8867na korak stepA9 i fazu opsluivanje prekida. !
8868
step68 incSP;
8869
step69 SPout2, ldMAR, AWHout3, mxMDR, ldMDR;
8870
step6A br (if hack then step6A);
8871
step6B eMAR, eMDR, wrCPU,
8872
br (if fcCPU then step6B);
8873
step6C incSP;
8874
step6D SPout2, ldMAR, AWout3, mxMDR, ldMDR;
8875
step6E br (if hack then step6E);
8876
step6F eMAR, eMDR, wrCPU,
8877
br (if fcCPU then step6F);
8878
step70 br stepA9;
60

27

PU SH W
SP<=SP+1

56

60

27

S P o u t2 , ld M A R ,
A W H o u t3 , m x M D R ,
ld M D R

hack
0

e M A R ,e M D R ,w rC P U
0

fc C P U
1

in c S P

M A R<=SP,
M D R < = A W 7 ...0

S P o u t2 ,, ld M A R ,
A W o u t3 , m x M D R ,
ld M D R

hack

e M A R ,e M D R ,w rC P U
0

fc C P U
1

302

60

hack
0

M EM <=M D R

8879
8880
8881

fc C P U

SP<=SP+1

hack
0

M EM <=M D R
0

56

in c S P

M A R<=SP,
M D R < = A W 1 5 ...8

PU SH W

fc C P U
1

56

60

Slika 169 Izvravanje operacije (osmi deo)

301

56

60

28

L D IV T P

56

60

L D IV T P

56

IV T P P o u t1 ,
M O S T 1 _ 2 , ld A W

A W < = IV T P
29

29

S T IV T P
IV T P < = A W

S T IV T P
A W o u t3 , ld IV T P

30

30

L D IM R
A W < = IM R

L D IM R
I M R o u t2 , ,ld A W

31

31

S T IM R
IM R < = A W

S T IM R
A W o u t3 , ld IM R

32

32

LD SP
A W <=SP
33

28

LD SP
S P o u t2 , ld A W
33

STSP

STSP
A W o u t3 , ld S P

SP<=A W

60
56
60
56
8882
8883
Slika 170 Izvravanje operacije (deveti deo)
8884! LDIVTP !
8885! U korak step71 se dolazi iz step3D ukoliko signal operacije LDIVTP ima vrednost 1 (slika 170). U fazi
8886izvravanja ove instrukcije se sadraj registra IVTP 150 bloka intr upisuje u registar AW150 bloka exec.
8887Stoga se sadraj registra IVTP150 signalima IVTPout1 i MOST1_2 puta najpre na internu magistralu
8888IBUS1150 a zatim na internu magistralu IBUS2 150 i signalom ldAW upisuje u registar AW150. Na
8889kraju se iz koraka step71 bezuslovno prelazi na korak stepA9 i fazu opsluivanje prekida. !
8890
step71 IVTPout1, MOST1_2, ldAW,
8891
br stepA9;
8892! STIVTP !
8893! U korak step72 se dolazi iz step3D ukoliko signal operacije STIVTP ima vrednost 1. U fazi izvravanja
8894ove instrukcije se sadraj registra AW150 bloka exec upisuje u registar IVTP150 bloka intr. Stoga se
8895signalom AWout3 sadraj registra AW150 puta na internu magistralu IBUS3150 i signalom ldIVTP
8896upisuje u registar IVTP150. Na kraju se iz koraka step72 bezuslovno prelazi na korak stepA9 i fazu
8897opsluivanje prekida. !
8898
step72 AWout3, ldIVTP
8899
br stepA9;
8900! LDIMR !
8901! U korak step73 se dolazi iz step3D ukoliko je signal operacije LDIMR ima vrednost 1. U fazi
8902izvravanja ove instrukcije se sadraj registra IMR 150 bloka intr upisuje u registar AW150 bloka exec.
8903Stoga se signalom IMRout2 sadraj registra IMR150 puta na internu magistralu IBUS2150 i signalom
8904ldAW upisuje u registar AW150. Na kraju se iz koraka step 73 bezuslovno prelazi na korak stepA9 i fazu
8905opsluivanje prekida. !
8906
step73 IMRout2, ldAW,
8907
br stepA9;
8908! STIMR !
8909! U korak step74 se dolazi iz step3D ukoliko je signal operacije STIMR ima vrednost 1. U fazi
8910izvravanja ove instrukcije se sadraj registra AW150 bloka exec upisuje u registar IMR 150 bloka intr.
8911Stoga se signalom AWout3 sadraj registra AW150 puta na internu magistralu IBUS3150 i signalom
8912ldIMR upisuje u registar IMR150. Na kraju se iz koraka step74 bezuslovno prelazi na korak stepA9 i
8913fazu opsluivanje prekida. !

303

302

8914
step74 AWout3, ldIMR,
8915
br stepA9;
8916! LDSP !
8917! U korak step75 se dolazi iz step3D ukoliko signal operacije LDSP ima vrednost 1. U fazi izvravanja
8918ove instrukcije se sadraj registra SP 150 bloka addr upisuje u registar AW150 bloka exec. Stoga se
8919signalom SPout2 sadraj registra SP150 puta na internu magistralu IBUS2150 i signalom ldAW
8920upisuje u registar AW150. Na kraju se iz koraka step75 bezuslovno prelazi na korak stepA9 i fazu
8921opsluivanje prekida.
8922
step75 SPout2, ldAW,
8923
br stepA9;
8924! STSP !
8925! U korak step76 se dolazi iz step3D ukoliko signal operacije STSP ima vrednost 1. U fazi izvravanja ove
8926instrukcije se sadraj registra AW150 bloka exec upisuje u registar SP150 bloka addr. Stoga se
8927signalom AWout3 sadraj registra AW150 puta na internu magistralu IBUS3150 i signalom ldSP
8928upisuje u registar SP150. Na kraju se iz koraka step76 bezuslovno prelazi na korak stepA9 i fazu
8929opsluivanje prekida. !
8930
step76 AWout3, ldSP,
8931
br stepA9;
60

34

A D D

56

60

34

A D D

A B <=A B +B B ,
PSW C<=C, PSW V <=V

A B o u t3 , B B o u t2 , a d d ,
A L U o u t1 , ld A B ,
ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

35

35

SU B

SU B

A B < = A B -B B ,
PSW C<=C, PSW V <=V

A B o u t3 , B B o u t2 , s u b ,
A L U o u t1 , ld A B ,
ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

36

36

IN C

IN C

A B <=A B +1,
PSW C<=C, PSW V <=V

A B o u t3 , in c , A L U o u t1 ,
ld A B , ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

37

37

D EC

56

D EC

A B < = A B -1 ,
PSW C<=C, PSW V <=V

A B o u t3 , d e c , A L U o u t1 ,
ld A B , ld C , ld V

PSW N <=N , PSW Z<=Z

ld N , ld Z

60
56
60
56
8932
8933
Slika 171 Izvravanje operacije (deseti deo)
8934! ADD !
8935! U korak step77 se dolazi iz step3D ukoliko signal operacije ADD ima vrednost 1 (slika 171). U fazi
8936izvravanja ove instrukcije se sabiraju sadraji registra AB70 bloka exec koji se koristi kao akumulator
8937i registra BB70 bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije i rezultat
8938upisuje u registar AB70. Stoga se, najpre, signalom add bloka exec na izlazima ALU70 dobija suma
8939sadraja sa linija internih magistrala IBUS3 7...0 i IBUS27...0 na koje su signalima ABout3 i BBout2
8940puteni sadraji registara AB70 i BB70, respektivno, pa se zatim signalima ALUout1 i ldAB dobijena
8941suma puta na linije interne magistrale IBUS1 7...0 i upisuje u registar AB70. Istovremeno se signalima
8942ldC i ldV bloka exec u razrede PSWC i PSWV programske statusne rei PSW 150 upisuju vrednosti
8943signala C i V bloka exec formirane na osnovu dobijenog rezultata na izlazima ALU70. U koraku step78
8944se signalima ldN i ldZ bloka exec u razrede PSWN i PSWZ programske statusne rei PSW 150 upisuju

304

303

8945vrednosti signala N i Z bloka exec formirane na osnovu sadraja upisanog u registar AB70 i prelazi na
8946korak stepA9 i fazu opsluivanje prekida. !
8947
step77 BBout2, ABout3, add, ALUout1, ldAB, ldC, ldV;
8948
step78 ldN, ldZ,
8949
br stepA9;
8950! SUB !
8951! U korak step79 se dolazi iz step3D ukoliko signal operacije SUB ima vrednost 1. U fazi izvravanja ove
8952instrukcije se od sadraja registra AB70 bloka exec koji se koristi kao akumulator oduzima sadraj
8953registra BB70 bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije i rezultat
8954upisuje u registar AB70. Stoga se, najpre, signalom sub bloka exec na izlazima ALU70 formira razlika
8955sadraja sa linija internih magistrala IBUS3 7...0 i IBUS27...0 na koje su signalima ABout3 i BBout2
8956puteni sadraji registara AB70 i BB70, respektivno, pa se zatim signalima ALUout1 i ldAB dobijena
8957razlika puta na linije interne magistrale IBUS17...0 i upisuje u registar AB70. Istovremeno se signalima
8958ldC i ldV bloka exec u razrede PSWC i PSWV programske statusne rei PSW 150 upisuju vrednosti
8959signala C i V bloka exec formirane na osnovu dobijenog rezultata na izlazima ALU70. U koraku step7A
8960se signalima ldN i ldZ bloka exec u razrede PSWN i PSWZ programske statusne rei PSW 150 upisuju
8961vrednosti signala N i Z bloka exec formirane na osnovu sadraja upisanog u registar AB70 i prelazi na
8962korak stepA9 i fazu opsluivanje prekida. !
8963
step79 BBout2, ABout3, sub, ALUout1, ldAB, ldC, ldV;
8964
step7A ldN, ldZ,
8965
br stepA9;
8966! INC !
8967! U korak step7B se dolazi iz step3D ukoliko signal operacije INC ima vrednost 1. U fazi izvravanja ove
8968instrukcije se sabira sadraj registra AB70 bloka exec koji se koristi kao akumulator i vrednost 1 i
8969rezultat upisuje u registar AB70. Stoga se, najpre, signalom inc bloka exec na izlazima ALU70 formira
8970suma sadraja sa linija interne magistrale IBUS37...0 na koje je signalom ABout3 puten sadraj registra
8971AB70 i vrednosti 1, pa se zatim signalima ALUout1 i ldAB dobijena suma puta na linije interne
8972magistrale IBUS17...0 i upisuje u registar AB70. Istovremeno se signalima ldC i ldV bloka exec u
8973razrede PSWC i PSWV programske statusne rei PSW150 upisuju vrednosti signala C i V bloka exec
8974formirane na osnovu dobijenog rezultata na izlazima ALU70. U koraku step7C se signalima ldN i ldZ
8975bloka exec u razrede PSWN i PSWZ programske statusne rei PSW 150 upisuju vrednosti signala N i Z
8976bloka exec formirane na osnovu sadraja upisanog u registar AB70 i prelazi na korak stepA9 i fazu
8977opsluivanje prekida. !
8978
step7B ABout3, inc, ALUout1, ldAB, ldC, ldV;
8979
step7C ldN, ldZ,
8980
br stepA9;
8981! DEC !
8982! U korak step7D se dolazi iz step3D ukoliko signal operacije DEC ima vrednost 1. U fazi izvravanja ove
8983instrukcije se od sadraj registra AB70 bloka exec koji se koristi kao akumulator i oduzima vrednost 1 i
8984rezultat upisuje u registar AB70. Stoga se, najpre, signalom dec bloka exec na izlazima ALU70 formira
8985razlika sadraja sa linija interne magistrale IBUS37...0 na koju je signalom ABout3 puten sadraj
8986registra AB70 i vrednosti 1, pa se zatim signalima ALUout1 i ldAB dobijena razlika puta na linije
8987interne magistrale IBUS17...0 i upisuje u registar AB70. Istovremeno se signalima ldC i ldV bloka exec u
8988razrede PSWC i PSWV programske statusne rei PSW150 upisuju vrednosti signala C i V bloka exec
8989formirane na osnovu dobijenog rezultata na izlazima ALU70. U koraku step7E se signalima ldN i ldZ
8990bloka exec u razrede PSWN i PSWZ programske statusne rei PSW 150 upisuju vrednosti signala N i Z
8991bloka exec formirane na osnovu sadraja upisanog u registar AB70 i prelazi na korak stepA9 i fazu
8992opsluivanje prekida. !
8993
step7D ABout3, dec, ALUout1, ldAB, ldC, ldV;
8994
step7E ldN, ldZ,
8995
br stepA9;

305

304

60

38

A N D

56

60

38

A N D

A B < = A B B B

A B o u t3 , B B o u t2 , a n d ,
A L U o u t1 , ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

39

39

O R

O R

A B < = A B B B

A B o u t3 , B B o u t2 , o r,
A L U o u t1 , ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

40

40

X O R

X O R

A B <=A B B B

A B o u t3 , B B o u t2 , x o r,
A L U o u t1 , ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

41

41

N O T

56

N O T

A B <=A B

A B o u t3 , n o t,
A L U o u t1 , ld A B

PSW N <=N , PSW Z<=Z,


PSW C <=0, PSW V <=0

ld N , ld Z ,
ld C , ld V

60
56
60
56
8996
8997
Slika 172 Izvravanje operacije (jedanaesti deo)
8998! AND !
8999! U korak step7F se dolazi iz step3D ukoliko signal operacije AND ima vrednost 1 (slika 172). U fazi
9000izvravanja ove instrukcije se nad sadrajima registra AB70 bloka exec koji se koristi kao akumulator i
9001registra BB70 bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije realizuje
9002logika I operacija i rezultat upisuje u registar AB 70. Stoga se, najpre, signalom and bloka exec na
9003izlazima ALU70 formira rezultat logike I operacije nad sadrajima sa linija internih magistrala
9004IBUS37...0 i IBUS27...0 na koje su signalima ABout3 i BBout2 puteni sadraji registara AB70 i BB70,
9005respektivno, pa se zatim signalima ALUout1 i ldAB dobijen rezultat puta na linije interne magistrale
9006IBUS17...0 i upisuje u registar AB70. U koraku step80 se signalima ldN, ldZ, ldC i ldV bloka exec u
9007razrede PSWN i PSWZ programske statusne PSW150 rei upisuju vrednosti signala N i Z formirane na
9008osnovu sadraja upisanog u registar AB70 i u razrede PSWC i PSWV upisuju vrednosti 0 i prelazi na
9009korak stepA9 i fazu opsluivanje prekida. !
9010
step7F BBout2, ABout3, and, ALUout1, ldAB;
9011
step80 ldN, ldZ, ldC, ldV,
9012
br stepA9;
9013! OR !
9014! U korak step81 se dolazi iz step3D ukoliko signal operacije OR ima vrednost 1. U fazi izvravanja ove
9015instrukcije se nad sadrajima registra AB70 bloka exec koji se koristi kao akumulator i registra BB70
9016bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije realizuje logika ILI
9017operacija i rezultat upisuje u registar AB70. Stoga se, najpre, signalom or bloka exec na izlazima
9018ALU70 formira rezultat logike ILI operacije nad sadrajima sa linija internih magistrala IBUS3 7...0 i
9019IBUS27...0 na koje su signalima ABout3 i BBout2 puteni sadraji registara AB70 i BB70, respektivno,
9020pa se zatim signalima ALUout1 i ldAB dobijeni rezultat puta na linije interne magistrale IBUS1 7...0 i
9021upisuje u registar AB70. U koraku step82 se signalima ldN, ldZ, ldC i ldV bloka exec u razrede PSWN
9022i PSWZ programske statusne rei PSW 150 upisuju vrednosti signala N i Z formirane na osnovu
9023sadraja upisanog u registar AB70 i u razrede PSWC i PSWV upisuju vrednosti 0 i prelazi na korak
9024stepA9 i fazu opsluivanje prekida. !

306

305

9025
step81 BBout2, ABout3, or, ALUout1, ldAB;
9026
step82 ldN, ldZ, ldC, ldV,
9027
br stepA9;
9028! XOR !
9029! U korak step83 se dolazi iz step3D ukoliko signal operacije XOR ima vrednost 1. U fazi izvravanja ove
9030instrukcije se nad sadrajima registra AB70 bloka exec koji se koristi kao akumulator i registra BB70
9031bloka exec u kome se nalazi operand specificiran adresnim delom instrukcije realizuje logika
9032ekskluzivno ILI operacija i rezultat upisuje u registar AB70. Stoga se, najpre, signalom or bloka exec
9033na izlazima ALU70 formira rezultat logike ekskluzivno ILI operacije nad sadrajima sa linija internih
9034magistrala IBUS37...0 i IBUS27...0 na koje su signalima ABout3 i BBout2 puteni sadraji registara AB7
90350 i BB70, respektivno, pa se zatim signalima ALUout1 i ldAB dobijen rezultat puta na linije interne
9036magistrale IBUS17...0 i upisuje u registar AB70. U koraku step84 se signalima ldN, ldZ, ldC i ldV bloka
9037exec u razrede PSWN i PSWZ programske statusne rei PSW 150 upisuju vrednosti signala N i Z
9038formirane na osnovu sadraja upisanog u registar AB70 i u razrede PSWC i PSWV vrednosti 0 i
9039prelazi na korak stepA9 i fazu opsluivanje prekida. !
9040
step83 BBout2, ABout3, xor, ALUout1, ldAB;
9041
step84 ldN, ldZ, ldC, ldV,
9042
br stepA9;
9043! NOT !
9044! U korak step85 se dolazi iz step3D ukoliko signal operacije NOT ima vrednost 1. U fazi izvravanja ove
9045instrukcije se invertuju bitovi registra AB70 bloka exec koji se koristi kao akumulator i rezultat upisuje
9046u registar AB70. Stoga se, najpre, signalom not bloka exec na izlazima ALU70 formiraju invertovane
9047vrednosti bitova sa linija interne magistrale IBUS37...0 na koje je signalom ABout3 puten sadraj
9048registra AB70, pa se zatim signalima ALUout1 i ldAB dobijen rezultat se puta na linije interne
9049magistrale IBUS17...0 i upisuje u registar AB70. U koraku step86 se signalima ldN, ldZ, ldC i ldV bloka
9050exec u razrede PSWN i PSWZ programske statusne rei PSW 150 upisuju vrednosti signala N i Z
9051formirane na osnovu sadraja upisanog u registar AB70 i u razrede PSWC i PSWV upisuju vrednosti 0
9052i prelazi na korak stepA9 i fazu opsluivanje prekida. !
9053
step85 ABout3, not, ALUout1, ldAB;
9054
step86 ldN, ldZ, ldC, ldV,
9055
br stepA9;
9056! ASR, LSR, ROR i ROLC !
9057! U korak step9D se dolazi iz step50 ukoliko neki od signala operacija ASR, LSR, ROR i ROLC ima
9058vrednost 1 (slika 173). U fazi izvravanja ove instrukcije se bitovi registra AB 70 bloka exec koji se
9059koristi kao akumulator aritmetiki pomeraju za jedno mesto udesno ukoliko signal ASR ima vrednost 1,
9060logiki pomeraju za jedno mesto udesno ukoliko signal LSR ima vrednost 1, rotiraju za jedno mesto
9061udesno ukoliko signal ROR ima vrednost 1 i rotiraju zajedno sa razredom PSWC programske statusne
9062rei PSW150 za jedno mesto udesno ukoliko signal RORC ima vrednost 1. Stoga se signalom shr bloka
9063exec bitovi registra AB70 pomeraju udesno za jedno mesto, pri emu se u u razred AB7 upisuje signal
9064IR sa izlaza multipleksera MX3 bloka exec. U sluaju aritmetikog pomeranja za jedno mesto udesno
9065to je signal AB7. Ovaj signal se selektuje na izlazu IR multipleksera MX3 binarnom vrednou 0 signala
9066selekcije multipleksera MX3 koji se dobijaju na izlazu kodera CD1 zbog vrednosti 1 signala ASR na
9067ulazu 0 kodera CD1. U sluaju logikog pomeranja za jedno mesto udesno to je signal 0. Ovaj signal se
9068selektuje na izlazu IR multipleksera MX3 binarnom vrednou 1 signala selekcije multipleksera MX3
9069koji se dobijaju na izlazu kodera CD1 zbog vrednosti 1 signala LSR na ulazu 1 kodera CD1. U sluaju
9070rotiranja za jedno mesto udesno to je signal AB0. Ovaj signal se selektuje na izlazu IR multipleksera
9071MX3 binarnom vrednou 2 signala selekcije multipleksera MX3 koji se dobijaju na izlazu kodera CD1
9072zbog vrednosti 1 signala ROR na ulazu 2 kodera CD1. U sluaju rotiranja zajedno sa razredom PSWC
9073programske statusne rei PSW150 za jedno mesto udesno to je signal PSWC. Ovaj signal se selektuje
9074na izlazu IR multipleksera MX3 binarnom vrednou 3 signala selekcije multipleksera MX3 koji se
9075dobijaju na izlazu kodera CD1 zbog vrednosti 1 signala RORC na ulazu 3 kodera CD1. Istovremeno se
9076signalom ldC bloka exec u razred PSWC programske statusne rei PSW 150 upisuje vrednost signala C
9077bloka exec. U sluaju svih pomeranja i rotiranja za jedno mesto udesno to je signal AB0. U koraku
9078step9E se signalima ldN i ldZ bloka exec u razrede PSWN i PSWZ programske statusne PSW 150 rei
9079upisuju vrednosti signala N i Z bloka exec formirane na osnovu sadraja upisanog u registar AB70 i

307

306

9080signalom ldV bloka exec u razred PSWV programske statusne rei PSW 150 upisuje vrednost 0 signala
9081V. Iz koraka step9E se bezuslovono prelazi na korak stepC0 i fazu opsluivanje prekida. !
9082
step87 shr, ldC;
9083
step88 ldN, ldZ, ldV,
9084
br stepA9;
60

42

A B

7 ...0 <

= A B 7.A B
PSW C<=C

A B

A B

A B

56

A SR
7 ...1

60

42

ld N ,
ld Z ,
ld V

43

43

LSR
7 ...1 ,

ld N ,
ld Z ,
ld V

44

44

RO R
7 ...1 ,

RO R

sh r,
ld C

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

ld N ,
ld Z ,
ld V

45

45

RO RC

7 ...0 < = P S W C . A B
PSW C<=C

LSR

sh r,
ld C

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

7 ...0 < = A B 0 . A B
PSW C<=C

56

sh r,
ld C

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

7 ...0 < = 0 . A B
PSW C<=C

A SR

7 ...1 ,

RO RC

sh r,
ld C

PSW N <=N ,
PSW Z<=Z,
PSW V <=0

ld N ,
ld Z ,
ld V

60
56
60
56
9085
9086
Slika 173 Izvravanje operacije (dvanaesti deo)
9087! ASL, LSL, ROL i ROLC !
9088! U korak step9F se dolazi iz step50 ukoliko neki od signala operacije ASL, LSL, ROL i ROLC ima
9089vrednost 1 (slika 174). U fazi izvravanja ove instrukcije se bitovi registra AB 70 bloka exec koji se
9090koristi kao akumulator aritmetiki pomeraju za jedno mesto ulevo ukoliko signal ASL ima vrednost 1,
9091logiki pomeraju za jedno mesto ulevo ukoliko signal LSL ima vrednost 1, rotiraju za jedno mesto ulevo
9092ukoliko signal ROL ima vrednost 1 i rotiraju zajedno sa razredom PSWC programske statusne rei
9093PSW150 za jedno mesto ulevo ukoliko signal ROLC ima vrednost 1. Stoga se signalom shl bloka exec
9094bitovi registra AB70 pomeraju ulevo za jedno mesto, pri emu se u u razred AB 0 upisuje signal IL sa
9095izlaza multipleksera MX4 bloka exec. U sluaju aritmetikog pomeranja za jedno mesto ulevo to je
9096signal 0. Ovaj signal se selektuje na izlazu IL multipleksera MX4 binarnom vrednou 0 signala
9097selekcije multipleksera MX3 koji se dobijaju na izlazu kodera CD2 zbog vrednosti 1 signala ASL na
9098ulazu 0 kodera CD2. U sluaju logikog pomeranja za jedno mesto ulevo to je signal 0. Ovaj signal se
9099selektuje na izlazu IL multipleksera MX4 binarnom vrednou 1 signala selekcije multipleksera MX4
9100koji se dobijaju na izlazu kodera CD2 zbog vrednosti 1 signala LSL na ulazu 1 kodera CD2. U sluaju
9101rotiranja za jedno mesto ulevo to je signal AB7. Ovaj signal se selektuje na izlazu IL multipleksera MX4
9102binarnom vrednou 2 signala selekcije multipleksera MX4 koji se dobijaju na izlazu kodera CD2 zbog
9103vrednosti 1 signala ROL na ulazu 2 kodera CD2. U sluaju rotiranja zajedno sa razredom PSWC

308

307

9104programske statusne rei PSW150 za jedno mesto ulevo to je signal PSWC. Ovaj signal se selektuje na
9105izlazu IL multipleksera MX4 binarnom vrednou 3 signala selekcije multipleksera MX4 koji se
9106dobijaju na izlazu kodera CD2 zbog vrednosti 1 signala ROLC na ulazu 3 kodera CD2. Istovremeno se
9107signalom ldC bloka exec u razred PSWC programske statusne rei PSW 150 upisuje vrednost signala C
9108bloka exec. U sluaju svih pomeranja i rotiranja za jedno mesto ulevo to je signal AB7. U koraku stepA0
9109se signalima ldN i ldZ bloka exec u razrede PSWN i PSWZ programske statusne PSW 150 rei upisuju
9110vrednosti signala N i Z bloka exec formirane na osnovu sadraja upisanog u registar AB70 i signalom
9111ldV bloka exec u razred PSWV programske statusne rei PSW 150 upisuje vrednost 0 signala V. Iz
9112koraka stepA0 se bezuslovano prelazi na korak stepC0 i fazu opsluivanje prekida. !
9113
step89 shl, ldC;
9114
step8A ldN, ldZ, ldV,
9115
br stepA9;
60

46

A B

A SL

56

60

7 ...0 < = A B 6 ...0 . 0 ,


PSW C<=C

47

47

LSL

7 ...0 < = A B 6 ...0 . 0 ,


PSW C<=C

s h l,
ld C
ld N , ld Z ,
ld V

48

48

RO L

7 ...0 <

= A B 6 ...0 . A B 7 ,
PSW C<=C

RO L

s h l,
ld C

PSW N <=N , PSW Z<=Z,


PSW V <=0

ld N , ld Z ,
ld V

49

49

7 ...0

RO LC

< = A B 6 ...0 . P S W C ,
PSW C<=C

RO LC

s h l,
ld C

PSW N <=N , PSW Z<=Z,


PSW V <=0

309

LSL

PSW N <=N , PSW Z<=Z,


PSW V <=0

A B

56

s h l,
ld C
ld N , ld Z ,
ld V

A B

60

A SL

PSW N <=N , PSW Z<=Z,


PSW V <=0

A B

9116
9117
9118

46

ld N , ld Z ,
ld V
56

60

Slika 174 Izvravanje operacije (trinaesti deo)

308

56

60

50

B E Q L ,...,B L S S E U
I B U S 3 3 ...0 < = I R 2 7 ...2 4

56

60

b rp o m

50

B E Q L ,...,B L S S E U
IR B R N o u t3
0

b rp o m

56

P C < = P C + IR
51

P C < = IR

P C o u t1 , IR P O M o u t3 ,
A D D o u t2 , ld P C

2 3 ...1 6

51

JM P

JM P
IR J A o u t2 , ld P C

2 3 ...8

52

52

IN T
P R IN S < = 1

IN T

s tP R IN S

60
56
60
56
9119
9120
Slika 175 Izvravanje operacije (etrnaesti deo)
9121! BEQL,, BLSSEU !
9122! U korak step8B se dolazi iz step3D ukoliko jedan od 16 signala operacija uslovnog skoka BEQL,
9123BNEQL, BNEG, BNNEG, BOVF, BNOVF, BCAR, BNCAR, BGRT, BGRTE, BLSS, BLSSE,
9124BGRTU, BGRTEU, BLSSU i BLSSEU ima vrednost 1 (slika 175). Iz koraka step8B se prelazi na
9125stepA9 i fazu opsluivanje prekida ukoliko signal brpom bloka exec ima vrednost 0 i na korak step 8C
9126ukoliko ima vrednost 1. Signal brpom ima vrednost 1 ukoliko od 16 signala rezultata operacije eql,
9127neql, neg, nneg, ovf, novf, car, ncar, grt, grte, lss, lsse, grtu, grteu, lssu i lsseu vrednost 1 ima onaj
9128signal koji je odreen vrednou 1 odgovarajueg signala od 16 signala operacija uslovnog skoka
9129BEQL, BNEQL, BNEG, BNNEG, BOVF, BNOVF, BCAR, BNCAR, BGRT, BGRTE, BLSS,
9130BLSSE, BGRTU, BGRTEU, BLSSU i BLSSEU. Signalom IRBRout3 se u koraku step8B na linije
9131interne magistrale IBUS33..0 puta sadraj razreda IR27... 24 registra IR31...0 bloka fetch. Bitovi IBUS32..0 se
9132vode na upravljake ulaze multipleksera MX7 i MX8 bloka exec, ime se vri selekcija po jednog
9133signala iz dve grupe signala rezultata operacije, dok se bit IBUS33 vodi na upravljaki ulaz
9134multipleksera MX9, ime se izmeu signala rezultata operacije selektovanih multiplekserima MX7 i
9135MX8 selektuje signal rezultata operacije koji odgovara kodu operacije uslovnog skoka. Selektovani
9136signal rezultata operacije je oznaen sa brpom. !
9137
step8B IRBRout3,
9138
br (if brpom then stepA9);
9139! U korak step8C se dolazi iz step8B ukoliko signal brpom ima vrednost 1, ime je uslov za skok ispunjen.
9140U ovom koraku se najpre signalima PCout1 i IRPOMout3 sadraji registra PC150 bloka fetch i
9141registra IR2316 bloka fetch proiren znakom na 16 bita putaju na interne magistrale IBUS115...0 i
9142IBUS315...0, respektivno, i ulaze sabiraa ADD bloka addr, a zatim se signalima ADDout2 i ldPC
9143sadraj sa izlaza sabiraa ADD puta na internu magistralu IBUS2 15...0 i upisuje u registar PC15...0. Pored
9144toga iz koraka step8C se bezuslovno prelazi na stepA9 i fazu opsluivanje prekida. !
9145
step8C PCout1, IRPOMout3, ADDout2, ldPC,
9146
br stepA9;
9147! JMP !
9148! U korak step8D se dolazi iz step3D ukoliko signal operacije JMP ima vrednost 1. U fazi izvravanja ove
9149instrukcije se realizuje bezuslovni skok na adresu koja je data u samoj instrukciji. Stoga se sadraj
9150registra IR238 bloka fetch koji predstavlja adresu skoka signalom IRJAout2 puta na internu
9151magistralu IBUS215...0 i signalom ldPC upisuje u registar PC 150. Pored toga iz koraka step8D se
9152bezuslovno prelazi na stepA9 i fazu opsluivanje prekida. !
9153
step8D IRJAout2, ldPC,
9154
br stepA9;
9155! INT !
9156! U korak stepA4 se dolazi iz step50 ukoliko signal operacije INT ima vrednost 1. U fazi izvravanja ove
9157instrukcije se samo evidentira da se radi o instrukciji prekida i prelazi na fazu opsluivanje prekida iz
9158koje se zatim skae na prekidnu rutinu na osnovu broja ulaza u tabelu sa adresama prekidnih rutina koji
9159je dat u samoj instrukciji. Stoga se signalom stPRINS flip-flop PRINS bloka intr postavlja na vrednost
91601 i bezuslovno prelazi na stepC0 i fazu opsluivanje prekida. !
9161
step8E stPRINS,

310

309

9162

br stepA9;
60

53

JS R
SP<=SP+1

56

60

53

S P o u t2 , ld M A R ,
P C H o u t3 , m x M D R ,
ld M D R

hack
0

e M A R ,e M D R ,w rC P U
0

fc C P U
1

fc C P U
1

SP<=SP+1

in c S P

M A R<=SP,
M D R < = P C 7 ...0

S P o u t2 , ld M A R ,
P C L o u t3 , m x M D R ,
ld M D R

hack
0

e M A R ,e M D R ,w rC P U
0

fc C P U
1

P C < = IR

hack
0

M EM <=M D R
0

hack
0

M EM <=M D R
0

56

in c S P

M A R<=SP,
M D R < = P C 1 5 ...8

JS R

fc C P U
1

IR J A o u t2 , ld P C

2 3 ...8

60
56
60
56
9163
9164
Slika 176 Izvravanje operacije (petnaesti deo)
9165! JSR !
9166! U korak step8F se dolazi iz step3D ukoliko signal operacije JSR ima vrednost 1 (slika 176). U fazi
9167izvravanja ove instrukcije se realizuje skok na potprogram tako to se prvo na stek stavi tekui sadraj
9168programskog brojaa i zatim realizuje bezuslovni skok na adresu koja je data u samoj instrukciji. Na
9169stek se stavlja prvo stariji a zatim i mlai bajt registra PC 150. Stoga se najpre u koraku stepA5 signalom
9170incSP vri inkrementiranje registra SP150 bloka addr. Zatim se u koraku step90 signalima SPout2 i
9171ldMAR sadraj registra SP150 puta na internu magistralu IBUS2150 i upisuje u registar MAR150 i
9172signalima PCHout3, mxMDR i ldMDR sadraj registra PC158 puta na linije interne magistrale
9173IBUS370 i kroz multiplekser MX bloka bus i upisuje u registar MDR70. Upis se realizuje u koracima
9174step91 i step92 na isti nain kao to se to radi u koracima step 49 i step4A instrukcije STB. Potom se u
9175koraku step93 signalom incSP vri inkrementiranje registra SP150. Zatim se u koraku step94 signalom
9176SPout2 i ldMAR sadraj registra SP150 puta na internu magistralu IBUS2150 i upisuje u registar
9177MAR150 i signalima PCLout3, mxMDR i ldMDR sadraj mlaeg bajta registra PC70 puta na linije
9178interne magistrale IBUS370 i kroz multiplekser MX bloka bus i upisuje u registar MDR70. Upis se
9179realizuje u koracima step95 i step96 na isti naina kao to se to radi u koracima step91 i step92 prilikom
9180upisa starijeg bajta. Na kraju se u koraku step97 sadraj registra IR238 bloka fetch koji predstavlja
9181adresu skoka signalom IRJAout2 puta na internu magistralu IBUS2 15...0 i signalom ldPC upisuje u
9182registar PC150 i bezuslovno prelazi na stepA9 i fazu opsluivanje prekida. !

311

310

9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194

step8F
step90
step91
step92
step93
step94
step95
step96
step97

incSP;
SPout2, ldMAR, PCHout3, mxMDR, ldMDR;
br (if hack then step91);
eMAR, eMDR, wrCPU,
br (if fcCPU then step92);
incSP;
SPout2, ldMAR, PCLout3, mxMDR, ldMDR;
br (if hack then step95);
eMAR, eMDR, wrCPU,
br (if fcCPU then step96);
IRJAout2, ldPC,
br stepA9;

60

54

RTI

56

60

54

M A R<=SP,
S P < = S P 1

eM A R , rd C P U
0

fc C P U
1

7 ...0

M D R o u t1 , ld P S W L
S P o u t2 , ld M A R ,
decSP

hack
0

eM A R , rd C P U
0

fc C P U
1

PSW

hack
0

M D R<=M EM
0

fc C P U
1

<=M D R

M A R<=SP,
S P < = S P 1

hack
0

M D R<=M EM

PSW

56

S P o u t2 , ld M A R ,
decSP

hack

RTI

fc C P U
1

1 5 ...8 < = M D R

M D R o u t1 , ld P S W H

60
55
56
60
55
56
9195
9196
Slika 177 Izvravanje operacije (esnaesti deo)
9197! RTI !
9198! U korak step98 se dolazi iz step3D ukoliko signal operacije RTI ima vrednost 1 (slika 177). U fazi
9199izvravanja ove instrukcije vrednostima sa steka se restauriraju programska statusna re PSW 15..0 i
9200programski broja PC15...0. U koracima step98 do step9D se prvo vrednou sa steka restaurira
9201programska statusna re PSW15...0 bloka exec. Sa steka se najpre skida mlai a zatim i stariji bajt
9202registra PSW15...0. Stoga se u koraku step98 signalima SPout2 i ldMAR sadraj registra SP 150 puta na
9203internu magistralu IBUS2150 i upisuje u registar MAR150. Pored toga se i signalom decSP
9204dekrementira sadraj registra SP 150. itanje se realizuje u koracima step99 i step9A na isti naina kao to
9205se to radi u koracima step02 i step03 u kojima se ita prvi bajt instrukcije. Na kraju se u koraku step 9B
9206signalima MDRout1 i ldPSWL sadraj registra MDR7...0 bloka bus puta na linije interne magistrale
9207IBUS170 i upisuje u mlai bajt registra PSW70 bloka exec. Potom se u koraku step9C signalima
9208SPout2 i ldMAR sadraj registra SP150 puta na internu magistralu IBUS2150 i upisuje u registar
9209MAR150.Pored toga se i signalom decSP dekrementira sadraj registra SP 150. itanje se realizuje u
9210koracima step9D i step9E na isti naina kao to se to radi u koracima step 99 i step9A u kojima se ita
9211prethodni bajt. Na kraju se u koraku step 9F signalima MDRout1 i ldPSWH sadraj registra MDR7...0
9212bloka bus puta na linije interne magistrale IBUS170 i upisuje u stariji bajt registra PSW158. Time je
921316-to bitna vrednost skinuta sa steka i smetena u registar PSW 150, pa se prelazi na sledei korak

312

311

9214poev od koga se kao i u sluaju instrukcije RTS sa steka skida 16-to bitna vrednost i smeta u registar
9215PC150. !
9216
step98 SPout2, ldMAR, decSP;
9217
step99 br (if hack then step99);
9218
step9A eMAR, rdCPU,
9219
br (if fcCPU then step9A);
9220
step9B MDRout1, ldPSWL;
9221
step9C SPout2, ldMAR, decSP;
9222
step9D br (if hack then step9D);
9223
step9E eMAR, rdCPU,
9224
br (if fcCPU then step9E);
9225
step9F MDRout1, ldPSWH;
60

55

RTS

56

60

55

M A R<=SP,
S P < = S P 1

eM A R , rd C P U
0

fc C P U
1

M D R o u t1 , ld D W L
S P o u t2 , ld M A R ,
decSP

hack
0

eM A R , rd C P U
0

fc C P U
1

D W

1 5 ...8

hack
0

M D R<=M EM
0

fc C P U
1

7 ...0 < = M D R

M A R<=SP,
S P < = S P 1

hack
0

M D R<=M EM

D W

56

S P o u t2 , ld M A R ,
decSP

hack

RTS

fc C P U
1

<=M D R

PC<=D W

M D R o u t1 , ld D W H
D W o u t2 , ld P C

1 5 ...0

60
56
60
56
9226
9227
Slika 178 Izvravanje operacije (sedamnaesti deo)
9228! RTS !
9229! U korak stepA0 se dolazi iz step3D ukoliko signal operacije RTS ima vrednost 1 (slika 178). Pored toga
9230u korak stepA0 se dolazi i iz koraka step9F kada signal operacije RTI ima vrednost 1. U oba sluaja se u
9231koracima stepA0 do stepA8 vrednou sa steka restaurira programski broja PC 15...0. Sa steka se najpre
9232skida mlai a zatim i stariji bajt registra PC15...0. Stoga se u koraku stepA0 signalima SPout2 i ldMAR
9233sadraj registra SP150 puta na internu magistralu IBUS2150 i upisuje u registar MAR150. Pored toga
9234se i signalom decSP dekrementira sadraj registra SP 150. itanje se realizuje u koracima stepA1 i stepA2
9235na isti naina kao to se to radi u koracima step 02 i step03 u kojima se ita prvi bajt instrukcije. Na kraju
9236se u koraku stepA3 signalima MDRout1 i ldDWL sadraj registra MDR7...0 bloka bus puta na linije
9237interne magistrale IBUS170 i upisuje u mlai bajt registra DW70 bloka bus. Potom se u koraku stepA4
9238signalima SPout2 i ldMAR sadraj registra SP150 puta na internu magistralu IBUS2150 i upisuje u
9239registar MAR150. Pored toga se i signalom decSP dekrementira sadraj registra SP 150. itanje se
9240realizuje u koracima stepA5 i stepA6 na isti naina kao to se to radi u koracima step A1 i stepA2 u kojima se
9241ita prethodni bajt. Na kraju se u koraku stepA7 signalima MDRout1 i ldDWH sadraj registra MDR7...0
9242bloka bus puta na linije interne magistrale IBUS170 i upisuje u stariji bajt registra DW158. Time je

313

312

924316-to bitna vrednost skinuta sa steka i smetena u registar DW 150. Konano se u koraku stepA8 sadraj
9244registra DW150 signalom DWout2 puta na internu magistralu IBUS215...0 i signalom ldPC upisuje u
9245registar PC150 i bezuslovno prelazi na stepA9 i fazu opsluivanje prekida. !
9246
stepA0 SPout2, ldMAR, decSP;
9247
stepA1 br (if hack then stepA1);
9248
stepA2 eMAR, rdCPU,
9249
br (if fcCPU then stepA2);
9250
stepA3 MDRout1, ldDWL;
9251
stepA4 SPout2, ldMAR, decSP;
9252
stepA5 br (if hack then stepA5);
9253
stepA6 eMAR, rdCPU,
9254
br (if fcCPU then stepA6);
9255
stepA7 MDRout1, ldDWH;
9256
stepA8 DWout2, ldPC,
9257
br stepA9;
9258! Opsluivanje prekida !
9259! U korak stepA9 se dolazi iz koraka step06 ukoliko signal PRCOD ima vrednost 1, koraka step0D ukoliko
9260signal PRADR ima vrednost 1 i koraka step3E, step40, ..., stepA8 na zavretku faze izvravanje instrukcije
9261svake od instrukcija (slika 179). U koraku stepA9 se, u zavisnosti od toga da li signal prekid bloka intr
9262ima vrednost 0 ili 1, ili zavrava izvravanje tekue instrukcije i prelaskom na korak step00 zapoinje
9263faza itanje instrukcije sledee instrukcije ili se produava izvravanje tekue instrukcije i prelaskom na
9264korak stepAA produava faza opsluivanje prekida tekue instrukcije. !
9265
stepA9 br (if prekid then step00);
9266! Opsluivanje prekida se sastoji iz dve grupe koraka u kojima se realizuje uvanje konteksta procesora
9267i skok na prekidnu rutinu. !
9268! uvanje konteksta procesora !
9269! Kontekst procesora i to registri PC150 i PSW150 se uva u koracima stepAA do stepB9. U koracima
9270stepAA do stepB1 se na stek stavlja programski broja PC 150. Na stek se stavlja prvo stariji a zatim i
9271mlai bajt registra PC150. Stoga se najpre u koraku stepAA signalom incSP vri inkrementiranje
9272sadraja registra SP150 bloka addr. Zatim se u koraku stepAB signalima SPout2 i ldMAR sadraj
9273registra SP150 puta na internu magistralu IBUS2150 i upisuje u registar MAR150 i signalima
9274PCHout3, mxMDR i ldMDR sadraj registra PC158 puta na linije magistrale IBUS370 i kroz
9275multiplekser MX bloka bus i upisuje u registar MDR70. Upis se realizuje u koracima stepAC i stepAD na
9276isti nain kao to se to radi u koracima step49 i step4A instrukcije STB. Potom se u koraku stepAE
9277signalom incSP vri inkrementiranje registra SP 150. Zatim se u koraku stepAF signalima SPout2 i
9278ldMAR sadraj registra SP150 puta na internu magistralu IBUS2 150 i upisuje u registar MAR150 i
9279signalima PCLout3, mxMDR i ldMDR sadraj mlaeg bajta registra PC70 puta na linije interne
9280magistrale IBUS370 i kroz multiplekser MX bloka bus i upisuje u registar MDR70. Upis se realizuje u
9281koracima stepB0 i stepB1 na isti naina kao to se to radi u koracima step AC i stepAD prilikom upisa
9282starijeg bajta.
9283
stepAA incSP;
9284
stepAB SPout2, ldMAR, PCHout3, mxMDR, ldMDR;
9285
stepAC br (if hack then stepAC);
9286
stepAD eMAR, eMDR, wrCPU,
9287
br (if fcCPU then stepAD);
9288
stepAE incSP;
9289
stepAF SPout2, ldMAR, PCLout3, mxMDR, ldMDR;
9290
stepB0 br (if hack then stepB0);
9291
stepB1 eMAR, eMDR, wrCPU,
9292
br (if fcCPU then stepB1);

314

313

60

56

60

56

p re k id

p re k id

SP<=SP+1

in c S P

M A R <=SP,
M D R < = P C 1 5 ...8

S P o u t2 , ld M A R ,
P C H o u t3 , m x M D R ,
ld M D R

hack

hack

M EM <=M D R
0

e M A R ,e M D R ,w r C P U
0

fc C P U

fc C P U

SP<=SP+1

in c S P

M A R <=SP,
M D R < = P C 7 ...0

S P o u t2 , ld M A R ,
P C L o u t3 , m x M D R ,
ld M D R

hack

hack

M EM <=M D R
0

e M A R ,e M D R ,w r C P U
0

fc C P U

fc C P U

9293
9294

60

1
57

60

57

Slika 179 Opsluivanje prekida (prvi deo)

9295! U koracima stepB2 do stepB9 se na stek stavlja programska statusna re PSW 150 bloka exec (slika
9296180). Na stek se stavlja prvo stariji a zatim i mlai bajt registra PSW 150. Stoga se najpre u koraku
9297stepB2 signalom incSP vri inkrementiranje registra SP150 bloka addr. Zatim se u koraku stepB3
9298signalima SPout2 i ldMAR sadraj registra SP 150 puta na internu magistralu IBUS2150 i upisuje u
9299registar MAR150 i signalima PSWHout3, mxMDR i ldMDR sadraj registra PSW158 puta na linije
9300interne magistrale IBUS370 i kroz multiplekser MX bloka bus i upisuje u registar MDR70. Upis se
9301realizuje u koracima stepB4 i stepB5 na isti nain kao to se to radi u koracima step49 i step4A instrukcije
9302STB. Potom se u koraku stepB6 signalom incSP vri inkrementiranje registra SP150. Zatim se u koraku
9303stepB7 signalom SPout2 i ldMAR sadraj registra SP150 puta na internu magistralu IBUS2150 i
9304upisuje u registar MAR150 i signalima PSWLout3, mxMDR i ldMDR sadraj mlaeg bajta registra
9305PSW70 puta na linije interne magistrale IBUS370 i kroz multiplekser MX bloka bus i upisuje u
9306registar MDR70. Upis se realizuje u koracima stepB8 i stepB9 na isti naina kao to se to radi u koracima
9307stepB4 i stepB5 prilikom upisa starijeg bajta.
9308
stepB2 incSP;
9309
stepB3 SPout2, ldMAR, PSWHout3, mxMDR, ldMDR;
9310
stepB4 br (if hack then stepB4);
9311
stepB5 eMAR, eMDR, wrCPU,
9312
br (if fcCPU then stepB5);
9313
stepB6 incSP;
9314
stepB7 SPout2, ldMAR, PSWLout3, mxMDR, ldMDR;
9315
stepB8 br (if hack then stepB8);
9316
stepB9 eMAR, eMDR, wrCPU,
315

314

9317

br (if fcCPU then stepB9);


60

57

60

57

SP<=SP+1

in c S P

M A R <=SP,
M D R < = P S W 1 5 ...8

S P o u t2 , ld M A R ,
P S W H o u t3 , m x M D R ,
ld M D R

hack

hack

M EM <=M D R
0

e M A R ,e M D R ,w r C P U
0

fc C P U

fc C P U

SP<=SP+1

in c S P

M A R <=SP,
M D R < = P S W 7 ...0

S P o u t2 , ld M A R ,
P S W L o u t3 , m x M D R ,
ld M D R

hack

hack

M EM <=M D R
0

e M A R ,e M D R ,w r C P U
0

fc C P U

fc C P U

9318
9319

60

1
58

60

58

Slika 180 Opsluivanje prekida (drugi deo)

9320! Skok na prekidnu rutinu !


9321! Skok na prekidnu rutinu se sastoji iz utvrivanja broja ulaza i utvrivanja adrese prekidne rutine. !
9322! Utvrivanje broja ulaza !
9323! U korak stepBA se dolazi iz stepB9 (slika 181). U koracima stepBA do stepC1 se utvruje broj ulaza u
9324tabelu sa adresama prekidnih rutina i upisuje u registar BR 70 bloka intr. U ovim koracima se po
9325opadajuim prioritetima utvruje zahtev za prekid najvieg prioriteta i za njega odreuje broj ulaza u
9326tabelu sa adresama prekidnih rutina. !
9327! Provera da li postoji zahtev za prekid zbog izvravanja instrukcije prekida INT !
9328! U koraku stepBA se vri provera da li signal PRINS bloka intr ima vrednost 1 ili 0 i prelazi na korak
9329stepBB ili stepBC, respektivno. Ukoliko signal PRINS ima vrednost 1 jer postoji odgovarajui zahtev za
9330prekid, u koraku stepBB se signalom IRPOMout3 bloka exec sadraj razreda IR2316, koji sadri broj
9331ulaza, puta na linije interne magistrale IBUS37...0 i signalom ldBR upisuje u registar BR70.
9332Istovremeno se signalom clPRINS bloka intr se flip-flop PRINS postavlja na vrednost 0. Iz koraka
9333stepBB se prelazi na korak stepC5 radi utvrivanja adrese prekidne rutine. !

316

315

60

58

60

58

P R IN S

P R IN S

B R

7 ...0 < = I R 2 3 ...1 6 ,


P R IN S < = 0

IR P O M o u t3 , ld B R ,
c lP R IN S

PR CO D

PR CO D

B R

7 ...0 < = U I N T 7 ...0 ,


PR CO D <=0

U IN T o u t3 , ld B R ,
c lP R C O D

PR A D R

PR A D R

B R

7 ...0 < = U N I T 7 ...0 ,


PRA D R<=0

U IN T o u t3 , ld B R ,
c lP R A D R

P R IN M

P R IN M

B R

7 ...0 <

= U I N T 7 ...0 ,
P R IN M < = 0

U IN T o u t3 , ld B R ,
c lP R IN M

p rin tr

p rin tr

B R 7 ...0 < = U E X T 7 ...0 ,


c a s e p r l 2 ...0
b e g in
0 : -,
1 : P R IN T R 1 < = 0 ,
2 : P R IN T R 2 < = 0 ,
3 : P R IN T R 3 < = 0 ,
4 : P R IN T R 1 < = 0 ,
5 : P R IN T R 2 < = 0 ,
6 : P R IN T R 2 < = 0 ,
7 : P R IN T R 3 < = 0
end,
P S W L 2 ...0 < = p r l 2 ...0

B R

9334
9335

317

60

7 ...0 <

= U IN T

U E X T o u t3 , ld B R ,

c lIN T R ,

ld L

U IN T o u t3 , ld B R

7 ...0

59

60

Slika 181 Opsluivanje prekida (trei deo)

316

59

9336
stepBA br (if PRINS then stepBC);
9337
stepBB IRPOMout3, ldBR, clPRINS,
9338
br stepC5;
9339! Provera da li postoji zahtev za prekid zbog greke u kodu operacije !
9340! U koraku stepBC se vri provera da li signal PRCOD bloka intr ima vrednost 1 ili 0 i prelazi na korak
9341stepBD ili stepBE, respektivno. Ukoliko signal PRCOD ima vrednost 1 jer postoji odgovarajui zahtev za
9342prekid, u koraku stepBD se signalom UINTout3 bloka intr sadraj UINT70 sa izlaza kodera CD2, koji
9343sadri broj ulaza, puta na linije interne magistrale IBUS37...0 i signalom ldBR upisuje u registar BR70.
9344Istovremeno se signalom clPRCOD bloka intr flip-flop PRCOD postavlja na vrednost 0. Iz koraka
9345stepBD se prelazi na korak stepC5 radi utvrivanja adrese prekidne rutine. !
9346
stepBC br (if PRCOD then stepBE);
9347
stepBD UINTout3, ldBR, clPRCOD,
9348
br stepC5;
9349! Provera da li postoji zahtev za prekid zbog greke u adresiranju !
9350! U koraku stepBE se vri provera da li signal PRADR bloka intr ima vrednost 1 ili 0 i prelazi na korak
9351stepBF ili stepC0, respektivno. Ukoliko signal PRADR ima vrednost 1 jer postoji odgovarajui zahtev za
9352prekid, u koraku stepBF se signalom UINTout3 bloka intr sadraj UINT70 sa izlaza kodera CD2, koji
9353sadri broj ulaza, puta na linije interne magistrale IBUS37...0 i signalom ldBR upisuje u registar BR70.
9354Istovremeno se signalom clPRADR bloka intr flip-flop PRADR postavlja na vrednost 0. Iz koraka
9355stepD6 se prelazi na korak stepDC radi utvrivanja adrese prekidne rutine. !
9356
stepBE br (if PRADR then stepC0);
9357
stepBF UINTout3, ldBR, clPRADR,
9358
br stepC5;
9359! Provera da li postoji spoljanji nemaskirajui zahtev za prekid !
9360! U koraku stepC0 se vri provera da li signal PRINM bloka intr ima vrednost 1 ili 0 i prelazi na korak
9361stepC1 ili stepC2, respektivno. Ukoliko signal PRINM ima vrednost 1 jer postoji odgovarajui zahtev za
9362prekid, u koraku stepC1 se signalom UINTout3 bloka intr sadraj UINT70 sa izlaza kodera CD2, koji
9363sadri broj ulaza, puta na linije interne magistrale IBUS37...0 i signalom ldBR upisuje u registar BR70.
9364Istovremeno se signalom clPRINM bloka intr flip-flop PRINM postavlja na vrednost 0. Iz koraka
9365stepC1 se prelazi na korak stepC5 radi utvrivanja adrese prekidne rutine.!
9366
stepC0 br (if PRINM then stepC2);
9367
stepC1 UINTout3, ldBR, clPRINM,
9368
br stepC5;
9369! Provera da li postoji spoljanji maskirajui zahtev za prekid. !
9370! U koraku stepC2 se vri provera da li signal printr bloka intr ima vrednost 1 ili 0 i prelazi na korak
9371stepC3 ili stepC4, respektivno. Ukoliko signal printr ima vrednost 1 jer postoji odgovarajui zahtev za
9372prekid, u koraku stepC3 se signalom UEXTout3 bloka intr sadraj UEXT70 sa izlaza kodera CD3, koji
9373sadri broj ulaza, puta na linije interne magistrale IBUS37...0 i signalom ldBR upisuje u registar BR70.
9374Istovremeno se signalom clINTR bloka intr jedan od flip-flopova PRINTR7 do PRINTR1 postavlja na
9375vrednost 0. Flip-flop PRINTR7 do PRINTR1 koji se postavlja na vrednost 0 je selektovan binarnim
9376vrednostima 7 do 1, respektivno, signala prl2 do prl0 bloka intr i odgovara liniji najvieg nivoa
9377prioriteta po kojoj je stigao spoljanji maskirajui zahtev za prekid koji nije selektivno maskiran
9378odgovarajuim razredom registra maske IMR150. Pored toga signalom ldL bloka exec se signali prl2 do
9379prl0 , koji predstavljaju binarnu vrednost nivoa prioriteta prekidne rutine na koju se skae, upisuju u
9380razrede PSWL2 do PSWL0 programske statusne rei PSW150 bloka exec. Iz koraka stepC3 se prelazi na
9381korak stepC5 radi utvrivanja adrese prekidne rutine. !
9382
stepC2 br (if printr then stepC4);
9383
stepC3 UEXTout3, ldBR, clINTR, ldL,
9384
br stepC5;
9385! Prekid posle svake instrukcije !
9386! U korak stepC4 se dolazi iz stepC2 ukoliko signal printr ima vrednost 0. U ovaj korak se dolazi jedino
9387ukoliko se proverom signala prekid u koraku stepA9 utvrdi da ovaj signal ima vrednost 1 i proverom
9388signala PRINS, PRCOD, PRADR, PRINM i printr u koracima stepBA, stepBC, stepBE, stepC0 i stepC2
9389utvrdi da ovi signali imaju vrednost 0. To znai da jedino preostaje da signal prekid ima vrednost 1 jer,
9390zbog zadatog reima rada prekid posle svake instrukcije, signal PSWT ima vrednost 1. Stoga se
9391signalom UINTout3 bloka intr sadraj UINT70 sa izlaza kodera CD2, koji sadri broj ulaza, puta na
318

317

9392linije interne magistrale IBUS37...0 i signalom ldBR upisuje u registar BR70. Iz koraka stepC4 se prelazi
9393na korak stepC5 radi utvrivanja adrese prekidne rutine. !
9394
stepC4 UINTout3, ldBR;
9395! Utvrivanje adrese prekidne rutine !
60

59

60

M A R<=
IV T P + IV T D S P

59

I V T P o u t1 ,I V T D S P o u t3 ,
A D D o u t2 , ld M A R

1 5 ...0

hack

hack

M D R<=M EM
0

eM A R , rd C P U
0

fc C P U

fc C P U

D W 1 5 ...8 < = M D R 7 ...0 ,


M A R <=M A R+1

M D R o u t1 , ld D W H ,
in c M A R

hack

hack

M D R<=M EM
0

eM A R , rd C P U
0

fc C P U

fc C P U

D W

7 ...0 <

=M D R

M D R o u t1 , ld D W L

7 ...0

P C < = D W 1 5 ...0 ,
P S W I< = 0 ,
PSW T<=0

9396
9397

D W o u t2 , ld P C ,
c lP S W I,
c lP S W T

Slika 182 Opsluivanje prekida (etvrti deo)

9398! U koracima stepC5 do stepCC se na osnovu dobijenog broja ulaza i sadraja registra koji ukazuje na
9399poetnu adresu tabele sa adresama pekidnih rutina, iz odgovarajueg ulaza ita adresa prekidne rutine i
9400upisuje u programski broja PC150 bloka fetch (slika 182). U koraku stepC5 se, najpre, signalima
9401IVTPout1 i IVTDSPout3 sadraj registra IVTP15...0 i sadraj IVTDSP15...0, koji predstavlja sadraj
9402registra BR70 pomeren ulevo za jedno mesto i proiren nulama do duine 16 bita, putaju na interne
9403magistrale IBUS115...0 i IBUS315...0, respektivno, i ulaze sabiraa ADD bloka addr, a zatim se signalima
9404ADDout2 i ldMAR dobijeni sadraj puta na internu magistralu IBUS2 15...0 i upisuje u registar
9405MAR15...0 bloka bus. Time se u registru MAR15...0 nalazi adresa memorijske lokacije poev od koje treba
9406proitati dva bajta koji predstavljaju vii i nii bajt adrese prekidne rutine. itanje se realizuje u
9407koracima stepC6 i stepC7 na isti naina kao to se to radi u koracima step 02 i step03 u kojima se ita prvi
9408bajt instrukcije. U koraku stepC8 se signalima MDRout1 i ldDWH prvi bajt iz registra MDR7...0 bloka
9409bus puta na linije interne magistrale IBUS170 i upisuje u stariji bajt registra DW158 bloka bus, a
9410signalom incMAR adresni registar MAR15...0 se inkrementira na adresu sledeeg bajta. itanje se
9411realizuje u koracima stepC9 i stepCA na isti naina kao to se to radi u koracima stepC6 i stepC7 u kojima se
9412ita prethodni bajt. U koraku stepCB se signalima MDRout1 i ldDWL drugi bajt iz registra MDR7...0
9413bloka bus puta na linije interne magistrale IBUS170 i upisuje u mlai bajt registra DW70 bloka bus.
9414Time se u registru DW150 nalazi adresa prekidne rutine. Na kraju se u koraku stepCC signalom DWout2
9415sadraj registra DW150 puta na internu magistralu IBUS215...0 i signalom ldPC upisuje u registar
9416PC15...0. Time se u registru PC 15...0 nalazi adresa prve instrukcije prekidne rutine. Signalima clPSWI i
9417clPSWT se u razrede PSWI i PSWT bloka exec upisuju vrednosti 0. Time se u prekidnu rutinu ulazi sa
9418reimom rada u kome su maskirani svi maskirajui prekidi i u kome nema prekida posle svake
9419instrukcije. Iz koraka stepCC se bezuslovno prelazi na step00. !

319

318

9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430

stepC5 IVTPout1, IVTDSPout3, ADDout2, ldMAR;


stepC6 br (if hack then stepC6);
stepC7 eMAR, rdCPU,
br (if fcCPU then stepC7);
stepC8 MDRout1, ldDWH, incMAR;
stepC9 br (if hack then stepC9);
stepCA eMAR, rdCPU,
br (if fcCPU then stepCA);
stepCB MDRout1, ldDWL;
stepCC DWout2, ldPC, clPSWI, clPSWT,
br step00;

94314.4.2.3 Struktura upravljake jedinice


9432 U ovom odeljku se daje struktura upravljake jedinice mikroprogramske realizacije sa
9433horizonatalnim kodiranjem signala i jednim tipom mikroinstrukcija koja generie dve vrste
9434upravljakih signala i to upravljake signale blokova operacione jedinice oper i upravljake
9435signale upravljake jedinice uprav. Upravljaki signali blokova operacione jedinice oper se
9436koriste u blokovima operacione jedinice oper radi izvravanja mikrooperacija. Upravljaki
9437signali upravljake jedinice uprav se koriste u upravljakoj jedinici uprav radi inkrementiranja
9438mikroprogramskog brojaa ili upisa nove vrednosti u mikroprogramski broja.
9439 U sluaju upravljake jedinice mikroprogramske realizacije sa horizonatalnim kodiranjem
9440signala i jednim tipom mikroinstrukcija upravljaki signali i operacione i upravljake jedinice se
9441generiu na osnovu mikroprograma, koji je potrebno prethodno formirati tako to se svakom
9442koraku u sekvenci upravljakih signala po koracima (tabela 46) pridruuje binarna re
9443odreene strukture (slika 183). Ta binarna re se naziva mikroinstrukcija, mikronaredba ili
9444mikrokomanda, a tako dobijeni ureeni niz mikroinstrukcija pridruenih koracima sekvence
9445upravljakih signala po koracima, naziva se mikroprogram.
h
0

...

cc

9 5 9 6

s ig n a li

9446
9447

...

u slo v

ba

1 0 3

104

...

111

ad resa sk o k a

o p e ra c io n i d e o

u p ra v lja k i d e o

Slika 183 Format mikroinstrukcije

9448 Poljem h0...95 duine 96 bita mikroinstrukcije odreuju se vrednosti svih upravljakih signala
9449operacione jedinice. Uzeto je da svakom upravljakom signalu odgovara poseban bit. Ovakav
9450nain kodiranja upravljakih signala se naziva horizontalni nain kodiranja. Poljem cc96...103
9451duine 8 bita mikroinstrukcije specificira se bezuslovni skok, uslovni skokovi na osnovu
9452vrednosti svakog od signala logikih uslova i viestruki uslovni skokovi. Polje ba104...111 duine 8
9453bita mikroinstrukcije definie se adresa mikroinstrukcije u mikroprogramu na koju se skae u
9454sluaju bezuslovnog skoka i u sluaju uslovnog skoka ukoliko odgovarajui signal logikog
9455uslova ima vrednost 1.
9456 Upravljaka jedinica se sastoji iz mikroprogramske memorije, mikroprogramskog brojaa,
9457prihvatnog registra mikroinstrukcije, kombinacione mree za generisanje upravljakih signala i
9458kombinacione mree za generisanje nove vrednosti mikroprogramskog brojaa.
9459Mikroprogramska memorija slui za smetanje mikroprograma. Mikroprogramski broja
9460odreuje adresu mikroinstrukcije u mikroprogramskoj memoriji. Prihvatni registar
9461mikroinstrukcije slui za prihvatanje mikroinstrukcije oitane iz mikroprogramske memorije.
9462Kombinaciona mrea za generisanje upravljakih signala generie na osnovu oitane
9463mikroinstrukcije dve grupe upravljakih signala i to upravljake signale operacione jedinice i
9464upravljake signale upravljake jedinice. Upravljaki signali operacione jedinice se generiu na
9465osnovu vrednosti bitova polja h0...95. Njima se omoguava izvravanje odreenih mikrooperacija
320

319

9466u operacionoj jedinici. Upravljaki signali upravljake jedinice se generiu na osnovu vrednosti
9467bitova polja cc96...103 i signala logikih uslova. Njima se ili sadraj mikroprogramskog brojaa
9468inkrementira ili se u mikroprogramski broja preko kombinacione mree za generisanje nove
9469vrednosti mikroprogramskog brojaa upisuje nova vrednost i time realizuje skok u
9470mikroprogramskoj memoriji.
9471

Detalji formata mikroinstrukcije (slika 183) su dati u daljem tekstu.

9472 Bitovi 0 do 95 pripadaju polju h0...95 mikroinstrukcije i dodeljeni su upravljakim signalima


9473operacione jedinice MOST1_2, MOST1_3, ..., clINTR.
9474

Tabela 47 Bitovi polja h i upravljaki signali operacione jedinice


h0...95
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

9475

signal
MOST1_2
MOST1_3
MOST2_1
MOST3_2
rdCPU
wrCPU
ldMDR
mxMDR
MDRout1
eMDR
ldMAR
incMAR
eMAR
ldDWL
ldDWH
DWout2
wrGPR
GPRout1
ldGPRAR
incGPRAR
ldSP
SPout2
incSP
decSP
ldCW
CWout3
ADDout2
ldPC
incPC
PCHout3
PCLout3

h0...95
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

signal
PCLout3
ldIR0
ldIR1
ldIR2
ldIR3
IRPOMout3
IRJAout2
IRDAout3
IRBRNout3
add
sub
inc
dec
and
or
xor
not
ALUout1
ldAB
ABout3
shr
shl
ldBB
BBout2
ldAW
AWout3
AWHout3
ldBW
BWout2
ldPSWH
ldPSWL
ldN

h0...95
signal
64
ldZ
65
ldC
66
ldV
67
ldL
68
stPSWI
69
clPSWI
70
stPSWT
71
clPSWT
72
PSWHout3
73
PSWLout3
74
clSTART
75
ldIMR
76
IMRout2
77
ldBR
78 IVTDSPout1
79
ldIVTP
80
IVTPout3
81
UINTout3
82
UEXTout3
83
stPRCOD
84
stPRADR
85
stPRINS
86
clPRCOD
87
clPRADR
88
clPRINS
89
clPRINM
90
clINTR
91
92
93
94
95
-

Bitovi 0 i 91 do 95 nisu iskorieni.

9476 Bitovi 96 do 103 pripadaju polju cc96...103 mikroinstrukcije i koriste se za kodiranje


9477upravljakih signala upravljake jedinice za korake u kojima se javljaju bezuslovni skok,
9478uslovni skokovi i viestruki uslovni skokovi.
9479 Bezuslovni skok se realizuje u onim koracima sekvence upravljakih signala po koracima
9480(tabela 46) u kojima se pojavljuju iskazi tipa
9481 br stepA.
9482Nain kodiranja signala bezuslovnog skoka bitovima polja cc96...103 mikroinstrukcije i simbolika
9483oznaka signala bezuslovnog skoka koji za svaki od njih treba generisati, dati su u tabeli 48.
9484
Tabela 48 Signal bezuslovnog skoka
cc96...103

321

signal bezuslovnog skoka

320

01

bruncnd

9485 Uslovni skokovi se realizuju u onim koracima sekvence upravljakih signala po koracima u
9486kojima se pojavljuju iskazi tipa
9487 br (if uslov then stepA).
9488Nain kodiranja signala uslovnih skokova bitovima polja cc96...103 mikroinstrukcije, simbolike
9489oznake signala uslovnih skokova koje za svaki od njih treba generisati i signal uslova koji treba
9490da ima vrednost 1 da bi se realizovao skok, dati su u tabeli 49.
9491

Tabela 49 Signali uslovnih skokova


02
03
04
05
06

signal uslovnog
skoka
brnotSTART
brhack
brnotfcCPU
brnotgropr
brl1

07

brnotgradr

08
09
0A
0B

brl2_branch
brl2_arlog
brl3_jump
brl3_arlog

cc96...103

signal
uslova

0C
0D
0E
0F
10

signal uslovnog
skoka
brstore
brLDW
brregdir
brnotbrpom
brnotPREKID

gradr

11

brnotPRINS

l2_branch
l2_arlog
l3_jump
l3_arlog

12
13
14
15

brnotPRCOD
brnotPRADR
brnotPRINM
brnotprintr

cc96...103

START

hack
fcCPU
gropr

I1

signal
uslova
store
LDW
regdir
brprom
prekid

PRINS
PRCOD

PRADR
PRINM
printr

9492 Viestruki uslovni skokovi se realizuju u onim koracima sekvence upravljakih signala po
9493koracima u kojima se pojavljuju iskazi tipa
9494 br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn).
9495Nain kodiranja signala viestrukih uslovnih skokova bitovima polja cc96...103 mikroinstrukcije,
9496koraci u sekvenci upravljakih signala po koracima u kojima se pojavljuju iskazi ovog tipa i
9497simbolike oznake signala viestrukih uslovnih skokova dati su u tabeli 50.
9498

Tabela 50 Signali viestrukih uslovnih skokova


cc96...103
16
17

stepi
step19
step3D

signal
bradr
bropr

9499 Vrednost 00 polja cc96...103 i sve ostale vrednosti koje nisu dodeljene signalu bezuslovnog
9500skoka, signalima uslovnih skokova i signalima viestrukih uslovnih skokova, odreuju da treba
9501prei na sledeu mikroinstrukciju. Iz tabela 48, 49 i 50 se vidi da su za kodiranje signala
9502bezuslovnog skoka, uslovnih skokova i viestrukih uslovnih skokova upravljake jedinice
9503potrebni kodovi od 00h do 17h i da je za polje cc dovoljna duina 5 bitova. Meutim, da bi
9504mikroprogram predstavljen u heksadecimalnom obliki bio pregledan, usvojeno je da duina
9505polja cc bude 8 bitova.
9506 Bitovi 104 do 111 pripadaju polju ba104...111 mikroinstrukcije i koriste se za specificiranje
9507adrese mikroinstrukcije na koju treba skoiti kod uslovnih i bezuslovnih skokova u sekvenci
9508upravljakih signala po koracima (tabela 46). Ovi bitovi predstavljaju vrednost koju treba
9509upisati u mikroprogramski broja u sluaju bezuslovnih skokova i u sluaju uslovnih skokova
9510ukoliko signal uslova ima vrednost 1. Za kodiranje polja ba104...111 usvojeno je 8 bitova, jer je za
9511kompletan mikroprogram dovoljan kapacitet mikroprogramske memorije od 256 rei.
9512 Mikroprogram se formira tako to se za svaki korak u sekvenci upravljakih signala po
9513koracima (tabela 46) formira jedna mikroinstrukcija.
9514 Kod formiranja mikroinstrukcije polazi se od sekvence upravljakih signala po koracima i
9515bitovi polja h0...95 koji odgovaraju upravljakim signalima operacione jedinice koji se javljaju u

322

321

9516datom koraku postavljaju na 1 i bitovi polja h0...95 koji odgovaraju upravljakim signalima
9517operacione jedinice koji se ne javljaju u datom koraku postavljaju na 0. U koracima u kojima se
9518javlja neki od iskaza br stepA, br (if uslov then stepA) i br (case (uslov1, ..., uslovn) then
9519(uslov1, stepA1), ..., (uslovn, stepAn)) se bitovi polja cc96...103 i ba104...111 kodiraju u zavisnosti od
9520toga koji se od ova tri iskaza javlja u datom koraku.
9521 Za iskaz br stepA se za polje cc96...103 uzima kod dodeljen signalu bezuslovnog skoka koji
9522odreuje da se bezuslovno prelazi na korak step A i za polje ba104...111 binarna vrednost A koju
9523treba upisati u mikroprogramski broja. Simbolika oznaka signala bezuslovnog skoka i nain
9524njegovog kodiranja poljem cc96...103 dati su u tabeli 48. Koraci stepi u kojima se bezuslovni
9525skokovi javljaju, koraci stepA na koje se bezuslovno skae i sama vrednost A, koju treba upisati
9526u mikroprogramski broja, za sve korake u sekvenci upravljakih signala po koracima u kojima
9527se javljaju iskazi ovog tipa, dati su u tabeli 51.
9528

Tabela 51 Koraci stepi, stepA i vrednosti A za bezuslovne skokove


stepi
step06
step0D
step1C
step1D
step1F
step21
step2A
step2C
step2F
step34
step39
step3B
step3C
step3E
step3F
step40
step41
step42
step43

stepA
stepA9
stepA9
step3D
step3D
step31
step31
step31
step31
step31
step3D
step3D
step3D
step3D
stepA9
step00
stepA9
stepA9
stepA9
stepA9

A
A9
A9
3D
3D
31
31
31
31
31
3D
3D
3D
3D
A9
00
A9
A9
A9
A9

stepi
step45
step46
step4B
step4C
step54
step55
step5A
step62
step67
step70
step71
step72
step73
step74
step75
step76
step78
step7A
step7C

stepA
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9

9529

323

322

A
A9
A9
A9
A9
A9
A9
A9
A9
A9
A9
A9
A9
A9
A9
A9
A9
A9
A9
A9

stepi
step7E
step80
step82
step84
step86
step88
step8A
step8C
step8D
step8E
step97
stepA8
stepBB
stepBD
stepBF
stepC1
stepC3
stepCC

stepA
stepA9
stepA9
stepA9
stepA9
stepA9
stepA9
stepC0
stepC0
stepC0
stepC0
stepC0
stepC0
stepC5
stepC5
stepC5
stepC5
stepC5
step00

A
A9
A9
A9
A9
A9
A9
C0
C0
C0
C0
C0
C0
C5
C5
C5
C5
C5
00

9530 Za iskaz br (if uslov then stepA) se za polje cc96...103 uzima kod dodeljen signalu uslovnog
9531skoka koji odreuje signal uslov koji treba da da ima vrednost 1 da bi se realizovao prelaz na
9532korak stepA i za polje ba104...111 binarna vrednost A koju treba upisati u mikroprogramski broja
9533u sluaju da signal uslov ima vrednost 1. Simbolike oznake signala uslovnog skoka, nain
9534njihovog kodiranja poljem cc96...103 i signali uslov za sve iskaze ovog tipa koji se javljaju u
9535sekvenci upravljakih signala po koracima dati su u tabeli 49. Koraci stepi u kojima se uslovni
9536skokovi javljaju, signali uslova uslov, koraci stepA na koje se uslovno skae i vrednosti A koje
9537treba upisati u mikroprogramski broja u sluaju da signal uslov ima vrednost 1, za sve korake
9538u sekvenci upravljakih signala po koracima u kojima se javljaju iskazi ovog tipa dati su u
9539tabeli 52.

324

323

9540

Tabela 52 Koraci stepi, uslovi uslov, koraci stepA i vrednosti A za uslovne skokove
stepi
step00
step02
step03
step05
step07
step09
step0A
step0C
step0E
step0F
step11
step12
step13
step14
step16
step17
step1A
step1B
step1E
step20
step23
step24
step26
step27
step29
step2B
step2E
step30
step31
step32
step33
step36
step37
step3A
step47
step49
step4A
step4D
step4F
step50
step52
step53
step57

uslov

stepA
START step00
hack
step02
fcCPU step03
gropr
step07
l1
step3D
hack
step09
fcCPU step0A
gradr
step0E
l2_brnch step3D
l2_arlog step19
hack
step11
fcCPU step12
l3_jump step3D
l3_arlog step19
hack
step16
fcCPU step17
store
step3D
LDW
step1D
store
step3D
store
step3D
hack
step23
fcCPU step24
hack
step26
fcCPU step27
store
step3D
store
step3D
store
step3D
store
step3D
hack
step31
fcCPU step32
LDW
step35
hack
step36
fcCPU step37
LDW
step3C
regdir
step4C
hack
step49
fcCPU step4A
regdir
step55
hack
step4F
fcCPU step50
hack
step52
fcCPU step53
hack
step57

A
00
02
03
07
3D
09
0A
0E
3D
19
11
12
3D
19
16
17
3D
1D
3D
3D
23
24
26
27
3D
3D
3D
3D
31
32
35
36
37
3C
4C
49
4A
55
4F
50
52
53
57

stepi
step58
step5C
step5D
step5F
step60
step65
step66
step6A
step6B
step6E
step6F
step8B
step91
step92
step95
step96
step99
step9A
step9D
step9E
stepA1
stepA2
stepA5
stepA6
stepA9
stepAC
stepAD
stepB0
stepB1
stepB4
stepB5
stepB8
stepB9
stepBA
stepBC
stepBE
stepC0
stepC2
stepC6
stepC7
stepC9
stepCA

uslov

stepA
fcCPU step58
hack
step5C
fcCPU step5D
hack
step5F
fcCPU step60
hack
step65
fcCPU step66
hack
step6A
fcCPU step6B
hack
step6E
fcCPU step6F
brprom stepA9
hack
step91
fcCPU step92
hack
step95
fcCPU step96
hack
step99
fcCPU step9A
hack
step9D
fcCPU step9E
hack
stepA1
fcCPU stepA2
hack
stepA5
fcCPU stepA6
prekid step00
hack
stepAC
fcCPU stepAD
hack
stepB0
fcCPU stepB1
hack
stepB4
fcCPU stepB5
hack
stepB8
fcCPU stepB9
PRINS stepBC
PRCOD stepBE
PRADR stepC0
PRINM stepC2
printr
stepC4
hack
stepC6
fcCPU stepC7
hack
stepC9
step
fcCPU
CA

A
58
5C
5D
5F
60
65
66
6A
6B
6E
6F
A9
91
92
95
96
99
9A
9D
9E
A1
A2
A5
A6
00
AC
AD
B0
B1
B4
B5
B8
B9
BC
BE
C0
C2
C4
C6
C7
C9
CA

9541 Za iskaz br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) se za polje
9542cc96...103 uzima kod dodeljen signalu viestrukog uslovnog skoka koji odreuje signale
9543uslov1, ..., uslovn za koje treba izvriti proveru koji od njih ima vrednost 1 da bi se na osnovu
9544toga realizovao prelaz na jedan od koraka step A1, ..., stepAn i za polje ba104...111 nule jer njegova
9545vrednost nije bitna. Upravljaka jedinica mora da bude tako realizovana da za svaki viestruki
9546uslovni skok generie vrednosti A1,..., An koje treba upisati u mikroprogramski broja. Ona
9547mora da obezbedi i selekciju jedne od vrednosti A1,..., An u zavisnosti od toga koji od signala
9548uslova uslov1, ..., uslovn ima vrednost 1. Simbolike oznake signala viestrukih uslovnih
325

324

9549skokova, nain njihovog kodiranja poljem cc96...103 i koraci u sekvenci upravljakih signala po
9550koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli 50. Vrednosti A1,..., An koje
9551treba upisati u mikroprogramski broja i signali uslova uslov1, ..., uslovn za koje treba izvriti
9552proveru koji od njih ima vrednost 1 da bi se na osnovu toga realizovao prelaz na jedan od
9553koraka stepA1, ..., stepAn za dva iskaza ovog tipa koji se javljaju u sekvenci upravljakih signala
9554po koracima dati su u tabelama 53 i 54.
9555
9556

Tabela 53 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step19
uslov
regdir
regind
memdir
memind
regindpom
bxpom
pcpom
imm

9557
9558

stepA
step1A
step1E
step20
step22
step2B
step2D
step30
step3A

Tabela 54 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step 3D
uslov
NOP
HALT
INTD
INTE
TRPD
TRPE
LDB
LDW
STB
STW
POPB
POPW
PUSHB
PUSHW
LDIVTP
STIVTP
LDIMR
STIMR
LDSP
STSP
ADD

stepA
step3E
step3F
step40
step41
step42
step43
step44
step46
step47
step4D
step56
step5B
step63
step68
step71
step72
step73
step74
step75
step76
step77

opr7...0
3E
3F
40
41
42
43
44
46
47
4D
56
5B
63
68
71
72
73
74
75
76
77

uslov
SUB
INC
DEC
AND
OR
XOR
NOT
ASR
LSR
ROR
RORC
ASL
LSL
ROL
ROLC
BEQL
BNEQ
BNEG
BNNEG
BOVF
BNOVF

stepA
step79
step7B
step7D
step7F
step81
step83
step85
step87
step87
step87
step87
step89
step89
step89
step89
step8B
step8B
step8B
step8B
step8B
step8B

9559

326

adr7...0
1A
1E
20
22
2B
2D
30
3A

325

opr7...0
79
7B
7D
7F
81
83
85
87
87
87
87
89
89
89
89
8B
8B
8B
8B
8B
8B

uslov
BCAR
BNCAR
BGRT
BGRE
BLSS
BLSSE
BGRT
BGRE
BLSS
BLSSE
BGRTU
BGRTEU
BLSSU
BLSSEU
JMP
INT
JSR
RTI
RTS

stepA
step8B
step8B
step8B
step8B
step8B
step8B
step8B
step8B
step8B
step8B
step8B
step8B
step8B
step8B
step8D
step8E
step8F
step98
stepA0

opr7...0
8B
8B
8B
8B
8B
8B
8B
8B
8B
8B
8B
8B
8B
8B
8D
8E
8F
98
A0

9560 Tabela 55 Mikroprogram za upravljaku jedinicu mikroprogramske realizacije sa horizontalnim


kodiranjem signala i jednim tipom mikroinstrukcija
!itanje instrukcije!
00 000000000000000000000000 02
01 401000048000000000000000 00
02 000000000000000000000000 03
03 040400000000000000000000 04
04 004000004000000000000000 00
05 000000000000000000000000 05
06 000000000000000000001000 01
07 000000000000000000000000 06
08 401000048000000000000000 00
09 000000000000000000000000 03
0A 0 4 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4
0B 2 0 4 0 1 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7
0D 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 1
0E 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8
0F 000000000000000000000000 09
10 401000048000000000000000 00
11 000000000000000000000000 03
12 040400000000000000000000 04
1 3 0 0 4 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0A
1 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0B
15 401000048000000000000000 00
16 000000000000000000000000 03
17 040400000000000000000000 04
18 004000000800000000000000 00
! Formiranje adrese operanda !
19 000000000000000000000000 16
! Registarsko direktno adresiranje !
1A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0C
1B 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0D
1C 0 0 0 0 2 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 1
1D 4 0 0 0 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
! Registarsko indirektno adresiranje !
1E 4 0 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0C
1F 000000000000000000000000 01
! Memorijsko direktno adresiranje !
2 0 0 8 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0C
21 000000000000000000000000 01
! Memorijsko indirektno adresiranje !
22 081000000100000000000000 00
23 000000000000000000000000 03
24 040400000000000000000000 04
25 004900000000000000000000 00
26 000000000000000000000000 03
27 040400000000000000000000 04
28 004200000000000000000000 00
2 9 0 0 1 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0C
2A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
! Registarsko indirektno sa pomerajem adresiranje!
2B 0 0 1 0 2 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0C

0 0 !brnotSTART, maddr00!
0 0 !PCout1, MOST1_2, ldMAR, incPC!
0 2 !brhack, maddr02!
0 3 !eMAR, rdCPU, brnotfcCPU, maddr03!
0 0 !MDRout1, ldIR0!
0 7 !brnotgropr, maddr07!
A9 !stPRCOD, bruncnd, maddrA9!
3 D !brl1, maddr3D!
0 0 !PCout1, MOST1_2, ldMAR, incPC!
0 9 !brhack, maddr09!
0 A !eMAR, rdCPU, brnotfcCPU, maddr0A!
0 0 !MDRout1, MOST1_3, ldIR1, ldGPRAR!
0 E !brnotgradr, maddr0E!
A9 !stPRADR, bruncnd, maddrA9!
3 D !brl2_brnch, maddr3D!
1 9 !brl2_arlog, maddr19!
0 0 !PCout1, MOST1_2, ldMAR, incPC!
1 1 !brhack, maddr11!
1 2 !eMAR, rdCPU, brnotfcCPU, maddr12!
3 D !MDRout1, ldIR2, brl3_jump, maddr3D!
1 9 !brl3_arlog, maddr19 !
0 0 !PCout1, MOST1_2, ldMAR, incPC!
1 6 !brhack, maddr16!
1 7 !eMAR, rdCPU, brnotfcCPU, maddr17!
0 0 !MDRout1, ldIR3!
0 0 !bradr !
3 D !brstore, maddr3D!
1 D !brLDW, maddr1D!
3 D !GPRout1, ldBB, bruncnd, maddr3D!
3 D !GPRout1, MOST1_2, ldBW, bruncnd, maddr3D!
3 D !GPRout1, MOST1_2, ldMAR, brstore, maddr3D!
3 1 !bruncnd, maddr31!
3 D !IRDAout3, MOST3_2, ldMAR, brstore, maddr3D!
3 1 !bruncnd, maddr31!
0 0 !IRDAout3, MOST3_2, ldMAR!
2 3 !brhack, maddr23!
2 4 !eMAR, rdCPU, brnotfcCPU, maddr24!
0 0 !MDRout1, ldDWH, incMAR!
2 6 !brhack, maddr26!
2 7 !eMAR, rdCPU, brnotfcCPU, maddr27!
0 0 !MDRout1, ldDWL!
3 D !DWout2, ldMAR, brstore, maddr3D!
3 1 !bruncnd, maddr31!
3 D !GPRout1, IRDAout3, ADDout2, ldMAR,

brstore ,
!bruncnd,
2 C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 maddr
3D! maddr31!
! Bazno indeksno sa pomerajem adresiranje !
2 D 0 0 0 0 2 8 5 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 !GPRout1,IRDAout3,ADDout2,ldCW,incGPRAR!
2 E 0 0 1 0 2 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C 3 D !GPRout1, CWout3, ADDout2, ldMAR,
brstore ,
!bruncnd,
2 F 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 maddr
3D! maddr31!

327

326

9562
! PC relativno sa pomerajem adresiranje !
3 0 0 0 1 0 0 0 1 0 8 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C 3D !PCout1, IRDAout3, ADDout2, ldMAR,
! itanje operanda !
31 000000000000000000000000
32 040400000000000000000000
33 000000000000000000000000
34 004000000000020000000000
35 004900000000000000000000
36 000000000000000000000000
37 040400000000000000000000
38 004200000000000000000000
39 000080000000001000000000
! Neposredno adresiranje !
3A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3B 1 0 0 0 0 0 0 0 0 2 0 0 0 2 0 0 0 0 0 0 0 0 0 0
3C 0 8 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0
! Izvravanje operacije !
3D 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
! NOP !
3E 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
! HALT !
3F 000000000000000000200000
! INTD !
40 000000000000000004000000
! INTE !
41 000000000000000008000000
! TRPD !
42 000000000000000001000000
! TRPE !
43 000000000000000002000000
! LDB !
44 100000000000210000000000
4 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1E0 0 0 0 0 0 0
! LDW !
46 000000000000008800000000
! STB !
47 000000000000000000000000
48 018000000000100000000000
49 000000000000000000000000
4A 0 2 2 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4B 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4C 0 0 0 0 4 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
! STW !
4D 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4E 0 1 8 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0
4F 000000000000000000000000
50 022400000000000000000000
51 018800000000004000000000
52 000000000000000000000000
53 022400000000000000000000
54 000000000000000000000000
55 000040000000004000000000
! POPB !
56 001002800000000000000000
57 000000000000000000000000
58 040400000000000000000000
59 004000000000220000000000
5A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 E 0 0 0 0 0 0 0

328

03
04
0D
01
00
03
04
00
01

maddr3D!
3 1 !brhack, maddr31!
3 2 !eMAR, rdCPU, brnotfcCPU, maddr32!
3 5 !brLDW, maddr35!
3D !MDRout1, ldBB, bruncnd, maddr3D!
0 0 !MDRout1, ldDWH, incMAR!
3 6 !brhack, maddr36!
3 7 !eMAR, rdCPU, brnotfcCPU, maddr37!
0 0 !MDRout1, ldDWL!
3D !DWout2, ldBW, bruncnd, maddr3D!

brstore ,

0D 3 C !brLDW, maddr3C!
0 1 3D !IRJAout2, MOST2_1, ldBB, bruncnd, maddr3D!
0 1 3D !IRDAout3, MOST3_2, ldBW, bruncnd, maddr3D!
1 7 0 0 !bropr!
0 1 A9 !bruncnd, maddrA9!
0 1 0 0 !clSTART, bruncnd, maddr00!
0 1 A9 !clPSWI, bruncnd, maddrA9!
0 1 A9 !stPSWI, bruncnd, maddrA9!
0 1 A9 !clPSWT, bruncnd, maddrA9!
0 1 A9 !stPSWT, bruncnd, maddrA9!
0 0 0 0 !BBout2, MOST2_1, ldAB!
0 1 A9 !ldN, ldZ, ldC, ldV, bruncnd, maddrA9!
0 1 A9 !BWout2, ldAW, bruncnd, maddrA9!
0E
00
03
04
01
01

4 C !brregdir, maddr4C!
0 0 !ABout3, mxMDR, ldMDR!
4 9 !brhack, maddr49!
4A !eMAR, eMDR, wrCPU, brnotfcCPU, maddr4A!
A9 !bruncnd, maddrA9!
A9 !ABout3, wrGPR, bruncnd, maddrA9!

0E
00
03
04
00
03
04
01
01

55
00
4F
50
00
52
53
A9
A9

!brregdir, maddr55!
!AWHout3, mxMDR, ldMDR!
!brhack, maddr4F!
!eMAR, eMDR, wrCPU, brnotfcCPU, maddr50!
!AWout3, mxMDR, ldMDR, incMAR!
!brhack, maddr52 !
!eMAR, eMDR, wrCPU, brnotfcCPU, maddr53!
!bruncnd, maddrA9!
!AWout3, wrGPR, bruncnd, maddrA9!

00
03
04
00
01

00
57
58
00
A9

!SPout2, ldMAR, decSP!


!brhack, maddr57!
!eMAR, rdCPU, brnotfcCPU, maddr58 !
!MDRout1, ldAB, ldBB!
!ldN, ldZ, ldC, ldV, bruncnd, maddrA9!

327

9563
! POPW !
5B 0 0 1 0 0 2 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5D 0 4 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5E 0 0 5 2 0 2 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5F 000000000000000000000000
60 040400000000000000000000
61 004100000000000000000000
62 000080000000009000000000
! PUSHB !
63 000001000000000000000000
64 019002000000100000000000
65 000000000000000000000000
66 022400000000000000000000
67 000000000000000000000000
! PUSHW !
68 000001000000000000000000
69 019002000000002000000000
6A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6B 0 2 2 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6C 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6D 0 1 9 0 0 2 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0
6E 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6F 022400000000000000000000
70 000000000000000000000000
! LDIVTP !
71 400000000000008000008000
! STIVTP !
72 000000000000004000010000
! LDIMR !
73 000000000000008000080000
! STIMR !
74 000000000000004000100000
! LDSP !
75 000002000000008000000000
! STSP !
76 000004000000004000000000
! ADD !
77 000000000040710060000000
78 000000000000000180000000
! SUB !
79 000000000020710060000000
7A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 0 0 0 0 0 0 0
! INC !
7B 0 0 0 0 0 0 0 0 0 0 1 0 7 0 0 0 6 0 0 0 0 0 0 0
7C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 0 0 0 0 0 0 0
! DEC !
7D 0 0 0 0 0 0 0 0 0 0 0 8 7 0 0 0 6 0 0 0 0 0 0 0
7E 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 0 0 0 0 0 0 0
! AND !
7F 000000000004710000000000
8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1E0 0 0 0 0 0 0
! OR !
81 000000000002710000000000
8 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1E0 0 0 0 0 0 0
! XOR !
83 000000000000710000000000
8 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1E0 0 0 0 0 0 0

329

00
03
04
00
03
04
00
01

0B0
5C
5D
00
5F
60
00
A9

!SPout2, ldMAR, decSP!


!brhack, maddr5C!
!eMAR, rdCPU, brnotfcCPU, maddr5D !
!SPout2, ldMAR, decSP, MDRout1, ldDWL!
!brhack, maddr5F!
!eMAR, rdCPU, brnotfcCPU, maddr60 !
!MDRout1, ldDWH!
!DWout2, ldAW, ldBW, bruncnd, maddrA9!

00
00
03
04
01

00
00
65
66
A9

!incSP!
!SPout2, ldMAR, ABout3, mxMDR, ldMDR!
!brhack, maddr65!
!eMAR, eMDR, wrCPU, brnotfcCPU, maddr66!
!bruncnd, maddrA9!

00
00
03
04
00
00
03
04
01

00
00
6A
6B
00
00
6E
6F
A9

!incSP!
!SPout2, ldMAR, AWHout3, mxMDR, ldMDR!
!brhack, maddr6A!
!eMAR, eMDR, wrCPU, brnotfcCPU, maddr6B !
!incSP!
!SPout2, ldMAR, AWout3, mxMDR, ldMDR!
!brhack, maddr6E!
!eMAR, eMDR, wrCPU, brnotfcCPU, maddr6F !
!bruncnd, maddrA9!

0 1 A9 !IVTPout1, MOST1_2, ldAW, bruncnd, maddrA9!


0 1 A9 !AWout3, ldIVTP, bruncnd, maddrA9!
0 1 A9 !IMRout2, ldAW, bruncnd, maddrA9!
0 1 A9 !AWout3, ldIMR, bruncnd, maddrA9!
0 1 A9 !SPout2, ldAW, bruncnd, maddrA9!
0 1 A9 !AWout3, ldSP, bruncnd, maddrA9!
0 0 0 0 !BBout2, ABout3, add, ALUout1, ldAB, ldC, ldV!
0 1 A9 !ldN, ldZ, bruncnd, maddrA9!
0 0 0 0 !BBout2, ABout3, sub, ALUout1, ldAB, ldC, ldV!
0 1 A9 !ldN, ldZ, bruncnd, maddrA9!
0 0 0 0 !ABout3, inc, ALUout1, ldAB, ldC, ldV!
0 1 A9 !ldN, ldZ, bruncnd, maddrA9!
0 0 0 0 !ABout3, dec, ALUout1, ldAB, ldC, ldV!
0 1 A9 !ldN, ldZ, bruncnd, maddrA9!
0 0 0 0 !BBout2, ABout3, and, ALUout1, ldAB!
0 1 A9 !ldN, ldZ, ldC, ldV, bruncnd, maddrA9!
0 0 0 0 !BBout2, ABout3, or, ALUout1, ldAB!
0 1 A9 !ldN, ldZ, ldC, ldV, bruncnd, maddrA9!
0 0 0 0 !BBout2, ABout3, xor, ALUout1, ldAB!
0 1 A9 !ldN, ldZ, ldC, ldV, bruncnd, maddrA9!

328

9564
! NOT !
85 000000000000F00000000000
8 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1E0 0 0 0 0 0 0
! ASR, LSR, ROR i ROLC !
87 000000000000080040000000
8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 A0 0 0 0 0 0 0
! ASL, LSL, ROL i ROLC !
89 000000000000040040000000
8 A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 A0 0 0 0 0 0 0
! BEQL,, BLSSEU !
8B 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0
8C 0 0 0 0 0 0 1 8 8 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0
! JMP !
8D 0 0 0 0 0 0 0 8 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
! INT !
8E 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0
! JSR !
8F 000001000000000000000000
90 019002020000000000000000
91 000000000000000000000000
92 022400000000000000000000
93 000001000000000000000000
94 019002010000000000000000
95 000000000000000000000000
96 022400000000000000000000
97 000000080200000000000000
! RTI !
98 001002800000000000000000
99 000000000000000000000000
9A 0 4 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9B 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0
9C 0 0 1 0 0 2 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9D 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9E 0 4 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9F 004000000000000400000000
! RTS !
A0 0 0 1 0 0 2 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A2 0 4 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A3 0 0 4 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A4 0 0 1 0 0 2 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A6 0 4 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A7 0 0 4 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A8 0 0 0 0 8 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
! Opsluivanje prekida !
A9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
! uvanje konteksta procesora !
AA 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AB 0 1 9 0 0 2 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AD 0 2 2 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AE 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AF 0 1 9 0 0 2 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
B0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
B1 0 2 2 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 !ABout3, not, ALUout1, ldAB!


0 1 A9 !ldN, ldZ, ldC, ldV, bruncnd, maddrA9!
0 0 0 0 !shr, ldC!
0 1 A9 !ldN, ldZ, ldV, bruncnd, maddrA9!
0 0 0 0 !shl, ldC!
0 1 A9 !ldN, ldZ, ldV, bruncnd, maddrA9!
0 F A9 !IRBRout3, brnotbrpom, maddrA9 !
0 1 A9 !PCout1, IRPOMout3, ADDout2, ldPC,
bruncnd, maddrA9!
0 1 A9 !IRJAout2, ldPC, bruncnd, maddrA9!
0 1 A9 !stPRINS, bruncnd, maddrA9!
00
00
91
92
00
00
95
96
A9

00
03
04
00
00
03
04
00

0 0 !SPout2, ldMAR, decSP!


9 9 !brhack, maddr99!
9 A !eMAR, rdCPU, brnotfcCPU, maddr9A !
0 0 !MDRout1, ldPSWL!
0 0 !SPout2, ldMAR, decSP!
9 D !brhack, maddr9D!
9 E !eMAR, rdCPU, brnotfcCPU, maddr9E !
0 0 !MDRout1, ldPSWH!

00
03
04
00
00
03
04
00
01

00
A1
A2
00
00
A5
A6
00
A9

!SPout2, ldMAR, decSP!


!brhack, maddrA1!
!eMAR, rdCPU, brnotfcCPU, maddrA2 !
!MDRout1, ldDWL!
!SPout2, ldMAR, decSP!
!brhack, maddrA5!
!eMAR, rdCPU, brnotfcCPU, maddrA6 !
!MDRout1, ldDWH!
!DWout2, ldPC, bruncnd, maddrA9!

1 0 0 0 !brnotprekid, maddr00!
00
00
03
04
00
00
03
04

0 0 !incSP!
0 0 !SPout2, ldMAR, PCHout3, mxMDR, ldMDR!
AC !brhack, maddrAC !
AD !eMAR, eMDR, wrCPU, brnotfcCPU, maddrAD!
0 0 !incSP!
0 0 !SPout2, ldMAR, PCLout3, mxMDR, ldMDR!
B 0 !brhack, maddrB0 !
B 1 !eMAR, eMDR, wrCPU, brnotfcCPU, maddrB1!

9565

330

!incSP!
!SPout2, ldMAR, PCHout3, mxMDR, ldMDR!
!brhack, maddr91 !
!eMAR, eMDR, wrCPU, brnotfcCPU, maddr92!
!incSP!
!SPout2, ldMAR, PCLout3, mxMDR, ldMDR!
!brhack, maddr95 !
!eMAR, eMDR, wrCPU, brnotfcCPU, maddr96!
!IRJAout2, ldPC, bruncnd, maddrA9!

00
00
03
04
00
00
03
04
01

329

9566
B 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 !incSP!
B 3 0 1 9 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 !SPout2, ldMAR, PSWHout3, mxMDR, ldMDR!
B 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 B 4 !brhack, maddrB4 !
B 5 0 2 2 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 B 5 !eMAR, eMDR, wrCPU, brnotfcCPU, maddrB5!
B 6 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 !incSP!
B 7 0 1 9 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 !SPout2, ldMAR, PSWLout3, mxMDR, ldMDR!
B 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 B 8 !brhack, maddrB8 !
B 9 0 2 2 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 B 9 !eMAR, eMDR, wrCPU, brnotfcCPU, maddrB9!
! Skok na prekidnu rutinu!
! Utvrivanje broja ulaza !
! Provera da li postoji zahtev za prekid zbog izvravanja instrukcije prekida INT!
BA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 BC !brnotPRINS, maddrBC!
BB 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 4 0 0 8 0 0 1 C 5 !IRPOMout3, ldBR, clPRINS, bruncnd, maddrC5!
! Provera da li postoji zahtev za prekid zbog greke u kodu operacije !
BC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 BE !brnotPRCOD, maddrBE!
BD 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 2 0 0 0 1 C 5 !UINTout3, ldBR, clPRCOD, bruncnd, maddrC5!
! Provera da li postoji zahtev za prekid zbog greke u adresiranju !
BE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 C 0 !brnotPRADR, maddrC0!
BF 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 1 0 0 0 1 C 5 !UINTout3, ldBR, clPRADR, bruncnd, maddrC5!
! Provera da li postoji spoljanji nemaskirajui zahtev za prekid !
C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 4 C 2 !brnotPRINM, maddrC2!
C 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 0 4 0 0 1 C 5 !UINTout3, ldBR, clPRINM, bruncnd, maddrC5!
! Provera da li postoji spoljanji maskirajui zahtev za prekid!
C 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 5 C 4 !brnotprintr, maddrC4!
C 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 4 2 0 2 0 0 1 C 5 !UEXTout3,ldBR,clINTR,ldL,bruncnd,maddrC5!
! Prekid posle svake instrukcije !
C 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 0 0 0 0 0 0 0 !UINTout3, ldBR!
! Utvrivanje adrese prekidne rutine !
C 5 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 2 8 0 0 0 0 0 0 0 !IVTPout1, IVTDSPout3, ADDout2, ldMAR!
C 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 C 6 !brhack, maddrC6!
C 7 0 4 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 C 7 !eMAR, rdCPU, brnotfcCPU, maddrC7!
C 8 0 0 4 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 !MDRout1, ldDWH, incMAR!
C 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 C 9 !brhack, maddrC9!
CA 0 4 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 CA !eMAR, rdCPU, brnotfcCPU, maddrCA!
CB 0 0 4 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 !MDRout1, ldDWL!
CC 0 0 0 0 8 0 0 0 8 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 1 0 0 !DWout2,ldPC,clPSWI,clPSWT,
br uncnd,maddr00
!

9567 Upravljaka jedinica mikroprogramske realizacije sa horizontalnim kodiranjem signala i


9568jednim tipom mikroinstrukcija se sastoji od sledeih blokova: blok generisanje nove vrednosti
9569mikroprogramskog brojaa, blok mikroprogramski broja, blok mikroprogramska memorija,
9570blok prihvatni registar mikroinstrukcije i blok generisanje upravljakih signala (slika 184).
9571Struktura i opis blokova upravljake jedinice se daju u daljem tekstu.
9572 Blok generisanje nove vrednosti mikroprogramskog brojaa se sastoji od kombinacionih
9573mrea KMOPR i KMADR sa multiplekserom MP i razreda CW104...111 prihvatnog registra
9574mikroinstrukcije CW0...111 i slui za generisanje i selekciju vrednosti koju treba upisati u
9575mikroprogramski broja mPC7...0. Potreba za ovim se javlja kada treba odstupiti od
9576sekvencijalnog izvravanja mikroprograma. Vrednosti koje treba upisati u mikroprogramski
9577broja generiu se na tri naina i to pomou:
9578 kombinacione mree KMOPR koja formira signale opr7...0,
9579 kombinacione mree KMADR koja formira signale adr7...0 i
9580 razreda CW104...111 prihvatnog registra mikroinstrukcije CW0...111.
9581Selekcija jedne od tri grupe signala koji daju novu vrednost mikroprogramskog brojaa mPC
9582obezbeuje se signalima bropr i bradr i to:
9583 signali opr7...0 ako signal bropr ima vrednost 1,
9584 signali adr7...0 ako signal bradr ima vrednost 1 i
331

330

signali CW104...111 ako signali bropr i bradr imaju vrednost 0.


imm

RTS

regdir
regind

s ig n a li lo g i k ih u s lo v a

NOP
HALT

s ig n a li lo g i k ih u s lo v a

9585

...
3E 3F

K M O PR

A 0

1A 1E


o p r 7 ...0
8
3

8
2

g e n e r is a n je
nove
v r e d n o s ti
m ik r o p r o g r a m s k o g
b r o ja a

...

K M A D R

3A


a d r 7 ...0

C W

1 0 4 ...1 1 1

8
1

M P

0 S

b ra d r
b ro p r

8
CLK

m PC

IN C

m PC

b rad r
b ro p r
b ru n cn d
b rcn d

ld
in c

LD

m PC

C LK

m ik r o p r o g r a m s k i
b r o ja

7 ...0

m ik r o p r o g r a m s k a
m e m o r ija

m M EM

W R

112

g e n e ris a n je
u p ra v lja k ih
s ig n a la
u p ra v lja k e
je d in ic e

g ro p r
l1

N O P
b rp o m
p re k id

331

brcnd

bruncnd

bropr

bradr

blok intr

Slika 184 Struktura upravljake jedinice


signali logikih uslova

d ir re g

STA RT
hack
fc C P U
...

signali logikih uslova

111

...

...

blok exec

CW
1 0 4
8

p r ih v a tn i
r e g is ta r
m ik r o in s tr u k c ije

...

blok addr

CW

111 LD

...

blok fetch

1 0 3C

...

...

blok bus

CW
9 6
8

104

...

332

CW

103

g e n e r is a n je
u p ra v lja k ih
s ig n a la
b lo k o v a
o p e ra c io n e
je d in ic e

9586
9587

95

...

...

CW
CW 0

96

96

...

95

...

...

CLK

C LK

CW

g e n e r is a n je
u p r a v lja k ih
s ig n a la

9588
Kombinacionom mreom KMOPR generiu se vrednosti (tabela 54) za realizaciju
9589viestrukog uslovnog skoka u koraku step 3D sekvence upravljakih signala po koracima. U
9590zavisnosti od toga koji od signala NOP, , RTS ima vrednost 1 zavisi koja e od vrednosti iz
9591tabele 54 da se pojavi tada na linijama opr7...0. S obzirom da se na adresi 3D mikroprograma
9592nalazi mikroinstrukcija sa tako kodiranim poljem cc96...103 da njeno izvravanje daje vrednost 1
9593signala viestrukog uslovnog skoka bropr, vrednost na linijama opr7...0 prolazi tada kroz
9594multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojaa mPC7...0.
9595 Kombinacionom mreom KMADR generiu se vrednosti (tabela 53) za realizaciju
9596viestrukog uslovnog skoka u koraku step 19 sekvence upravljakih signala po koracima. U
9597zavisnosti od toga koji od signala regdir,..., imm ima vrednost 1 zavisi koja e od vrednosti iz
9598tabele 53 da se pojavi tada na linijama adr7...0. S obzirom da se na adresi 19 mikroprograma
9599nalazi mikroinstrukcija sa tako kodiranim poljem cc96...103 da njeno izvravanje daje vrednost 1
9600signala viestrukog uslovnog skoka bradr, vrednost na linijama adr7...0 prolazi kroz
9601multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojaa mPC7...0.
9602 Razredi CW104...111 prihvatnog registra mikroinstrukcije CW0...111 sadre vrednost za upis u
9603mikroprogramski broja mPC7...0 za bezuslovne skokove (tabela 51) i uslovne skokove (tabela
960452) u sekvenci upravljakih signala po koracima. Signali viestrukih uslovnin skokova bropr i
9605bradr imaju vrednost 1 samo prilikom izvravanja mikroinstrukcija na adresama 3D i 1F
9606mikroprograma, respektivno, a u svim ostalim situacijama imaju vrednost 0. S obzirom da ni
9607jedan od ova dva signala nema vrednost 1 prilikom izvravanja mikroinstrukcija kojima se
9608realizuju bezuslovni ili uslovni skokovi u mikroprogramu, vrednost odreena razredima
9609CW104...111 prolazi kroz multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojaa
9610mPC7...0.
9611 Blok mikroprogramski broja sadri mikroprogramski broja mPC7...0. Mikroprogramski
9612broja mPC7...0 svojom trenutnom vrednou odreuje adresu mikroprogramske memorije
9613mMEM sa koje treba oitati mikroinstrukciju. Mikroprogramski broja mPC 7...0 moe da radi u
9614sledeim reimima:
9615 reim inkrementiranja,
9616 reim skoka i
9617 reim ekanja.
9618 U reimu inkrementiranja pri pojavi signala takta CLKmPC vri se uveavanje sadraja
9619mikroprogramskog brojaa mPC7...0 za jedan ime se obezbeuje sekvencijalno oitavanje
9620mikroinstrukcija iz mikroprogramske memorije. Ovaj reim rada se obezbeuje vrednou 1
9621signala inc. Signal inc ima vrednost 1 ako signali bropr, bradr i branch imaju vrednost 0.
9622Signali bropr, bradr i branch uvek imaju vrednost 0 sem kada treba obezbediti reim skoka.
9623 U reimu skoka pri pojavi signala takta CLKmPC vri se upis nove vrednosti u
9624mikroprogramski broja mPC7...0 ime se obezbeuje odstupanje od sekvencijalnog oitavanja
9625mikroinstrukcija iz mikroprogramske memorije. Ovaj reim rada se obezbeuje vrednou 1
9626signala ld. Signal ld ima vrednost 1 ako jedan od signala bropr, bradr i branch ima vrednost
96271. Signali bropr, bradr i branch uvek imaju vrednost 0 sem u sluaju izvravanja
9628mikroinstrukcije koja ima takvo polje cc96...103 da je specificiran neki viestruki uslovni skok,
9629bezuslovni skok ili neki od uslovnih skokova i uslov skoka je ispunjen.
9630 U reimu ekanja pri pojavi signala takta vri se upis tekue vrednosti u mikroprogramski
9631broja mPC7...0 ime se obezbeuje da se ne menja vrednost mikroprogramskog brojaa
9632mPC7...0. Ovaj reim rada se obezbeuje vrednou 1 signala ld i to kada je:

333

332

9633 ciklus procesora na magistrali u toku ili


9634 magistrala preputena ulazno/izlaznom ureaju sa kontrolerom za direktan pristup
9635memoriji, a procesor je doao u korak izvravanja instrukcije u kome mu je magistrala
9636potrebna.
9637 Mikroprogramski broja mPC7...0 je dimenzionisan prema veliini mikroprograma. S obzirom
9638da se mikroprogram svih faza izvravanja instrukcija nalazi u opsegu od adrese 00 do adrese
9639CC, usvojena je duina mikroprogramskog brojaa mPC7...0 od 8 bita.
9640 Blok mikroprogramski memorija sadri mikroprogramsku memoriju mMEM, koja slui za
9641smetanje mikroprograma. irina rei mikroprogramske memorije je odreena duinom
9642mikroinstrukcija i iznosi 112 bita, a kapacitet veliinom mikroprograma svih instrukcija
9643procesora (tabela 46) i iznosi 256 lokacija. Adresiranje mikroprogramske memorije se realizuje
9644sadrajem mikroprogramskog brojaa mPC7...0.
9645 Blok prihvatni registar mikroinstrukcije sadri prihvatni registar mikroinstrukcije CW0...111.
9646Prihvatni registar mikroinstrukcije CW0...111 slui za prihvatanje mikroinstrukcije oitane iz
9647mikroprogramske memorije mMEM. Na osnovu sadraja ovog registra generiu se upravljaki
9648signali. Razredi CW0...95 i CW96...103 se koriste u bloku generisanje upravljakih signala za
9649generisanje upravljakih signala operacione jedinice i upravljake jedinice, respektivno, dok se
9650razredi CW104...111 koriste u bloku generisanje nove vrednosti mikroprogramskog brojaa kao
9651adresa skoka u mikrorogramu u sluaju bezuslovnih i uslovnih skokova. Upis u ovaj registar se
9652realizuje signalom takta CLKCW. Signal takta CLKCW kasni za signalom takta CLKmPC
9653onoliko koliko je potrebno da se proita sadraj sa odgovarajue adrese mikroprogramske
9654memorije.
9655 Blok generisanje upravljakih signala sadri kombinacione mree koje na osnovu sadraja
9656razreda CW0...95 prihvatnog registra mikroinstrukcije generiu upravljake signale operacione
9657jedinice oper i na osnovu sadraja razreda CW96...103 prihvatnog registra mikroinstrukcije i
9658signala logikih uslova START, hack, ..., prekid koji dolaze iz operacione jedinice generiu
9659upravljake signale upravljake jedinice uprav.
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676

334

Upravljaki signali bloka bus se generiu na sledei nain (tabela 47):


MOST1_2 = CW01
MOST1_3 = CW02
MOST2_1 = CW03
MOST3_2 = CW04
rdCPU = CW05
wrCPU = CW06
ldMDR = CW07
mxMDR = CW08
MDRout1 = CW09
eMDR = CW10
ldMAR = CW11
incMAR = CW12
eMAR = CW13
ldDWL = CW14
ldDWH = CW15
DWout2 = CW16

333

9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690

Upravljaki signali bloka fetch se generiu na sledei nain:


ldPC = CW28
incPC = CW29
PCHout3 = CW30
PCLout3 = CW31
PCout1 = CW32
ldIR0 = CW33
ldIR1= CW34
ldIR2 = CW35
ldIR3 = CW36
IRPOMout3 = CW37
IRJAout2 = CW38
IRDAout3 = CW39
IRBRout3 = CW40

9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702

Upravljaki signali bloka addr se generiu na sledei nain:


wrGPR = CW17
GPRout1 = CW18
ldGPRAR = CW19
incGPRAR = CW20
ldSP = CW21
SPout2 = CW22
incSP = CW23
decSP = CW24
ldCW = CW25
CWout3 = CW26
ADDout2 = CW27

9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
9719

Upravljaki signali bloka exec se generiu na sledei nain:


add = CW41
sub = CW42
inc = CW43
dec = CW44
and = CW45
or = CW46
xor = CW47
not = CW48
ALUout1 = CW49
ldAB = CW50
ABout3 = CW51
shr = CW52
shl = CW53
ldBB = CW54
BBout2 = CW55
ldAW = CW56

335

334

9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737

9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754

Upravljaki signali bloka intr se generiu na sledei nain:


ldIMR = CW75
IMRout2 = CW76
ldBR = CW77
IVTDSPout1 = CW78
ldIVTP = CW79
IVTPout3 = CW80
UINTout3 = CW81
UEXTout3 = CW82
stPRCOD = CW83
stPRADR = CW84
stPRINS = CW85
clPRCOD = CW86
clPRADR = CW87
clPRINS = CW88
clPRINM = CW89
clINTR = CW90

9755
9756
9757
9758
9759
9760
9761
9762
9763

Upravljaki signali upravljake jedinice uprav se generiu na sledei nain:


bradr = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
bropr = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
bruncnd = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brcnd = brnotstart START + brhack hack +
brnotfcCPU fcCPU + brnotgropr gropr + brI1 I1+
brnotgradr gradr + brl2_brnch l2_branch +
brl2_arlog l2_arlog + brl3_jump l3_jump + brl3_arlog l3_arlog +
brstore store + brLDW LDW + brregdir regdir +

336

AWout3 = CW57
AWHout3 = CW58
ldBW = CW59
BWout2 = CW60
ldPSWH = CW61
ldPSWL = CW62
ldN = CW63
ldZ = CW64
ldC = CW65
ldV = CW66
ldL = CW67
stPSWI = CW68
clPSWI = CW69
stPSWT = CW70
clPSWT = CW71
PSWHout3 = CW72
PSWLout3 = CW73
clSTART = CW74

335

9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786

brnotbrpom brpom + prekid prekid + brnotPRINS PRINS +


brnotPRCOD PRCOD + brnotPRADR PRADR +
brnotPRINM PRINM + brnotprintr printr
brnotstart = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brhack = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brnotfcCPU = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brnotgropr = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brl1 = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brnotgradr = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brl2_brnch = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brl2_arlog = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brl3_jump = CW96 CW97 CW98 CW 99 CW100 CW101 CW102 CW103
brl3_arlog = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brstore = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brLDW = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brregdir = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brnotbrpom = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brnotprekid = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brnotPRINS = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brnotPRCOD = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brnotPRADR = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brnotPRINM = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103
brnotprintr = CW96 CW97 CW98 CW99 CW100 CW101 CW102 CW103

9787 Pri generisanju signala branch koriste se sledei signali logikih uslova koji dolaze iz
9788blokova operacione jedinice oper i to:
9789 START blok exec,
9790 hack blok bus,
9791 fcCPU blok bus,
9792 gropr blok fetch,
9793 I1 blok fetch,
9794 gradr blok fetch,
9795 l2_brnch blok fetch,
9796 l2_arlog blok fetch,
9797 l3_jump blok fetch,
9798 l3_arlog blok fetch,
9799 store blok fetch,
9800 LDW blok fetch,
9801 regdir blok fetch,
9802 brpom blok exec,
9803 prekid blok intr
9804 PRINS blok intr,
9805 PRCOD blok intr,
9806 PRADR blok intr,
9807 PRINM blok intr i
337

336

9808
9809

338

printr blok intr.

337

5 MEMORIJA

9810

9811 U ovoj glavi se daje organizacija memorije MEM (slika 185). Memorija MEM se sastoji iz
9812operacione jedinice oper i upravljake jedinice uprav.

BU S

A B U S

1 5 ...0

D B U S

7 ...0

RD B U S
W RB U S
FC B U S

oper

u p ra v

9813
9814

M EM

Slika 185 Organizacija memorije MEM

9815 Operaciona jedinica oper je kompozicija kombinacionih i sekvencijalnih prekidakih mrea


9816koje slue za pamenje binarnih rei, izvravanje mikrooperacija i generisanje signala logikih
9817uslova. Upravljaka jedinica uprav je kompozicija kombinacionih i sekvencijalnih prekidakih
9818mrea koje slue za generisanje upravljakih signala prema algoritmu generisanja upravljakih
9819signala operacione jedinice i signala logikih uslova.
9820

Struktura i opis operacione i upravljake jedinice se daju u daljem tekstu.

98215.1 OPERACIONA JEDINICA


9822 Operaciona jedinica oper sadri memorijski RAM modul, mikroprekidae TIME 7...0 za
9823definisanje vremena pristupa memorijskom RAM modulu i kombinacione mree za realizaciju
9824ciklusa na magistrali u kojima je memorija sluga (slika 186).
9825 Memorijski RAM modul slui za pamenje (216-212) 8-mo bitnih rei. Na adresne linije A15...0
9826se vodi sadraj sa adresnih linija ABUS15...0 magistrale BUS. Na ulazne linije podataka DIN7...0
9827se vodi sadraj sa linija podataka DBUS7...0 magistrale. Sadraj sa izlaznih linija podataka
9828DOUT7...0 se preko bafera sa tri stanja vodi na linije podataka DBUS7...0 magistrale i na njih
9829puta vrednou 1 signala fcMEM upravljake jedinice uprav. Na linije WR i RD se vode
9830signali wrMEM i rdMEM koje generiu kombinacione mree za realizaciju ciklusa na
9831magistrali u kojima je memorija sluga. Sa memorijskim RAM modulom mogu se realizovati
9832operacije upisa i itanja. Sadraj sa linija DIN7...0 se upisuje u memorijski RAM modul na adresi
9833odreenoj sadrajem na linijama A15...0 pri vrednosti 1 signala na liniji WR. Sadraj memorijskog
9834RAM modula sa adrese odreene sadrajem na linijama A15...0 pojavljuje se na linijama
9835DOUT7...0 pri vrednosti 1 signala na liniji RD.

339

u p ra v
rd M E M

BUS

RD B U S

A
A
A
A

B
B
B
B

U
U
U
U

S
S
S
S

R D

15

m e m o rijs k i
RA M
m odul

s e le c t

14
13

W R

12

u p ra v
w rM E M

W RB U S

D O U T

D IN

7 ...0

fc M E M

16

BU S
D B U S 7

8
u p ra v fc M E M

u p ra v

T IM E

9836
9837

7 ...0

FCB U S

BU S
A B U S 15

16
1 5 ...0

7 ...0

T IM E

7 ...0

u p ra v

Slika 186 Operaciona jedinica oper

9838 Mikroprekidai TIME7...0, koji slue za definisanje vremena pristupa memorijskom RAM
9839modulu, se prilikom konfiguracije sistema runo postavljaju na vrednost koja pomnoena sa
9840periodom signala takta definie vreme pristupa memorijskog RAM modula. Sadraj sa izlaza
9841mikroprekidaa TIME7...0 se vodi u upravljaku jedinice uprav gde se koristi za generisanje
9842vrednosti 1 signala fcMEM trajanja jedna perioda signala takta po isteku vremena pristupa
9843memorijskog RAM modula posmatrano od trenutka kada je u memoriji startovano itanje ili
9844upis.
9845 Kombinacione mree za realizaciju ciklusa na magistrali u kojima je memorija sluga
9846formiraju signale rdMEM i wrMEM upravljake jedinice uprav i FCBUS magistrale BUS
9847(slika 186). Signali rdMEM i wrMEM se formiraju na osnovu signala ABUS15..0 sa adresnih
9848linija magistrale i RDBUS i WRBUS sa upravljakih linija magistrale. Signal FCBUS se
9849formira na osnovu signala fcMEM upravljake jedinice uprav.
9850 Pri realizaciji ciklusa itanja na magistrali procesor ili kontroler sa direktnim pristupom
9851memoriji kao gazda otvara bafere sa tri stanja za adresne linije ABUS 15..0 i upravljaku liniju
9852 RDBUS magistrale i na njih izbacuje adresu i vrednost 0 signala itanja, respektivno, ime se
9853u memoriji kao slugi startuje itanje adresirane memorijske lokacije (slika 15). Memorija po
9854zavrenom itanju otvara bafere sa tri stanja za linije podataka DBUS 7..0 i upravljaku liniju
9855 FCBUS magistrale i na njih puta sadraj adresirane memorijske lokacije i vrednost 0 signala
9856zavretka operacije itanja u memoriji. Procesor ili kontroler sa direktnim pristupom memoriji
9857prihvata sadraj sa linija podataka i zatvara bafere sa tri stanja za adresne linije ABUS15..0 i
9858upravljaku liniju RDBUS magistrale, dok memorija zatvara bafere sa tri stanja za linije
9859podataka DBUS7..0 i upravljaku liniju FCBUS magistrale.
9860 Pri realizaciji ciklusa upisa na magistrali procesor ili kontroler sa direktnim pristupom
9861memoriji kao gazda otvara bafere sa tri stanja za adresne linije ABUS 15..0, linije podataka
9862DBUS7..0 i upravljaku liniju WRBUS magistrale i na njih izbacuje adresu, podatak i vrednost
98630 signala upisa, respektivno, ime se u memoriji kao slugi startuje upis u adresiranu
9864memorijsku lokaciju (slika 16). Memorija po zavrenom upisu otvara bafere sa tri stanja za
9865upravljaku liniju FCBUS magistrale i na nju izbacuje vrednost 0 signala zavretka operacije
9866upisa u memoriji. Procesor ili kontroler sa direktnim pristupom memoriji zatvara bafere sa tri

340

340

9867stanja za adresne linije ABUS15..0, linije podataka DBUS7..0 i upravljaku liniju WRBUS
9868magistrale, dok memorija zatvara bafere sa tri stanja za upravljaku liniju FCBUS magistrale.
9869 Signali rdMEM i wrMEM imaju vrednosti koje su komplement vrednosti upravljakih
9870signala RDBUS i WRBUS magistrale kada signal select ima vrednost 1 i vrednosti 0 kada
9871signal select ima vrednost 0. Signal select ima vrednost 1 ukoliko se na adresnim linijama
9872ABUS150 magistrale nalazi adresa iz opsega adresa dodeljenih memoriji i 0 vrednost ukoliko
9873se na adresnim linijama ABUS150 magistrale nalazi adresa iz opsega adresa dodeljenih
9874registrima po kontrolerima periferija. Celokupan opseg adresa od 0000h do FFFFh podeljen je
9875na opseg adresa od 0000h do EFFFh, koje su dodeljene memoriji, i opseg adresa od F000h do
9876FFFFh, koje su dodeljene registrima po kontrolerima periferija, pa signal select ima vrednost 1
9877ukoliko na adresnim linijama ABUS1512 magistrale nisu sve jedinice i vrednost 0 ukoliko su na
9878adresnim linijama ABUS1512 magistrale sve jedinice. Stoga signal rdMEM ima vrednost 1 za
9879vreme operacije itanja sadraja neke memorijske lokacije kada signal select ima vrednost 1 a
9880signal RDBUS vrednost 0, dok signal wrMEM ima vrednost 1 za vreme operacije upisa
9881sadraja u neku memorijsku lokaciju kada signal select ima vrednost 1 a signal WRBUS
9882vrednost 0.
9883 Kombinaciona mrea za generisanje upravljakog signala FCBUS magistrale generie ovaj
9884signal na osnovu signala fcMEM upravljake jedinice uprav. Pri vrednosti 0 signala fcMEM
9885na liniji signala FCBUS je stanje visoke impedance, dok je pri vrednosti 1 signala fcMEM na
9886liniji signala FCBUS vrednost 0. Signal fcMEM normalno ima vrednost 0, dok se vrednosti 1
9887trajanja jedna perioda signala takta generie po isteku vremena pristupa memorijskog RAM
9888modula posmatrano od trenutka kada je u memoriji startovano itanje ili upis. Stoga je na liniji
9889signala FCBUS normalno stanje visoke impedanse, dok se vrednost 0 trajanja jedna perioda
9890signala takta generie po isteku vremena pristupa memorijskog RAM modula i slui kao
9891indikacija da je u memoriji operacija itanja ili upisa zavrena.
98925.2 UPRAVLJAKA JEDINICA
9893 U ovom odeljku se daju dijagram toka operacija, algoritam generisanja upravljakih signala i
9894struktura upravljake jedinice uprav.
98955.2.1 Dijagram toka operacija
9896 Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 187). U
9897operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim
9898blokovima se nalaze opisi logikih uslova koji definiu grananja algoritma.
D a li je g a z d a s ta rto v a o
c ik lu s u p is a ?

0
0

D a li je g a z d a s ta rto v a o
c ik lu s ita n ja ?
1

ita n je iz m e m o rije
D a li je p ro te k lo v re m e
p r is tu p a m e m o riji ?

U p is u m e m o riju
0

D a li je p r o te k lo v r e m e
p ris tu p a m e m o r iji ?

S la n je o ita n o g s a d r a ja g a z d i

In d ik a c ija g a z d i d a je u p is u
m e m o r iju z a v r e n

In d ik a c ija g a z d i d a je ita n je iz
m e m o r ije z a v r e n o

9899
9900

Slika 187 Dijagram toka operacija

341

341

9901 U dijagrama toka operacija stalno se vri provera da li je procesor ili kontroler sa direktnim
9902pristupom memoriji startovao u memoriji ciklus itanja ili ciklus upisa, pri emu se procesor ili
9903kontroler sa direktnim pristupom memoriji ponaa kao gazda, a memorija kao sluga. Ako nije
9904startovan ni ciklus itanja ni ciklus upisa, nema izvravanja mikrooperacija. Ako je startovan
9905jedan od ova dva ciklusa, izvravaju se mikrooperacije saglasno ciklusu koji je startovan.
9906 Ako je startovan ciklus itanja, ulazi se u petlju u kojoj se vri itanje iz memorije u trajanju
9907vremena pristupa memoriji. Po isteku vremena pristupa memoriji izlazi se iz petlje i gazdi alje
9908oitani sadraj i indikacija da je memorija zavrila itanje.
9909 Ako je startovan ciklus upisa, ulazi se u petlju u kojoj se vri upis u memoriju u trajanju
9910vremena pristupa memoriji. Po isteku vremena pristupa memoriji izlaz se iz petlje i gazdi alje
9911indikacija da je memorija zavrila upis.
99125.2.2 Algoritam generisanja upravljakih signala
9913 Algoritam generisanja upravljakih signala je formiran na osnovu dijagrama toka operacija
9914(slika 187) i dat u obliku dijagrama toka upravljakih signala (slika 188 ) i sekvence
9915upravljakih signala (tabela 56).
9916 Dijagram toka upravljakih signala je predstavljen operacionim i uslovnim blokovima. U
9917operacionim blokovima se nalaze upravljaki signali i uslovi pod kojima se oni generiu. U
9918uslovnim blokovima se nalaze signali logikih uslova.
1

rd M E M
0
0

w rM E M
1

i f ( M E M A C C 7 ...0 e q l T I M E 7 ...0 ) t h e n f c M E M ,
if fc M E M th e n in c M E M A C C ,
if fc M E M th e n c lM E M A C C
fc M E M

9919
9920

Slika 188 Dijagram toka upravljakih signala

9921 U sekvenci upravljakih signala se koriste iskazi za signale. Iskazi za signale su oblika
9922 if uslov then signali.
9923Ovaj iskaz sadri signal uslov i spisak upravljakih signala signali koji se generiu ukoliko
9924signal uslov ima vrednost 1.
9925 Objanjenja vezana za generisanje upravljakih signala su data zajedniki za dijagram toka
9926upravljakih signala i sekvencu upravljakih signala i to u okviru sekvence upravljakih signala.
9927

Tabela 56 Sekvenca upravljakih signala

9928! Upravljaka jedinica generie upravljaki signal operacione jedinice fcMEM i upravljake signale
9929upravljake jedinice incMEMACC i clMEMACC. Ovi signali imaju vrednost 0 ukoliko oba signala
9930rdMEM i wrMEM operacione jedinice imaju vrednost 0, a dobijaju vrednost 1 pod odreenim
9931uslovima jedino kada jedan od signala rdMEM i wrMEM postane 1. !
9932! Signal rdMEM postaje 1 kada procesor ili kontroler sa direktnim pristupom memoriji pusti na adresne
9933linije magistrale ABUS15...0 sadraj u kome na linijama ABUS15...12 nisu sve jedinice i postavi upravljaki
9934signal itanja RDBUS na vrednost 0 i time zapone itanje iz memorijskog RAM modula operacione
9935jedinice. Signal rdMEM ostaje 1 sve dok se itanje ne zavri, pri emu je vreme neophodno da se
9936itanje zavri definisano sadrajem mikroprekidaa TIME70 operacione jedinice (slika 186). !
9937! Signal fcMEM ima vrednost 0 sve dok je sadraj brojaa vremena pristupa MEMACC 70 upravljake
9938jedinice manji od sadraja mikroprekidaa TIME 70. Poetna vrednost brojaa MEMACC 70 je nula, a
9939njegov sadraj se inkrementira vrednou 1 signala incMEMACC. Signal incMEMACC postaje 1

342

342

9940kada signal rdMEM postane 1 i ostaje 1 sve dok signal fcMEM ima vrednost 0. Kada se zbog
9941vrednosti 1 signala incMEMACC sadraj brojaa MEMACC70 inkrementiranjem izjednai sa
9942sadrajem mikroprekidaa TIME70, signal fcMEM postaje 1. Tada se zbog vrednost1 1 signala
9943fcMEM generie vrednost 0 signala FCBUS magistrale BUS (slika 189), kojom se procesoru ili
9944kontroleru sa direktnim pristupom alje indikacija da je itanje zavreno i da je podatak raspoloiv.
9945Pored toga, zbog vrednosti 1 signala fcMEM i rdMEM formira se vrednost 1 signala clMEMACC i
9946vrednost 0 signala incMEMACC. Zbog vrednosti 0 signala FCBUS procesor ili kontroler sa
9947direktnim pristupom memoriji prihvata proitani podatak i signal RDBUS magistrale prebacuje u
9948stanje visoke impedanse to dovodi do toga da signal rdMEM postaje 0. Pored toga, zbog vrednosti 1
9949signala clMEMACC u broja MEMACC70 se upisuju sve nule, pa signal fcMEM postaje 0. Kao
9950rezultat, signal fcMEM je imao vrednost 1 trajanja jedna perioda signala takta. !
9951! Slina je situacija i prilikom realizaciju upisa u memoriju, pri emu se sada javlja vrednost 1 signala
9952wrMEM kao rezultat toga to procesor ili kontroler sa direktnim pristupom memoriji puta na adresne
9953linije magistrale ABUS15...0 sadraj u kome na linijama ABUS15...12 nisu sve jedinice i postavlja
9954upravljaki signal upisa WRBUS magistrale na vrednost 0 ime zapoinje upis u memorijski RAM
9955modula operacione jedinice. !
9956
if (MEMACC70 eql TIME70) then fcMEM,
9957
if (rdMEM + wrMEM) then (if fcMEM then incMEMACC else clMEMACC);
99585.2.3 Struktura upravljake jedinice
9959 U ovom odeljku se daje struktura upravljake jedinice oiene realizacije koja se sastoji od
9960brojaa vremena pristupa MEMACC7...0, komparatora CMP i logikih elemenata koji na osnovu
9961sadraja signala mikroprekidaa TIME7...0 i signala itanja rdMEM i upisa wrMEM
9962operacione jedinice generiu upravljake signale upravljake jedinice incMEMACC i
9963clMEMACC i upravljaki signal operacione jedinice fcMEM (slici 189).
9964 Broja MEMACC7...0 se koristi kao broja vremena pristupa memorije. Njegov poetni
9965sadraj je nula, pa, uz pretpostavku da je sadraj mikroprekidaa TIME 7...0 koji definiu vreme
9966pristupa memorijskog RAM modula razliit od nule, signal fcMEM na izlazu EQL
9967komparatora CMP ima vrednost 0. Zbog toga, prilikom pristupa memoriji radi itanja ili upisa,
9968kada se generie vrednost 1 signala rdMEM ili wrMEM, signal incMEMACC ima vrednost
99691, pa se sadraj brojaa MEMACC7...0 inkrementira i to onoliko puta koliki je sadraj
9970mikroprekidaa TIME7...0. Komparator CMP uporeuje sadraje mikroprekidaa TIME 7...0 i
9971brojaa MEMACC7...0 i na izlazu EQL daje vrednost 0 signala fcMEM dok se ovi sadraji
9972razlikuju i vrednost 1 signala fcMEM kada ovi sadraji postanu jednaki. Vrednost 1 signala
9973fcMEM, koja u operacionoj jedinici daje vrednost 0 signala FCBUS magistrale, je indikacija
9974procesoru ili kontroleru sa direktnom pristupom memoriji da je zavreno itanje iz memorije ili
9975upis u memoriju. Pored toga, zbog vrednosti 1 signala fcMEM, signal incMEMACC postaje
99760 a signal clMEMACC postaje 1, pa se u broja MEMACC 7...0 upisuje poetni sadraj sve
9977nule.
0
o p e r rd M E M
o p er w rM E M

in c M E M A C C

8
IN C
C L

m r

M EM A CC
8

M R LD
7 0

C LK

M EM A CC

7 ...0

c lM E M A C C
oper
T IM E

8
7 ...0

A
EQ L
B

9978
9979

Slika 189 Struktura upravljake jedinice

343

343

CM P

oper
fc M E M

9980 Signali rdMEM i wrMEM imaju vrednosti 1 onoliko perioda signala takta koliko traje
9981pristup memoriji. To je posledica usvojenog naina generisanja signala rdCPU i wrCPU
9982procesora CPU i signala rdMKTR i wrMKTR kontrolera sa direktnim pristupom memoriji
9983na osnovu kojih se formiraju signali RDBUS i WRBUS magistrale BUS i signali rdMEM i
9984wrMEM memorije, i signala fcMEM memorije, na osnovu koga se generiu signali FCBUS
9985magistrale BUS i fcCPU procesora CPU i fcMKTR kontrolera sa direktnim pristupom
9986memoriji.
9987 Kod itanja iz memorije procesor na i-ti signal takta ulazi u korak stepi koji se koristi da se
9988generie vrednost 1 signala rdCPU koja daje vrednosti 0 signala RDBUS i vrednost 1 signala
9989rdMEM. U memoriji zbog vrednosti 1 signala rdMEM poinje inkrementiranje brojaa
9990vremena pristupa memorije MEMACC7...0. Signal fcMEM na izlazu EQL komparatora CMP
9991ima vrednost 0 sve vreme dok sadraj brojaa MEMACC7...0 inkrementiranjem ne postane
9992jednak sadraju mikroprekidaa TIME7...0, to daje vrednost visoke impedanse signala FCBUS
9993i vrednost 0 signala fcCPU. Kako je u procesoru vrednost 1 signala fcCPU uslov za prelazak
9994iz koraka stepi u korak stepj, to procesor ostaju u ovom koraku j perioda signala takta. Od
9995toga je (j-1) perioda signala takta neophodna da sadraj brojaa MEMACC7...0
9996inkrementiranjem dostigne sadraj mikroprekidaa TIME7...0 i da se na (j-1)-vi signal takta
9997pojavi vrednost 1 signala fcMEM i da time signal FCBUS postane 0 i signal fcCPU postane
99981. Signal fcMEM ima vrednost 1 izmeu (j-1)-og i j-og signal takta u trajanju jedna perioda
9999signala. Na j-ti signal takta se u procesoru zbog vrednosti 1 signala fcCPU realizuje prelazak iz
10000koraka stepi na korak stepj, pa signal rdCPU postaje 0, signal RDBUS prelazi u stanje visoke
10001impedanse i signal rdMEM postaje 0, a u memoriji se zbog vrednosti 1 signala fcMEM
10002sadraj brojaa MEMACC7...0 postavlja na poetno stanje sve nule, pa signal fcMEM postaje 0,
10003signal FCBUS prelazi u stanje visoke impedanse i signal fcCPU postaje 0.
10004 Na isti nain se razmenjuju i signali wrCPU, WRBUS , wrMEM, fcMEM, FCBUS i
10005fcCPU kod upisa u memoriju. Ovo vai i za signale rdMKTR, RDBUS , rdMEM, fcMEM,
10006 FCBUS i fcMKTR kada kontroler sa direktnim pristupom memoriji ita iz mermorije i
10007signale wrMKTR, WRBUS , wrMEM, fcMEM, FCBUS i fcMKTR kada kontroler sa
10008direktnim pristupom memoriji upisuje u memoriju.
10009
10010

Upravljaki signal operacione jedinice oper se generie na sledei nain:


fcMEM = MEMACC70 eql TIME70

10011 Pri generisanju signala fcMEM koriste se signali TIME70 koji dolaze iz operacione jedinice
10012oper.
10013
10014
10015

Upravljaki signali upravljake jedinice uprav se generie na sledei nain:


incMEMACC = (rdMEM + wrMEM) fcMEM

clMEMACC = (rdMEM + wrMEM) fcMEM

10016 Pri generisanju signala incMEMACC i clMEMACC koriste se signali rdMEM i wrMEM
10017koji dolaze iz operacione jedinice oper.

344

344

10018

6 ULAZNO/IZLAZNI UREAJI

10019 Ulazno/izlazni ureaji U/I se sastoje iz periferije PER i kontrolera periferije, pri emu
10020postoje kontroleri periferija bez i sa direktnim pristupom memoriji. U ovoj glavi se daje
10021organizacija periferije, kontrolera bez direktnog pristupa memoriji i kontrolera sa direktnim
10022pristupom memoriji.
100236.1 PERIFERIJA
10024

Periferija PER (slika 190) se sastoji iz operacione jedinice oper i upravljake jedinice uprav.
KP

POUT7...0
PIN7...0
stopPER
rdPER
wrPER
fcPER

oper

u p ra v

10025
10026

PER

Slika 190 Organizacija periferije PER

10027 Operaciona jedinica oper je kompozicija kombinacionih i sekvencijalnih prekidakih mrea


10028koje slue za pamenje binarnih rei, izvravanje mikrooperacija i generisanje signala logikih
10029uslova. Upravljaka jedinica uprav je kompozicija kombinacionih i sekvencijalnih prekidakih
10030mrea koje slue za generisanje upravljakih signala na osnovu algoritama operacija i signala
10031logikih uslova.
10032

Struktura i opis operacione i upravljake jedinice se daju u daljem tekstu.

100336.1.1 Operaciona jedinica


10034 Operaciona jedinica oper sadri broja ENTRY4...0, memorijski RAM modul i
10035mikroprekidae TIME7...0 za definisanje vremena pristupa memorijskom RAM modulu (slika
10036191).
10037 Broja ENTRY4...0 je 5-to razredni broja iji se sadraj koristi za adresiranje lokacija
10038memorijskog RAM modula prilikom upisa u periferiju ili itanja iz periferije. U zavisnosti od
10039vrednosti signala na ulazima CL i INC brojaa, u broja se mogu upisati sve nule, sadraj
10040brojaa se moe inkrementirati i sadraj brojaa moe ostati nepromenjen. Ova tri reima rada
10041brojaa se realizuju vrednostima 1 i 0 na ulazima CL i INC onda kada treba upisati sve nule,
10042vrednostima 0 i 1 na ulazima CL i INC onda kada sadraj brojaa treba inkrementirati i
10043vrednostima 0 na ulazima CL i INC onda kada sadraj brojaa treba da ostane nepromenjen.
10044Pri vrednosti 1 signala stopPER kontrolera periferije KP na ulazima CL i INC e biti vrednosti
100451 i 0 bez obzira na vrednost signala fcPER, pa se tada u broja upisuju sve nule. Ovo se koristi
10046da se pri zaustavljanju periferije PER od strane kontrolera periferije KP sadraj broja
10047ENTRY4...0 dovede na poetno stanje sve nule. Pri vrednosti 0 signala stopPER na ulazu CL e
345

10048biti vrednost 0, dok e na ulazu INC biti vrednost 0 ili 1 u zavisnosti od toga da li signal
10049fcPER ima vrednost 0 ili 1. Ovo se koristi da se prilikom svakog upisa u memorijski RAM
10050modul periferije ili itanja iz memorijskog RAM modula periferije generisanjem vrednosti 1
10051signala fcPER sadraj brojaa inkrementira da bi ukazivao na sledeu lokaciju memorijskog
10052RAM modula u koju treba upisati sledei podatak ili iz koje treba priitati sledei podatak. U
10053svim ostalim situacijama pored signala stopPER i signal fcPER ima vrednost 0. Tada je na
10054ulazima CL i INC vrednost 0, pa sadraj brojaa ostaje nepromenjen.
0
5
u p ra v fc P E R

IN C

K P s to p P E R

C L

EN TRY
5

R D

K P w rP E R

W R

LD
CLK
4 ...0

4 ...0

m e m o rijs k i
RA M
m odul
D O U T

7 ...0

10055
10056

4 0

EN TRY
A

K P rd P E R

m r
M R

K P P IN

D IN

T IM E
8
7 ...0

8
7 0

PO U T

7 0

7 ...0

T I M E 7 ...0
u p ra v

KP

Slika 191 Operaciona jedinica oper

10057 Memorijski RAM modul slui za simulaciji periferije kapaciteta 25 8-mo bitnih rei. Sadraj
10058POUT7...0 sa izlaznih linija podataka kontrolera periferije KP se vodi na ulazne linije podataka
10059DIN7...0 memorijskog RAM modula. Ovaj sadraj se upisuje u lokaciju adresiranu sadrajem
10060registra ENTRY4...0 jedino ukoliko signal wrPER kontrolera periferije KP ima vrednost 1.
10061Sadraj lokacije adresirane sadrajem brojaa ENTRY4...0 se pojavljuje na izlaznim linijama
10062podataka DOUT7...0 memorijskog RAM modula jedino ukoliko signal rdPER kontrolera
10063periferije KP ima vrednost 1. Ovaj sadraj se vodi na ulazne linije podataka PIN 7...0 kontrolera
10064periferije KP.
10065 Mikroprekidai TIME7...0, koji slue za definisanje vremena pristupa memoriskog RAM
10066modula, se prilikom konfiguracije sistema runo postavljaju na vrednost koja pomnoena sa
10067periodom signala takta definie vreme pristupa periferije PER. Sadraj sa izlaza mikroprekidaa
10068TIME7...0 se vodi u upravljaku jedinice uprav gde se koristi za generisanje vrednosti 1 signala
10069fcPER trajanja jedna perioda signala takta po isteku vremena pristupa memorijskog RAM
10070modula posmatrano od trenutka kada je u periferiji startovano itanje ili upis.
100716.1.2 Upravljaka jedinica
10072 U ovom odeljku se daju dijagram toka operacija, algoritam generisanja upravljakih signala i
10073struktura upravljake jedinice uprav.
100746.1.2.1 Dijagram toka operacija
10075 Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 192). U
10076operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim
10077blokovima se nalaze opisi logikih uslova koji definiu grananja algoritma.
10078 U dijagrama toka operacija vri se provera da li je od kontrolera stigao zahtev za operaciju
10079upisa ili itanja. Ako nije stigao nijedan od ovih zahteva, u periferiji nema ni itanja ni upisa.
10080Ako je stigao neko od zahteva prelazi se na realizaciju itanja ili upisa.

346

346

10081 Ako je stigao zahtev za operaciju itanja, ulazi se u petlju u kojoj se ita podatak iz
10082periferije i vri provera da li je programskim putem, upisivanjem vrednosti 0 u bit start
10083upravljakog registra kontrolera, obustavljeno itanje i da li je proteklo vreme pristupa
10084periferiji. Ako je itanje obustavljeno, izlazi se iz petlje i vraa na proveru da li je od kontrolera
10085stigao novi zahtev za operaciju upisa ili itanja. Ako je proteklo vreme pristupa periferije,
10086uzima se da je itanje realizovano, pa se izlazi iz petlje i prelazi na pozicioniranje na sledeu
10087lokaciju periferije, slanje indikacije kontroleru da je itanje zavreno i vraanje na proveru da li
10088je od kontrolera stigao novi zahtev za operaciju upisa ili itanja.
D a li je s tig a o z a h te v o d
k o n tro le ra z a u p is ?

0
0

D a li je s tig a o z a h te v o d
k o n tro le r a z a ita n je ?
1

ita n je iz p e rife rije

U p is u p e r ife riju

D a li je ita n je
o b u s ta v lje n o ?

D a li je u p is
o b u s ta v lje n ?

D a li je p ro te k lo v r e m e
p ris tu p a p e r ife r iji ?

D a li je p r o te k lo v re m e
p r is tu p a p e rife riji ?

10089
10090

P o z ic io n ir a n je n a s le d e u
lo k a c iju p e rife rije

P o z ic io n ira n je n a s le d e u
lo k a c iju p e rife rije

In d ik a c ija k o n tro le ru d a je
ita n je iz p e rife r ije z a v r e n o

In d ik a c ija k o n tro le r u d a je
u p is u p e rife riju z a v r e n

Slika 192 Dijagram toka operacija

10091 Ako je stigao zahtev za operaciju upisa, ulazi se u petlju u kojoj se upisuje podatak u
10092periferiju i vri provera da li je programskim putem, upisivanjem vrednosti 0 u bit start
10093upravljakog registra kontrolera, obustavljen upis i da li je proteklo vreme pristupa periferiji.
10094Ako je upis obustavljen, izlazi se iz petlje i vraa na proveru da li je od kontrolera stigao novi
10095zahtev za operaciju upisa ili itanja. Ako je proteklo vreme pristupa periferije, uzima se da je
10096upis realizovan, pa se izlazi iz petlje i prelazi na pozicioniranje na sledeu lokaciju periferije,
10097slanje indikacije kontroleru da je upis zavren i vraanje na proveru da li je od kontrolera stigao
10098novi zahtev za operaciju upisa ili itanja.
100996.1.2.2 Algoritam generisanja upravljakih signala
10100 Algoritam generisanja upravljakih signala je formiran na osnovu dijagrama toka operacija
10101(slika 192) i dat u obliku dijagrama toka upravljakih signala (slika 193) i sekvence
10102upravljakih signala po koracima (tabela 57).

347

347

rd P E R

0
0

w rP E R
1

i f ( P E R A C C 7 ...0 e q l T I M E 7 ...0 ) t h e n f c P E R ,
i f ( f c P E R s t o p P E R ) t h e n i n c P E R A C C ,
if (fc P E R s to p P E R ) th e n c lP E R A C C
f c P E R s t o p P E R

10103
10104

Slika 193 Dijagram toka upravljakih signala

10105 Dijagram toka upravljakih signala je predstavljen operacionim i uslovnim blokovima. U


10106operacionim blokovima se nalazi upravljaki signali i uslovi pod kojima se oni generiu. U
10107uslovnim blokovima se nalaze signali logikih uslova.
10108 U sekvenci upravljakih signala po koracima se koriste iskazi za signale. Iskazi za signale su
10109oblika
10110 if uslov then signali
10111Ovaj iskaz sadri signal uslov i spisak upravljakih signala signali koji se generiu ukoliko
10112signal uslov ima vrednost 1.
10113 Objanjenja vezana za generisanje upravljakih signala su data zajedniki za dijagram toka
10114upravljakih signala i sekvencu upravljakih signala po koracima i to u okviru sekvence
10115upravljakih signala.
10116
Tabela 57 Sekvenca upravljakih signala po koracima
10117! Upravljaka jedinica generie upravljaki signal kontrolera i operacione jedinice fcPER i upravljake
10118signale upravljake jedinice incPERACC i clPERACC. Ovi signali imaju vrednost 0 ukoliko oba
10119signala rdPER i wrPER operacione jedinice imaju vrednost 0, a dobijaju vrednost 1 pod odreenim
10120uslovima jedino kada jedan od signala rdMEM i wrMEM postane 1. !
10121! Signal rdPER postaje 1 kada kontroler ue u korak u kome treba da realizuje itanje iz periferije.
10122Vrednou 1 signala rdPER zapoinje itanje iz memorijskog RAM modula operacione jedinice. Signal
10123rdPER ostaje 1 sve dok se itanje ne zavri, pri emu je vreme neophodno da se itanje zavri
10124definisano sadrajem mikroprekidaa TIME70 operacione jedinice (slika 191). !
10125! Signal fcPER ima vrednost 0 sve dok je sadraj brojaa vremena pristupa PERACC 70 upravljake
10126jedinice manji od sadraja mikroprekidaa TIME 70. Poetna vrednost brojaa PERACC 70 je nula, a
10127njegov sadraj se inkrementira vrednou 1 signala incPERACC. Signal incPERACC postaje 1 kada
10128signal rdPER postane 1 i ostaje 1 sve dok signal fcPER ima vrednost 0. Kada se zbog vrednosti 1
10129signala incPERACC sadraj brojaa PERACC70 inkrementiranjem izjednai sa sadrajem
10130mikroprekidaa TIME70, signal fcPER postaje 1. Vrednou 1 signala fcPER se kontroleru alje
10131indikacija da je itanje zavreno i da je podatak raspoloiv. Pored toga, zbog vrednosti 1 signala fcPER
10132i rdPER formira se vrednost 1 signala clPERACC i vrednost 0 signala incPERACC. Zbog vrednosti 1
10133signala fcPER kontroler prihvata proitani podatak i signal rdPER postavlja na 0. Pored toga, zbog
10134vrednosti 1 signala clPERACC u broja PERACC70 se upisuju sve nule, pa signal fcPER postaje 0.
10135Kao rezultat, signal fcPER je imao vrednost 1 trajanja jedna perioda signala takta. !
10136! Normalno signal kontrolera stopPER ima vrednost 0 i ne utie na prethodno opisani rad upravljake
10137jedinice. Meutim, prilikom zaustavljanja kontrolera programskim putem, signal stopPER postaje 1 u
10138trajanju jedna perioda signala takta. Zbog vrednosti 1 signala stopPER i rdPER formira se vrednost 1
10139signala clPERACC i vrednost 0 signala incPERACC, pa se u broja PERACC 70 upisuju sve nule.
10140Zbog vrednosti 1 signala stopPER u kontroleru se signal rdPER postavlja na vrednost 0. !
10141! Slina je situacija i prilikom realizaciju upisa u periferiju, pri emu se sada generie vrednost 1 signala
10142wrPER. Vrednou 1 signala wrPER zapoinje upis u memorijski RAM modul operacione jedinice. !
10143
if (PERACC70 eql TIME70) then fcPER,
10144
if (rdPER + wrPER) then (if fcPER stopPER then incPERACC else clPERACC);

348

348

101456.1.2.3 Struktura upravljake jedinice


10146 U ovom odeljku se daje struktura upravljake jedinice oiene realizacije koja se sastoji od
10147brojaa vremena pristupa PERACC7...0, komparatora CMP i logikih elemenata koji na osnovu
10148sadraja signala mikroprekidaa TIME7...0 i signala itanja rdPER, upisa wrPER i zaustavljanja
10149kontrolera stopPER koji dolaze iz kontrolera generiu upravljake signale upravljake jedinice
10150incMEMACC i clMEMACC i upravljaki signal operacione jedinice i kontrolera fcPER
10151(slika 194).
10152 Broja PERACC7...0 se koristi kao broja vremena pristupa periferiji. Njegov poetni sadraj
10153je nula, pa, uz pretpostavku da je sadraj mikroprekidaa TIME 7...0 koji definiu vreme pristupa
10154periferiji razliit od nule, signal fcPER na izlazu EQL komparatora CMP ima vrednost 0. Zbog
10155toga, prilikom pristupa periferiji radi itanja ili upisa, kada se generie vrednost 1 signala
10156rdPER ili wrPER, signal incPERACC ima vrednost 1, pa se sadraj brojaa PERACC7...0
10157inkrementira i to onoliko puta koliki je sadraj mikroprekidaa TIME7...0. Komparator CMP
10158uporeuje sadraje mikroprekidaa TIME7...0 i brojaa PERACC7...0 i na izlazu EQL daje
10159vrednost 0 signala fcPER dok se ovi sadraji razlikuju i vrednost 1 signala fcPER kada ovi
10160sadraji postanu jednaki. Vrednost 1 signala fcPER je indikacija kontroleru da je zavreno
10161itanje iz periferije ili upis u periferiju. Zbog vrednosti 1 signala fcPER, signal incPERACC
10162postaje 0 a signal clPERACC postaje 1, pa se u broja MEMACC 7...0 upisuje poetni sadraj
10163sve nule. Zbog vrednosti 1 signala fcPER kontroler, u zavisnosti od toga da li je u periferiji
10164realizovano itanje ili upis, postavlja signal rdPER ili wrPER na vrednost 0. Signal fcPER ima
10165vrednosti 1 u trajanju jedna perioda signala takta.
10166 Normalno signal kontrolera stopPER ima vrednost 0 i ne utie na prethodno opisani rad
10167upravljake jedinice. Meutim, prilikom zaustavljanja kontrolera programskim putem, signal
10168stopPER postaje 1 u trajanju jedna perioda signala takta. Zbog vrednosti 1 signala stopPER i
10169rdPER ili wrPER formira se vrednost 1 signala clPERACC i vrednost 0 signala
10170incPERACC, pa se u broja PERACC70 upisuju sve nule. Zbog vrednosti 1 signala
10171stopPER u kontroleru se signal rdPER ili wrPER postavlja na vrednost 0. !
0
K P rd M E M
K P w rM E M

in c P E R A C C

8
IN C
C L

PERA CC
8

K P s to p P E R
fc P E R

7 0

C LK

PERA CC

7 ...0

c lP E R A C C
oper
T IM E

10172
10173

m r
M R LD

8
7 ...0

A
EQ L
B

KP
oper
fc P E R

CM P

Slika 194 Struktura upravljake jedinice uprav

10174 Signali rdPER i wrPER imaju vrednosti 1 trajanja onoliko perioda signala takta koliko je
10175vreme pristupa periferije odreeno sadrajem mikroprekidaa TIME7...0. To je posledica
10176usvojenog naina generisanja signala rdPER i wrPER kontrolera i signala fcPER periferije.
10177Kod itanja iz periferije kontroler na i-ti signal takta ulazi u korak step i koje se koristi da se
10178generie vrednost 1 signala rdPER. U periferiji zbog vrednosti 1 signala rdPER poinje
10179inkrementiranje brojaa vremena pristupa periferije PERACC7...0. Signal fcPER na izlazu EQL
10180komparatora CMP je 0 sve vreme dok sadraj brojaa PERACC7...0 inkrementiranjem ne
10181postane jednak sadraju mikroprekidaa TIME7...0. Kako je u kontroleru vrednost 1 signala
10182fcPER uslov za prelazak iz koraka stepi u korak stepj, to kontroler ostaju u ovom stanju j
10183perioda signala takta. Od toga je (j-1) perioda signala takta neophodno da sadraj brojaa
349

349

10184PERACC7...0 inkrementiranjem dostigne sadraj mikroprekidaa TIME 7...0 i da se na (j-1)-vi


10185signal takta pojavi vrednost 1 signala fcPER. Signal fcPER ima vrednost 1 izmeu (j-1)-og i j10186og signala takta u trajanju jedna perioda signala takta. Na j-ti signala takta se u kontroleru
10187zbog vrednosti 1 signala fcPER realizuje prelazak iz koraka stepi na korak stepj. Prelaskom
10188kontrolera na korak stepj signal rdPER postaje 0. Na isti nain se razmenjuju i signali wrPER i
10189fcPER kod upisa u periferiju.
10190
10191

Upravljaki signal operacione jedinice oper i kontrolera KP se generie na sledei nain:


fcPER = PERACC70 eql TIME70

10192 Pri generisanju signala fcPER koriste se signali TIME70 koji dolaze iz operacione jedinice
10193oper.
10194
10195
10196

Upravljaki signali upravljake jedinice uprav se generie na sledei nain:


incPERACC = (rdPER + wrPER) fcMEM stopPER

clPERACC = (rdPER + wrPER) (fcPER + stopPER)

10197 Pri generisanju signala incPERACC i clPERACC koriste se signali rdPER, wrPER i
10198stopPER koji dolaze iz kontrolera KP.
101996.2 KONROLER PERIFERIJE BEZ DIREKTNOG PRISTUPA
10200
MEMORIJI
10201 Kontroler periferije KP (slika 195) se sastoji iz operacione jedinice oper i upravljake
10202jedinice uprav.
10203 Operaciona jedinica oper je kompozicija kombinacionih i sekvencijalnih prekidakih mrea
10204koje slue za pamenje binarnih rei, izvravanje mikrooperacija i generisanje signala logikih
10205uslova.
10206 Upravljaka jedinica uprav se sastoji iz dva dela i to upravljake jedinice magistrale
10207uprav_bus i upravljake jedinice periferije uprav_per. Upravljaka jedinica magistrale
10208uprav_bus generie upravljake signale neophodne da kontroler periferije KP kao sluga
10209realizacije cikluse na magistrali BUS kojima se prenose podaci izmeu procesora CPU i
10210kontrolera periferije KP. Upravljaka jedinica periferije uprav_per generie upravljake signale
10211neophodne za prenos podataka izmeu periferije PER i kontrolera periferije KP. Upravljake
10212jedinice uprav_bus i uprav_per rade istovremeno i omoguuju paralelan rad kontrolera
10213periferije KP kao sluge sa magistralom BUS i kontrolera periferije KP sa periferijon PER.
10214Svaka od upravljakih jedinica uprav_bus i uprav_per je kompozicija kombinacionih i
10215sekvencijalnih prekidakih mrea koje slue za generisanje upravljakih signala prema
10216algoritmu generisanja upravljakih signala operacione jedinice oper i signala logikih uslova.

350

350

BU S

A B U S

1 5 ...0

D B U S

7 ...0

R D B U S
W R B U S
FCB U S

CPU
in tr
r e g is tr i

in te r fe js
oper

u p ra v_ b u s

u p ra v_ p er
u p ra v
K P

POUT7...0
PIN7...0
stopPER
rdPER
wrPER
fcPER

PER
U /I

10217
10218
10219

Slika 195 Organizacija kontrolera periferije KP


Struktura i opis operacione i upravljake jedinice se daju u daljem tekstu.

102206.2.1 Operaciona jedinica


10221
10222
10223

Operaciona jedinica (slika 195) se sastoji od sledeih blokova:


blok registri i
blok interfejs.

10224 Blok registri (slike 196) slui za uvanje podataka, upravljakih i statusnih informacija.
10225Blok interfejs (slike 197) slui za realizaciju ciklusa na magistrali u kojima je kontroler sluga i
10226za realizaciju prekida.
10227

Struktura i opis blokova operacione jedinice oper se daju u daljem tekstu.

102286.2.1.1 Blok registri


10229 Blok registri (slika 196) sadri registre DR70 i DRAUX70 sa multiplekserima MP1 i MP2,
10230registar CR20 i SR0 i flip-flopove WRDR i RDDR.

351

351

10231 Registri DR70 i DRAUX70 su 8-mo razredni registar podatka i pomoni registar podatka,
10232respektivno (slika 196). Ovi registri zajedno sa multiplekserima MP1 i MP2 slue za prenos
10233podataka izmeu periferije PER i memorije MEM.
10234 Pri prenosu podataka iz periferije u memoriju podatak koji dolazi iz periferije po linijama
10235PIN7...0 se, najpre, puta kroz multiplekser MP2 i upisuje u pomoni registar podatka
10236DRAUX70. Potom se podatak iz registra DRAUX70 puta kroz multiplekser MP1 i upisuje u
10237registar podatka DR70. Na kraju se podatak iz registra DR70 preko bafera sa tri stanja puta
10238na linije podataka DBUS70 magistrale BUS i upisuje u memoriju. Ovakvim nainom prenosa
10239podataka je omogueno da se istovremeno prenosi tekui podatak iz registra DR 70 u
10240memoriju i sledei podatak iz periferije u registar DRAUX 70. Pri tome se sledei podatak
10241prenosi iz registra DRAUX70 u registar DR70, tek poto je tekui podatak prenet iz registra
10242DR70 u memoriju.
10243 Pri prenosu podataka iz memorije u periferiju podatak koji dolazi iz memorije po linijama
10244podataka DBUS70 magistrale se, najpre, puta kroz multiplekser MP1 i upisuje u registar
10245podatka DR70. Potom se podatak iz registra DR70 puta kroz multiplekser MP2 i upisuje u
10246pomoni registar podatka DRAUX70. Na kraju se podatak iz registra DRAUX70 po linijama
10247POUT70 alje i upisuje u periferiju. Ovakvim nainom prenosa podataka je omogueno da se
10248istovremeno prenosi tekui podatak iz registra DRAUX70 u periferiju i sledei podatak iz
10249memorije u registar DR70. Pri tome se sledei podatak prenosi iz registra DR 70 u registar
10250DRAUX70, tek poto je tekui podatak prenet iz registra DRAUX 70 u periferiju.
10251 Registar DR70 je 8-mo razredni registar u koji se generisanjem vrednosti 1 jednog od
10252signala DRin i ldDR upisuje sadraj sa izlaza multipleksera MP1. Pri vrednosti 1 signala DRin
10253i vrednosti 0 signala ldDR sadraj sa linija podataka DBUS 70 magistrale se puta kroz
10254multiplekser MP1 i upisuje u registar DR 70. Pri vrednosti 1 signala ldDR sadraj sa izlaza
10255registra DRAUX70 se puta kroz multiplekser MP1 i upisuje u registar DR 70. Sadraj
10256registra DR70 se pri vrednosti 1 signala DRout puta kroz bafere sa tri stanja na linije
10257podataka DBUS70 magistrale. Pored toga sadraj registra DR70 se vodi na ulaze
10258multipleksera MP2.
10259 Multiplekser MP1 se sastoji od 8 multipleksera sa dva ulaza. Na ulaze 0 i 1 multipleksera
10260MP1 dovodi se sadraj sa linija podataka DBUS 70 magistrale i sadraj sa izlaza registra
10261DRAUX70, respektivno. Selektovanje sadraja se obavlja signalom ldDR.
10262 Registar DRAUX70 je 8-mo razredni registar u koji se, generisanjem vrednosti 1 jednog od
10263signala DRAUXin i ldDRAUX, upisuje sadraj sa izlaza multipleksera MP2. Pri vrednosti 1
10264signala DRAUXin i vrednosti 0 signala ldDRAUX sadraj registra DR70 se puta kroz
10265multiplekser MP2 i upisuje u registar DRAUX70. Pri vrednosti 1 signala ldDRAUX sadraj sa
10266ulaznih linija podataka PIN70 periferije se puta kroz multiplekser MP2 i upisuje u registar
10267DRAUX70. Sadraj registra DRAUX70 se po izlaznim linijama podataka POUT70 alje u
10268periferiju. Pored toga sadraj registra DRAUX70 se vodi na ulaze multipleksera MP1.

352

352

8
8

u p ra v_ p er
ld D R

8
1

M P1

8
C LK

m r
M R

D R

LD

D R in
u p ra v_ b u s

7 0

D R

7 ...0

8
8

u p ra v_ p er
ld D R A U X

u p ra v_ b u s D R o u t

8
1

M P2

8
C LK

D RA U X

LD

D R A U X in
u p ra v_ p er

m r

PER

7 ...0

7 0

D RA U X

8
8
P E R P IN

M R

PO U T

7 ...0

7 ...0

3
3
LD

m r

CR

C LK

D B U S

2 ...0

M R
2 0

CR

2 ...0

5
3

7 ...3
0

u p ra v_ b u s
C R in

u p ra v_ b u s D R o u t

u p r a v _ b u s S R in
BU S D B U S0

10269
10270

uprav_ bus
c lW R D R b u s
c lW R D R p e r
u p ra v_ p er

7 ...1
0

u p ra v_ b u s S R o ut

C LK

u p r a v _ b u s c lS R 0 b u s

u p ra v_ b u s
s tW R D R b u s

SR

u p r a v _ b u s s tS R 0 b u s
u p r a v _ p e r s tS R 0 p e r

BU S D B U S

7 0

m r
u p r a v _ je d _ p e r
W RD R
Q

u p ra v_ b u s
s tR D D R b u s

C LK
R

u p ra v_ p er
RD D R
Q

S
C LK

c lR D D R p e r
u p ra v_ p er

m r

m r

Slika 196 Blok registri

10271 Multiplekser MP2 se sastoji od 8 multipleksera sa dva ulaza. Na ulaze 0 i 1 multipleksera


10272MP2 dovodi se sadraj sa izlaza registra DR70 i sadraj sa ulaznih linija podataka PIN70
10273periferije, respektivno. Selektovanje sadraja se obavlja signalom ldDRAUX.
10274 Registar CR20 je trorazredni upravljaki registar koji sadri bitove start, u/i i prekid,
10275respektivno. U registar CR20 se, generisanjem vrednosti 1 signala CRin upisuje sadraj sa
10276linija podataka DBUS20 magistrale. Sadraj registra CR20 proiren nulama do duine 8
10277bitova se pri vrednosti 1 signala CRout puta na linije podataka DBUS70 magistrale.
353

353

10278 Registar SR0 je jednorazredni upravljaki registar koji sadri bit spremnost. U registar SR0
10279se, generisanjem vrednosti 1 signala SRin, upisuje sadraj sa linija podataka DBUS0
10280magistrale. Sadraj registra SR0 proiren nulama do duine 8 bitova se pri vrednosti 1 signala
10281SRout puta na linije podataka DBUS70 magistrale. Pri prenosu podataka iz periferije u
10282memoriju njegova vrednost 1 je indikacija da je novi podatak prebaen iz registra DRAUX 70
10283u registar DR70 i da je raspoloiv da se programskim putem prebaci iz registra DR 70 u
10284memoriju. S toga se na poetku, pri startovanju kontrolera periferije za prenos iz periferije u
10285memoriju, flip-flop registra SR0 signalom clSRbus postavlja na vrednost 0. Posle toga se, po
10286prenosu podatka iz registra DRAUX70 u registar DR70, flip-flop SR0 signalom stSR0per
10287postavlja na vrednost 1, a po prenosu podatka iz registra DR 70 u memoriju signalom
10288clSR0bus postavlja na vrednost 0. Pri prenosu podataka iz memorije u periferiju njegova
10289vrednost 1 je indikacija da je sadraj registra DR 70 prebaen u registar DRAUX70 i da je
10290registar DR70 raspoloiv da se u njega programskim putem prebaci novi podatak iz memorije.
10291S toga se na poetku, pri startovanju kontrolera periferije za prenos iz memorije u periferiju,
10292flip-flop SR0 signalom stSR0bus postavlja na vrednost 1. Posle toga se, pri prenosu podatka iz
10293memorije u registar DR70, flip-flop SR0 signalom clSR0bus postavlja na vrednost 0, a pri
10294prenosu podatka iz registra DR70 u registar DRAUX70 signalom stSR0per postavlja na
10295vrednost 1.
10296 Flip-flopovi RDDR i WRDR se koriste za neophodnu sinhronizaciju pri prenosu podataka iz
10297periferije u memoriju i iz memorije u periferiju, respektivno. Flip-flop RDDR se koristi pri
10298prenosu podataka iz periferije u memoriju. Njegova vrednost 1 je indikacija da novi podatak
10299moe da se prenese iz registra DRAUX70 u registar DR70, a vrednost 0 da tekui podatak jo
10300uvek nije prenet iz registra DR70 u memoriju i da novi podatak ne moe da se prenese iz
10301registra DRAUX70 u registar DR70. S toga se na poetku pri startovanju kontrolera periferije
10302za prenos iz periferije u memoriju flip-flop RDDR signalom stRDDRbus postavlja na vrednost
103031. Posle toga se po prenosu podatka iz registra DRAUX 70 u registar DR70 flip-flop RDDR
10304signalom clRDDRper postavlja na vrednost 0, a po prenosu podatka iz registra DR 70 u
10305memoriju signalom stRDDRbus postavlja na vrednost 1. Flip-flop WRDR se koristi pri
10306prenosu podataka iz memorije u periferiju. Njegova vrednost 1 je indikacija da se u registru
10307DR70 nalazi podatak i da sadraj registra DR 70 moe da se prenese u registar DRAUX 70, a
10308vrednost 0 da novi podatak jo uvek nije prenet iz memorije u registar DR 70 i da sadraj
10309registra DR70 ne moe da se prenese u registar DRAUX 70. S toga se na poetku po
10310startovanju kontrolera za prenos iz memorije u periferiju flip-flop WRDR signalom
10311clWRDRbus postavlja na vrednost 0. Posle toga se pri prenosu podatka iz memorije u registar
10312DR70 flip-flop WRDR signalom stWRDRbus postavlja na vrednost 1, a pri prenosu podatka
10313iz registra DR70 u registar DRAUX70 signalom clWRDRper postavlja na vrednost 0.
103146.2.1.2 Blok interfejs
10315 Blok interfejs (slika 197) sadri kombinacione i sekvencijalne mree za realizaciju ciklusa na
10316magistrali u kojima je kontroler sluga i za generisanje prekida.

354

354

BU S
A B U S

11

A B U S
A B U S

0
1

0
1

D C
E

0
1
2
3

s e lC R
s e lS R
s e lD R


uprav_bus

A
A
A
A

B
B
B
B

U
U
U
U

S
S
S
S

A
A
A
A

15
14
13

12

B
B
B
B

U
U
U
U

S
S
S
S

5
4
3
2

BUS

BU S
A B U S

5 ...0

BUS

A D D RESS

rd K T R

W RB U S

w rK T R

FCB U S

1
fc K T R


uprav_bus

10317
10318

RD B U S

BUS

s e le c t

u p ra v_ b u s
in trb u s
in trp e r
u p ra v_ p er

CPU
in tr

Slika 197 Blok interfejs (prvi deo)

10319 Kombinacione i sekvencijalne mree za realizaciju ciklusa na magistrali u kojima je


10320kontroler sluga formiraju signale rdKTR i wrKTR upravljake jedinice uprav_bus i FCBUS
10321magistrale BUS (slika 197). Signali rdKTR i wrKTR se formiraju na osnovu signala ABUS15..0
10322sa adresnih linija magistrale i signala RDBUS i WRBUS sa upravljakih linija magistrale.
10323Signal FCBUS se formira na osnovu signala fcKTR upravljake jedinice uprav_bus.
10324 Pri realizaciji ciklusa itanja na magistrali procesor kao gazda otvara bafere sa tri stanja za
10325adresne linije ABUS15..0 i upravljaku liniju RDBUS magistrale i na njih izbacuje adresu i
10326vrednost signala itanja 0, respektivno, ime se u kontroleru kao slugi startuje itanje
10327adresiranog registra. Kontroler po zavrenom itanju otvara bafere sa tri stanja za linije
10328podataka DBUS7..0 i upravljaku liniju FCBUS magistrale i na njih izbacuje sadraj
10329adresiranog registra i vrednost 0 signala zavretka operacije itanja u kontroleru. Procesor
10330prihvata sadraj sa linija podataka i zatvara bafere sa tri stanja za adresne linije ABUS15..0 i
10331upravljaku liniju RDBUS magistrale, dok kontroler zatvara bafere sa tri stanja za linije
10332podataka DBUS7..0 i upravljaku liniju FCBUS magistrale.
10333 Pri realizaciji ciklusa upisa na magistrali procesor kao gazda otvara bafere sa tri stanja za
10334adresne linije ABUS15..0, linije podataka DBUS7..0 i upravljaku liniju WRBUS magistrale i na
10335njih izbacuje adresu, podatak i vrednost 0 signala upisa, respektivno, ime se u kontroleru kao
10336slugi startuje upis u adresirani registar. Kontroler po zavrenom upisu otvara bafere sa tri stanja
10337za upravljaku liniju FCBUS magistrale i na nju izbacuje vrednost 0 signala zavretka
10338operacije upisa u kontroleru. Procesor zatvara bafere sa tri stanja za adresne linije ABUS15..0,
10339linije podataka DBUS7..0 i upravljaku liniju WRBUS magistrale, dok kontroler zatvara bafere
10340sa tri stanja za upravljaku liniju FCBUS magistrale.
10341 Signali rdKTR i wrKTR imaju vrednosti koje su komplement vrednosti upravljakih
10342signala RDBUS i WRBUS magistrale, respektivno, kada signal select ima vrednost 1 i
10343vrednost 0 kada signal select ima vrednost 0. Signal rdKTR ima vrednost 1 a signal RDBUS
10344vrednost 0 za vreme operacije itanja nekog registra kontrolera, dok signal wrKTR ima
10345vrednost 1 a signal WRBUS vrednost 0 za vreme operacije upisa u neki od registara
10346kontrolera.

355

355

10347 Signal select ima vrednost 1 ukoliko se na adresnim linijama ABUS 150 magistrale nalazi
10348adresa iz opsega adresa dodeljenih registrima kontrolera periferije KP. Celokupan opseg adresa
10349od 0000h do FFFFh podeljen je na opseg adresa od 0000h do EFFFh, koje su dodeljene
10350memoriji MEM, i opseg adresa od F000h do FFFFh, koje su dodeljene registrima po svim
10351kontrolerima periferija. Opseg adresa koje su dodeljene registrima po kontrolerima periferija je
10352predvien za adresiranje registara u najvie 64 kontrolera i to najvie 64 registra unutar
10353odreenog kontrolera. Pri tome prilikom adresiranja nekog od registara kontrolera sadraj na
10354adresnim linijama ABUS150 magistrale ima sledeu strukturu: bitovi ABUS 1512 su sve
10355jedinice, bitovi ABUS116 odreuju broj kontrolera i bitovi ABUS 50 adresu registra unutar
10356kontrolera. Broj kontrolera periferije za odreeni kontroler periferije se postavlja
10357mikroprekidaima na jednu od vrednosti u opsegu 0 do 63. Registrima CR 70, SR70 i DR70
10358su unutar opsega adresa datog kontrolera dodeljene adrese 0 do 2, pa bitovi ABUS 52 mora da
10359budu nule dok se njihovo pojedinano adresiranje realizuje bitovima ABUS1 i ABUS0.
10360 Na osnovu usvojene strukture adresa signal select ima vrednost 1 ukoliko su na adresnim
10361linijama ABUS1512 magistrale sve jedinice, na adresnim linijama ABUS 116 se nalazi vrednost
10362koja odgovara vrednosti postavljenoj mikroprekidaima i na adresnim linijama ABUS 52 sve
10363nule. Signali selCR, selSR i selDR se dobijaju na izlazima 0 do 2 dekodera DC na osnovu
10364vrednosti signala ABUS1, ABUS0 i select sa ulaza 1, 0 i E, respektivno. Pri vrednosti 0 signala
10365select i signali selCR, selSR i selDR su 0. Pri vrednosti 1 signala select jedan od signala
10366selCR, selSR i selDR postaje 1 i to signal odreen binarnom vrednou signala ABUS1 i
10367ABUS0.
10368 Signal select ima vrednost 0 ukoliko se na adresnim linijama ABUS150 magistrale ne nalazi
10369adresa iz opsega adresa dodeljenih registrima kontrolera periferije, pri emu to moe da bude
10370ili adresa memorijske lokacije ili registra iz nekog drugog kontrolera periferije. Tada se
10371formiraju vrednosti 0 signala rdKTR i wrKTR bez obzira na vrednosti signala RDBUS i
10372 WRBUS , respektivno.
10373 Kombinaciona mrea za generisanje upravljakog signala FCBUS magistrale generie ovaj
10374signal na osnovu signala fcKTR. Pri vrednosti 0 signala fcKTR na liniji signala FCBUS je
10375stanje visoke impedance, dok je pri vrednosti 1 signala fcKTR na liniji signala FCBUS
10376vrednost 0. Signal fcKTR normalno ima vrednost 0, dok se vrednost 1 u trajanju jedna perioda
10377signala takta javlja kao indikacija da je u kontroleru operacija itanja ili upisa zavrena.
10378 Kada kontroler treba u procesoru da izazove prekid, generie se vrednost 1 signala intr.
10379Signala intr ima vrednost 1 ukoliko ili signal intrbus upravljake jedinice uprav_bus ili signal
10380intrper upravljake jedinice uprav_per ima vrednost 1.
103816.2.2 Upravljaka jedinica
10382 Upravljaka jedinica uprav se sastoji iz dva dela:
10383 upravljake jedinice magistrale uprav_bus i
10384 upravljake jedinice periferije uprav_per.
10385Upravljake jedinice uprav_bus i uprav_per rade isovremeno i omoguuju paralelan rad
10386kontrolera periferije KP kao sluge sa magistralom BUS i kontrolera periferije KP sa periferijon
10387PER.
10388 Upravljaka jedinica uprav_bus omoguuje da processor CPU kao gazda realizuje u
10389kontroleru periferije KP kao slugi upisivanje sadraja u registre i itanje sadraja iz registara.
10390Upisivanjem u upravljaki registar sadraja koji na poziciji bita start ima vrednost 1 startuje se
10391kontroler za prenos podataka iz periferije u memoriju ili iz memorije u periferiju, dok se
10392upisivanjem sadraja koji na poziciji bita start ima vrednost 0, zaustavlja kontroler.
10393 Prilikom startovanja kontrolera periferije za prenos podataka iz periferije u memoriju
10394aktivira se upravljaka jedinica uprav_per. Upravljaka jedinica uprav_per prvo startuje
356

356

10395periferiju da proita podatak, a zatim podatak prenosi iz periferije, najpre, u pomoni registar
10396podatka kontrolera, a potom u registar podatka kontrolera. Podatak se prenosi iz registra
10397podatka kontrolera u memoriju programskim putem sa dve instrukcije. Prvom instrukcijom se,
10398uz aktiviranje upravljake jedinice uprav_bus, podatak prenosi iz registra podatka kontrolera u
10399procesor. Drugom instrukcijom se podatak prenosi iz procesora u memoriju. Prenos podatka iz
10400registra podatka u memoriju i itanje novog podatka iz periferije sa prenosom iz registra
10401podatka periferije u pomoni registar podatka kontrolera su preklopljeni. Upravljaka jedinica
10402uprav_per novi podatak prenosi iz pomonog registra podatka u registar podatka tek poto je
10403upravljaka jedinica uprav_bus prethodni podatak prenela iz registra podatka u procesor. Po
10404prenosu podatka iz pomonog registra podatka u registar podatka, bit spremnost statusnog
10405registra se postavlja na vrednost 1 i generie prekid ukoliko je pri startovanju zadat reim rada
10406sa generisanjem prekida i bit prekid upravljakog registra ima vrednost 1. Prenos podataka iz
10407periferije u memoriju traje dok se kontroler periferije ne zaustavi programskim putem.
10408 Prilikom startovanja kontrolera periferije za prenos podataka iz memorije u periferiju
10409aktivira se upravljaka jedinica uprav_per. Podatak se prenosi iz memorije u registar podatka
10410kontrolera programskim putem sa dve instrukcije. Prvom instrukcijom se podatak prenosi iz
10411memorije u procesor. Drugom instrukcijom se, uz aktiviranje upravljake jedinice uprav_bus,
10412podatak prenosi iz procesora u registar podatka kontrolera. Posle toga upravljaka jedinica
10413uprav_per podatak prenosi iz registra podatka kontrolera u pomoni registar podatka
10414kontrolera i startuje upis podatka u periferiju. Upis podatka iz pomonog registra podatka u
10415periferiju i prenos novog podatka iz memorije u registar podatka kontrolera su preklopljeni.
10416Upravljaka jedinica uprav_per novi podatak prenosi iz registra podatka kontrolera u pomoni
10417registar podatka kontrolera tek poto prethodni podatak iz pomonog registra podatka
10418kontrolera upie u periferiju. Po prenosu podatka iz registra podatka u pomoni registar
10419podatka, bit spremnost statusnog registra se postavlja na vrednost 1 i generie prekid ukoliko
10420je pri startovanju zadat reim rada sa generisanjem prekida i bit prekid upravljakog registra
10421ima vrednost 1. Prenos podataka iz memorije u periferiju traje dok se kontroler periferije ne
10422zaustavi programskim putem.
10423

Struktura i opis upravljakih jedinica uprav_bus i uprav_per se daju u daljem tekstu.

104246.2.2.1 Upravljaka jedinica magistrale


10425 U ovom odeljku se daju dijagram toka operacija, algoritam generisanja upravljakih signala i
10426struktura upravljake jedinice uprav_bus.
104276.2.2.1.1 Dijagram toka operacija
10428 Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 198). U
10429operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim
10430blokovima se nalaze opisi logikih uslova koji definiu grananja algoritma.
10431 U dijagrama toka operacija stalno se vri provera da li je procesor startovao u kontroleru
10432ciklus itanja ili ciklus upisa, pri emu se procesor ponaa kao gazda, a kontroler kao sluga.
10433Ako nije startovan ni ciklus itanja ni ciklus upisa nema izvravanja mikrooperacija. Ako je
10434startovan jedan od ova dva ciklusa izvravaju se mikrooperacije saglasno ciklusu koji je
10435startovan.

357

357

G a z d a s ta r to v a o c ik lu s
ita n ja ?

S la n je s a d r a ja a d r e s ir a n o g
re g is tra g a z d i

0
0

G a z d a s ta r to v a o c ik lu s
u p is a ?

In d ik a c ija g a z d i d a je c ik lu s
ita n ja z a v r e n

U p is s a d r a ja g a z d e u a d re s ira n i
re g is ta r

ita s e s a d r a j r e g is tr a
p o d a tk a ?

In d ik a c ija g a z d i d a je c ik lu s u p is a
zav re n

R e g is ta r p o d a tk a je r a s p o lo iv
z a u p is n o v o g p o d a tk a iz
p o m o n o g re g is tra p o d a tk a

U p is u je s e s a d r a j u
r e g is ta r p o d a tk a ?

K o n tro le r n ije s p re m a n z a p re n o s
p o d a tk a iz re g is tr a p o d a tk a u
m e m o riju p ro g ra m s k im p u te m

R e g is ta r p o d a tk a je ra s p o lo iv z a
s la n je n o v o g p o d a tk a u p o m o n i
re g is ta r p o d a tk a
K o n tro le r n ije s p re m a n z a p re n o s
p o d a tk a iz m e m o r ije u re g is ta r
p o d a tk a p r o g r a m s k im p u te m
1
0

U p is u je s e s a d r a j u
u p ra v lja k i r e g is ta r ?
1

S ta rtu je s e k o n tro le r
p e r ife r ije ?

Z a u s ta v lja n je p e r ife r ije

Z a d a je s e p re n o s iz p e r ife r ije
u m e m o riju ?

R e g is ta r p o d a tk a je ra s p o lo iv z a
u p is n o v o g p o d a tk a iz p o m o n o g
re g is tr a p o d a tk a

R e g is ta r p o d a tk a n ije ra s p o lo iv z a
s la n je n o v o g p o d a tk a u p o m o n o g
re g is ta r p o d a tk a

K o n tro le r n ije s p re m a n z a p re n o s
p o d a tk a iz r e g is tr a p o d a tk a u
m e m o riju p ro g ra m s k im p u te m

K o n tro le r je s p re m a n z a p re n o s
p o d a tk a iz m e m o riju u r e g is ta r
p o d a tk a p r o g r a m s k im p u te m
0

Z a d a je s e g e n e ris a n je
p re k id a ?
1

G e n e r is a n je p re k id a

10436
10437

Slika 198 Dijagram toka operacija

10438 Ako je startovan ciklus itanja, procesoru se kao gazdi alje sadraj adresiranog registra
10439kontrolera i indikacija da je kontroler kao sluga zavrio itanje. Pored toga, u sluaju kada se
10440ita sadraj registra podatka, postavljaju se i dve indikacije. Prva je interna indikacija da je
10441sadraj registar podatka prenet u memoriju i da je on raspoloiv da se u njega prenese novi
10442podatak iz pomonog registra podatka. Druga je bit spremnost statusnog registra koji se
10443postavlja na vrednost 0 kao indikacija da je registar podatka prenet u memoriju i da ne treba da
10444se ita dok se u njega ne prenese novi podatak iz pomonog registra podatka.
358

358

10445 Ako je startovan ciklus upisa, u adresirani registar kontrolera se upisuje sadraj koji
10446procesor kao gazda alje i gazdi alje indikacija da je kontroler kao sluga zavrio upis. U
10447sluaju kada se sadraj upisuje u registar podatka, postavljaju se i dve indikacije. Prva je
10448interna indikacija da je u registar podatka upisan novi podatak i da je on raspoloiv da se iz
10449njega prenese novi podatak u pomoni registar podatka. Druga je bit spremnost statusnog
10450registra koji se postavlja na vrednost 0 kao indikacija da je u registar podatka upisan podatak i
10451da ne treba da se vri upis novog podatka dok se podatak iz njega ne prenese u pomoni
10452registar podatka.
10453 U sluaju kada se sadraj upisuje u upravljaki registar, mikrooperacije koje se izvravaju
10454zavise od toga da li se kontroler periferije zaustavlja ili startuje. Ukoliko se vri zaustavljanje,
10455zaustavlja se i periferija. Ukoliko se vri startovanje, mikrooperacije koje se izvravaju zavise
10456od toga da li se kontroler periferije startuje za prenos iz periferije u memoriju ili za prenos iz
10457memorije u periferiju. Ukoliko se vri startovanje za prenos iz periferije u memoriju postavljaju
10458se i dve indikacije. Prva je interna indikacija da je registar podatka raspoloiv da se u njega
10459prenese podatak iz pomonog registra podatka. Druga je bit spremnost statusnog registra koji
10460se postavlja na vrednost 0 kao indikacija da ne treba da se ita dok se u njega ne prenese
10461podatak iz pomonog registra podatka. Ukoliko se vri startovanje za prenos iz memorije u
10462periferiju postavljaju se i dve indikacije. Prva je interna indikacija da u registar podatka nije
10463upisan novi podatak iz memorije i da on nije raspoloiv da se iz njega prenese novi podatak u
10464pomoni registar podatka. Druga je bit spremnost statusnog registra koji se postavlja na
10465vrednost 1 kao indikacija da u registar podatka moe da se prenese podatak iz memorije.
10466Pored toga, ukoliko se zadaje rad sa generisanjem prekida, generie se i prekid.
104676.2.2.1.2 Algoritam generisanja upravljakih signala
10468 Algoritam generisanja upravljakih signala je formiran na osnovu dijagrama toka operacija
10469(slika 198) i dat u obliku dijagrama toka upravljakih signala (slika 199) i sekvence
10470upravljakih signala po koracima (tabela 58).
rd K T R

0
0

w rK T R
1

fc K T R ,
if s e lC R th e n C R o u t,
if s e lS R th e n S R o u t,
if s e lD R
th e n ( D R o u t, c lS R 0 b u s ,s tR D D R b u s )

fc K T R ,
if s e lC R th e n C R in ,
if s e lS R th e n S R in ,
if s e lD R
th e n ( D R in ,c lS R 0 b u s ,s tW R D R b u s ) ,
if ( s e lC R D B U S 2 D B U S 0 )
th e n ( c lS R 0 b u s , s tR D D R b u s ) ,
if ( s e lC R D B U S 2 D B U S 0 )
th e n ( s tS R 0 b u s , c lW R D R b u s ),
if ( s e lC R D B U S 2 D B U S 1 D B U S 0 )
th e n in trb u s ,
if ( s e lC R D B U S 2 ) th e n s to p P E R

10471
10472

Slika 199 Dijagram toka upravljakih signala

10473 Dijagram toka upravljakih signala je predstavljen operacionim i uslovnim blokovima. U


10474operacionim blokovima se nalaze upravljaki signali i uslovi pod kojima se oni generiu. U
10475uslovnim blokovima se nalaze signali logikih uslova.
10476 U sekvenci upravljakih signala po koracima se koriste iskazi za signale. Iskazi za signale su
10477oblika
10478 if uslov then signali
359

359

10479Ovaj iskaz sadri signal uslov i spisak upravljakih signala signali koji se generiu ukoliko
10480signal uslov ima vrednost 1.
10481 Objanjenja vezana za generisanje upravljakih signala su data zajedniki za dijagram toka
10482upravljakih signala i sekvencu upravljakih signala po koracima i to u okviru sekvence
10483upravljakih signala po koracima.
10484

Tabela 58 Sekvenca upravljakih signala po koracima

10485! Upravljaka jedinica generie upravljaki signale operacione jedinice fcKTR, CRout, SRout, DRout,
10486clSR0bus, stRDDRbus, CRin, SRin, DRin, stWRDRbus, stSR0bus, clWRDRbus, intrbus i
10487stopPER. Ovi signali imaju vrednost 0 ukoliko oba signala rdKTR i wrKTR bloka interfejs
10488operacione jedinice imaju vrednost 0, a dobijaju vrednost 1 pod odreenim uslovima jedino kada jedan
10489od signala rdKTR i wrKTR postane 1. U daljem tekstu je objanjeno da signali rdKTR i wrKTR
10490imaju vrednost 1 trajanja jedna perioda signala takta. Stoga i svi signali koje generie upravljaka
10491jedinica imaju vrednost 1 trajanja jedna perioda signala takta. !
10492! Signal rdKTR postaje 1 kada processor CPU na neki signal takta prebaci adresne linije ABUS 15..0
10493magistrale iz stanja visoke impedanse na vrednost adrese nekog od programski dostupnih registara
10494CR2...0, SR0 ili DR7...0 bloka registri i upravljaku liniju RDBUS magistrale iz stanja visoke impedanse
10495na vrednost 0, ime zapoinje ciklus itanja. Uzeto je da je vreme itanja registara CR 2...0, SR0 ili DR7...0
10496jedna perioda signala takta, pa se na isti signal takta na koji je signal RDBUS postao 0 a signal
10497rdKTR postao 1, generie vrednost 1 signala fcKTR bloka interfejs i time obezbeuje da upravljaka
10498linija FCBUS magistrale pree iz stanja visoke impedanse na vrednost 0. Zbog vrednosti 0 signala
10499 FCBUS procesor na prvi sledei signal takta prihvata proitani podatak i signal RDBUS magistrale
10500prebacuje u stanje visoke impedanse to dovodi do toga da na isti signal takta najpre signal rdKTR
10501postaje 0 a zatim i signal fcKTR postaje 0. Kao rezultat, signali rdKTR i fcKTR imaju vrednost 1
10502trajanja jedna perioda signala takta. !
10503! Slina je situacija i prilikom realizacije ciklusa upisa, pri emu signal wrKTR postaje 1 kada
10504processor prebaci adresne linije ABUS15..0 i linije podataka DBUS7..0 magistrale iz stanja visoke
10505impedanse na vrednost adrese registra i sadraja za upis u neki od programski dostupnih registara
10506CR2...0, SR0 ili DR7...0, respektivno, i upravljaku liniju WRBUS magistrale iz stanja visoke impedanse
10507na vrednost 0, ime zapoinje ciklus upisa. Kao rezultat, signali wrKTR i fcKTR imaju vrednost 1
10508trajanja jedna perioda signala takta. !
10509! U oba sluaja se, u zavisnosti od toga koji je od registara CR 2...0, SR0 ili DR7...0 adresiran sadrajem na
10510adresnim linijama ABUS15..0 magistrale, generie vrednost 1 jednog od signala selCR, selSR i selDR,
10511respektivno, bloka interfejs. !
10512! Pri vrednosti 1 signala rdKTR, a u zavisnosti od toga koji od signala selCR, selSR i selDR bloka
10513interfejs ima vrednost 1, generie se vrednost 1 jednog od signala CRout, SRout i DRout bloka
10514registri, respektivno. Signalima CRout, SRout i DRout se obezbeuje da linije podataka DBUS 70
10515magistrale preu iz stanja visoke impedanse na vrednost sadraja jednog od registara CR 2...0, SR0 ili
10516DR7...0, respektivno. Kada signal rdKTR postane 0 i signali fcKTR, CRout, SRout i DRout postanu 0,
10517pa se upravljaka linija FCBUS magistrale i linije podataka DBUS7..0 magistrale vraaju u stanje
10518visoke impedanse. !
10519! Pri vrednostima 1 signala rdKTR i selDR, to znai da se programskim putem ita sadraj registra
10520DR7..0 kao deo postupka prenoenja u memoriju, generiu se vrednosti 1 signala clSR0bus i
10521stRDDRbus bloka registri. Vrednou 1 signala clSR0bus se razred SR 0 statusnog registra SR 0
10522postavlja na vrednost 0, to je indikacija da registar DR7..0 nije raspoloiv da se ita programskim putem
10523dok se u njega ne prenese novi podatak iz registra DRAUX 7..0. Vrednou 1 signala stRDDRbus se flip10524flop RDDR postavlja na vrednost 1, to je indikacija da je registar DR 7..0 raspoloiv da se u njega
10525prenese novi podatak iz registra DRAUX7..0 bloka registri. !
10526! Pri vrednosti 1 signala wrKTR, a u zavisnosti od toga koji od signala selCR, selSR i selDR ima
10527vrednost 1, generie se vrednost 1 jednog od signala CRin, SRin i DRin bloka registri, respektivno.
10528Vrednostima 1 signala CRin, SRin i DRin se obezbeuje da se sadraj sa linija podataka DBUS 70
10529magistrale upie u registre CR 2...0, SR0 ili DR7...0, respektivno. Kada signal wrKTR postane 0 i signali
10530fcKTR, CRin, SRin i DRin postanu 0, pa se upravljaka linija FCBUS magistrale vraa u stanje
10531visoke impedanse. !

360

360

10532! Pri vrednostima 1 signala wrKTR i selDR, to znai da se programskim putem upisuje sadraj u
10533registar DR7...0 kao deo postupka prenoenja iz memorije, generiu se vrednosti 1 signala clSR0bus i
10534stWRDRbus bloka registri. Vrednou 1 signala clSR0bus razred SR0 statusnog registra SR0 se
10535postavlja na vrednost 0, to je indikacija da registar DR 70 nije raspoloiv da se u njega programskim
10536putem upie novi podatak iz memorije dok se prethodni podatak iz njega ne prenese u registar
10537DRAUX70. Vrednou 1 signala stWRDRbus flip-flop WRDR se postavlja na vrednost 1, to je
10538indikacija da je registar DR7...0 raspoloiv da se iz njega prenese novi podatak u registar DRAUX7...0. !
10539! Pri vrednostima 1 signala wrKTR, selCR, DBUS2 i DBUS0, to znai da se programskim putem
10540upisuje sadraj u registar CR2...0 radi startovanja kontrolera za prenos iz periferije u memoriju, generiu
10541se vrednosti 1 signala clSR0bus i stRDDRbus bloka registri. Vrednou 1 signala clSR0bus razred
10542SR0 statusnog registra SR0 se postavlja na vrednost 0, to je indikacija da registar DR70 nije raspoloiv
10543da se ita programskim putem dok se u njega ne prenese novi podatak iz registra DRAUX 70.
10544Vrednou 1 signala stRDDRbus se flip-flop RDDR postavlja na vrednost 1, to je indikacija da je
10545registar DR70 raspoloiv da se u njega prenese novi podatak iz registra DRAUX70 bloka registri. !
10546! Pri vrednostima 1signala wrKTR, selCR i DBUS2 i vrednosti 0 signala DBUS0, to znai da se
10547programskim putem upisuje sadraj u registar CR 2...0 radi startovanja kontrolera za prenos iz memorije
10548u periferiju, generiu se vrednosti 1 signala stSR0bus i clWRDRbus bloka registri. Vrednou 1
10549signala stSR0bus razred SR0 statusnog registra SR0 se postavlja na vrednost 1, to je indikacija da je
10550registar DR7...0 raspoloiv da se u njega programskim putem upie podatak iz memorije. Vrednou 1
10551signala clWRDRbus se flip-flop WRDR postavlja na vrednost 0, to je indikacija da je registar DR7...0
10552nije raspoloiv da se iz njega prenese novi podatak u registra DRAUX70. !
10553! Pri vrednostima 1 signala wrKTR, selCR, DBUS2 i DBUS1 i vrednosti 0 signala DBUS0, to znai da
10554se programskim putem upisuje sadraj u registar CR 2...0 radi startovanja kontrolera za prenos iz
10555memorije u periferiju sa generisanjem prekida, generie se vrednost 1 signala prekida intrbus bloka
10556interfejs. Signal prekida intrbus upravljake jedinice uprav_bus sa signalom prekida intrper
10557upravljake jedinice uprav_per formira u bloku interfejs signal prekida intr procesora CPU, to je
10558indikacija da je registar DR7...0 raspoloiv da se u njega programskim putem skokom na prekidnu rutinu
10559upie podatak iz memorije. !
10560! Pri vrednostima 1 signala signala wrKTR i selCR i vrednosti 0 signala DBUS2, to znai da se
10561programskim putem upisuje sadraj u registar CR 2...0 radi zaustavljanja kontrolera, generie se vrednost
105621 signala zaustavljanja stopPER periferije PER. Vrednou 1 signala stopPER se u periferiji PER
10563zaustavlja prenos koji je u toku. !
10564
if (rdKTR + wrKTR) then fcKTR,
10565
if (rdKTRselCR) then CRout,
10566
if (rdKTRselSR) then SRout,
10567
if (rdKTRselDR) then (DRout, clSR0bus, stRDDRbus),
10568
if (wrKTRselCR) then CRin,
10569
if (wrKTRselSR) then SRin,
10570
if (wrKTRselDR) then (DRin, clSR0bus,stWRDRbus),
10571
if (wrKTRselCRDBUS2DBUS0) then (clSR0bus, stRDDRbus),
10572
if (wrKTRselCRDBUS2 DBUS 0 ) then (stSR0bus, clWRDRbus),
10573
if (wrKTRselCRDBUS2 DBUS1 DBUS 0 ) then intrbus,
10574
if (wrKTRselCR DBUS 2 ) then stopPER
105756.2.2.1.3 Struktura upravljake jedinice
10576 U ovom odeljku se daje struktura upravljake jedinice oiene realizacije koja se sastoji od
10577logikih elemenata koji na osnovu signala itanja rdKTR i signala upisa wrKTR bloka
10578interfejs i signala logikih uslova generiu sledee signale (slika 200):
10579 signal fcKTR bloka interfejs zavretka ili itanja nekog od registara kontrolera CR 2...0,
10580SR0 ili DR7...0 bloka registri ili upisa u neki od ovih registara kontrolera,
10581 signale CRout, SRout i DRout bloka registri itanja registara kontrolera CR2...0, SR0 ili
10582DR7...0,
10583 signale CRin, SRin i DRin bloka registri upisa u registre kontrolera CR2...0, SR0 ili
10584DR7...0,

361

361

10585 signale clSR0bus i stSR0bus bloka registri postavljanja na vrednost 0 i 1, respektivno,


10586bita spremnost SR0 statusnog registra SR0 kontrolera,
10587 signal stRDDRbus bloka registri postavljanja na vrednost 1 flip-flopa RDDR i signale
10588stWRDR i clWRDR bloka registri postavljanja na vrednost 1 i 0, respektivno, flip-flopa
10589WRDR,
10590 signal prekida intrbus bloka interfejs i
10591 signal zaustavljanja periferije stopPER bloka interfejs.
10592 Signali rdKTR i wrKTR imaju vrednosti 1 trajanja jedna perioda signala takta. To je
10593posledica usvojenog naina generisanja signala rdCPU i wrCPU procesora CPU, na osnovu
10594kojih se formiraju signali RDBUS i WRBUS magistrale BUS i rdKTR i wrKTR kontrolera
10595KP, i signala fcKTR, na osnovu koga se generiu signali FCBUS magistrale BUS i fcCPU
10596procesora CPU.
10597 Kod itanja procesor na i-ti signal takta ulazi u korak stepi koji koristi da signal rdCPU
10598postavi na vrednost 1, to redom daje vrednost 0 signala RDBUS , vrednost 1 signala rdKTR
10599i fcKTR, vrednost 0 signala FCBUS i vrednost 1 signala fcCPU. Kako je u procesoru
10600vrednost 1 signala fcCPU uslov za prelazak iz koraka stepi u korak stepj i kako ta vrednost
10601dolazi u koraku stepi, to procesor na prvi sledei signal takta prelazi na korak step j. Zbog toga
10602se u koraku stepi ostaje samo jedna perioda signala takta, to ima za posledicu da signal
10603rdCPU ima vrednost 1, signal RDBUS vrednost 0, signali rdKTR i fcKTR vrednost 1,
10604signal FCBUS vrednost 0 i signal fcKTR vrednost 1 u trajanja jedna perioda signala takta. Iz
10605istih razloga kod upisa signal wrCPU ima vrednost 1, signal WRBUS vrednost 0, signali
10606wrKTR i fcKTR vrednost 1, signal FCBUS vrednost 0 i signal fcCPU vrednost 1 u trajanju
10607jedna perioda signala takta. S obzirom na to da su signali rdCPU i wrCPU trajanja jedna
10608perioda signala takta i da svi signali koje generie upravljake jedinica uprav_bus ukljuuju
10609jedan od signala rdKTR i wrKTR, to i svi preostali signali imaju vrednost 1, ukoliko su dati u
10610direktnom obliku, ili vrednost 0, ukoliko su dati u komplementarnom obliku, trajanja jedna
10611perioda signala takta.
10612 Upravljaka jedinica uprav_bus sadri kombinacione mree koje pomou signala rdKTR i
10613wrKTR, koji dolaze sa bloka interfejs, signala logikih uslova selCR, selSR, selDR, DBUS2,
10614DBUS1 i DBUS0, koji dolaze iz bloka interfejs i magistrale BUS, i saglasno algoritmu
10615generisanja upravljakih signala (tabela 58) generie upravljake signale blokova operacione
10616jedinice.
10617 Upravljaki signali blokova operacione jedinice oper se daju posebno za blok registri i blok
10618interfejs.
10619
10620
10621
10622
10623
10624
10625
10626
10627
10628
10629
10630

362

Upravljaki signali bloka registri se generiu na sledei nain:


CRout = rdKTRselCR
SRout = rdKTRselSR
DRout = rdKTRselDR
clSR0bus = rdKTRselDR
stRDDRbus = rdKTRselDR
CRin = wrKTRselCR
SRin = wrKTRselSR
DRin = wrKTRselDR
clSR0bus = wrKTRselDR
stWRDRbus = wrKTRselDR
clSR0bus = wrKTRselCRDBUS2DBUS0

362

stRDDRbus = wrKTRselCRDBUS2DBUS0
stSR0bus = wrKTRselCRDBUS2 DBUS 0
clWRDRbus = wrKTRselCRDBUS2 DBUS 0
in te r fe js rd K T R
in te r fe js w rK T R

fc K T R in te r fe js

s e lS R

SR out

s e lD R

D R out

s e lS R

S R in

s e lD R

D R in

interfejs

rd K T R
s e lD R
w rK T R
s e lC R
BU S D B U S2
BU S D B U S0

c lS R 0 b u s

interfejs

interfejs

C R in

in te r fe js
s tS R 0 b u s

w rK T R
s e lD R

in te r fe js w r K T R
in te r fe js s e lC R
BU S D B U S2

s e lC R

in te r fe js w r K T R
in te r fe js s e lC R
BU S D B U S2
BU S D B U S0

interfejs

C R out


interfejs

interfejs

s e lC R

rd K T R
s e lD R
w rK T R
s e lD R
w rK T R
s e lC R
BU S D B U S2
BU S D B U S0

10634
10635

w rK T R

rd K T R

w rK T R
s e lC R
BU S D B U S2
BU S D B U S0
in te r fe js
in te r fe js
BU S
BU S
BU S

BU S
s to p P E R


interfejs

10631
10632
10633

w rK T R
s e lC R
D B U S2
D B U S1
D B U S0

in te r fe js
s tR D D R b u s

in te r fe js
s tW R D R b u s

c lW R D W b u s

in te r fe js
in trb u s

Slika 200 Struktura upravljake jedinice uprav_bus

10636 Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz bloka
10637interfejs operacione jedinice oper i magistrale BUS i to:
10638 rdKTR bloka interfejs.
10639 wrKTR bloka interfejs
10640 selCR bloka interfejs
10641 selSR bloka interfejs
10642 selDR bloka interfejs
10643 DBUS2 magistrale BUS i
10644 DBUS0 magistrale BUS.
10645
10646
10647

Upravljaki signali bloka interfejs se generiu na sledei nain:


intrbus = wrKTRselCRDBUS2 DBUS1 DBUS 0
stopPER = wrKTRselCR DBUS 2

10648 Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz bloka
10649interfejs operacione jedinice oper i magistrale BUS i to:
10650 wrKTR bloka interfejs
363

363

10651
10652
10653
10654

selCR bloka interfejs


DBUS2 magistrale BUS
DBUS1 magistrale BUS i
DBUS0 magistrale BUS.

106556.2.2.2 Upravljaka jedinica periferije


10656 U ovom poglavlju se daju dijagram toka operacija, algoritam generisanja upravljakih
10657signala i struktura upravljake jedinice.
106586.2.2.2.1 Dijagram toka operacija
10659 Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 201). U
10660operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim
10661blokovima se nalaze opisi logikih uslova koji definiu grananja algoritma.
10662 U poetnom koraku vri se provera da li je kontroler startovan ili ne. Ako kontroler nije
10663startovan ostaje se u poetnom koraku i eka startovanje kontrolera. Ako je kontroler
10664startovan vri se provera da li je zadat prenos iz periferije u memoriju ili iz memorije u
10665periferiju i prelazi na odgovarajui korak.
10666 Ako je zadat prenos iz periferije u memoriju prelazi se na prenoenje podatka iz periferije u
10667kontroler. Najpre se u petlji dri zahtev periferiji da proita podatak i vri provera da li je
10668kontroler zaustavljen programskim putem upisivanjem vrednosti 0 u razred start upravljakog
10669registra i da li je periferija zavrila itanje podatka. Ukoliko se utvrdi da je kontroler
10670zaustavljen, prekida se prenoenje podataka iz periferije u kontroler, vraa se u poetni korak i
10671eka da se ponovo programskim putem upisivanjem vrednosti 1 u razred start upravljakog
10672registra startuje kontroler. Ukoliko se utvrdi da je periferija proitala podatak izlazi se iz petlje
10673i podatak prenosi iz periferije u pomoni registar podatka kontrolera.
10674 Potom se u petlji vri provera da li je kontroler zaustavljen programskim putem i da li je
10675registar podatka raspoloiv da se u njega prenese novi podatak iz pomonog registra podatka.
10676Ukoliko se utvrdi da je kontroler zaustavljen, prekida se prenoenje podataka iz periferije u
10677kontroler, vraa se u poetni korak i eka da se ponovo programskim putem startuje kontroler.
10678Ukoliko se utvrdi da je registar podatka raspoloiv, izlazi se iz petlje i podatak prenosi iz
10679pomonog registra podatka u registar podatka. Istovremeno se postavlja indikacija da registar
10680podatka nije raspoloiv da se u njega prenese novi podatak iz pomonog registra podatka sve
10681dok se programskim putem podatak ne prenese iz registra podatka u memoriju. Pored toga bit
10682spremnost statusnog registra kontrolera se postavlja na vrednost 1, ime se postavlja indikacija
10683da je kontroler spreman za prenos podatka iz registra podatka u memoriju, i generie prekid,
10684ukoliko je pri startovanju zadat reim sa generisanjem prekida. Na kraju se vraa na korak u
10685kome se postavlja zahtev periferiji da proita sledei podatak. Opisane aktivnosti se ponavljaju
10686sve dok se kontroler ne zaustavi programskim putem.
10687 Ako je u zadat prenos iz memorije u periferiju prelazi se na prenoenje podatka iz
10688kontrolera u periferiju. Najpre se u petlji vri provera da li je kontroler zaustavljen
10689programskim putem i da li je registar podatka raspoloiv da se iz njega prenese novi podatak u
10690pomoni registar podatka. Ukoliko se utvrdi da je kontroler zaustavljen, prekida se prenoenje
10691podataka iz kontrolera u periferiju, vraa se u poetni korak i eka da se ponovo programskim
10692putem startuje kontroler. Ukoliko se utvrdi da je registar podatka raspoloiv, izlazi se iz petlje i
10693podatak prenosi iz registra podatka u pomoni registar podatka. Istovremeno se postavlja
10694indikacija da registar podatka nije raspoloiv da se iz njega prenosi podatak u pomoni registar
10695podatka sve dok se programskim putem podatak ne prenese iz memorije u registar podatka.
10696Pored toga na vrednost 1 se postavlja bit spremnost statusnog registra kontrolera, ime se

364

364

10697postavlja indikacija da je kontroler spreman za prenos podatka iz memorije u registar podatka,


10698i generie prekid, ukoliko je pri startovanju zadat reim sa generisanjem prekida.
0

D a li je k o n tro le r
s ta rto v a n ?
1

D a li je z a d a t p r e n o s iz
p e rife rije u m e m o riju ?

0
1

D a li je k o n tro le r
z a u s ta v lje n ?

Z a h te v p e rife riji z a ita n je i


p re n o e n je p o d a tk a u p rih v a tn i
re g is ta r p o d a tk a

D a li p o d a ta k m o e d a s e
p re n e s e iz re g is tr a
p o d a tk a u p o m o n i
re g is ta r p o d a tk a ?

D a li je k o n tro le r
z a u s ta v lje n ?

0
0

P re n o s p o d a tk a iz re g is tra
p o d a tk a u p o m o n i re g is ta r
p o d a tk a

D a li je k o n tro le r
z a u s ta v lje n ?

In d ik a c ija d a je k o n tro le r s p re m a n
z a p re n o s p o d a tk a iz m e m o rije u
re g is ta r p o d a tk a

D a li u r e g is ta r p o d a tk a
m o e d a se p re n e se
p o d a tk a iz p o m o n o g
re g is tr a p o d a tk a ?
1

P re n o s p o d a tk a iz p o m o n o g
re g is tr a p o d a tk a u re g is ta r
p o d a tk a

A k o je z a d a t re im ra d a s a
p re k id o m g e n e ris a n je p re k id a

In d ik a c ija d a u re g is ta r p o d a tk a
n e m o e d a s e p re n o s i p o d a ta k
iz p o m o n o g r e g is tra p o d a tk a

D a li je k o n tro le r
z a u s ta v lje n ?
0

In d ik a c ija d a je k o n tro le r s p re m a n
z a p r e n o s p o d a tk a iz re g is tr a
p o d a tk a u m e m o riju

Z a h te v p e rife riji z a u p is
p o d a tk a iz p o m o n o g re g is tr a
p o d a tk a
1

D a li je p e rife r ija z a v r ila


ita n je p o d a tk a ?
1

In d ik a c ija d a u re g is tru p o d a tk a
n e m a p o d a tk a z a p re n o s u
p o m o n i re g is ta r p o d a tk a

A k o je z a d a t re im ra d a s a
p re k id o m g e n e ris a n je p re k id a

D a li je k o n tro le r
z a u s ta v lje n ?
0

D a li je p e r ife r ija z a v r ila


u p is p o d a tk a ?

10699
10700

Slika 201 Dijagram toka operacija

10701 Zatim se vri provera da li je kontroler zaustavljen programskim putem. Ukoliko se utvrdi
10702da je kontroler zaustavljen, prekida se prenoenje podataka iz kontrolera u periferiju, vraa se
10703u poetni korak i eka da se ponovo programskim putem startuje kontroler. Ukoliko se utvrdi
10704da kontroler nije zaustavljen u petlji se periferiji dri zahtev da upie sledei podatak i vre
10705provere da li je kontroler zaustavljen programskon putem i da li je periferija zavrila upis
10706padatka. Ukoliko se utvrdi da je kontroler periferije zaustavljen, prekida se prenoenje
10707podataka iz kontrolera u periferiju, vraa se u poetni korak i eka da se ponovo programskim
10708putem startuje kontroler. Ukoliko se utvrdi da je periferija zavrila upis podatka iz pomonog

365

365

10709registra podatka kontrolera, izlazi se iz ove petlje i vraa u petlju u kojoj se vri provera da li je
10710kontroler zaustavljen programskim putem i da li je registar podatka kontrolera raspoloiv da se
10711iz njega prenese novi podatak u pomoni registar podatka kontrolera. Opisane aktivnosti se
10712ponavljaju sve dok se kontroler ne zaustavi programskim putem.
107136.2.2.2.2 Algoritam generisanja upravljakih signala
10714 Algoritam generisanja upravljakih signala je formiran na osnovu dijagrama toka operacija
10715(slika 201) i dat u obliku dijagrama toka upravljakih signala (slika 202) i sekvence
10716upravljakih signala po koracima (tabela 59).
s te p

CR
1

CR
s te p
if
if
if
if

2
1

(C
(C
(C
(C

R
R
R
R

W R D R )
2
2W R D R )
2W R D R )
2C R 1 W R

th e n
th e n
th e n
D R )

D R A U X in ,
c lW R D R p e r,
s tS R 0 p e r,
th e n in trp e r;

CR

CR
1

s te p

if
if
if
if

w rP E R
0

CR
1

10717
10718

(C
(C
(C
(C

R
R
R
R

fc P E R

2 R D D R ) th e n ld D R ,
2 R D D R ) th e n c lR D D R p e r,
2 R D D R ) th e n s tS R 0 p e r ,
C R 1 R D D R ) th e n in tr p e r
2

CR

fc P E R

s te p

0
1

W RD R

1
0

s te p
rd P E R , if fc P E R th e n ld D R A U X

R D D R

Slika 202 Dijagram toka upravljakih signala

10719 Dijagram toka upravljakih signala je predstavljen operacionim i uslovnim blokovima. U


10720operacionim blokovima se nalaze upravljaki signali i uslovi pod kojima se oni generiu. U
10721uslovnim blokovima se nalaze signali logikih uslova.
10722 U sekvenci upravljakih signala po koracima se koriste iskazi za signale i skokove. Iskazi za
10723signale su oblika
10724 signali i
10725 if uslov then signali
10726Prvi iskaz sadri spisak upravljakih signala signali koji se bezuslovno generiu. Drugi iskaz
10727sadri signal uslov i spisak upravljakih signala signali koji se generiu ukoliko signal uslov
10728ima vrednost 1. Iskazi za skokove su oblika
10729 br (if uslov then stepA).
10730Ovaj iskaz sadri signal uslov i korak stepA na koji se prelazi ukoliko signal uslov ima vrednost
107311 i u daljem tekstu se referie kao uslovni skok.
10732 Objanjenja vezana za generisanje upravljakih signala su data zajedniki za dijagram toka
10733upravljakih signala i sekvencu upravljakih signala po koracima i to u okviru sekvence
10734upravljakih signala po koracima.
10735

Tabela 59 Sekvenca upravljakih signala po koracima

10736! U koraku se step0 se ostaje i ne generie se vrednost 1 ni jednog od upravljakih signala sve dok je
10737signal CR2 bloka registri ima vrednost 0. Signal CR2 postaje 1 tek kada se programskim putem startuje
10738kontroler periferije. Tom prilikom se u upravljaki registar CR 20 bloka registri upisuje sadraj koji na
10739poziciji razreda CR2 ima vrednost 1. Na poziciji razreda CR 0 je vrednost 1 ili 0 u zavisnosti od toga da
366

366

10740li je zadat prenos iz periferije u memoriju ili iz memorije u periferiju, respektivno. Na poziciji razreda
10741CR1 je vrednost 1 ili 0 u zavisnosti od toga da li je zadat reim rada sa generisanjem ili bez generisanja
10742prekida, respektivno. Pri vrednostima 1 signala CR2 i CR0 se prelazi na korak step1 koji odgovara
10743prenosu iz periferije u memoriju. Pri vrednostima 1 i 0 signala CR2 i CR0, respektivno, se prelazi na
10744korak step3, koji odgovara prenosu iz memorije u periferiju. !
10745
step0 br (if (CR2CR0) then step1),
10746
br (if (CR2 CR 2 ) then step3);
10747! U korak step1 se dolazi iz koraka step0 ili koraka step2. U ovom koraku se generie vrednost 1 signala
10748rdPER koji predstavlja zahtev periferiji da proita sledei podatak. Ukoliko signal CR2 ima vrednost 0,
10749to znai da je programskim putem upisivanjem vrednosti 0 u razred CR2 upravljakog registra CR20
10750zaustavljen rad kontrolera, prelazi se u korak step0. Ukoliko signal CR2 ima vrednost 1, ili se ostaje u
10751koraku step1 ili se prelazi u korak step2 u zavisnosti od toga da li signal fcPER periferije PER ima
10752vrednost 0 ili 1, respektivno. Vrednost 0 signala fcPER je indikacija da itanje podatka u periferiji jo
10753uvek traje, a vrednost 1 da je podatak proitan i da se nalazi na linijama PIN 7...0 periferije. Pri
10754vrednostima 1 signala CR2 i fcPER se generie vrednost 1 signala ldDRAUX. Ovim signalom se
10755sadraj iz periferije, koji u kontroler dolazi po linijama PIN7...0, puta kroz multiplekser MP2 bloka
10756registri i upisuje u pomoni registar podatka DRAUX7...0 bloka registri. !
10757
step1 rdPER, if (CR2fcPER) then ldDRAUX,
10758
br (if CR 2 then step0),
10759
br (if (CR2fcPER) then step2);
10760! U korak step2 se dolazi iz koraka step1. Ukoliko signal CR2 ima vrednost 0 prelazi se u korak step0.
10761Ukoliko signal CR2 ima vrednost 1, ili se ostaje u koraku step2 ili se prelazi u korak step1 u zavisnosti
10762od toga da li signal RDDR bloka registri ima vrednost 0 ili 1, respektivno. Vrednost 0 signala RDDR
10763je indikacija da registar podatka DR 7...0 nije raspoloiv, jer prethodni podatak jo uvek nije programskim
10764putem prenet iz registra DR7...0 u memoriju. Vrednost 1 signala RDDR je indikacija da je registar
10765podatka DR7...0 raspoloiv, pa se generiu vrednosti 1 signala ldDR, clRDDRper i stSR0per.
10766Vrednou 1 signala ldDR se sadraj registra DRAUX15...0 bloka registri puta kroz multiplekser MP1
10767bloka registri i upisuje u registar podatka DR7...0. Vrednou 1 signala clRDDRper se u flip-flop RDDR
10768upisuje vrednost 0. Ova vrednost je indikacija da registar DR 7...0 nije raspoloiv da se u njega prenese
10769novi podatak iz registra DRAUX7...0 sve dok se programskim putem prethodni podatak ne prenese iz
10770registra DR7...0 u memoriju. Vrednou 1 signala stSR0per se upisuje vrednost 1 u razred SR 0 statusnog
10771registra SR0 bloka registri. Ovaj razred odgovara bitu spremnost i njegova vrednost 1 pri prenosu iz
10772periferije u memoriju slui kao indikacija procesoru da moe programskim putem da prenese podatak iz
10773registra DR7...0 u memoriju. Ukoliko pri vrednostima 1 signala CR2 i RDDR i signal CR1 ima vrednost
107741, generie se vrednost 1 signala intrper bloka interfejs. Ovim signalom se pri prenosu iz periferije u
10775memoriju generie signal prekida intr, da bi procesor skoio na odgovarajuu prekidnu rutinu i u
10776okvuru nje programskim putem preneo podatak iz registra DR7...0 u memoriju. !
10777
step2 if (CR2RDDR) then (ldDR, stSR0per, clRDDRper),
10778
if (CR2CR1RDDR) then intrper,
10779
br (if CR 2 then step0),
10780
br (if (CR2RDDR) then step1);
10781! U korak step3 se dolazi iz koraka step0 ili koraka step4. Ukoliko signal CR2 ima vrednost 0, prelazi se u
10782korak step0. Ukoliko signal CR2, ima vrednost 1, ili se ostaje u koraku step3 ili se prelazi u korak step4 u
10783zavisnosti od toga da li signal WRDR bloka registri ima vrednost 0 ili 1, respektivno. Vrednost 0
10784signala WRDR je indikacija da registar podatka DR 7...0 bloka registri nije raspoloiv, jer novi podatak
10785jo uvek nije programskim putem prenet iz memorije u registar DR 7...0. Vrednost 1 signala WRDR je
10786indikacija da je registar DR7...0 raspoloiv jer je podatak programskim putem prenet iz memorije u
10787registar podatka DR7...0. Po upisu podatka u registar DR7...0 upravljaka jedinica uprav_bus vrednou 1
10788signala stWRDRbus postavlja flip-flop WRDR na vrednost 1. Pri vrednosti 1 signala WRDR generiu
10789se vrednosti 1 signala DRAUXin, clWRDRper i stSR0per. Vrednou 0 signala ldDRAUX se sadraj
10790registra DR7...0 puta kroz multiplekser MP2 bloka registri, a vrednou 1 signala DRAUXin se upisuje
10791u pomoni registar podatka DRAUX7...0 bloka registri. Vrednou 1 signala clWRDRper se u flip-flop
10792WRDR upisuje vrednost 0. Ova vrednost je indikacija da registar DR 7...0 nije raspoloiv i da njegov
10793sadraj ne moe da se prenese u registar DRAUX7...0 sve dok se programskim putem novi podatak ne
10794prenese iz memorije u registar DR7...0. Vrednou 1 signala stSR0per se upisuje vrednost 1 u razred SR0
10795statusnog registra SR0 bloka registri. Ovaj razred odgovara bitu spremnost i njegova vrednost 1 pri
367

367

10796prenosu iz memorije u periferiju slui kao indikacija procesoru da moe programskim putem da prenese
10797podatak iz memorije u registar DR 7...0. Ukoliko pri vrednostima 1 signala CR2 i WRDR i signal CR1
10798ima vrednost 1, generie se vrednost 1 signala intrper bloka interfejs. Ovim signalom se pri prenosu iz
10799memorije u periferiju generie signal prekida intr, da bi procesor skoio na odgovarajuu prekidnu
10800rutinu i u okvuru nje programskim putem preneo podatak iz memorije u registar DR7...0. !
10801
step3 if (CR2WRDR) then (DRAUXin, clWRDRper, stSR0per),
10802
if (CR2CR1WRDR) then intrper,
10803
br (if CR 2 then step0),
10804
br (if (CR2WRDR) then step4);
10805! U korak step4 se dolazi iz koraka step3. U ovom koraku se generie vrednost 1 signala wrPER koji
10806predstavlja zahtev periferiji da upie podatak iz registra DRAUX 70 koji je prisutan na linijama
10807POUT70. Ukoliko signal CR2 ima vrednost 0, prelazi se u korak step0. Ukoliko signal CR2 ima
10808vrednost 1, ili se ostaje u koraku step4 ili se prelazi u korak step3 u zavisnosti od toga da li signal fcPER
10809periferije PER ima vrednost 0 ili 1, respektivno. Vrednost 0 signala fcPER je indikacija da je upis
10810podatka iz registra DRAUX7...0 u periferiju u toku, a vrednost 1 da je podatak upisan. !
10811
step4 wrPER,
10812
br (if CR 2 then step0),
10813
br (if (CR2fcPER) then step3);
108146.2.2.2.3 Struktura upravljake jedinice
10815 Upravljaka jedinica oiene realizacije se sastoji iz sledeih blokova: blok generisanje nove
10816vrednosti brojaa koraka, blok broja koraka, blok dekoder koraka i blok generisanje
10817upravljakih signala. (slika 203). Struktura i opis blokova upravljake jedinice se daju u
10818daljem tekstu.
10819 Blok generisanje nove vrednosti brojaa koraka slui za generisanje vrednosti koju treba
10820upisati u broja CNT2...0. Potreba za ovim se javlja kada treba odstupiti od sekvencijalnog
10821generisanja upravljakih signala. Analizom algoritma generisanja upravljakih signala
10822operacione jedinice (poglavlje 6.2.2.2.2) se utvruje da su 0, 1 i 3 vrednosti koje treba upisati u
10823broja CNT2...0 da bi se realizovala odstupanja od sekvencijalnog generisanja upravljakih
10824signala. Te vrednosti se formiraju na ulazima 2, 1 i 0 brojaa CNT 2...0 pomou signala val0, val1
10825i val3 pri emu signal val0 ima vrednost 1 samo onda kada treba upisati 0, signal val1 ima
10826vrednost 1 samo onda kada treba upisati 1 i signal val3 ima vrednost 1 samo onda kada treba
10827upisati 3. Time se obezbeuje da na ulazima 2, 1 i 0 brojaa CNT budu vrednosti 0, 0 i 0 onda
10828kada signal val0 ima vrednost 1, vrednosti 0, 0 i 1 onda kada signal val1 ima vrednost 1 i
10829vrednosti 0, 1 i 1 onda kada signal val3 ima vrednost 1.

368

368

g e n e r is a n je
n o v e v r e d n o s ti

v a l1
v a l3

v a l3

m r
1

2 ...0

CN T
2

C N T

...

...

IN C

CN T

ld C N T
in c C N T

LD

D C

b r o ja k o r a k a

d eko d er ko ra ka
0

g e n e r is a n je
u p ra v lja k ih
s ig n a la
b lo k o v a
o p e ra c io n e
je d in ic e

g e n e ris a n je
u p ra v lja k ih
s ig n a la
u p ra v lja k e
je d in ic e

CR0
CR1
CR2
W RD R
RD D R

fc P E R P E R

ldCNT
incCNT
val3
val1
val0

g e n e ris a n je
u p ra v lja k ih
s ig n a la
p e r ife r ije
PER

blok interfejs

...

blok registri

...

wrPER

...

rdPER

10830
10831

CN T


registri

M R 2
C LK
2

CLK

g e n e r is a n je
u p r a v lja k ih s ig n a la

Slika 203 Struktura upravljake jedinice uprav_per

10832
Blok broja koraka sadri broja CNT2...0. Broja CNT2...0 svojom trenutnom vrednou
10833obezbeuje aktivne vrednosti odreenih upravljakih signala. Broja CNT 2...0 moe da radi u
10834sledeim reimima:
10835 reim inkrementiranja,
10836 reim skoka i
10837 reim mirovanja.
10838 U reimu inkrementiranja pri pojavi signala takta vri se uveavanje sadraja brojaa
10839CNT2...0 za jedan. Ovim reimom se obezbeuje sekvencijalno generisanje upravljakih signala
10840iz algoritma generisanja upravljakih signala (poglavlje 6.2.2.2.2). Ovaj reim rada se
10841obezbeuje vrednou 1 signala incCNT. Signal incCNT uvek ima vrednost 0, sem kada treba
10842obezbediti reim inkrementiranja.
10843 U reimu skoka pri pojavi signala takta vri se upis nove vrednosti u broja CNT 2...0. Ovim
10844reimom se obezbeuje odstupanje od sekvencijalnog generisanja upravljakih signala iz
10845algoritma generisanja upravljakih signala (poglavlje 6.2.2.2.2). Ovaj reim rada se obezbeuje
10846vrednou 1 signala ldCNT. Signal ldCNT uvek ima vrednost 0, sem kada treba obezbediti
10847reim skoka.
10848 U reimu mirovanja pri pojavi signala takta ne menja se vrednost brojaa CNT 2...0. Ovaj
10849reim rada se obezbeuje vrednostima 0 signala incCNT i ldCNT. Ovi signali imaju vrednost
108500 kada se u koraku
10851 step0 pri vrednosti 1 signala T0 eka da kontroler bude startovan upisivanjem vrednosti 1
10852u razred CR2 upravljakog registra kontrolera,

369

369

10853 step1 pri vrednosti 1 signala T1 eka da itanje u periferiji bude zavreno i signal fcPER
10854postane 1,
10855 step2 pri vrednosti 1 signala T2 eka da registar podatka DR70 bude raspoloiv za
10856prebacivanje podatka iz pomonog registra podatka DRAUX70 i signal RDDR postane 1,
10857 step3 pri vrednosti 1 signala T3 eka da pomoni registar podatka DRAUX70 bude
10858raspoloiv za prebacivanje podatka iz registra podatka DR70 i signal WRDR postane 1 i
10859 step4 pri vrednosti 1 signala T4 eka da upis u periferiju bude zavren i signal fcPER
10860postane 1.
10861 Blok dekoder koraka sadri dekoder DC. Na ulaze dekodera DC vode se izlazi brojaa
10862CNT2...0. Dekodovana stanja brojaa CNT2...0 pojavljuju se kao signali T0 do T7 na izlazima
10863dekodera DC. Svakom koraku iz algoritma generisanja upravljakih signala (poglavlje
108646.2.2.2.2) dodeljen je jedan od ovih signala i to koraku step 0 signal T0, koraku step1 signal T1,
10865itd.
10866 Blok generisanje upravljakih signala sadri kombinacione mree koje pomou signala T0
10867do T7 koji dolaze sa bloka dekoder koraka upravljake jedinice, signala logikih uslova koji
10868dolaze iz blokova operacione jedinice i saglasno algoritmu generisanja upravljakih signala
10869(poglavlje 6.2.2.2.2) generiu upravljake signale. Upravljaki signali se generiu na identian
10870nain kao i upravljaki signali procesora CPU (poglavlje 6.2.2.2.2).
10871
10872
10873
10874

Blok generisanje upravljakih signala generie tri grupe upravljakih signala i to:
upravljake signale periferije PER,
upravljake signale blokova operacione jedinice oper i
upravljake signale upravljake jedinice uprav_per.

10875 Upravljaki signali periferije PER se generiu na sledei nain:


10876 rdPER = CR2T1
10877 wrPER = CR2T4
10878Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz blokova
10879operacione jedinice i to:
10880 CR2 blok registri.
10881 Upravljaki signali blokova operacione jedinice oper se daju posebno za blok registri i blok
10882interfejs.
10883 Upravljaki signali bloka registri se generiu na sledei nain:
10884 stSR0per = CR2RDDRT2 + CR2WRDRT3
10885 clRDDRper = CR2RDDRT2
10886 clWRDRper = CR2WRDRT3
10887 ldDR = CR2RDDRT2
10888 DRAUXin = CR2WRDRT3
10889 ldDRAUX = CR2fcPERT1
10890Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz blokova
10891operacione jedinice i periferije PER i to:
10892 CR2 blok registri,
10893 RDDR blok registri,
10894 WRDR blok registri,
10895 fcPER periferije PER.
10896
10897
370

Upravljaki signal bloka interfejs se generie na sledei nain:


intrper = CR2CR1RDDRT2 + CR2CR1WRDRT3

370

10898Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz blokova
10899operacione jedinice i periferije PER i to:
10900 CR2 blok registri,
10901 CR1 blok registri,
10902 RDDR blok registri,
10903 WRDR blok registri.
10904 Upravljaki signali upravljake jedinice uprav_per se generie na sledei nain:
10905 ldCNT = val0+ val1+ val3
10906 val0 = CR 2 (T1 + T2 + T3 + T4 )
10907 val1 = CR2RDDRT2
10908 val3 = CR2 CR 0 T0 + CR2fcPER*T4
10909 incCNT = CR2CR0T0 + CR2fcPERT1 + CR2WRDRT3
10910Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz periferije PER i
10911pojedinih blokova operacione jedinice oper i to:
10912 fcPER periferija PER,
10913 CR0 blok registri,
10914 CR2 blok registri,
10915 RDDR blok registri i
10916 WRDR blok registri.
109176.3 KONTROLER PERIFERIJE SA DIREKTNIM PRISTUPOM
10918
MEMORIJI
10919 Kontroler periferije KP (slika 204) se sastoji iz operacione jedinice oper i upravljake
10920jedinice uprav.
10921 Operaciona jedinica oper je kompozicija kombinacionih i sekvencijalnih prekidakih mrea
10922koje slue za pamenje binarnih rei, izvravanje mikrooperacija i generisanje signala logikih
10923uslova.
10924 Upravljaka jedinica uprav se sastoji iz tri dela i to upravljake jedinice magistrale
10925uprav_bus, upravljake jedinice periferije uprav_per i upravljake jedinice memorije
10926uprav_mem. Upravljaka jedinica magistrale uprav_bus generie upravljake signale
10927neophodne da kontroler periferije KP kao sluga realizacije cikluse na magistrali BUS kojima se
10928prenose podaci izmeu procesora CPU i kontrolera periferije KP. Upravljaka jedinica
10929periferije uprav_per generie upravljake signale neophodne za prenos podataka izmeu
10930periferije PER i kontrolera periferije KP. Upravljaka jedinica memorije uprav_mem generie
10931upravljake signale neophodne da kontroler periferije KP kao gazda realizacije cikluse na
10932magistrali BUS kojima se prenose podaci izmeu kontrolera periferije KP i memorije MEM.
10933Upravljake jedinice uprav_bus, uprav_per i uprav_mem rade isovremeno i omoguuju
10934paralelan rad kontrolera periferije KP kao sluge sa magistralom BUS, kontrolera periferije KP
10935sa periferijom PER i kontrolera periferije KP kao gazde sa magistralom BUS. Svaka od
10936upravljakih jedinica uprav_bus, uprav_per i uprav_mem je kompozicija kombinacionih i
10937sekvencijalnih prekidakih mrea koje slue za generisanje upravljakih signala prema
10938algoritmu generisanja upravljakih signala operacione jedinice oper i signala logikih uslova.
10939

371

Struktura i opis operacione i upravljake jedinice se daju u daljem tekstu.

371

BUS

A B U S

1 5 ...0

D B U S

1 5 ...0

RD B U S
W RB U S
FC B U S

CPU
in tr

r e g is tr i

in te r fe js
oper

u p ra v_ b u s
CPU
h req

u p ra v_ p er

hack
CPU

u p ra v_ m em
u p ra v
KP
POUT7...0
PIN7...0
stopPER
rdPER
wrPER
fcPER

PER
U /I

10940
10941

Slika 204 Organizacija kontrolera periferije KP

109426.3.1 Operaciona jedinica


10943
10944
10945

Operaciona jedinica (slika 204) se sastoji od sledeih blokova:


blok registri i
blok interfejs.

10946 Blok registri (slike 205 i 206) slui za uvanje podataka, upravljakih i statusnih
10947informacija. Blok interfejs (slike 207) slui za realizaciju ciklusa na magistrali kada je kontroler
10948sluga, realizaciju prekida, dobijanje dozvole korienja magistrale i realizaciju ciklusa na
10949magistrali kada ja kontroler gazda.
10950

Struktura i opis blokova operacione jedinice oper se daju u daljem tekstu.

109516.3.1.1 Blok registri


10952 Blok registri sadri sadri registre DR70 i DRAUX70 sa multiplekserima MP1 i MP2,
10953registre CR30 i SR0, flip-flopove WRDR i RDDR (slika 205) i registre WCR150 i AR150 (slika
10954206).
372

372

8
8

u p ra v_ p er
ld D R

8
1

M P1

8
C LK

uprav_ m em
rd M K T R
fc M K T R
in te r fe js

m r
M R

D R

LD

7 0

D R

7 ...0

8
8

8
ld D R A U X
up ra v_ per

u p ra v_ m em eD R

8
1
0

M P2

8
C LK

D RA U X

LD

D R A U X in
u p ra v_ p er

m r

PER

7 ...0

7 0

D RA U X

8
8
P E R P IN

M R

PO U T

7 ...0

7 ...0

4
4
LD

C R

C LK

m r

D B U S

3 ...0

M R
3 0

CR

3 ...0

4
4

7 ...4
3 ...0

uprav_ bus
C R in

u p r a v _ b u s s tS R 0 b u s
u p r a v _ m e m s tS R 0 m e m
u p r a v _ b u s S R in
BU S D B U S0

10955
10956

u p ra v_ b u s
c lW R D R b u s
c lW R D R p e r
uprav_ per

7 ...1
0

u p ra v_ b u s S R o ut

C LK

u p r a v _ b u s c lS R 0 b u s

uprav_ m em
s tW R D R m e m

SR

u p ra v_ b u s C R o ut

BU S D B U S

7 0

m r

uprav_ m em
u p ra v_ p er
W RD R

CLK
R

uprav_ m em
s tR D D R m e m
s tR D D R b u s
uprav_ bus
c lR D D R p e r
u p ra v_ p er

m r

uprav_ m em
uprav_ per
RD D R
Q

S
C LK
R

m r

Slika 205 Blok registri (prvi deo)

10957
10958 Registri DR70 i DRAUX70 su 8-mo razredni registar podatka i pomoni registar podatka,
10959respektivno (slika 205). Ovi registri zajedno sa multiplekserima MP1 i MP2 slue za prenos
10960podataka izmeu periferije PER i memorije MEM.

373

373

10961 Pri prenosu podataka iz periferije u memoriju podatak koji dolazi iz periferije po linijama
10962PIN7...0 periferije PER se, najpre, puta kroz multiplekser MP2 i upisuje u pomoni registar
10963podatka DRAUX70. Potom se podatak iz registra DRAUX70 puta kroz multiplekser MP1 i
10964upisuje u registar podatka DR70. Na kraju se podatak iz registra DR70 preko bafera sa tri
10965stanja puta na linije podataka DBUS70 magistrale BUS i upisuje u memoriju. Ovakvin
10966nainom prenosa podataka je omogueno da se istovremeno prenosi tekui podatak iz registra
10967DR70 u memoriju i sledei podatak iz periferije u registar DRAUX70. Pri tome se sledei
10968podatak prenosi iz registra DRAUX70 u registar DR150, tek poto je tekui podatak prenet iz
10969registra DR70 u memoriju.
10970 Pri prenosu podataka iz memorije u periferiju podatak koji dolazi iz memorije po linijama
10971podataka DBUS70 magistrale BUS se, najpre, puta kroz multiplekser MP1 i upisuje u
10972registar podatka DR70. Potom se podatak iz registra DR70 puta kroz mulstiplekser MP2 i
10973upisuje u pomoni registar podatka DRAUX70. Na kraju se podatak iz registra DRAUX70 po
10974linijama POUT70 periferije PER alje i upisuje u periferiju. Ovakvin nainom prenosa
10975podataka je omogueno da se istovremeno prenosi tekui podatak iz registra DRAUX 70 u
10976periferiju i sledei podatak iz memorije u registar DR70. Pri tome se sledei podatak prenosi iz
10977registra DR70 u registar DRAUX70, tek poto je tekui podatak prenet iz registra DRAUX 7
109780 u periferiju.
10979 Registar DR150 je 8-mo razredni registar u koji se vrednou 1 jednog od signala DRin i
10980ldDR upisuje sadraj sa izlaza multipleksera MP1. Pri vrednosti 1 signala DRin i vrednosti 0
10981signala ldDR sadraj sa linija podataka DBUS70 magistrale BUS se puta kroz multiplekser
10982MP1 i upisuje u registar DR70. Pri vrednosti 1 signala ldDR sadraj sa izlaza registra
10983DRAUX70 se puta kroz multiplekser MP1 i upisuje u registar DR 70. Signal DRin ima
10984vrednost 1 kada se generiu vrednosti 1 signala rdMKTR i fcMKTR. Signal rdMKTR ima
10985vrednost 1 kada kontroler kao gazda realizuje ciklus itanja na magistrali, dok signal fcMKTR
10986ima vrednost 1 kada se na upravljakoj liniji magistrale FCBUS pojavi vrednost 0 kao
10987indikacija od memorije kao sluge da je proitani podatak raspoloiv na linijama podataka
10988DBUS70 magistrale. Sadraj registra DR70 se pri vrednosti 1 signala eDR puta na linije
10989podataka DBUS70 magistrale. Pored toga sadraj registra DR70 se vodi na ulaze
10990multipleksera MP2.
10991 Multiplekser MP1 se sastoji od 16 multipleksera sa dva ulaza. Na ulaze 0 i 1 multipleksera
10992MP1 dovodi se sadraj sa linija podataka DBUS 70 magistrale i sadraj sa izlaza registra
10993DRAUX70, respektivno. Selektovanje sadraja se obavlja signalom ldDR.
10994 Registar DRAUX70 je 8-mo razredni registar u koji se, vrednou 1 jednog od signala
10995DRAUXin i ldDRAUX, upisuje sadraj sa izlaza multipleksera MP2. Pri vrednosti 1 signala
10996DRAUXin i vrednosti 0 signala ldDRAUX sadraj registra DR150 se puta kroz multiplekser
10997MP2 i upisuje u registar DRAUX70. Pri vrednosti 1 signala ldDRAUX sadraj sa ulaznih linija
10998podataka PIN70 periferije se puta kroz multiplekser MP2 i upisuje u registar DRAUX 70.
10999Sadraj registra DRAUX70 se po izlaznim linijama podataka POUT 70 alje u periferiju. Pored
11000toga sadraj registra DRAUX70 se vodi na ulaze multipleksera MP1.
11001 Multiplekser MP2 se sastoji od 8 multipleksera sa dva ulaza. Na ulaze 0 i 1 multipleksera
11002MP2 dovodi se sadraj sa izlaza registra DR70 i sadraj sa ulaznih linija podataka PIN70
11003periferije, respektivno. Selektovanje sadraja se obavlja signalom ldDRAUX.
11004 Registar CR30 je etvororazredni upravljaki registar koji sadri bitove paket, start, ulaz i
11005prekid, respektivno (odeljak 2.3.2). U registar CR30 se vrednou 1 signala CRin upisuje
11006sadraj sa linija podataka DBUS30 magistrale. Sadraj registra CR30 proiren nulama do
11007duine 8 bitova se pri vrednosti 1 signala CRout puta na linije podataka DBUS70 magistrale.

374

374

11008 Registar SR0 je jednorazredni statusni registar koji sadri bit kraj (odeljak 2.3.2). U registar
11009SR0 se, vrednou 1 signala SRin, upisuje sadraj sa linija podataka DBUS0 magistrale. Sadraj
11010registra SR0 proiren nulama do duine 8 bitova se pri vrednosti 1 signala SRout puta na linije
11011podataka DBUS70 magistrale.
11012 Vrednost 0 i 1 razreda SR0 ukazuju da li je prenos bloka podataka u toku ili je zavren,
11013respektivno. Veliina bloka podataka koje jo treba preneti se zadaje programskim putem
11014upisivanjem odgovarajueg sadraja u registar WCR150. Pri prenosu jedne rei bloka podataka
11015sadraj registra WCR150 se dekrementira. Sadraj sve nule registra WCR 150, na ta ukazuje
11016vrednost 1 signala done, je indikacija da je prenos zavren.
11017 Ukoliko se pri startovanju kontrolera periferije utvrdi da signal done ima vrednost 0 jer je
11018zadata veliina bloka podataka za prenos vea od nule, razred SR 0 se vrednou 1 signala
11019clSRbus postavlja na vrednost 0. Po zavretku prenosa bloka podataka, na ta ukazuje
11020vrednost 1 signala done, razred SR0 se vrednou 1 signala stSR0per postavlja na vrednost 1.
11021Ukoliko se pri startovanju kontrolera periferije utvrdi da signal done ima vrednost 1 jer je
11022zadata veliina bloka podataka za prenos nula, nema prenosa podataka i razred SR 0 se
11023vrednou 1 signala stSR0bus postavlja na vrednost 1. Pri itanju registra SR0 razred SR0 se
11024vrednou 1 signala clSR0bus postavlja na vrednost 0.
11025 Flip-flopovi RDDR i WRDR se koriste za neophodnu sinhronizaciju pri prenosu podataka iz
11026periferije u memoriju i obrnuto. Flip-flop RDDR se koristi pri prenosu podataka iz periferije u
11027memoriju. Njegova vrednost 1 je indikacija da novi podatak moe da se prenese iz registra
11028DRAUX70 u registar DR70, a vrednost 0 da tekui podatak jo uvek nije prenet iz registra
11029DR70 u memoriju i da novi podatak ne moe da se prenese iz registra DRAUX 70 u registar
11030DR70. S toga se pri startovanju kontrolera periferije za prenos iz periferije u memoriju flip11031flop RDDR vrednou 1 signala stRDDRbus postavlja na vrednost 1. Posle toga se po
11032prenosu podatka iz registra DRAUX 70 u registar DR70 flip-flop RDDR vrednou 1 signala
11033clRDDRper postavlja na vrednost 0, a po prenosu podatka iz registra DR 70 u memoriju
11034vrednou 1 signala stRDDRmem postavlja na vrednost 0. Flip-flop WRDR se koristi pri
11035prenosu podataka iz memorije u periferiju. Njegova vrednost 1 je indikacija da se u registru
11036DR70 nalazi podatak i da sadraj registra DR70 moe da se prenese u registar DRAUX70, a
11037vrednost 0 da novi podatak jo uvek nije prenet iz memorije u registar DR 70 i da sadraj
11038registra DR70 ne moe da se prenese u registar DRAUX 70. S toga se pri startovanju
11039kontrolera periferije za prenos iz memorije u periferiju flip-flop WRDR vrednou 1 signala
11040clWRDRbus postavlja na vrednost 0. Posle toga se po prenosu podatka iz memorije u registar
11041DR70 flip-flop WRDR vrednou 1 signala stWRDRmem postavlja na vrednost 1, a po
11042prenosu podatka iz registra DR70 u registar DRAUX70 vrednou 1 signala clWRDRper
11043postavlja na vrednost 0.
11044 Broja WCR150 je 16-to razredni broja u kome se uva broj rei bloka podataka koje
11045treba preneti (slika 206). Veliina bloka podataka koji treba preneti se u broja WCR 150
11046upisuje programskim putem u dva ciklusa na magistrali. Signalom WCRHin se u 8 starijih
11047razreda brojaa WCR158 upisuje sadraj sa linija podataka DBUS70 magistrale, dok se
11048signalom WCRLin u 8 mlaih razreda brojaa WCR70 upisuje sadraj sa linija podataka
11049DBUS70 magistrale. Sadraj brojaa WCR150 se ita programskim putem u dva ciklusa na
11050magistrali. Signalom WCRHout se 8 starijih razreda brojaa WCR158 puta na linije podataka
11051DBUS70 magistrale, dok se signalom WCRLout 8 mlaih razreda brojaa WCR70 puta na
11052linije podataka DBUS70 magistrale.
11053 Pri prenosu svake rei bloka podataka generie sa vrednost 1 signala decWCR ime se
11054sadraj brojaa WCR150 dekrementira. Sadraj brojaa WCR150 razliit od nule je indikacija
11055da blok podatak nije jo uvek prenet, dok je sadraj nula indikacija da je kompletan blok

375

375

11056podataka prenet. Na osnovu toga da li je sadraja registra WCR 150 razliit od nule ili je nula
11057generiu se vrednosti 0 i 1 signala done.
BU S D B U S
8
m r 8
E

C LK M R
16 E

W CR

LD
15 8

D EC

W CR

m r 8

u p ra v_ b u s
W C R H in

C LK M R
8 E

decW C R
uprav_ m em

1 5 ...8

W CR

LD
7 0

D EC

W CR

7 0

uprav_ bus
W C R L in
decW C R
u p ra v_ m em

7 ...0

u p ra v_ b u s W C R L o u t
8
W CR

done
u p ra v_ m em
u p ra v_ b u s

W CR

u p ra v_ b u s W C R H o ut

15

8
m r 8
C

C LK M R
16 C

A R

LD
15 8

A R

IN C
1 5 ...8

u p ra v_ b u s
A R H in

m r 8
C

C LK M R
8 C

in c A R
uprav_ m em

A R

LD
7 0

A R

IN C

uprav_ bus
A R L in
in c A R
u p ra v_ m em

7 ...0

u p ra v_ b u s

A R Lout
8

u p ra v_ b u s

A R H out
BU S A B U S
16

A R

11058
11059

15 0

16
1 5 ...0

u p ra v_ m em eA R

Slika 206 Blok registri (drugi deo)

11060 Broja AR150 je 16-to razredni broja u kome se uva adresa sledee rei bloka podataka
11061koja se prenosi. Poetna adresa se u broja AR 150 upisuje programskim putem u dva ciklusa
11062na magistrali. Signalom ARHin se u 8 starijih razreda brojaa AR158 upisuje sadraj sa linija
11063podataka DBUS70 magistrale, dok se signalom ARLin u 8 mlaih razreda brojaa AR70
11064upisuje sadraj sa linija podataka DBUS70 magistrale. Sadraj brojaa AR1150 se ita
11065programskim putem u dva ciklusa na magistrali. Signalom ARHout se 8 starijih razreda
11066brojaa AR158 puta na linije podataka DBUS 70 magistrale, dok se signalom ARLout u 8
11067mlaih razreda brojaa AR70 puta na linije podataka DBUS70 magistrale.
11068 Prilikom prenosa svake rei bloka podataka sadraj brojaa AR 150 se vrednou 1 signala
11069eAR puta na adresna linije ABUS150 magistrale i zatim vrednou 1 signala incAR
11070inkrementira.

376

376

110716.3.1.2 Blok interfejs


11072 Blok interfejs (slika 207) sadri kombinacione i sekvencijalne mree za realizaciju ciklusa na
11073magistrali u kojima je kontroler sluga, za realizaciju ciklusa na magistrali u kojima je kontroler
11074gazda, za dobijanje dozvole korienja magistrale i za generisanje prekida.
11075 Kombinacione i sekvencijalne mree za realizaciju ciklusa na magistrali u kojima je
11076kontroler sluga formiraju signale rdSKTR i wrSKTR upravljake jedinice uprav_bus i
11077 FCBUS magistrale BUS (slika 197). Signali rdSKTR i wrSKTR se formiraju na osnovu
11078signala ABUS15..0 sa adresnih linija magistrale i RDBUS i WRBUS sa upravljakih linija
11079magistrale. Signal FCBUS se formira na osnovu signala fcSKTR upravljake jedinice
11080uprav_bus.
11081 Pri realizaciji ciklusa itanja na magistrali procesor kao gazda otvara bafere sa tri stanja za
11082adresne linije ABUS15..0 i upravljaku liniju RDBUS magistrale i na njih izbacuje adresu i
11083vrednost 0 signala itanja, respektivno, ime se u kontroleru kao slugi startuje itanje
11084adresiranog registra. Kontroler po zavrenom itanju otvara bafere sa tri stanja za linije
11085podataka DBUS7..0 i upravljaku liniju FCBUS magistrale i na njih izbacuje sadraj
11086adresiranog registra i vrednost 0 signala zavretka operacije itanja u kontroleru. Procesor
11087prihvata sadraj sa linija podataka i zatvara bafere sa tri stanja za adresne linije ABUS15..0 i
11088upravljaku liniju RDBUS magistrale, dok kontroler zatvara bafere sa tri stanja za linije
11089podataka DBUS7..0 i upravljaku liniju FCBUS magistrale.
11090 Pri realizaciji ciklusa upisa na magistrali procesor kao gazda otvara bafere sa tri stanja za
11091adresne linije ABUS15..0, linije podataka DBUS7..0 i upravljaku liniju WRBUS magistrale i na
11092njih izbacuje adresu, podatak i vrednost 0 signala upisa, respektivno, ime se u kontroleru kao
11093slugi startuje upis u adresirani registar. Kontroler po zavrenom upisu otvara bafer sa tri stanja
11094za upravljaku liniju FCBUS magistrale i na nju izbacuje vrednost 0 signala zavretka
11095operacije upisa u kontroleru. Procesor zatvara bafere sa tri stanja za adresne linije ABUS15..0,
11096linije podataka DBUS7..0 i upravljaku liniju WRBUS magistrale, dok kontroler zatvara bafer
11097sa tri stanja za upravljaku liniju FCBUS magistrale.
11098 Signali rdKTR i wrKTR imaju vrednosti koje su komplement vrednosti upravljakih
11099signala RDBUS i WRBUS magistrale kada signal select ima vrednost 1 i vrednost 0 kada
11100signal select ima vrednost 0. Signal rdKTR ima vrednost 1 a signal RDBUS vrednost 0 za
11101vreme operacije itanja nekog registra kontrolera, dok je signal wrKTR ima vrednost 1 a
11102signal WRBUS vrednost 0 za vreme operacije upisa u neki od registara kontrolera.

377

377

BU S
A B U S

A B U S
A B U S
A B U S

0
1
2

0
1

D C

B
B
B
B

U
U
U
U

S
S
S
S

A B U S
A B U S
A B U S

15
14
13

12


BUS

A
A
A
A

0
1
2
3
4
5
6
7

s e lC R
s e lS R
s e lW
s e lW
s e lA
s e lA

CRH
CRL
RH
RL


uprav_bus

5 ...0

BUS

A D D RESS

BU S
A B U S 11

BUS

4
3

s e le c t

BUS

RD B U S

1
rd M K T R u p ra v _ m e m

W RB U S

rd S K T R u p ra v _ b u s

uprav_ bus
in trb u s
in trm e m
u p ra v_ m em

CPU
in tr

1
w rM K T R u p ra v_ m em
FC B U S

11103
11104

rd S K T R u p ra v _ b u s

fc M K T R u p ra v _ m e m
1
fc S K T R

u p ra v_ b u s

Slika 207 Blok interfejs

11105 Signal select ima vrednost 1 ukoliko se na adresnim linijama ABUS 150 magistrale nalazi
11106adresa iz opsega adresa dodeljenih registrima kontrolera periferije KP. Celokupan opseg adresa
11107od 0000h do FFFFh podeljen je na opseg adresa od 0000h do EFFFh, koje su dodeljene
11108memoriji MEM, i opseg adresa od F000h do FFFFh, koje su dodeljene registrima po svim
11109kontrolerima periferija. Opseg adresa koje su dodeljene registrima po kontrolerima periferija je
11110predvien za adresiranje registara u najvie 64 kontrolera i to najvie 64 registra unutar
11111odreenog kontrolera. Pri tome prilikom adresiranja nekog od registara kontrolera sadraj na
11112adresnim linijama ABUS150 magistrale ima sledeu strukturu: bitovi ABUS 1512 su sve
11113jedinice, bitovi ABUS116 odreuju broj kontrolera i bitovi ABUS 50 adresu registra unutar
11114kontrolera. Broj kontrolera periferije za odreeni kontroler periferije se postavlja
11115mikroprekidaima na jednu od vrednosti u opsegu 0 do 63. Registrima CR 70, SR70,
11116WCRH70, WCRL70, ARH70 i ARL70 su unutar opsega adresa datog kontrolera dodeljene
11117adrese 0, 1, 4, 5, 6 i 7, pa bitovi ABUS 53 mora da budu nule dok se njihovo pojedinano
11118adresiranje realizuje bitovima ABUS2...0.
11119 Na osnovu usvojene strukture adresa signal select ima vrednost 1 ukoliko su na adresnim
11120linijama ABUS1512 magistrale sve jedinice, na adresnim linijama ABUS 116 se nalazi vrednost
11121koja odgovara vrednosti postavljenoj mikroprekidaima i na adresnim linijama ABUS 53 sve
11122nule. Signali selCR, selSR, selWCRH, selWCRL, selARH i selARL se dobijaju na izlazima
111230, 1, 4, 5, 6 i 7 dekodera DC na osnovu vrednosti signala ABUS2..0 i select sa ulaza 2, 1, 0 i E,
11124respektivno. Pri vrednosti 0 signala select i signali selCR, selSR, selWCRH, selWCRL,
11125selARH i selARL imaju vrednost 0. Pri vrednosti 1 signala select jedan od signala selCR,
11126selSR, selWCRH, selWCRL, selARH i selARL postaje 1 i to signal odreen binarnom
11127vrednou signala ABUS2..0.

378

378

11128 Signal select ima vrednost 0 ukoliko se na adresnim linijama ABUS150 magistrale ne nalazi
11129adresa iz opsega adresa dodeljenih registrima kontrolera periferije, pri emu to moe da bude
11130ili adresa memorijske lokacije ili registra iz nekog drugog kontrolera periferije. Tada se
11131formiraju vrednosti 0 signala rdSKTR i wrSKTR bez obzira na vrednosti signala RDBUS i
11132 WRBUS , respektivno.
11133 Kombinaciona mrea za generisanje upravljakog signala FCBUS magistrale generie ovaj
11134signal na osnovu signala fcSKTR. Pri vrednosti 0 signala fcSKTR na liniji signala FCBUS je
11135stanje visoke impedance, dok je pri vrednosti 1 signala fcSKTR na liniji signala FCBUS
11136vrednost 0. Signal fcSKTR normalno ima vrednost 0, dok se vrednost 1 u trajanju jedna
11137perioda signala takta javlja kao indikacija da je u kontroleru operacija itanja ili upisa zavrena.
11138 Kombinacione i sekvencijalne mree za realizaciju ciklusa na magistrali
11139kontroler gazda formiraju signale RDBUS i WRBUS magistrale BUS
11140upravljake jedinice uprav_mem (slika 197). Signali RDBUS i WRBUS se
11141osnovu signala rdMKTR i wrMKTR upravljake jedinice uprav_mem. Signal
11142formira na osnovu signala FCBUS magistrale BUS.

u kojima je
i fcMKTR
formiraju na
fcMKTR se

11143 Pri realizaciji ciklusa itanja ili upisa na magistrali kontroler kao gazda najpre procesoru
11144alje vrednost 1 signala zahteva korienja magistrale hreq i tek po dobijanju vrednosti 1
11145signala dozvole korienja magistrale hack od procesora kree sa realizacijom ciklusa na
11146magistrali.
11147 Pri realizaciji ciklusa itanja na magistrali kontroler kao gazda otvara bafere sa tri stanja za
11148adresne linije ABUS15..0 i upravljaku liniju RDBUS magistrale i na njih izbacuje adresu i
11149vrednost 0 signala itanja, respektivno, ime se u memoriji kao slugi startuje itanje adresirane
11150lokacije. Memorija po zavrenom itanju otvara bafere sa tri stanja za linije podataka DBUS 7..0
11151i upravljaku liniju FCBUS magistrale i na njih izbacuje sadraj adresirane lokacije i vrednost
111520 signala zavretka operacije itanja u memoriji. Kontroler prihvata sadraj sa linija podataka i
11153zatvara bafere sa tri stanja za adresne linije ABUS15..0 i upravljaku liniju RDBUS magistrale,
11154dok memorija zatvara bafere sa tri stanja za linije podataka DBUS 7..0 i upravljaku liniju
11155 FCBUS magistrale.
11156 Pri realizaciji ciklusa upisa na magistrali kontroler kao gazda otvara bafere sa tri stanja za
11157adresne linije ABUS15..0, linije podataka DBUS7..0 i upravljaku liniju WRBUS magistrale i na
11158njih izbacuje adresu, podatak i vrednost 0 signala upisa, respektivno, ime se u memoriji kao
11159slugi startuje upis u adresiranu lokaciju. Memorija po zavrenom upisu otvara bafer sa tri stanja
11160za upravljaku liniju FCBUS magistrale i na nju izbacuje vrednost 0 signala zavretka
11161operacije upisa u memoriji. Kontroler zatvara bafere sa tri stanja za adresne linije ABUS 15..0,
11162linije podataka DBUS7..0 i upravljaku liniju WRBUS magistrale, dok kontroler zatvar bafer sa
11163tri stanja za upravljaku liniju FCBUS magistrale.
11164 Kombinacione mree za generisanje upravljakih signala RDBUS i WRBUS magistrale
11165generiu ove signale na osnovu signala rdMKTR i wrMKTR upravljake jedinice
11166uprav_mem, respektivno. Pri vrednosti 0 signala rdMKTR na liniji signala RDBUS je stanje
11167visoke impedance, dok je pri vrednosti 1 signala rdMKTR na liniji signala RDBUS vrednost
111680. Signal rdMKTR ima vrednost 1 ili 0 u zavisnosti od toga da li je u memoriji operacija
11169itanja u toku ili nije, respektivno. Pri vrednosti 0 signala wrMKTR na liniji signala WRBUS
11170je stanje visoke impedance, dok je pri vrednosti 1 signala wrMKTR na liniji signala WRBUS
11171vrednost 0. Signal wrMKTR ima vrednost 1 ili 0 u zavisnosti od toga da li je u memoriji
11172operacija upisa u toku ili nije, respektivno.
11173 Signal fcMKTR se generie na osnovu vrednosti upravljakog signala FCBUS magistrale
11174koji alje memorija. Signal fcMKTR ima vrednost 0 ukoliko je na liniji signala FCBUS stanje
11175visoke impedanse i vrednost 1 ukoliko je na liniji signala FCBUS vrednost 0. Signal FCBUS
11176ima vrednost 0, a time signal fcMKTR vrednost 1, samo u trajanju jedna perioda signala takta,
379

379

11177a generie ga memorija kao indikacija kontroleru da je zavrena operacija itanja neke lokacije
11178memorije ili operacija upisa u neku lokaciju memorije.
11179 Pri realizaciji ciklusa itanja ili upisa na magistrali kontroler kao gazda najpre procesoru
11180alje vrednost 1 signala zahteva korienja magistrale hreq i tek po dobijanju vrednosti 1
11181signala dozvole korienja magistrale hack od procesora kree sa realizacijom ciklusa na
11182magistrali. Ukoliko je zadat pojedinani reim prenosa, kontroler po zavretku prenosa jednog
11183podatka ukida zahtev korienja magistrale postavljanjem signala hreq na vrednost 0, a
11184procesor ukida dozvolu korienja magistrale postavljanjem signala hack na vrednost 0.
11185Ovakva razmena signala hreq i hack izmeu kontrolera i procesora se ponavlja pri prenosu
11186svakog podatka bloka podataka. Ukoliko je zadat paketski reim prenosa, kontroler ne ukida
11187vrednost 1 signala zahteva korienja magistrale hreq dok traje prenos celog bloka podataka,
11188pa procesor dri vrednost 1 signala dozvole korienja magistrale hack sve vreme dok traje
11189prenos bloka podataka. Tek po zavretku prenosa celog bloka podataka kontroler ukida zahtev
11190korienja magistrale postavljanjem signala hreq na vrednost 0, a procesor ukida dozvolu
11191korienja magistrale postavljanjem signala hack na vrednost 0. Signal hreq koji generie
11192upravljaka jedinica uprav_mem se prosleuje procesoru CPU, dok se signal hack koji
11193generie procesor CPU prosleuje upravljakoj jedinici uprav_mem.
11194 Kada kontroler treba u procesoru da izazove prekid, generie se vrednost 1 signala intr.
11195Signala intr ima vrednost 1 ukoliko ili signal intrbus upravljake jedinice uprav_bus ili signal
11196intrmem upravljake jedinice uprav_mem ima vrednost 1.
111976.3.2 Upravljaka jedinica
11198 Upravljaka jedinica uprav_jed se sastoji iz tri dela:
11199 upravljake jedinice magistrale uprav_bus,
11200 upravljake jedinice periferije uprav_per i
11201 upravljake jedinice memorije uprav_mem.
11202Upravljake jedinice uprav_bus, uprav_per i uprav_mem rade istovremeno i omoguuju
11203paralelan rad kontrolera periferije KP kao sluge sa magistralom BUS, kontrolera periferije KP
11204sa periferijon PER i kontrolera periferije KP kao gazde sa magistralom BUS.
11205 Upravljaka jedinica uprav_bus omoguuje da procesor CPU kao gazda u kontroleru kao
11206slugi realizuje upisivanje sadraja u registre i itanje sadraja iz registara.
11207 Upisivanjem odgovarajueg sadraja u upravljaki registar startuje se kontroler za prenos
11208podataka iz periferije u memoriju ili iz memorije u periferiju.
11209 Prilikom startovanja kontrolera za prenos podataka iz periferije u memoriju aktiviraju se
11210upravljake jedinice uprav_per i uprav_mem. Upravljaka jedinica uprav_per prvo startuje
11211periferiju da proita podatak, a zatim podatak prenosi iz periferije, najpre, u pomoni registar
11212podatka kontrolera, a potom u registar podatka kontrolera. Tada upravljaka jedinica
11213uprav_mem podatak prenosi iz registra podatka kontrolera u memoriju. Prenoenje podatka iz
11214registra podatka kontrolera u memoriju od strane upravljake jedinice uprav_mem i itanje
11215novog podatka iz periferije i prenoenje u pomoni registar podatka kontrolera od strane
11216upravljake jedinice uprav_per su preklopljeni. Upravljaka jedinica uprav_per novi podatak
11217prenosi iz pomonog registra podatka kontrolera u registar podatka kontrolera tek poto
11218upravljaka jedinica uprav_mem prethodni podatak prenese iz registra podatka kontrolera u
11219memoriju. Prenoenje podataka iz periferije u memoriju traje dok se ne prenesu sve rei bloka
11220podataka na ta ukazuje sadraj nula brojaa rei kontrolera. Po prenoenju zadnjeg podatka iz
11221registra podatka kontrolera u memoriju bit spremnost statusnog registra se postavlja na
11222vrednost 1 i generie prekid ukoliko je pri startovanju zadat reim rada sa generisanjem
11223prekida.

380

380

11224 Prilikom startovanja kontrolera periferije za prenos podataka iz memorije u periferiju


11225aktiviraju se upravljake jedinice uprav_mem i uprav_per. Upravljaka jedinica uprav_mem
11226najpre prenosi podatak iz memorije u registar podatka kontrolera. Tada upravljaka jedinica
11227uprav_per podatak prenosi iz registra podatka kontrolera u pomoni registar podatka
11228kontrolera i startuje upis podatka u periferiju. Upis podatka iz pomonog registra podatka u
11229periferiju od strane upravljake jedinice uprav_per i prenoenje novog podatka iz memorije u
11230registar podatka kontrolera od strane upravljake jedinice uprav_jed_mem su preklopljeni.
11231Upravljaka jedinica uprav_jed_per novi podatak prenosi iz registra podatka kontrolera u
11232pomoni registar podatka kontrolera tek poto prethodni podatak iz pomonog registra
11233podatka kontrolera upie u periferiju. Prenoenje podataka iz memorije u periferiju traje dok se
11234ne prenesu sve rei bloka podataka na ta ukazuje sadraj nula brojaa rei kontrolera. Po
11235prenoenju zadnjeg podatka iz memorije u periferiju bit spremnost statusnog registra se
11236postavlja na vrednost 1 i generie prekid ukoliko je pri startovanju zadat reim rada sa
11237generisanjem prekida.
11238 Struktura i opis upravljakih jedinica uprav_bus, uprav_per i uprav_mem se daju u daljem
11239tekstu.
112406.3.2.1 Upravljaka jedinica magistrale
11241 U ovom odeljku se daju dijagram toka operacija, algoritam generisanja upravljakih signala i
11242struktura upravljake jedinice uprav_bus.
112436.3.2.1.1 Dijagram toka operacija
11244 Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 208). U
11245operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim
11246blokovima se nalaze opisi logikih uslova koji definiu grananja algoritma.
11247 U dijagrama toka operacija stalno se vri provera da li je procesor startovao u kontroleru
11248ciklus itanja ili ciklus upisa, pri emu se procesor ponaa kao gazda, a kontroler kao sluga.
11249Ako nije startovan ni ciklus itanja ni ciklus upisa nema izvravanja mikrooperacija. Ako je
11250startovan jedan od ova dva ciklusa izvravaju se mikrooperacije saglasno ciklusu koji je
11251startovan.
11252 Ako je startovan ciklus itanja, procesoru se kao gazdi alje sadraj adresiranog registra
11253kontrolera i indikacija da je kontroler kao sluga zavrio itanje. Pored toga, u sluaju kada se
11254ita sadraj statusnog registra, razred kraj statusnog registra se postavlja na vrednost 0.
11255 Ako je startovan ciklus upisa, u adresirani registar kontrolera se upisuje sadraj koji
11256procesor kao gazda alje i gazdi alje indikacija da je kontroler kao sluga zavrio upis.
11257
11258

381

381

G a z d a s ta r to v a o c ik lu s
ita n ja ?

S la n je s a d r a ja a d r e s ir a n o g
re g is tra g a z d i

G a z d a s ta r to v a o c ik lu s
u p is a ?

In d ik a c ija g a z d i d a je c ik lu s
ita n ja z a v r e n

U p is s a d r a ja g a z d e u a d re s ira n i
re g is ta r

ita s e s a d r a j s ta tu s n o g
re g is tra ?

In d ik a c ija g a z d i d a je c ik lu s u p is a
zav re n

In d ik a to r k r a j s ta tu s n o g re g is tr a s e
p o s ta v lja n a v re d n o s t 0

U p is u je s e s a d r a j u
u p ra v lja k i r e g is ta r ?

S ta rtu je s e k o n tro le r
p e r ife r ije ?

Z a u s ta v lja n je p e r ife r ije

Z a d a je s e p re n o s iz p e r ife r ije
u m e m o riju ?

R e g is ta r p o d a tk a je ra s p o lo iv z a
u p is n o v o g p o d a tk a iz p o m o n o g
re g is tr a p o d a tk a
Z a d a ta v e li in a b lo k a
p o d a ta k a z a p re n o s je n u la ?

R e g is ta r p o d a tk a n ije ra s p o lo iv z a
s la n je n o v o g p o d a tk a u p o m o n o g
re g is ta r p o d a tk a
0

In d ik a to r k r a j s ta tu s n o g re g is tr a s e
p o s ta v lja n a v r e d n o s t 1
0

In d ik a to r k r a j s ta tu s n o g re g is tr a s e
p o s ta v lja n a v re d n o s t 0

Z a d a je s e g e n e r is a n je
p re k id a ?
1

G e n e r is a n je p re k id a

11259
11260

Slika 208 Dijagram toka operacija

11261 U sluaju kada se sadraj upisuje u upravljaki registar, mikrooperacije koje se izvravaju
11262zavise od toga da li se kontroler periferije zaustavlja ili startuje. Ukoliko se vri zaustavljanje
11263kontrolera, zaustavlja se i periferija. Ukoliko se vre startovanje, izvravanje nekih
11264mikrooperacija zavisi od toga da li je zadata veliina bloka podataka za prenos razliita od nule
11265ili je nula. Ukoliko je zadata veliina bloka podataka razliita od nule, razred kraj statusnog
11266registra se postavlja na vrednost 0 kao indikacija da je prenos bloka podataka u toku. Ukoliko
11267je zadata veliina bloka podataka nula, razred kraj statusnog registra se postavlja na vrednost 1
11268kao indikacija da je prenos bloka podataka zavren i generie prekid ukoliko se zadaje reim
11269rada sa generisanjem prekida. Pored toga ukoliko se vri startovanje za prenos iz periferije u
11270memoriju, postavlja se interna indikacija da je registar podatka raspoloiv da se u njega prenese
11271podatak iz pomonog registra podatka, dok se, ukoliko se vri startovanje za prenos iz
11272memorije u periferiju postavlja interna indikacija da u registar podatka nije upisan podatak iz
11273memorije i da on nije raspoloiv da se iz njega prenese novi podatak u pomoni registar
11274podatka.

382

382

112756.3.2.1.2 Algoritam generisanja upravljakih signala


11276 Algoritam generisanja upravljakih signala je formiran na osnovu dijagrama toka operacija
11277(slika 198) i dat u obliku dijagrama toka upravljakih signala (slika 199) i sekvence
11278upravljakih signala po koracima (tabela 58).
rd S K T R

0
0

w rS K T R
1

fc S K T R ,
if s e lC R th e n C R in ,
if s e lS R th e n S R in ,
if s e lW C R H th e n W C R H in ,
if s e lW C R L th e n W C R L in ,
if s e lA R H th e n A R H in ,
if s e lA R L th e n A R L in ,
if ( s e lC R D B U S 2 D B U S 0 )
th e n s tR D D R b u s ,
if ( s e lC R D B U S 2 D B U S 0 )
th e n c lW R D R b u s ,
if ( s e lC R D B U S 2 d o n e )
th e n c lS R 0 b u s ,
if ( s e lC R D B U S 2 d o n e )
th e n s tS R 0 b u s ,
if ( s e lC R D B U S 2 D B U S 1 d o n e )
th e n in trb u s ,
if ( s e lC R D B U S 2 ) th e n s to p P E R

11279
11280

fc S K T R ,
if s e lC R th e n C R o u t,
if s e lS R th e n ( S R o u t, c lS R 0 b u s ) ,
if s e lW C R H th e n W C R H o u t,
if s e lW C R L th e n W C R L o u t,
if s e lA R H th e n A R H o u t,
if s e lA R L th e n A R L o u t

Slika 209 Dijagram toka upravljakih signala

11281 Dijagram toka upravljakih signala je predstavljen operacionim i uslovnim blokovima. U


11282operacionim blokovima se nalaze upravljaki signali i uslovi pod kojima se oni generiu. U
11283uslovnim blokovima se nalaze signali logikih uslova.
11284 U sekvenci upravljakih signala po koracima se koriste iskazi za signale. Iskazi za signale su
11285oblika
11286 if uslov then signali
11287Ovaj iskaz sadri signal uslov i spisak upravljakih signala signali koji se generiu ukoliko
11288signal uslov ima vrednost 1.
11289 Objanjenja vezana za generisanje upravljakih signala su data zajedniki za dijagram toka
11290 upravljakih signala i sekvencu upravljakih signala po koracima i to u okviru sekvence
11291 upravljakih signala po koracima.

383

383

11292

Tabela 60 Sekvenca upravljakih signala po koracima

11293! Upravljaka jedinica generie upravljaki signale operacione jedinice fcSKTR, CRout, SRout,
11294clSR0bus, WCRHout, WCRLout, ARHout, ARLout, CRin, SRin, WCRHin, WCRLin, ARHin,
11295ARLin, stRDDRbus, clWRDRbus, clSR0bus, stSR0bus, intrbus i stopPER. Ovi signali imaju
11296vrednost 0 ukoliko oba signala rdSKTR i wrSKTR bloka interfejs operacione jedinice imaju vrednost
112970, a dobijaju vrednost 1 pod odreenim uslovima jedino kada jedan od signala rdSKTR i wrSKTR
11298postane 1. U daljem tekstu je objanjeno da signali rdSKTR i wrSKTR imaju vrednost 1 trajanja jedna
11299perioda signala takta. Stoga i svi signali koje generie upravljaka jedinica imaju vrednost 1 trajanja
11300jedna perioda signala takta. !
11301! Signal rdSKTR postaje 1 kada processor CPU na neki signal takta prebaci adresne linije ABUS15..0
11302magistrale iz stanja visoke impedanse na vrednost adrese nekog od programski dostupnih registara
11303CR2...0, SR0, WCRH7...0, WCRL7...0, ARH7...0 ili ARL7...0 bloka registri i upravljaku liniju RDBUS
11304magistrale iz stanja visoke impedanse na vrednost 0, ime zapoinje ciklus itanja. Uzeto je da je vreme
11305itanja registara CR2...0, SR0, WCRH7...0, WCRL7...0, ARH7...0 ili ARL7...0 jedna perioda signala takta, pa se
11306na isti signal takta na koji je signal RDBUS postao 0 a signal rdSKTR postao 1, generie vrednost 1
11307signala fcSKTR bloka interfejs i time obezbeuje da upravljaka linija FCBUS magistrale pree iz
11308stanja visoke impedanse na vrednost 0. Zbog vrednosti 0 signala FCBUS procesor na prvi sledei
11309signal takta prihvata proitani podatak i signal RDBUS magistrale prebacuje u stanje visoke
11310impedanse to dovodi do toga da na isti signal takta najpre signal rdSKTR postaje 0 a zatim i signal
11311fcSKTR postaje 0. Kao rezultat, signali rdSKTR i fcSKTR imaju vrednost 1 trajanja jedna perioda
11312signala takta. !
11313! Slina je situacija i prilikom realizacije ciklusa upisa, pri emu signal wrSKTR postaje 1 kada
11314processor prebaci adresne linije ABUS15..0 i linije podataka DBUS7..0 magistrale iz stanja visoke
11315impedanse na vrednost adrese registra i sadraja za upis u neki od programski dostupnih registara
11316CR2...0, SR0, WCRH7...0, WCRL7...0, ARH7...0 ili ARL7...0 i upravljaku liniju WRBUS magistrale iz
11317stanja visoke impedanse na vrednost 0, ime zapoinje ciklus upisa. Kao rezultat, signali wrSKTR i
11318fcSKTR imaju vrednost 1 trajanja jedna perioda signala takta. !
11319! U oba sluaja se, u zavisnosti od toga koji je od registara CR 2...0, SR0, WCRH7...0, WCRL7...0, ARH7...0
11320ili ARL7...0 adresiran sadrajem na adresnim linijama ABUS 15..0 magistrale, generie vrednost 1 jednog od
11321signala selCR, selSR, selWCRH, selWCRL, selARH ili selARL, respektivno, bloka interfejs. !
11322! Pri vrednosti 1 signala rdSKTR, a u zavisnosti od toga koji od signala selCR, selSR, selWCRH,
11323selWCRL, selARH ili selARL bloka interfejs ima vrednost 1, generie se vrednost 1 jednog od signala
11324CRout, SRout, WCRHout, WCRLout, ARHout ili ARLout bloka registri, respektivno. Vrednou
113251 jednog od signala CRout, SRout, WCRHout, WCRLout, ARHout ili ARLout se obezbeuje da
11326linije podataka DBUS70 magistrale preu iz stanja visoke impedanse na vrednost sadraja jednog od
11327registara CR2...0, SR0, WCRH7...0, WCRL7...0, ARH7...0 ili ARL7...0, respektivno. Kada signal rdSKTR
11328postane 0 i signali fcSKTR, CRout, SRout, WCRHout, WCRLout, ARHout ili ARLout postanu 0,
11329pa se upravljaka linija FCBUS magistrale i linije podataka DBUS7..0 magistrale vraaju u stanje
11330visoke impedanse. !
11331! Pri vrednostima 1 signala rdSKTR i selSR, to znai da se programskim putem ita sadraj registra
11332SR0, formira se vrednost 1 signala clSR0bus bloka registri. Vrednou 1 signala clSR0bus se razred
11333SR0 statusnog registra SR0 postavlja na vrednost 0, to je indikacija prenos novog bloka podataka nije
11334zavren. !
11335! Pri vrednosti 1 signala wrSKTR, a u zavisnosti od toga koji od signala selCR, selSR, selWCRH,
11336selWCRL, selARH ili selARL ima vrednost 1, formira se vrednost 1 jednog od signala CRin, SRin,
11337WCRHin, WCRLin, ARHin ili ARLin bloka registri, respektivno. Vrednou 1 signala CRin, SRin,
11338WCRHin, WCRLin, ARHin ili ARLin se obezbeuje da se sadraj sa linija podataka DBUS70
11339magistrale upie u jedan od registara CR2...0, SR0, WCRH7...0, WCRL7...0, ARH7...0 ili ARL7...0, respektivno.
11340Kada signal wrSKTR postane 0 i signali fcKTR, CRin, SRin, WCRHin, WCRLin, ARHin ili
11341ARLin postanu 0, pa se upravljaka linija FCBUS magistrale vraa u stanje visoke impedanse. !
11342! Pri vrednostima 1 signala wrKTR, selCR, DBUS2 i DBUS0, to znai da se programskim putem
11343upisuje sadraj u registar CR 3...0 radi startovanja kontrolera za prenos iz periferije u memoriju, formira
11344se vrednost 1 signala stRDDRbus bloka registri. Vrednou 1 signala stRDDRbus se flip-flop RDDR
11345postavlja na vrednost 1, to je indikacija da je registar DR 70 raspoloiv da se u njega prenese novi
11346podatak iz registra DRAUX70 bloka registri. !

384

384

11347! Pri vrednostima 1 signala wrKTR, selCR i DBUS2 i vrednosti 0 signala DBUS0, to znai da se
11348programskim putem upisuje sadraj u registar CR 3...0 radi startovanja kontrolera za prenos iz memorije
11349u periferiju, formira se vrednost 1 signala clWRDRbus bloka registri. Vrednou 1 signala
11350clWRDRbus se flip-flop WRDR postavlja na vrednost 0, to je indikacija da registar DR7...0 nije
11351raspoloiv da se iz njega prenese novi podatak u registra DRAUX70. !
11352! Pri vrednostima 1 signala wrSKTR, selCR, DBUS2, to znai da se programskim putem upisuje
11353sadraj u registar CR3...0 radi startovanja kontrolera za prenos, i vrednosti 0 signala done, to znai da je
11354sadraj brojaa veliine bloka za prenos WCR 15...0 nula, formira se vrednost 1 signala clSR0bus bloka
11355registri. Vrednou 1 signala clSR0bus razred SR0 statusnog registra SR0 se postavlja na vrednost 0,
11356to je indikacija da je prenos bloka podataka u toku. !
11357! Pri vrednostima 1 signala wrSKTR, selCR, DBUS2 i done, to znai da se programskim putem
11358upisuje sadraj u registar CR3...0 radi startovanja kontrolera za prenos i da je sadraj brojaa veliine
11359bloka za prenos WCR15...0 nula, formira se vrednost 1 signala stSR0bus bloka registri. Vrednou 1
11360signala stSR0bus razred SR0 statusnog registra SR0 se postavlja na vrednost 1, to je indikacija da je
11361prenos bloka podataka zavren. !
11362! Pri vrednostima 1 signala wrSKTR, selCR, DBUS2, DBUS1 i done, to znai da se programskim
11363putem upisuje sadraj u registar CR3...0 radi startovanja kontrolera za prenos sa generisanjem prekida i
11364da je sadraj brojaa veliine bloka za prenos WCR 15...0 nula, formira se vrednost 1 signala prekida
11365intrbus to je indikacija da je prenos bloka podataka zavren. Signal prekida intrbus upravljake
11366jedinice uprav_bus sa signalom prekida intrper upravljake jedinice uprav_per formira u bloku
11367interfejs signal prekida intr procesora CPU. Signal prekida izaziva prelazak procesora na izvravanje
11368prekidne rutine u kojoj se programskim putem, upisivanjem sadraja koji na poziciji bita stop ima
11369vrednost 0, zaustavlja kontroler periferije. !
11370! Pri vrednostima 1 signala wrSKTR i selCR i vrednosti 0 signala DBUS2, to znai da se
11371programskim putem upisuje sadraj u registar CR 3...0 radi zaustavljanja kontrolera, formira se vrednost
113721 signala stopPER periferije PER. Vrednou 1 signala stopPER se u periferiji PER zaustavlja prenos
11373koji je u toku. !
11374
if (rdSKTR + wrSKTR) then fcSKTR,
11375
if (rdSKTRselCR) then CRout,
11376
if (rdKTRselSR) then (SRout, clSR0bus),
11377
if (rdSKTR selWCRH) then WCRHout,
11378
if (rdSKTR selWCRL) then WCRLout,
11379
if (rdSKTR selARH) then ARHout,
11380
if (rdSKTR selARL) then ARLout,
11381
if (wrSKTRselCR) then CRin,
11382
if (wrSKTRselSR) then SRin,
11383
if (wrSKTRselWCRH) then WCRHin,
11384
if (wrSKTRselWCRL) then WCRLin,
11385
if (wrSKTRselARH) then ARHin,
11386
if (wrSKTRselARL) then ARLin,
11387
if (wrSKTRselCRDBUS2DBUS0) then stRDDRbus,
11388
if (wrSKTRselCRDBUS2 DBUS 0 ) then clWRDRbus,
11389
if (wrSKTRselCRDBUS2 done ) then clSR0bus,
11390
if (wrSKTRselCRDBUS2done) then stSR0bus,
11391
if (wrSKTRselCRDBUS2 DBUS1 done) then intrbus,
11392
if (wrSKTRselCR DBUS 2 ) then stopPER
113936.3.2.1.3 Struktura upravljake jedinice
11394 Upravljaka jedinica oiene realizacije se sastoji od logikih elemenata koji na osnovu
11395upravljakih signala itanja rdSKTR i upisa wrSKTR bloka interfejs i signala logikih uslova
11396formiraju sledee upravljake signale (slika 200):
11397 signal fcSKTR bloka interfejs zavretka ili itanja nekog od registara kontrolera CR 2...0,
11398SR0, WCRH7...0, WCRL7...0, ARH7...0 ili ARL7...0 bloka registri ili upisa u neki od ovih registara
11399kontrolera,

385

385

11400 signale CRout, SRout, WCRHout, WCRLout, ARHout ili ARLout bloka registri
11401itanja registara kontrolera CR2...0, SR0, WCRH7...0, WCRL7...0, ARH7...0 ili ARL7...0,
11402 signale CRin, SRin, WCRHin, WCRLin, ARHin ili ARLin bloka registri upisa u
11403registre kontrolera CR2...0, SR0, WCRH7...0, WCRL7...0, ARH7...0 ili ARL7...0,,
11404 signale clSR0bus i stSR0bus bloka registri postavljanja na vrednost 0 i 1, respektivno,
11405razreda prenos zavren SR0 statusnog registra SR0 kontrolera,
11406 signal stRDDRbus bloka registri postavljanja na vrednost 1 flip-flopa RDDR i signal
11407clWRDR bloka registri postavljanja na vrednost 0 flip-flopa WRDR,
11408 signal prekida intrbus bloka interfejs i
11409 signal zaustavljanja periferije stopPER bloka interfejs.
11410 Signali rdSKTR i wrSKTR imaju vrednosti 1 trajanja jedna perioda signala takta. To je
11411posledica usvojenog naina generisanja signala rdCPU i wrCPU procesora CPU, na osnovu
11412kojih se formiraju signali RDBUS i WRBUS magistrale BUS i rdSKTR i wrSKTR
11413kontrolera KP, i signala fcSKTR, na osnovu koga se generiu signali FCBUS magistrale
11414BUS i fcCPU procesora CPU. Kod itanja procesor na i-ti signal takta ulazi u korak stepi koji
11415koristi da signal rdCPU postavi na vrednost 1, to redom daje i vrednost 0 signala RDBUS ,
11416vrednost 1 signala rdKTR i fcKTR, vrednost 0 signala FCBUS i vrednost 1 signala fcCPU.
11417Kako je u procesoru vrednost 1 signala fcCPU uslov za prelazak iz koraka stepi u korak stepj i
11418kako ta vrednost dolazi u koraku step i, to procesor na prvi sledei signal takta prelazi na korak
11419stepj. Zbog toga se u koraku stepi ostaje samo jedna perioda signala takta, to ima za posledicu
11420da signal rdCPU ima vrednost 1, signal RDBUS ima vrednost 0, signali rdSKTR i fcSKTR
11421imaju vrednost 1, signal FCBUS ima vrednost 0 i signal fcCPU ima vrednost 1 trajanja jedna
11422perioda signala takta. Iz istih razloga kod upisa signal wrCPU ima vrednost 1, signal WRBUS
11423ima vrednost 0, signali wrSKTR i fcSKTR imaju vrednost 1, signal FCBUS ima vrednost 0 i
11424signal fcCPU ima vrednost 1 trajanja jedna perioda signala takta. S obzirom na to da su signali
11425rdCPU i wrCPU trajanja jedna perioda signala takta i da svi signali koje generie upravljaka
11426jedinica uprav_bus ukljuuju jedan od signala rdSKTR i wrSKTR, to i svi preostali signali
11427imaju vrednosti 1 ili 0 trajanja jedna perioda signala takta.
11428 Upravljaka jedinica uprav_bus sadri kombinacione mree koje pomou upravljakih
11429signala rdSKTR i wrSKTR, koji dolaze sa bloka interfejs, signala logikih uslova selCR,
11430selSR, selWCRH, selWCRL, selARH, selARL, done, DBUS2, DBUS1 i DBUS0, koji dolaze
11431iz blokova interfejs i registri i magistrale BUS, i saglasno algoritmu generisanja upravljakih
11432signala (tabela 58) generie upravljake signale blokova operacione jedinice.
11433 Upravljaki signali blokova operacione jedinice oper se daju posebno za blok registri i blok
11434interfejs.
11435
11436
11437
11438
11439
11440
11441
11442
11443
11444
11445
11446
386

Upravljaki signali bloka registri se generiu na sledei nain:


CRout = rdSKTRselCR
SRout = rdSKTRselSR
WCRHout = rdSKTRselWCRH
WCRLout = rdSKTRselWCRL
ARHout = rdSKTRselARH
ARLout = rdSKTRselARL
CRin = wrSKTRselCR
SRin = wrSKTRselSR
WCRHin = wrSKTRselWCRH
WCRLin = wrSKTRselWCRL
ARHin = wrSKTRselARH
386

11447 ARLin = wrSKTRselARL


11448 clSR0bus = rdSKTRselSR + wrSKTRselCRDBUS2 done
11449 stRDDRbus = wrSKTRselCRDBUS2DBUS0
11450 clWRDRbus = wrSKTR selCRDBUS2 DBUS 0
11451 stSR0bus = wrSKTRselCRDBUS2done
11452Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz blokova
11453interfejs i registri operacione jedinice oper i magistrale BUS i to:
11454 rdSKTR bloka interfejs.
11455 wrSKTR bloka interfejs
11456 selCR bloka interfejs
11457 selSR bloka interfejs
11458 selWCRH bloka interfejs
11459 selWCRL bloka interfejs
11460 selARH bloka interfejs
11461 selARL bloka interfejs
11462 done bloka registri
11463 DBUS2 magistrale BUS i
11464 DBUS0 magistrale BUS.
11465

387

387

C R out

s e lS R

SR out

s e lW C R H

W C R H out

s e lW C R L

W C R Lout

s e lA R H

A R H out

s e lA R L

A R Lout

rd S K T R
s e lS R

interfejs

s e lC R

r e g is tr i
c lS R 0 b u s

in te r fe js w r K T R
in te r fe js s e lC R
BU S D B U S2

11466
11467

C R in

s e lS R

S R in

s e lW C R H

W C R H in

s e lW C R L

W C R L in

s e lA R H

A R H in

s e lA R L

A R L in

in te r fe js w r S K T R
in te r fe js
s e lC R
BU S D B U S2
BU S D B U S0

w rS K T R
s e lC R
BU S D B U S2
r e g is tr i
done
in te r fe js w rS K T R
in te r fe js
s e lC R
BU S D B U S2
r e g is tr i
done

s e lC R


interfejs

w rS K T R


interfejs

rd S K T R

interfejs

fc S K T R in te r fe js

interfejs

in te r fe js rd S K T R
in te r fe js w rS K T R

r e g is tr i
s tS R 0 b u s

in te r fe js w r S K T R
in te r fe js
s e lC R
BU S D B U S2
BU S D B U S0

BU S
s to p P E R

in te r fe js w r S K T R
in te r fe js
s e lC R
BU S D B U S2
BU S D B U S1
r e g is tr i
done

r e g is tr i
s tR D D R b u s

c lW R D W b u s

in te r fe js
in trb u s

Slika 210 Struktura upravljake jedinice uprav_bus

11468 Upravljaki signali bloka interfejs se generiu na sledei nain:


11469 intrbus = wrSKTRselCRDBUS2 DBUS1done
11470 stopPER = wrSKTRselCR DBUS 2
11471Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz bloka interfejs
11472operacione jedinice oper i magistrale BUS i to:
11473 wrSKTR bloka interfejs
11474 selCR bloka interfejs
11475 done bloka registri
11476 DBUS2 magistrale BUS
11477 DBUS1 magistrale BUS i
11478 DBUS0 magistrale BUS.
114796.3.2.2 Upravljaka jedinica periferije
11480 U ovom poglavlju se daju dijagram toka operacija, algoritam generisanja upravljakih
11481signala i struktura upravljake jedinice.

388

388

114826.3.2.2.1 Dijagram toka operacija


11483 Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 201). U
11484operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim
11485blokovima se nalaze opisi logikih uslova koji definiu grananja algoritma.
11486 U poetnom koraku vri se provera da li je kontroler startovan ili ne. Ako kontroler nije
11487startovan ostaje se u poetnom koraku i eka startovanje kontrolera. Ako je kontroler
11488startovan vri se provera da li je zadat prenos iz periferije u memoriju ili iz memorije u
11489periferiju i prelazi na odgovarajui korak.
11490 Ako je zadat prenos iz periferije u memoriju prelazi se na prenoenje podatka iz periferije u
11491kontroler. Najpre se u petlji dri zahtev periferiji da proita podatak i vri provera da li je
11492kontroler zaustavljen programskim putem upisivanjem vrednosti 0 u razred start upravljakog
11493registra i da li je periferija zavrila itanje podatka. Ukoliko se utvrdi da je kontroler
11494zaustavljen, prekida se prenoenje podataka iz periferije u kontroler, vraa se u poetni korak i
11495eka da se ponovo programskim putem upisivanjem vrednosti 1 u razred start upravljakog
11496registra startuje kontroler. Ukoliko se utvrdi da je periferija proitala podatak izlazi se iz petlje
11497i podatak prenosi iz periferije u pomoni registar podatka kontrolera.
11498 Potom se u petlji vri provera da li je kontroler zaustavljen programskim putem i da li je
11499registar podatka raspoloiv da se u njega prenese novi podatak iz pomonog registra podatka.
11500Ukoliko se utvrdi da je kontroler zaustavljen, prekida se prenoenje podataka iz periferije u
11501kontroler, vraa se u poetni korak i eka da se ponovo programskim putem startuje kontroler.
11502Ukoliko se utvrdi da je registar podatka raspoloiv, izlazi se iz petlje i podatak prenosi iz
11503pomonog registra podatka u registar podatka. Istovremeno se postavlja indikacija da registar
11504podatka nije raspoloiv da se u njega prenese novi podatak iz pomonog registra podatka sve
11505dok se programskim putem podatak ne prenese iz registra podatka u memoriju. Na kraju se
11506vraa na korak u kome se postavlja zahtev periferiji da proita sledei podatak. Opisane
11507aktivnosti se ponavljaju sve dok se kontroler ne zaustavi programskim putem.
11508 Ako je u zadat prenos iz memorije u periferiju prelazi se na prenoenje podatka iz
11509kontrolera u periferiju. Najpre se u petlji vri provera da li je kontroler zaustavljen
11510programskim putem i da li je registar podatka raspoloiv da se iz njega prenese novi podatak u
11511pomoni registar podatka. Ukoliko se utvrdi da je kontroler zaustavljen, prekida se prenoenje
11512podataka iz kontrolera u periferiju, vraa se u poetni korak i eka da se ponovo programskim
11513putem, startuje kontroler. Ukoliko se utvrdi da je registar podatka raspoloiv izlazi se iz petlje i
11514podatak prenosi iz registra podatka u pomoni registar podatka. Istovremeno se postavlja
11515indikacija da registar podatka nije raspoloiv da se iz njega prenosi podatak u pomoni registar
11516podatka sve dok se programskim putem podatak ne prenese iz memorije u registar podatka.

389

389

D a li je k o n tro le r
s ta rto v a n ?
1

D a li je z a d a t p r e n o s iz
p e rife rije u m e m o riju ?

0
1

D a li je k o n tro le r
z a u s ta v lje n ?

Z a h te v p e rife riji z a ita n je i


p re n o e n je p o d a tk a u p rih v a tn i
re g is ta r p o d a tk a

D a li p o d a ta k m o e d a s e
p re n e s e iz re g is tr a
p o d a tk a u p o m o n i
re g is ta r p o d a tk a ?

D a li je k o n tro le r
z a u s ta v lje n ?

0
0

P re n o s p o d a tk a iz re g is tra
p o d a tk a u p o m o n i re g is ta r
p o d a tk a

D a li je k o n tro le r
z a u s ta v lje n ?

D a li je k o n tro le r
z a u s ta v lje n ?

D a li u r e g is ta r p o d a tk a
m o e d a se p re n e se
p o d a tk a iz p o m o n o g
re g is tr a p o d a tk a ?
1

P re n o s p o d a tk a iz p o m o n o g
re g is tr a p o d a tk a u re g is ta r
p o d a tk a

Z a h te v p e rife riji z a u p is
p o d a tk a iz p o m o n o g re g is tr a
p o d a tk a
1

D a li je p e rife r ija z a v r ila


ita n je p o d a tk a ?
1

In d ik a c ija d a u re g is tru p o d a tk a
n e m a p o d a tk a z a p re n o s u
p o m o n i re g is ta r p o d a tk a
1

In d ik a c ija d a u re g is ta r p o d a tk a
n e m o e d a s e p re n o s i p o d a ta k
iz p o m o n o g r e g is tra p o d a tk a

D a li je k o n tro le r
z a u s ta v lje n ?
0

D a li je p e r ife r ija z a v r ila


u p is p o d a tk a ?

11517
11518

Slika 211 Dijagram toka operacija

11519 Zatim se vri provera da li je kontroler zaustavljen programskim putem. Ukoliko se utvrdi
11520da je kontroler zaustavljen, prekida se prenoenje podataka iz kontrolera u periferiju, vraa se
11521u poetni korak i eka da se ponovo programskim putem startuje kontroler. Ukoliko se utvrdi
11522da kontroler nije zaustavljen u petlji se periferiji dri zahtev da upie sledei podatak i vre
11523provere da li je kontroler zaustavljen programskon putem i da li je periferija zavrila upis
11524padatka. Ukoliko se utvrdi da je kontroler periferije zaustavljen, prekida se prenoenje
11525podataka iz kontrolera u periferiju, vraa se u poetni korak i eka da se ponovo programskim
11526putem startuje kontroler. Ukoliko se utvrdi da je periferija zavrila upis podatka iz pomonog
11527registra podatka kontrolera, izlazi se iz ove petlje i vraa u petlju u kojoj se vri provera da li je
11528kontroler zaustavljen programskim putem i da li je registar podatka kontrolera raspoloiv da se
11529iz njega prenese novi podatak u pomoni registar podatka kontrolera. Opisane aktivnosti se
11530ponavljaju sve dok se kontroler ne zaustavi programskim putem.

390

390

115316.3.2.2.2 Algoritam generisanja upravljakih signala


11532 Algoritam generisanja upravljakih signala je formiran na osnovu dijagrama toka operacija
11533(slika 201) i dat u obliku dijagrama toka upravljakih signala (slika 202) i sekvence
11534upravljakih signala po koracima (tabela 59).
s te p

CR
1

CR
s te p

2
1

CR
1

CR

if ( C R 2 R D D R ) th e n ld D R ,
if ( C R 2 R D D R ) th e n c lR D D R p e r;

w rP E R
CR
1

CR

fc P E R

11535
11536

fc P E R

s te p

W RD R
s te p

rd P E R , if fc P E R th e n ld D R A U X

if (C R 2 W R D R ) th e n D R A U X in ,
if (C R 2 W R D R ) th e n c lW R D R p e r ;
0

s te p

RD D R

Slika 212 Dijagram toka upravljakih signala

11537 Dijagram toka upravljakih signala je predstavljen operacionim i uslovnim blokovima. U


11538operacionim blokovima se nalaze upravljaki signali i uslovi pod kojima se oni generiu. U
11539uslovnim blokovima se nalaze signali logikih uslova.
11540 U sekvenci upravljakih signala po koracima se koriste iskazi za signale i skokove. Iskazi za
11541signale su oblika
11542 signali i
11543 if uslov then signali
11544Prvi iskaz sadri spisak upravljakih signala signali koji se bezuslovno generiu. Drugi iskaz
11545sadri signal uslov i spisak upravljakih signala signali koji se generiu ukoliko signal uslov
11546ima vrednost 1. Iskazi za skokove su oblika
11547 br (if uslov then stepA).
11548Ovaj iskaz sadri signal uslov i korak stepA na koji se prelazi ukoliko signal uslov ima vrednost
115491 i u daljem tekstu se referie kao uslovni skok.
11550 Objanjenja vezana za generisanje upravljakih signala su data zajedniki za dijagram toka
11551upravljakih signala i sekvencu upravljakih signala po koracima i to u okviru sekvence
11552upravljakih signala po koracima.
11553
Tabela 61 Sekvenca upravljakih signala po koracima
11554! U koraku step0 se ostaje i ne generie vrednost 1 ni jednog od upravljakih signala sve dok signal CR2
11555bloka registri ima vrednost 0. Signal CR2 postaje 1 tek kada se programskim putem startuje kontroler
11556periferije. Tom prilikom se u upravljaki registar CR 20 bloka registri upisuje sadraj koji na poziciji
11557razreda CR2 ima vrednost 1. Na poziciji razreda CR 0 je vrednost 1 ili 0 u zavisnosti od toga da li je
11558zadat prenos iz periferije u memoriju ili iz memorije u periferiju, respektivno. Na poziciji razreda CR 1 je
11559vrednost 1 ili 0 u zavisnosti od toga da li je zadat reim rada sa generisanjem ili bez generisanja prekida,
11560respektivno. Pri vrednostima 1 signala CR2 i CR0 se prelazi na korak step1 koji odgovara prenosu iz
11561periferije u memoriju. Pri vrednostima 1 i 0 signala CR2 i CR0, respektivno, se prelazi na korak step 3,
11562koji odgovara prenosu iz memorije u periferiju. !

391

391

11563
step0 br (if (CR2CR0) then step1),
11564
br (if (CR2 CR 0 ) then step3);
11565! U korak step1 se dolazi iz koraka step0 ili koraka step2. U ovom koraku se generie vrednost 1 signala
11566rdPER periferije PER koji predstavlja zahtev periferiji da proita sledei podatak. Ukoliko signal CR2
11567ima vrednost 0, to znai da je programskim putem upisivanjem vrednosti 0 u razred CR2 upravljakog
11568registra CR20 zaustavljen rad kontrolera, prelazi se u korak step0. Ukoliko signal CR2 ima vrednost 1,
11569ili se ostaje u koraku step1 ili se prelazi u korak step2 u zavisnosti od toga da li signal fcPER periferije
11570PER, ima vrednost 0 ili 1, respektivno. Vrednost 0 signala fcPER je indikacija da itanje podatka u
11571periferiji jo uvek traje, a vrednost 1 da je podatak proitan i da se nalazi na linijama PIN 7...0 periferije.
11572Pri vrednostima 1 signala CR2 i fcPER se generie vrednost 1 signala ldDRAUX. Ovim signalom se
11573sadraj iz periferije, koji u kontroler dolazi po linijama PIN7...0, puta kroz multiplekser MP2 bloka
11574registri i upisuje u pomoni registar podatka DRAUX7...0 bloka registri. !
11575
step1 rdPER, if (CR2fcPER) then ldDRAUX,
11576
br (if CR 2 then step0),
11577
br (if (CR2fcPER) then step2);
11578! U korak step2 se dolazi iz koraka step1. Ukoliko signal CR2 ima vrednost 0, prelazi se u korak step0.
11579Ukoliko signal CR2, ima vrednost 1, ili se ostaje u koraku step2 ili se prelazi u korak step1 u zavisnosti
11580od toga da li signal RDDR bloka registri ima vrednost 0 ili 1, respektivno. Vrednost 0 signala RDDR je
11581indikacija da registar podatka DR 7...0 nije raspoloiv, jer upravljaka jedinica memorije uprav_mem jo
11582uvek nije prenela prethodni podatak iz registra DR7...0 u memoriju. Vrednost 1 signala RDDR je
11583indikacija da je registar podatka DR7...0 raspoloiv, pa se generiu vrednosti 1 signala ldDR i
11584clRDDRper. Vrednou 1 signala ldDR se sadraj registra DRAUX15...0 bloka registri puta kroz
11585multiplekser MP1 bloka registri i upisuje u registar podatka DR7...0. Vrednou 1 signala clRDDRper
11586se u flip-flop RDDR upisuje vrednost 0. Ova vrednost je indikacija da registar DR 7...0 nije raspoloiv da
11587se u njega prenese novi podatak iz registra DRAUX 7...0 sve dok se programskim putem prethodni
11588podatak ne prenese iz registra DR7...0 u memoriju. !
11589
step2 if (CR2RDDR) then (ldDR, clRDDRper),
11590
br (if CR 2 then step0),
11591
br (if (CR2RDDR) then step1);
11592! U korak step3 se dolazi iz koraka step0 ili koraka step4. Ukoliko signal CR2 ima vrednost 0, prelazi se u
11593korak step0. Ukoliko signal CR2, ima vrednost 1, ili se ostaje u koraku step3 ili se prelazi u korak step4 u
11594zavisnosti od toga da li signal WRDR bloka registri ima vrednost 0 ili 1, respektivno. Vrednost 0
11595signala WRDR je indikacija da registar podatka DR7...0 bloka registri nije raspoloiv, jer upravljaka
11596jedinica memorije uprav_mem jo uvek nije prenela novi podatak iz memorije u registar DR 7...0.
11597Vrednost 1 signala WRDR je indikacija da je registar DR7...0 raspoloiv jer je upravljaka jedinica
11598memorije uprav_mem prenela podatak iz memorije u registar podatka DR 7...0. Pri prenosu podatka iz
11599memorije u registar DR7...0 upravljaka jedinica uprav_mem vrednou 1 signala stWRDRmem
11600postavlja flip-flop WRDR na vrednost 1. Pri vrednosti 1 signala WRDR generiu se vrednosti 1 signala
11601DRAUXin i clWRDRper. Vrednou 0 signala ldDRAUX se sadraj registra DR7...0 puta kroz
11602multiplekser MP2 bloka registri, a vrednou 1 signala DRAUXin se upisuje u pomoni registar
11603podatka DRAUX7...0 bloka registri. Vrednou 1 signala clWRDRper se u flip-flop WRDR upisuje
11604vrednost 0. Ova vrednost je indikacija da registar DR7...0 nije raspoloiv i da njegov sadraj ne moe da
11605se prenese u registar DRAUX7...0 sve dok upravljaka jedinica memorije uprav_mem novi podatak ne
11606prenese iz memorije u registar DR7...0. !
11607
step3 if (CR2WRDR) then (DRAUXin, clWRDRper),
11608
br (if CR 2 then step0),
11609
br (if (CR2WRDR) then step4);
11610! U korak step4 se dolazi iz koraka step3. U ovom koraku se generie vrednost 1 signala wrPER
11611periferije PER koji predstavlja zahtev periferiji da upie podatak iz registra DRAUX 70 koji je prisutan
11612na linijama POUT70. Ukoliko signal CR2 ima vrednost 0, prelazi se u korak step0. Ukoliko signal CR2
11613ima vrednost 1, ili se ostaje u koraku step4 ili se prelazi u korak step3 u zavisnosti od toga da signal
11614fcPER periferije PER ima vrednost 0 ili 1, respektivno. Vrednost 0 signala fcPER je indikacija da je
11615upis podatka iz registra DRAUX7...0 u periferiju u toku, a vrednost 1 da je podatak upisan. !
11616
step4 wrPER,
11617
br (if CR 2 then step0),

392

392

11618

br (if (CR2fcPER) then step3);

116196.3.2.2.3 Struktura upravljake jedinice


11620 Upravljaka jedinica oiene realizacije se sastoji iz sledeih blokova: blok generisanje nove
11621vrednosti brojaa koraka, blok broja koraka, blok dekoder koraka i blok generisanje
11622upravljakih signala. (slika 203). Struktura i opis blokova upravljake jedinice se daju u
11623daljem tekstu.
0

g e n e r is a n je
n o v e v r e d n o s ti

v a l1
v a l3

v a l3

m r
1

2 ...0

CN T
2

C N T

...

...

IN C

CN T

ld C N T
in c C N T

LD

D C

b r o ja k o r a k a

d eko d er ko ra ka
0

g e n e r is a n je
u p ra v lja k ih
s ig n a la
b lo k o v a
o p e ra c io n e
je d in ic e

g e n e ris a n je
u p ra v lja k ih
s ig n a la
u p ra v lja k e
je d in ic e

CR0
CR1
CR2
W RD R
RD D R

fc P E R P E R

ldCNT
incCNT
val3
val1
val0

g e n e ris a n je
u p ra v lja k ih
s ig n a la
p e r ife r ije
PER

blok interfejs

...

blok registri

...

wrPER

...

rdPER

11624
11625

CN T


registri

M R 2
C LK
2

CLK

g e n e r is a n je
u p r a v lja k ih s ig n a la

Slika 213 Struktura upravljake jedinice uprav_per

11626 Blok generisanje nove vrednosti brojaa koraka slui za generisanje vrednosti koju treba
11627upisati u broja CNT2...0. Potreba za ovim se javlja kada treba odstupiti od sekvencijalnog
11628generisanja upravljakih signala. Analizom algoritma generisanja upravljakih signala
11629operacione jedinice (poglavlje 6.2.2.2.2) se utvruje da su 0, 1 i 3 vrednosti koje treba upisati u
11630broja CNT2...0 da bi se realizovala odstupanja od sekvencijalnog generisanja upravljakih
11631signala. Te vrednosti se formiraju na ulazima 2, 1 i 0 brojaa CNT 2...0 pomou signala val0, val1
11632i val3 pri emu signal val0 ima vrednost 1 samo onda kada treba upisati 0, signal val1 ima
11633vrednost 1 samo onda kada treba upisati 1 i signal val3 ima vrednost 1 samo onda kada treba
11634upisati 3. Time se obezbeuje da na ulazima 2, 1 i 0 brojaa CNT 2...0 budu vrednosti 0, 0 i 0
11635onda kada signal val0 ima vrednost 1, vrednosti 0, 0 i 1 onda kada signal val1 ima vrednost 1 i
11636vrednosti 0, 1, i 1 onda kada signal val3 ima vrednost 1.
11637 Blok broja koraka sadri broja CNT2...0. Broja CNT2...0 svojom trenutnom vrednou
11638obezbeuje aktivne vrednosti odreenih upravljakih signala. Broja CNT 2...0 moe da radi u
11639sledeim reimima:
11640 reim inkrementiranja,
11641 reim skoka i
393

393

11642

reim mirovanja.

11643 U reimu inkrementiranja pri pojavi signala takta vri se uveavanje sadraja brojaa
11644CNT2...0 za jedan. Ovim reimom se obezbeuje sekvencijalno generisanje upravljakih signala
11645iz algoritma generisanja upravljakih signala (poglavlje 6.2.2.2.2). Ovaj reim rada se
11646obezbeuje vrednou 1 signala incCNT. Signal incCNT je uvek 0 sem kada treba obezbediti
11647reim inkrementiranja.
11648 U reimu skoka pri pojavi signala takta vri se upis nove vrednosti u broja CNT 2...0. Ovim
11649reimom se obezbeuje odstupanje od sekvencijalnog generisanja upravljakih signala iz
11650algoritma generisanja upravljakih signala (poglavlje 6.2.2.2.2). Ovaj reim rada se obezbeuje
11651vrednou 1 signala ldCNT. Signal ldCNT je 0 sem kada treba obezbediti reim skoka.
11652 U reimu mirovanja pri pojavi signala takta ne menja se vrednost brojaa CNT 2...0. Ovaj
11653reim rada se obezbeuje vrednostima 0 signala incCNT i ldCNT. Ovi signali su 0 kada se u
11654koraku
11655 step0 pri vrednosti 1 signala T0 eka da kontroler bude startovan upisivanjem vrednosti 1
11656u razred CR2 upravljakog registra kontrolera,
11657 step1 pri vrednosti 1 signala T1 eka da itanje u periferiji bude zavreno i signal fcPER
11658postane 1,
11659 step2 pri vrednosti 1 signala T2 eka da registar podatka DR70 bude raspoloiv za
11660prebacivanje podatka iz pomonog registra podatka DRAUX70 i signal RDDR postane 1,
11661 step3 pri vrednosti 1 signala T3 eka da pomoni registar podatka DRAUX70 bude
11662raspoloiv za prebacivanje podatka iz registra podatka DR70 i signal WRDR postane 1 i
11663 step4 pri vrednosti 1 signala T4 eka da upis u periferiju bude zavren i signal fcPER
11664postane 1.
11665 Blok dekoder koraka sadri dekoder DC. Na ulaze dekodera DC vode se izlazi brojaa
11666CNT2...0. Dekodovana stanja brojaa CNT2...0 pojavljuju se kao signali T0 do T7 na izlazima
11667dekodera DC. Svakom koraku iz algoritma generisanja upravljakih signala (poglavlje
116686.2.2.2.2) dodeljen je jedan od ovih signala i to koraku step 0 signal T0, koraku step1 signal T1,
11669itd.
11670 Blok generisanje upravljakih signala sadri kombinacione mree koje pomou signala T0
11671do T7 koji dolaze sa bloka dekoder koraka upravljake jedinice, signala logikih uslova koji
11672dolaze iz blokova operacione jedinice i saglasno algoritmu generisanja upravljakih signala
11673(poglavlje 6.2.2.2.2) generiu upravljake signale. Upravljaki signali se generiu na identian
11674nain kao i upravljaki signali procesora CPU (poglavlje 6.2.2.2.2).
11675
11676
11677
11678

Blok generisanje upravljakih signala generie tri grupe upravljakih signala i to:
upravljake signale periferije PER,
upravljake signale blokova operacione jedinice oper i
upravljake signale upravljake jedinice uprav_per.

11679 Upravljaki signali periferije PER se generiu na sledei nain:


11680 rdPER = CR2T1
11681 wrPER = CR2T4
11682Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz blokova
11683operacione jedinice i to:
11684 CR2 blok registri.
11685 Upravljaki signali blokova operacione jedinice oper se daju posebno za blok registri i blok
11686interfejs.

394

394

11687 Upravljaki signali bloka registri se generiu na sledei nain:


11688 clRDDRper = CR2RDDRT2
11689 clWRDRper = CR2WRDRT3
11690 ldDR = CR2RDDRT2
11691 DRAUXin = CR2WRDRT3
11692 ldDRAUX = CR2fcPERT1
11693Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz blokova
11694operacione jedinice i periferije PER i to:
11695 CR2 blok registri,
11696 RDDR blok registri,
11697 WRDR blok registri,
11698 fcPER periferije PER.
11699 Upravljaki signali upravljake jedinice uprav_per se generie na sledei nain:
11700 ldCNT = val0+ val1+ val3
11701 val0 = CR 2 (T1 + T2 + T3 + T4 )
11702 val1 = CR2RDDRT2
11703 val3 = CR2 CR 0 T0 + CR2fcPERT4
11704 incCNT = CR2CR0T0 + CR2fcPERT1 + CR2WRDRT3
11705Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz periferije PER i
11706pojedinih blokova operacione jedinice oper i to:
11707 fcPER periferija PER,
11708 CR0 blok registri,
11709 CR2 blok registri,
11710 RDDR blok registri i
11711 WRDR blok registri.
117126.3.2.3 Upravljaka jedinica memorije
11713 U ovom odeljku se daju dijagram toka operacija, algoritam generisanja upravljakih signala i
11714struktura upravljake jedinice uprav_mem.
117156.3.2.3.1 Dijagram toka operacija
11716 Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 214). U
11717operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim
11718blokovima se nalaze opisi logikih uslova koji definiu grananja algoritma.

395

395

K o n tro le r s ta rto v a n ?
1

Z a d a ta v e li in a b lo k a p o d a ta k a
z a p re n o s a n u la ?
0

Z a d a t re im p re n o s a iz p e rife rije
1
u m e m o r iju ?

0
1

K o n tro le r z a u s ta v lje n ?

K o n tro le r z a u s ta v lje n ?

R e g is ta r p o d a tk a ra s p o lo iv z a
u p is p o d a tk a iz m e m o rije ?

R e g is ta r p o d a tk a ra s p o lo iv z a
u p is p o d a tk a u m e m o riju ?

P o s ta v lja n je z a h te v a z a m a g is tra lu
K o n tro le r z a u s ta v lje n ?

P o s ta v lja n je z a h te v a z a m a g is tra lu
0

K o n tro le r z a u s ta v lje n ?

P o s ta v lje n a d o z v o la z a
k o r i e n je m a g is tr a le ?

U k id a n je z a h te v a z a m a g is tra lu

P o s ta v lje n a d o z v o la z a
m a g is tra lu ?

S la n je s a d r a ja a d re s n o g r e g is tr a i
in d ik a c ije z a ita n je
iz m e m o rije
ita n je iz v r e n o ?

S la n je s a d r a ja a d re s n o g re g is tra ,
re g is tr a p o d a tk a i in d ik a c ije z a u p is
u m e m o riju
0

U p is iz v r e n ?

11719
11720

U k id a n je z a h te v a z a m a g is tra lu

Slika 214 Dijagram toka operacija

11721 U poetnom koraku dijagrama toka operacija vri se provera da li je kontroler startovan i u
11722sluaju da kontroler nije startovan ostaje se u poetnom koraku. Ako je kontroler startovan,
11723vri se provera da li je zadata veliina bloka podataka za prenos nula i u sluaju da je nula
11724ostaje se u poetnom koraku. U sluaju da je kontroler periferije startovan i da je zadata
11725veliina bloka podatak za prenos razliita od nule, prelazi se na odgovarajue korake u
11726zavisnosti od toga da li je zadat prenos iz periferije u memoriju ili iz memorije u periferiju.
11727 Ako je zadat prenos iz periferije u memoriju prelazi se na prenoenje podataka iz registra
11728podatka u memoriju. Najpre se u petlji proverava da li je kontroler programskim putem
11729zaustavljen i da li je registar podatka raspoloiv za upis podatka u memoriju. Ukoliko je
11730kontroler programskim putem zaustavljen, izlazi se iz petlje i vraa u poetni korak u kome se
11731eka da kontroler bude ponovo startovan. Ukoliko kontroler nije programskim putem
11732zaustavljen, u petlji se ostaje sve dok registar podatka ne postane raspoloiv za upis podatka u
11733memoriju. To e se dogoditi kada upravljaka jedinica uprav_per, koja je odmah po
11734startovanju kontrolera periferije krenula sa itanjem podatka iz periferije, podatak prenese
11735najpre iz periferije u pomoni registar podatka i zatim iz pomonog registra podatka u registar
11736podatka.
11737 Potom se prelazi na dobijanje dozvole korienja magistrale radi upisa podatka iz registra
11738podatka u memoriju. Najpre se u petlji postavlja zahtev za korienje magistrale i proverava da
11739li je kontroler programskim putem zaustavljen i da li je procesor postavio dozvolu za
11740korienje magistrale. Ukoliko je kontroler programskim putem zaustavljen, izlazi se iz petlje i
11741vraa u poetni korak u kome se eka da kontroler bude ponovo startovan. Ukoliko kontroler
11742nije programskim putem zaustavljen, u petlji se ostaje sve dok procesor ne postavi dozvolu
11743korienja magistrale. To e se dogoditi odmah po postavljanju zahteva za korienje

396

396

11744magistrale ukoliko procesor ne koristi magistralu ili kasnije kada procesor zavri sa
11745korienjem magistrale.
11746 Kada se utvrdi da je procesor postavio dozvolu za korienja magistrale izlazi se iz petlje i
11747ulazi u sledeu petlju u kojoj se adresa, podatak i upravljaki signal upisa po linijama
11748magistrale alju memoriji i eka da memorija poalje po liniji magistrale upravljaki signal
11749zavretka upisa.
5

In k re m e n trira n je a d re s n o g re g is tr a i
d e k re m e n tira n je re g is tr a b ro ja re i

In k r e m e n tr ira n je a d re s n o g re g is tra i
d e k re m e n tira n je re g is tra b r o ja re i

P o s ta v lja n je in d ik a c ije d a n o v i
p o d a ta k m o e d a s e p re n e s e iz
re g istra p o d a tk a
u p o m o n i re g is ta r p o d a tk a

P o s ta v lja n je in d ik a c ije d a n o v i
p o d a ta k m o e d a s e p re n e s e iz
p o m o n o g re g is tra p o d a tk a
u r e g is ta r p o d a tk a

K o n tro le r z a u s ta v lje n ?

K o n tro le r z a u s ta v lje n ?

Z a v re n p re n o s ?

U k id a n je z a h te v a z a m a g is tra lu
0

Z a v ren p ren o s ?

P o s ta v lja n je in d ik a to ra k r a j s ta tu s n o g
re g istra n a v re d n o s t 1

Z a d a t re im ra d a s a
g e n e r is a n je m p re k id a ?

Z a d a t re im ra d a s a
g e n e ris a n je m p r e k id a ?
1

G e n e risa n je p re k id a

G e n e ris a n je p re k id a

U k id a n je z a h te v a z a m a g is tra lu

U k id a n je z a h te v a z a m a g is tra lu
1

Z a d a t p a k e ts k i p re n o s ?
0

Z a d a t p a k e ts k i p r e n o s ?
0

U k id a n je z a h te v a z a m a g is tra lu
K o n tro le r z a u s ta v lje n ?

U k id a n je z a h te v a z a m a g is tra lu
0

K o n tro le r z a u s ta v lje n ?

U k id a n je z a h te v a z a m a g is tra lu

R e g is ta r p o d a tk a ra s p o lo iv z a
u p is p o d a tk a iz m e m o rije ?

U k id a n je z a h te v a z a m a g is tra lu

R e g is ta r p o d a tk a ra s p o lo iv z a
u p is p o d a tk a u m e m o r iju ?

S la n je s a d r a ja a d re s n o g r e g is tr a i
in d ik a c ije z a ita n je
iz m e m o r ije
ita n je z a v r e n o ?

11750
11751

P o s ta v lja n je in d ik a to ra k r a j s ta tu s n o g
re g is tra n a v re d n o s t 1

U k id a n je z a h te v a z a m a g is tr a lu

S la n je s a d r a ja a d re s n o g re g is tra ,
re g is tr a p o d a tk a i in d ik a c ije z a u p is
u m e m o riju
0

U p is z a v r e n ?

Slika 214 Dijagram toka operacija (nastavak)

11752 Po zavretku upisa izlazi se iz petlje i prelazi se na korak u kome se inkrementira sadraj
11753adresnog registra i dekrementira sadraj registra broja rei za prenos. Kao rezultat u adresnom
11754registru sa sada nalazi adresa memorijske lokacije u koju treba upisati sledei podatak, a u
11755registru broja rei za prenos broj preostalih rei za prenos iz periferije u memoriju. Pored toga
11756postavlja se indikacija da registar podatka nije raspoloiv za upis u memoriju. Ovo je indikacija
11757da upravljaka jedinica uprav_per, koja je odmah po prenoenju prethodnog podatka iz
397

397

11758pomonog registra podatka u registar podatka krenula sa itanjem sledeeg podatka iz


11759periferije, podatak prenese najpre iz periferije u pomoni registar podatka i zatim iz pomonog
11760registra podatka u registar podatka.
11761 Potom se ponovo proverava da li je kontroler programskim putem zaustavljen i ukoliko je
11762jeste, ukida se zahtev za korienje magistrale i vraa u poetni korak u kome se eka da
11763kontroler bude ponovo startovan. Ukoliko kontroler nije programskim putem zaustavljen,
11764proverava se da li je kao rezultat dekrementiranja sadraj brojaa rei postao nula, to je
11765indikacija da je zavren prenos podataka, ili je jo uvek vei od nule, to je indikacija da treba
11766produiti sa prenosom podataka.
11767 Ukoliko je zavren prenos podataka, indikator kraj statusnog registra se postavlja na
11768vrednost 1 i ukoliko je zadat reim rada sa generisanjem prekida, generie se prekid. Pored
11769toga se ukida zahtev za korienje magistrale i vraa u poetni korak u kome se eka da
11770kontroler bude ponovo startovan. Ukoliko nije zavren, prenos podataka se produava na dva
11771naina u zavisnosti od toga da li je zadat pojedinani ili paketski prenos.
11772 Ukoliko nije zadat paketski ve pojedinani prenos, ukida se zahtev za korienje magistrale
11773i vraa na korak u kome se najpre eka da registar podatka postane raspoloiv za upis podatka
11774u memoriju, to e se desiti kada upravljaka jedinica uprav_per prenese sledei podatak iz
11775pomonog registra podatka u registar podatka. Tada se ponavlja ve opisani postupak po
11776kome se najpre postavlja dozvola za korienje magistrale i po dobijanju dozvole podatak
11777upisuje iz registra podatka u memoriju.
11778 Ukoliko je zadat paketski prenos u petlji se proverava da li je kontroler programskim putem
11779zaustavljen i da li je registar podatka raspoloiv za upis podatka u memoriju. Ukoliko je
11780kontroler programskim putem zaustavljen, izlazi se iz petlje i vraa u poetni korak u kome se
11781eka da kontroler bude ponovo startovan. Ukoliko kontroler nije programskim putem
11782zaustavljen, u petlji se ostaje sve dok registar podatka ne postane raspoloiv za upis podatka u
11783memoriju. To e se dogoditi kada upravljaka jedinica uprav_per, koja je odmah po prenoenju
11784prethodnog podatka iz pomonog registra podatka u registar podatka krenula sa itanjem
11785sledeeg podatka iz periferije, podatak prenese najpre iz periferije u pomoni registar podatka i
11786zatim iz pomonog registra podatka u registar podatka.
11787 Kada se utvrdi da je registar podatka raspoloiv za upis podatka u memoriju izlazi se iz
11788petlje i ulazi u sledeu petlju u kojoj se adresa, podatak i upravljaki signal upisa po linijama
11789magistrale alju memoriji i eka da memorija poalje po liniji magistrale upravljaki signal
11790zavretka upisa.
11791 Po zavretku upisa izlazi se iz petlje i prelazi se na korak u kome se inkrementira sadraj
11792adresnog registra, dekrementira sadraj registra broja rei za prenos i ponavlja ve opisani
11793postupak na jedan od dva mogua naina u zavisnosti od toga da li je dekrementiranjem
11794sadraja registra broja rei dobijen sadraj koju ukazuje da prenos treba zavriti ili produiti.
11795 Ako je zadat prenos iz memorije u periferiju prelazi se na prenoenje podataka iz memorije
11796u registar podatka. Najpre se u petlji proverava da li je kontroler programskim putem
11797zaustavljen i da li je registar podatka raspoloiv za upis podatka iz memorije. Ukoliko je
11798kontroler programskim putem zaustavljen, izlazi se iz petlje i vraa u poetni korak u kome se
11799eka da kontroler bude ponovo startovan. Ukoliko kontroler nije programskim putem
11800zaustavljen, u petlji se ostaje sve dok registar podatka ne postane raspoloiv za upis podatka iz
11801memorije. Na poetku pri prenosu prve rei registar podatka je uvek raspoloiv, dok e za
11802prenos svake seledee reli biti raspoloiv tek kada upravljaka jedinica uprav_per, koja je
11803odmah po startovanju kontrolera periferije krenula sa upisivanjem podataka u periferiju,
11804prethodni podatak prenese iz registra podatka u pomoni registar podatka i zatim zapone upis
11805podatka iz pomonog registra podatka u periferiju.

398

398

11806 Potom se prelazi na dobijanje dozvole korienja magistrale radi itanja podatka iz
11807memorije i upisa u registar podatka. Najpre se u petlji postavlja zahtev za korienje magistrale
11808i proverava da li je kontroler programskim putem zaustavljen i da li je procesor postavio
11809dozvolu za korienje magistrale. Ukoliko je kontroler programskim putem zaustavljen, izlazi
11810se iz petlje i vraa u poetni korak u kome se eka da kontroler bude ponovo startovan.
11811Ukoliko kontroler nije programskim putem zaustavljen, u petlji se ostaje sve dok procesor ne
11812postavi dozvolu korienja magistrale. To e se dogoditi odmah po postavljanju zahteva za
11813korienje magistrale ukoliko procesor ne koristi magistralu ili kasnije kada procesor zavri sa
11814korienjem magistrale.
11815 Kada se utvrdi da je procesor postavio dozvolu za korienja magistrale izlazi se iz petlje i
11816ulazi u sledeu petlju u kojoj se adresa i upravljaki signal itanja po linijama magistrale alju
11817memoriji i eka da memorija poalje po linijama podataka magistrale proitani podatak i po
11818liniji magistrale upravljaki signal zavretka itanja.
11819 Po zavretku itanja izlazi se iz petlje i prelazi se na korak u kome se inkrementira sadraj
11820adresnog registra i dekrementira sadraj registra broja rei za prenos. Kao rezultat u adresnom
11821registru sa sada nalazi adresa memorijske lokacije sa koje treba proitati sledei podatak, a u
11822registru broja rei za prenos broj preostalih rei za prenos iz memorije u periferiju. Pored toga
11823postavlja se indikacija da registar podatka nije raspoloiv za upis iz memorije. Ovo je indikacija
11824da upravljaka jedinica uprav_per, koja je odmah po prenoenju prethodnog podatka iz
11825registra podatka u pomoni registar podatka krenula sa njegovim upisom u periferiju, moe
11826kada zavri sa njegovim upisom u periferiju, da prenese novi podatak najpre iz registar podatka
11827u pomoni registar podatka i da krene sa njegovim upisom u periferiju.
11828 Potom se ponovo proverava da li je kontroler programskim putem zaustavljen i ukoliko je
11829jeste, ukida se zahtev za korienje magistrale i vraa u poetni korak u kome se eka da
11830kontroler bude ponovo startovan. Ukoliko kontroler nije programskim putem zaustavljen,
11831proverava se da li je kao rezultat dekrementiranja sadraj brojaa rei postao nula, to je
11832indikacija da je zavren prenos podataka, ili je jo uvek vei od nule, to je indikacija da treba
11833produiti sa prenosom podataka.
11834 Ukoliko je zavren prenos podataka, indikator kraj statusnog registra se postavlja na
11835vrednost 1 i ukoliko je zadat reim rada sa generisanjem prekida, generie se prekid. Pored
11836toga se ukida zahtev za korienje magistrale i vraa u poetni korak u kome se eka da
11837kontroler bude ponovo startovan. Ukoliko nije zavren, prenos podataka se produava na dva
11838naina u zavisnosti od toga da li je zadat pojedinani ili paketski prenos.
11839 Ukoliko nije zadat paketski ve pojedinani prenos, ukida se zahtev za korienje magistrale
11840i vraa na korak u kome se najpre eka da registar podatka postane raspoloiv za upis podatka
11841iz memorije, to e se desiti kada upravljaka jedinica uprav_per prenese prethodni podatak iz
11842registra podatka u pomoni registar podatka i krene sa njegovim upisom u periferiju. Tada se
11843ponavlja ve opisani postupak po kome se najpre postavlja dozvola za korienje magistrale i
11844po dobijanju dozvole podatak upisuje iz memroije u registar podatka.
11845 Ukoliko je zadat paketski prenos u petlji se proverava da li je kontroler programskim putem
11846zaustavljen i da li je registar podatka raspoloiv za upis podatka iz memorije. Ukoliko je
11847kontroler programskim putem zaustavljen, izlazi se iz petlje i vraa u poetni korak u kome se
11848eka da kontroler bude ponovo startovan. Ukoliko kontroler nije programskim putem
11849zaustavljen, u petlji se ostaje sve dok registar podatka ne postane raspoloiv za upis podatka iz
11850memorije to e se desiti kada upravljaka jedinica uprav_per prenese prethodni podatak iz
11851registra podatka u pomoni registar podatka i krene sa njegovim upisom u periferiju.
11852 Kada se utvrdi da je registar podatka raspoloiv za upis podatka iz memorije izlazi se iz
11853petlje i ulazi u sledeu petlju u kojoj se adresa i upravljaki signal itanja po linijama magistrale

399

399

11854alju memoriji i eka da memorija poalje po linijama podataka magistrale proitani podatak i
11855po liniji magistrale upravljaki signal zavretka itanja.
11856 Po zavretku itanja izlazi se iz petlje i prelazi se na korak u kome se inkrementira sadraj
11857adresnog registra, dekrementira sadraj registra broja rei za prenos i ponavlja ve opisani
11858postupak na jedan od dva mogua naina u zavisnosti od toga da li je dekrementiranjem
11859sadraja registra broja rei dobijen sadraj koju ukazuje da prenos treba zavriti ili produiti.
118606.3.2.3.2 Algoritam generisanja upravljakih signala
11861 Algoritam generisanja upravljakih signala je formiran na osnovu dijagrama toka operacija
11862(slika 214) i dat u obliku dijagrama toka upravljakih signala (slika 215), sekvence upravljakih
11863signala po koracima (tabela 62).
11864 Dijagram toka upravljakih signala je predstavljen operacionim i uslovnim blokovima. U
11865operacionim blokovima se nalaze upravljaki signali i uslovi pod kojima se oni generiu. U
11866uslovnim blokovima se nalaze signali logikih uslova.
11867 U sekvenci upravljakih signala po koracima se koriste iskazi za signale i skokove. Iskazi za
11868signale su oblika
11869 signali i
11870 if uslov then signali
11871Prvi iskaz sadri spisak upravljakih signala signali koji se bezuslovno generiu. Drugi iskaz
11872sadri signal uslov i spisak upravljakih signala signali koji se generiu ukoliko signal uslov
11873ima vrednost 1. Iskazi za skokove su oblika
11874 br stepA i
11875 br (if uslov then stepA).
11876Prvi iskaz sadri korak step A na koji se prelazi i u daljem tekstu se referie kao bezuslovni
11877skok. Drugi iskaz sadri signal uslov i korak stepA na koji se prelazi ukoliko signal uslov ima
11878vrednost 1 i u daljem tekstu se referie kao uslovni skok.
11879 Objanjenja vezana za generisanje upravljakih signala su data zajedniki za dijagram toka
11880upravljakih signala i sekvencu upravljakih signala po koracima i to u okviru sekvence
11881upravljakih signala po koracima.

400

400

s te p

C R
1

done
0

C R
s te p

s te p

C R
1

2
1

s te p

C R

h req
0

2
0

s te p

h re q , e A R , e D R , w rM K T R
fc M K T R

s te p

in c A R , d e c W C R , s tW R D R m e m ,
if C R 7 th e n h re q
s te p

s te p

i f ( C R 2 d o n e ) t h e n s t S R 0 m e m ,
i f ( C R 2 d o n e C R 1 ) t h e n i n t r m e m ,
i f ( C R 2 d o n e C R 7 ) t h e n h r e q
C R
1
1

i f ( C R 2 d o n e ) t h e n s t S R 0 m e m ,
i f ( C R 2 d o n e C R 1 ) t h e n i n t r m e m ,
i f ( C R 2 d o n e C R 7 ) t h e n h r e q
0

2
1

s te p

C R

s te p

2
1

11884

R D D R

s te p

h re q , e A R , rd M K T R

11882
11883

CR
1

fc M K T R

h req

W RD R
s te p

done
CR

h re q
1

0
0

CR
1

done
C R

in c A R , d e c W C R , s tR D D R m e m ,
if C R 7 th e n h re q

fc M K T R

hack

h re q , e A R , rd M K T R
s te p

CR
1

hack
s te p

h re q
1

R D D R

CR
1

W RD R
s te p

h re q , e A R , e D R , w rM K T R
0

fc M K T R

Slika 215 Dijagram toka upravljakih signala


Tabela 62 Sekvenca upravljakih signala

11885! U koraku step0 se ostaje sve dok ili signal CR2 bloka registri ima vrednost 0 ili signal done bloka
11886registri ima vrednost 1. Signal CR2 ima vrednost 0 ili 1 u zavisnosti od toga da li je kontroler periferije
11887zaustavljen ili startovan. Kontroler periferije se startuje programskim putem tako to upravljaka
11888jedinica uprav_bus upisuje u upravljaki registar CR70 bloka registri sadraj koji na poziciji razreda
11889CR2 ima vrednost 1. Upisivanjem vrednosti 1 u razred CR2 upravljakog registra CR70 od strane
11890upravljake jedinica uprav_bus pokreu se upravljake jedinice uprav_mem i uprav_per. Prilikom

401

401

11891startovanja upravljaka jedinica uprav_bus vrednou 1 signala stRDDRbus postavlja se flip-flop


11892RDDR na vrednost 1. Signal done ima vrednost 1 ukoliko je sadraj registra WCR 150 bloka registri
11893nula. Ovo se deava kada se programskim putem upisivanjem u registar WCR 150 za veliini bloka zada
11894vrednost nula ili po zavretku prenosa bloka podataka. Od preostalih razreda registra CR 70 za korak
11895step0 je bitan razred CR0, jer korak na koji se prelazi zavisi od vrednosti signala CR 0. Na poziciji
11896razreda CR0 je vrednost 1 ili 0 u zavisnosti od toga da li je zadat prenos iz periferije u memoriju ili iz
11897memorije u periferiju, respektivno. U zavisnosti od toga da li signal CR 0 ima vrednost 1 ili 0, iz koraka
11898step0 se prelazi na korak step1 ili step8, respektivno. !
11899
step0 br (if (CR2 done CR0) then step1),
11900
br (if (CR2 done CR 0 ) then step8),
11901! U korak step1 se dolazi iz koraka step0 ili step5. Ukoliko signal CR2 ima vrednost 0, to znai da je
11902programskim putem upisivanjem vrednosti 0 u razred CR2 upravljakog registra CR70 zaustavljen rad
11903kontrolera, prelazi se u korak step0. Ukoliko signal CR2 ima vrednost 1, ili se ostaje u koraku step1 ili se
11904prelazi u korak step2 u zavisnosti od toga da li signal RDDR bloka registri ima vrednost 1 ili 0,
11905respektivno. Vrednost 1 signala RDDR je indikacija da upravljaka jedinica uprav_per jo uvek nije
11906prenela podatak iz registra DRAUX70 bloka registri u registar DR70 bloka registri i da upravljaka
11907jedinica uprav_mem ne moe da krene sa prenoenjem podatka iz registra DR 70 u memoriju. Time se
11908obezbeuje da upravljaka jedinica uprav_mem zbog vrednosti 1 signala RDDR eka u koraku step1.
11909Tek kada upravljaka jedinica uprav_per prenese podatak, najpre, iz periferije u registar DRAUX70, a
11910zatim iz registra DRAUX70 u registar DR70 i na kraju vrednou 1 signala clRDDRper postavi flip11911flop RDDR na vrednost 0, upravljaka jedinica uprav_mem prelazi iz koraka step1 u korak step2. !
11912
step1 br (if CR 2 then step0),
11913
br (if (CR2 RDDR ) then step2);
11914! U korak step2 se dolazi iz koraka step1. U koraku step2 se generie vrednost 1 signala hreq kojom se od
11915procesora CPU trai dozvola za korienje magistrale BUS. Ukoliko signal CR2 ima vrednost 0, prelazi
11916se u korak step0. Ukoliko signal CR2 ima vrednost 1, ili se ostaje u koraku step2 ili se prelazi u korak
11917step3 u zavisnosti od toga da li signal hack procesora CPU ima vrednost 0 ili 1, respektivno. Vrednost 0
11918signala hack je indikacija procesor jo uvek koristi magistralu i da upravljaka jedinica uprav_mem ne
11919moe da krene sa prenoenjem podatka iz registra DR 70 u memoriju. Time se obezbeuje da
11920upravljaka jedinica uprav_mem zbog vrednosti 0 signala hack eka u koraku step2. Tek kada procesor
11921zavri sa korienjem magistrale i signal hack postavi na vrednost 1, upravljaka jedinica uprav_mem
11922prelazi iz koraka step2 u korak step3. !
11923
step2 hreq,
11924
br (if CR 2 then step0),
11925
br (if (CR2hack) then step3);
11926! U korak step3 se dolazi iz koraka step2. U koraku step3 se obavlja prenos podatka iz registra DR70 u
11927memoriju. Kako usvojeni interfejs izmeu procesora CPU i kontrolera DMA predvia da kontroler
11928DMA dri vrednost 1 signala hreq sve vreme dok koristi magistralu, to se u koraku step 3 dri vrednost
119291 signala hreq. Pored toga u koraku step3 se vrednostima 1 signala eAR i eDR bloka registri sadraji
11930registara AR150 i DR70 putaju na adresne linije ABUS150 i linije DBUS70 podataka magistrale BUS
11931i vrednou 1 signala wrMKTR formira vrednost 0 signala na upravljakoj liniji WRBUS magistrale
11932BUS, ime se u memoriji MEM startuje operacija upisa. U koraku step3 se ostaje onoliko perioda
11933signala takta koliko je neophodno da se upis realizuje. Sve vreme dok je processor u koraku step 3 adresa
11934i podatak se prisutni na linijama ABUS150 i DBUS70 i na liniji WRBUS je vrednost 0. Po zavrenom
11935upisu memorija MEM generie vrednost signala 0 na upravljakoj liniji FCBUS magistrale BUS, pa
11936signal fcMKTR bloka interfejs postaje 1. U koraku step3 se proverava vrednost signala fcMKTR koji
11937vrednostima 0 i 1 ukazuje da upis nije zavren i da je upis zavren, respektivno. Ukoliko upis nije
11938zavren ostaje se u koraku step3, dok se u suprotnom sluaju prelazi na korak step4. !
11939
step3 hreq, eAR, eDR, wrMKTR,
11940
br (if (fcMKTR) then step4);
11941! U korak step4 se dolazi iz koraka step3 ili step7 ostaje jedna perioda signala takta i prelazi u korak
11942step5. U koraku step4 se generiu vrednosti 1 signala incAR, decWCR i stRDDRmem. Vrednou 1
11943signala incAR se inkrementira sadraj adresnog brojaa AR150, tako da njegova vrednost sadri adresu
11944memorijske lokacije u koju treba upisati sledei podatak. Vrednou 1 signala decWR se dekrementira
11945sadraj brojaa WCR150, tako da njegova trenutna vrednost ukazuje koliko jo podataka treba preneti.

402

402

11946Vrednou 1 signala stRDDRmem se flip-flop RDDR postavlja na vrednost 1. Vrednost 1 signala flip11947flopa RDDR je indikacija da je upravljaka jedinica uprav_mem prenela sadraj registra DR70 u
11948memoriju i da upravljaka jedinica uprav_per moe novi podatak da prenese iz registra DRAUX70 u
11949registar DR70. Pri vrednosti 1 signala CR7 generie se vrednost 1 signala hreq. Vrednosti 0 i 1 signala
11950CR7 odreuju da li je zadat reim rada sa pojedinanim ili paketskim prenosom podataka, respektivno.
11951Ovo je posledica usvojenog interfejsa izmeu procesora CPU i kontrolera DMA koji predvia da je pri
11952paketskom prenosu magistrala u posedu kontrolera DMA dok se ne obavi prenos kompletnog bloka
11953podataka to se obezbeuje dranjem vrednost 1 signala hreq. !
11954
step4 incAR, decWCR, stRDDRmem,
11955
if CR7 then hreq,
11956
br step5;
11957! U korak step5 se dolazi iz koraka step4, ostaje jedna perioda signala takta i prelazi u korak step0, step1
11958ili step5. U koji e se od ovih korak prei zavisi od vrednosti signala CR2, done, CR1 i CR7 bloka
11959registri. Ukoliko signal CR2 ima vrednost 0, prelazi se u korak step0. Ukoliko signal CR2 ima vrednost
119601, korak u koji e se prei najpre zavisi od vrednosti signala done. Vrednosti 0 i 1 signala done se
11961formiraju u zavisnosti od toga da li je sadraj registra WCR 150 bloka registri razliit od nule ili je nula
11962i slue kao indikacija da prenos podataka nije ili jeste kompletiran, respektivno. Pri vrednosti 1 signala
11963done prenos podataka se zavrava prelaskom na korak step0. Pri vrednostima 1 signala CR2 i done
11964generie se vrednost 1 signala stSR0mem bloka registri. Vrednou 1 signala stSR0mem se upisuje
11965vrednost 1 u razred SR 0 statusnog registra SR70 bloka registri. Ovaj razred odgovara bitu spremnost i
11966njegova vrednost 1 slui kao indikacija procesoru da je prenos kompletiran i da procesor moe
11967programskim putem da zaustavi kontroler periferije. Ukoliko pri vrednostima 1 signala CR2 i done i
11968signal CR1 ima vrednost 1, generie se vrednost 1 signala intrmem bloka interfejs. Ovim signalom se
11969pokree generisanje signala prekida, da bi processor skoio na odgovarajuu prekidnu rutinu i u okvuru
11970nje programskim putem zaustavio kontroler periferije. Prenos podataka se nastavlja prelaskom iz
11971koraka step5 u korak step1 ili step6 kada je kontroler periferije startovan i kada je zadata veliina bloka
11972razliita od nule, na ta ukazuju vrednosti 1 i 0 signala CR2 i done, respektivno. U korak step1 ili step6
11973se prelazi u zavisnosti od toga da li je vrednostima 0 i 1 signala CR7 zadat pojedinani ili paketski
11974prenos bloka podataka, respektivno. Pored toga pri vrednosti 1 signala CR7 generie se vrednost 1
11975signala hreq. Ovo je posledica usvojenog interfejsa izmeu procesora CPU i kontrolera DMA koji
11976predvia da je pri paketskom prenosu magistrala u posedu kontrolera DMA dok se ne obavi prenos
11977kompletnog bloka podataka to se obezbeuje dranjem vrednost 1 signala hreq. !
11978
step5 br (if CR 2 then step0),
11979
if (CR2done) then stSR0mem,
11980
if (CR2doneCR1) then intrmem,
11981
br (if (CR2done) then step0);
11982
br (if (CR2 done CR 7 ) then step1),
11983
if (CR2 done CR7) then hreq,
11984
br (if (CR2 done CR7) then step6),
11985! U korak step6 se dolazi iz koraka step5 jedino kada je zadat paketski prenos bloka podataka. U koraku
11986step6 se vrednou 1 signala hreq obezbeuje da magistrala ostaje u posedu kontrolera do kompletiranja
11987paketskog prenosa bloka podataka. Pored toga na isti nain kao i u koraku step 1 se ukoliko signal CR2
11988ima vrednost 0 prelazi u korak step0 i ukoliko signal CR2 ima vrednost 1, ili se ostaje u koraku step 6 ili
11989se prelazi u korak step7 u zavisnosti od toga da li signal RDDR bloka registri. ima vrednost 1 ili 0,
11990respektivno. !
11991
step6 hreq,
11992
br (if CR 2 then step0),
11993
br (if (CR2 RDDR ) then step7);
11994! U korak step7 se dolazi iz koraka step6. U koraku step3 se obavlja prenos podatka iz registra DR70 u
11995memoriju na isti nain kao i u koraku step3 i prelazi na korak step4.
11996
step7 hreq, eAR, eDR, wrMKTR,
11997
br (if (fcMKTR) then step4);
11998! U korak step8 se dolazi iz koraka step0 ili stepC. Ukoliko signal CR2 ima vrednost 0, to znai da je
11999programskim putem upisivanjem vrednosti 0 u razred CR2 upravljakog registra CR70 zaustavljen rad
12000kontrolera, prelazi se u korak step0. Ukoliko signal CR2 ima vrednost 1, ili se ostaje u koraku step8 ili se
12001prelazi u korak step9 u zavisnosti od toga da li signal WRDR bloka registri ima vrednost 1 ili 0,
403

403

12002respektivno. Vrednost 1 signala WRDR je indikacija da upravljaka jedinica uprav_per jo uvek nije
12003prenela prethodni podatak iz registra DR70 bloka registri u registar DRAUX70 bloka registri i da
12004upravljaka jedinica uprav_mem ne moe da pree na korak step9 radi prenoenja sledeeg podatka iz
12005memorije u registar DR70. Tek kada upravljaka jedinica uprav_per prihvati podatak iz registra DR70
12006u registar DRAUX70, krene sa njegovim prenoenjem iz registra DRAUX70 u periferiju i vrednou 1
12007signala clWRDRper postavi flip-flop WRDR na vrednost 0, upravljaka jedinica uprav_mem prelazi iz
12008koraka step8 u korak step9. Na poetku u registru DR70 jo uvek nema podatka i signal WRDR ima
12009vrednost 0, pa upravljaka jedinica uprav_mem odmah prelazi iz koraka step8 u korak step9. !
12010
step8 br (if CR 2 then step0),
12011
br (if (CR2 WRDR ) then step9);
12012! U korak step9 se dolazi iz koraka step8. U koraku step9 se generie vrednost 1 signala hreq kojom se od
12013procesora CPU trai dozvola za korienje magistrale BUS. Ukoliko signal CR2 ima vrednost 0, prelazi
12014se u korak step0. Ukoliko signalCR2 ima vrednost 1, ili se ostaje u koraku step2 ili se prelazi u korak
12015stepA u zavisnosti od toga da li signala hack procesora CPU ima vrednost 0 ili 1, repektivno. Vrednost 0
12016signala hack je indikacija procesor jo uvek koristi magistralu i da upravljaka jedinica uprav_mem ne
12017moe da krene sa prenoenjem podatka iz memorije u registar DR 70. Time se obezbeuje da
12018upravljaka jedinica uprav_mem zbog vrednosti 0 signala hack eka u koraku step9. Tek kada procesor
12019zavri sa korienjem magistrale i signal hack postavi na vrednost 0, upravljaka jedinica uprav_mem
12020prelazi iz koraka step9 u korak stepA. !
12021
step9 hreq,
12022
br (if CR 2 then step0),
12023
br (if (CR2hack) then stepA);
12024! U korak stepA se dolazi iz koraka step9. U koraku step9 se obavlja prenos podatka iz memorije u
12025registar DR70. Kako usvojeni interfejs izmeu procesora CPU i kontrolera DMA predvia da kontroler
12026DMA dri vrednost 1 signala hreq sve vreme dok koristi magistralu, to se u koraku stepA dri vrednost
120271 signala hreq. Pored toga u koraku stepA se vrednou 1 signala eAR bloka registri sadraj registra
12028AR150 puta na adresne linije ABUS150 magistrale BUS i vrednou 0 signala rdMKTR formira
12029vrednost 0 signala na upravljakoj liniji RDBUS magistrale BUS, ime se u memoriji MEM startuje
12030operacija itanja. U koraku stepA se ostaje onoliko perioda signala takta koliko je neophodno da se
12031itanje realizuje. Sve vreme dok je processor u koraku stepA adresa je prisutna na linijama ABUS150 i
12032na liniji RDBUS vrednost 0. Po zavrenom itanju memorija MEM otvara bafere sa tri stanja i na
12033linije podataka DBUS70 magistrale puta proitanu vrednost i generie vrednost 0 signala na
12034upravljakoj liniji FCBUS magistrale BUS. U koraku stepA se proverava vrednost signala fcMKTR
12035bloka registri koji vrednostima 0 i 1 ukazuje da upis nije zavren i da je upis zavren, respektivno.
12036Ukoliko upis nije zavren ostaje se u koraku stepA, dok se u suprotnom sluaju prelazi na korak stepB. !
12037
stepA hreq, eAR, rdMKTR,
12038
br (if fcMKTR then stepB);
12039! U korak stepB se dolazi iz koraka stepA ili stepE ostaje jedna perioda signala takta i prelazi u korak
12040stepC. U koraku stepB se generiu vrednosti 1 signala incAR, decWCR i stWRDRmem. Vrednou 1
12041signala incAR se inkrementira sadraj adresnog brojaa AR150, tako da njegova vrednost sadri adresu
12042memorijske lokacije sa koje treba proitati sledei podatak. Vrednou 1 signala decWR se
12043dekrementira sadraj brojaa WCR150, tako da njegova trenutna vrednost ukazuje koliko jo podataka
12044treba preneti. Vrednou 1 signala stWRDRmem se flip-flop WRDR postavlja na vrednost 1. Vrednost
120451 signala WRDR je indikacija da je upravljaka jedinica uprav_mem prenela podatak iz memorije u
12046registar DR70 i da upravljaka jedinica uprav_per moe da prihvati podatak iz registra DR 70 u
12047registar DRAUX70 i krene sa njegovim slanjem iz registra DRAUX 70 u periferiju. Pri vrednosti 1
12048signala CR7 generie se vrednost 1 signala hreq. Vrednosti 0 i 1 signala CR7 odreuju da li je zadat
12049reim rada sa pojedinanim ili paketskim prenosom podataka, respektivno. Ovo je posledica usvojenog
12050interfejsa izmeu procesora CPU i kontrolera DMA koji predvia da je pri paketskom prenosu
12051magistrala u posedu kontrolera DMA dok se ne obavi prenos kompletnog bloka podataka to se
12052obezbeuje dranjem vrednost 1 signala hreq. !
12053
stepB incAR, decWCR, stWRDRmem,
12054
if CR7 then hreq,
12055
br stepC;
12056! U korak stepC se dolazi iz koraka stepB, ostaje jedna perioda signala takta i prelazi u korak step0, step8
12057ili stepD. U koji e se od ovih korak prei zavisi od vrednosti signala CR2, done, CR1 i CR7 bloka
404

404

12058registri. Ukoliko signal CR2 ima vrednost 0, prelazi se u korak step0. Ukoliko signal CR2 ima vrednost
120591, korak u koji e se prei najpre zavisi od vrednosti signala done. Vrednosti 0 i 1 signala done se
12060formiraju u zavisnosti od toga da li je sadraj registra WCR 150 bloka registri razliit od nule ili je nula
12061i slue kao indikacija da prenos podataka nije ili jeste kompletiran, respektivno. Pri vrednosti 1 signala
12062done prenos podataka se zavrava prelaskom na korak step0. Pri vrednostima 1 signala CR2 i done
12063generie se vrednost 1 signala stSR0mem bloka registri. Vrednou 1 signala stSR0mem se upisuje
12064vrednost 1 u razred SR 0 statusnog registra SR70 bloka registri. Ovaj razred odgovara bitu spremnost i
12065njegova vrednost 1 slui kao indikacija procesoru da je prenos kompletiran i da procesor moe
12066programskim putem da zaustavi kontroler periferije. Ukoliko pri vrednostima 1 signala CR2 i done i
12067signal CR1 ima vrednost 1, generie se vrednost 1 signala intrmem bloka interfejs. Ovim signalom se
12068pokree generisanje signala prekida, da bi processor skoio na odgovarajuu prekidnu rutinu i u okvuru
12069nje programskim putem zaustavio kontroler periferije. Prenos podataka se nastavlja prelaskom iz
12070koraka stepC u korak step8 ili stepD kada je kontroler periferije startovan i kada je zadata veliina bloka
12071razliita od nule, na ta ukazuju vrednosti 1 i 0 signala CR2 i done, respektivno. U korak step8 ili stepD
12072se prelazi u zavisnosti od toga da li je vrednostima 0 i 1 signala CR7 zadat pojedinani ili paketski
12073prenos bloka podataka, respektivno. Pored toga pri vrednosti 1 signala CR7 generie se vrednost 1
12074signala hreq. Ovo je posledica usvojenog interfejsa izmeu procesora CPU i kontrolera DMA koji
12075predvia da je pri paketskom prenosu magistrala u posedu kontrolera DMA dok se ne obavi prenos
12076kompletnog bloka podataka to se obezbeuje dranjem vrednosti 1 signala hreq. !
12077
stepC br (if CR 2 then step0),
12078
if (CR2done) then stSR0mem,
12079
if (CR2doneCR1) then intrmem,
12080
br (if (CR2done) then step0),
12081
br (if (CR2 done CR 7 ) then step8),
12082
if (CR2 done CR7) then hreq,
12083
br (if (CR2 done CR7) then stepD),
12084! U korak stepD se dolazi iz koraka stepC. U koraku stepD se vrednou 1 signala hreq obezbeuje da
12085magistrala ostaje u posedu kontrolera do kompletiranja paketskog prenosa bloka podataka. Ukoliko
12086signal CR2 ima vrednost 0, to znai da je programskim putem upisivanjem vrednosti 0 u razred CR2
12087upravljakog registra CR70 zaustavljen rad kontrolera, prelazi se u korak step0. Ukoliko signal CR2
12088ima vrednost 1, ili se ostaje u koraku stepD ili se prelazi u korak stepE u zavisnosti od toga da li signal
12089WRDR bloka registri. ima vrednost 1 ili 0, respektivno. Vrednost 1 signala WRDR je indikacija da
12090upravljaka jedinica uprav_per jo uvek nije prenela prethodni podatak iz registra DR 70 bloka registri
12091u registar DRAUX70 bloka registri i da upravljaka jedinica uprav_mem ne moe da pree na korak
12092stepE radi prenoenja sledeeg podatka iz memorije u registar DR 70. Tek kada upravljaka jedinica
12093uprav_per prihvati podatak iz registra DR70 u registar DRAUX70, krene sa njegovim prenoenjem iz
12094registra DRAUX70 u periferiju i vrednou 1 signala clWRDRper postavi flip-flop WRDR na
12095vrednost 0, upravljaka jedinica uprav_mem prelazi iz koraka stepD u korak stepE. !
12096
stepD hreq,
12097
br (if CR 2 then step0),
12098
br (if (CR2 WRDR ) then stepE);
12099! U korak stepE se dolazi iz koraka stepD. U koraku stepE se obavlja prenos podatka iz memorije u
12100registar DR70. Kako usvojeni interfejs izmeu procesora CPU i kontrolera DMA predvia da kontroler
12101DMA dri vrednost 1 signala hreq sve vreme dok koristi magistralu, to se u koraku stepA dri vrednost
121021 signala hreq. Pored toga u koraku stepE se vrednou 1 signala eAR bloka registri sadraj registra
12103AR150 puta na adresne linije ABUS150 magistrale BUS i vrednou 1 signala rdMKTR formira
12104vrednost 0 signala na upravljakoj liniji RDBUS magistrale BUS, ime se u memoriji MEM startuje
12105operacija itanja. U koraku stepE se ostaje onoliko perioda signala takta koliko je neophodno da se
12106itanje realizuje. Sve vreme dok je processor u koraku stepE adresa je prisutna na linijama ABUS150 i
12107na liniji RDBUS je vrednost 0. Po zavrenom itanju memorija MEM otvara bafere sa tri stanja i na
12108linije podataka DBUS70 magistrale puta proitanu vrednost i generie vrednost 0 signala na
12109upravljakoj liniji FCBUS magistrale BUS. U koraku stepE se proverava vrednost signala fcMKTR
12110bloka registri koji vrednostima 0 i 1 ukazuje da upis nije zavren i da je upis zavren, respektivno.
12111Ukoliko upis nije zavren ostaje se u koraku stepE, dok se u suprotnom sluaju prelazi na korak stepB. !
12112
stepE hreq, eAR, rdMKTR,

405

405

12113

br (if fcMKTR then stepB);

121146.3.2.3.3 Struktura upravljake jedinice


12115 Upravljaka jedinica oiene realizacije se sastoji iz sledeih blokova: blok broja koraka,
12116blok dekoder koraka i blok generisanje upravljakih signala. (slika 216).
12117 Blok broja koraka sadri broja CNT3...0. Broja CNT3...0 svojom trenutnom vrednou
12118obezbeuje vrednosti 1 odreenih upravljakih signala. Broja Broja CNT 3...0 moe da radi u
12119sledeim reimima:
12120 reim inkrementiranja,
12121 reim skoka i
12122 reim ekanja.
12123 U reimu inkrementiranja pri pojavi signala takta vri se uveavanje sadraja brojaa
12124CNT3...0 za jedan ime se obezbeuje sekvencijalno generisanje upravljakih signala iz sekvence
12125upravljakih signala za upravljaku jedinicu oiene realizacije (tabela 62). Ovaj reim rada se
12126realizuje vrednou 0 signala ldCNT i vrednou 1 signala incCNT.
v a l8
v a lB

v a l1
v a lB

M R
C LK

CLK

valB

val4

m r

CN T

3 ...0

CN T

...

...

b r o ja
ko ra ka

LD
IN C

CN T

ld C N T
in c C N T

...

...

15

dekoder
ko ra ka

0
0

...

...

g e n e r is a n je
u p ra v lja k ih
s ig n a la
b lo k o v a
o p e ra c io n e
je d in ic e

g e n e ris a n je
u p ra v lja k ih
s ig n a la
u p ra v lja k e
je d in ic e

done

W RD R
hack
in te r fe js
val0

ldCNT
incCNT
valB

blok interfejs

blok registri

...

12127
12128


registri

D C
...

15

...
...

...

g e n e r is a n je
u p r a v lja k ih s ig n a la

Slika 216 Struktura upravljake jedinice uprav_mem

12129 U reimu skoka pri pojavi signala takta vri se upis nove vrednosti u broja CNT 3...0 ime se
12130obezbeuje odstupanje od sekvencijalnog generisanja upravljakih signala iz sekvence
12131upravljakih signala za upravljaku jedinicu oiene realizacije (tabela 62). Ovaj reim rada se
406

406

12132realizuje vrednou 1 signala ldCNT, vrednou 0 signala incCNT i vrednou 1 jednog od


12133signala val0, val1, val4, val8 i valB u zavisnosti od toga da li u broja CNT 3...0 treba upisati
12134vrednost 0, 1, 4, 8 ili B, respektivno.
12135 U reimu ekanja pri pojavi signala takta ne menja se vrednost brojaa CNT 3...0. Ovaj reim
12136rada se obezbeuje vrednostima 0 signala ldCNT i incCNT.
12137 Blok dekoder koraka sadri dekoder DC. Na ulaze dekodera DC vode se izlazi brojaa
12138CNT3...0. Dekodovana stanja brojaa CNT3...0 pojavljuju se kao signali T0 do TF na izlazima
12139dekodera DC. Svakom koraku iz sekvence upravljakih signala po koracima (tabela 62)
12140dodeljeno je po jedno stanje brojaa CNT3...0 odreeno vrednou signala T0 do TF i to koraku
12141step0 signal T0, koraku step1 signal T1, itd.
12142 Blok generisanje upravljakih signala sadri kombinacione mree koje pomou signala T0
12143do TE, koji dolaze sa bloka dekoder koraka, signala logikih uslova done do WRDR, koji
12144dolaze iz bloka registri, i hack, koji dolazi iz bloka interfejs, i saglasno sekvenci upravljakih
12145signala za upravljaku jedinicu oiene realizacije (tabela 62) generiu dve grupe upravljakih
12146signala i to:
12147 upravljake signale blokova operacione jedinice oper i
12148 upravljake signale upravljake jedinice uprav_mem.
12149 Upravljaki signali blokova operacione jedinice oper se daju posebno za blok registri i blok
12150interfejs.
12151 Upravljaki signali bloka registri se generiu na sledei nain:
12152 stSR0mem = CR2doneT5 + CR2doneTC
12153 stRDDRmem = T4
12154 stWRDRmem = TB
12155 eAR = T3 + T7 + TA + TE
12156 eDR = T3 + T7
12157 incAR = T4 + TB
12158 decWR = T4 + TB
12159Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz blokova
12160registri i interfejs operacione jedinice oper i to:
12161 done blok registri,
12162 CR2 blok registri,
12163 Upravljaki signali bloka interfejs se generiu na sledei nain:
12164 wrMKTR = T3 + T7
12165 rdMKTR = TA + TE
12166 intrmem = CR2done CR1T5 + CR2done CR1TC
12167Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz blokova
12168registri i interfejs operacione jedinice oper i to:
12169 done blok registri,
12170 CR2 blok registri,
12171 CR1 blok registri.
12172
12173
12174
12175
12176
407

Upravljaki signali upravljake jedinice uprav_mem se generiu na sledei nain:


ldCNT = val0 + val1 + val4 + val8 + valB
val0 = CR 2 T1 + CR 2 T2 + CR 2 T5 + CR2done T5 + CR 2 T6 +
CR 2 T8 + CR 2 T9 + CR 2 TC + CR2done TC + CR 2 TD
val1 = CR2 done CR 7 T5
407

12177 val4 = fcMKTRT7


12178 val8 = CR2 done CR 0 T0 + CR2 done CR 7 TC
12179 val4 = fcMKTRTE
12180 incCNT = CR2 done CR0T0 +
12181
CR2 RDDR T1 + CR2 hackT2 + fcMKTRT3 + T4 +
12182
CR2 done CR7T5 + CR2 RDDR T6 +
12183
CR2 WRDR T8 + CR2 hackT9 + fcMKTRTA + TB +
12184
CR2 done CR7TC + CR2 WRDR TD
12185Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz blokova
12186registri i interfejs operacione jedinice oper i to:
12187 done blok registri,
12188 CR0 blok registri,
12189 CR2 blok registri,
12190 CR7 blok registri,
12191 fcMKTR blok interfejs,
12192 RDDR blok registri,
12193 WRDR blok registri,
12194 hack blok interfejs.
121956.4 KONTROLER ZA GENERISANJE IMPULSA

BUS

12196 U ovoj glavi se daje organizacija kontrolera za generisanje impulsa TMR koji se sastoji iz
12197operacione jedinice oper i upravljake jedinice uprav. (slika 217).
A B U S

1 5 ...0

D B U S

7 ...0

RD B U S
W RB U S
FCB U S

oper
CPU
in tr

u p ra v_ b u s

12198
12199

u p r a v _ in tr
u p ra v
U /I

Slika 217 Organizacija generatora impulsa TMR

12200 Operaciona jedinica oper je kompozicija kombinacionih i sekvencijalnih prekidakih mrea


12201koje slue za pamenje binarnih rei, izvravanje mikrooperacija i generisanje signala logikih
12202uslova. Upravljaka jedinica uprav je kompozicija kombinacionih i sekvencijalnih prekidakih

408

408

12203mrea koje slue za generisanje upravljakih signala prema algoritmu generisanja upravljakih
12204signala operacione jedinice i signala logikih uslova.
12205

Struktura i opis operacione i upravljake jedinice se daju u daljem tekstu.

122066.4.1 Operaciona jedinica


12207 Operaciona jedinica oper sadri upravljake registre CR2 i WCR150 i kombinacione i
12208sekvencijalne prekidake mree za realizaciju ciklusa na magistrali u kojima je kontroler sluga
12209(slika 218).
12210 Registar CR2 je jednororazredni upravljaki registar koji sadri bit start. U registar CR2 se,
12211vrednou 1 signala CRin upisuje sadraj sa linije podataka DBUS 2 magistrale. Upisivanjem
12212vrednosti 1 i 0, kontroler se startuje i zaustavlja, respektivno. Upisivanjem vrednosti 1 u
12213registar CR2 omoguava se da se u upravljakoj jedinici uprav_intr po odbrojavanju onoliko
12214perioda signala takta koliko je to zadato sadrajem registra WCR 150 generie vrednost 1
12215signala intr kojim se upisuje vrednost 0 registar CR 2 i kontroler zaustavlja. Upisivanjem
12216vrednosti 0 u registar CR2 kontroler se programskim putem zaustavlja i pre isteka vremena
12217datog sadrajem registra WCR150. Tom prilikom se generie i vrednost 1 signala stopTMR
12218trajanja jedna perioda signala takta kojim se u upravljakoj jedinici uprav_intr zaustavlja
12219generisanje signala intr. Sadraj registra CR2 proiren nulama do duine 8 bitova se vrednou
122201 signala CRout puta na linije podataka DBUS70 magistrale.

409

409

8
8

m r
M R
C LK

m r

W CR
8

W CR

W C R H in
uprav_ bus

LD

15 8

M R
C LK

W CR
8

1 5 ...8

W C R L in
uprav_ bus

LD

7 0

W CR

7 ...0

uprav_ bus W C R L out


8
uprav_ bus W C R H out

m r
in tr u p r a v _ in tr

A D D RESS

BU S
A B U S

11

C R 2 u p r a v _ in tr

5 ...0

BU S
A B U S

8
D B U S 7
BU S

BUS

u p r a v _ in tr s to p T M R

uprav_ bus C R out

C LK

A B U S
A B U S

0
1

0
1

D C
E

0
1
2
3

s e lC R
s e lW C R H
s e lW C R L

A
A
A
A

B
B
B
B

U
U
U
U

S
S
S
S

A
A
A
A

15
14
13

12

B
B
B
B

U
U
U
U

S
S
S
S

5
4
3
2


BUS

BUS

7 ...3
2
1 ...0


uprav_bus

BU S D B U S

CR

u p r a v _ b u s C R in

rd T M R

W RB U S

w rT M R

FCB U S

1
fc T M R


uprav_bus

12221
12222

R D B U S

BUS

s e le c t

Slika 218 Operaciona jedinica oper

12223 Registar WCR150 je 16-to razredni registar u kome se uva vreme, zadato kao broj perioda
12224signala takta, koje treba da protekne od trenutka startovanja kontrolera do trenutka generisanja
12225impulsa trajanja jedna perioda signala takta. Broj perioda signala takta se u registar WCR 150
12226upisuje programskim putem u dva ciklusa na magistrali. Signalom WCRHin se u 8 starijih
12227razreda registra WCR158 upisuje sadraj sa linija podataka DBUS 70 magistrale, dok se
12228signalom WCRLin u 8 mlaih razreda registra WCR70 upisuje sadraj sa linija podataka
12229DBUS70 magistrale. Sadraj registra WCR150 se ita programskim putem u dva ciklusa na
12230magistrali. Signalom WCRHout se 8 starijih razreda registra WCR158 puta na linije podataka
12231DBUS70 magistrale, dok se signalom WCRLout 8 mlaih razreda registra WCR70 puta na
12232linije podataka DBUS70 magistrale.
410

410

12233 Kombinacione i sekvencijalne mree za realizaciju ciklusa na magistrali u kojima je


12234kontroler sluga formiraju signale rdTMR i wrTMR upravljake jedinice uprav_bus i
12235 FCBUS magistrale BUS (slika 218). Signali rdTMR i wrTMR se formiraju na osnovu
12236signala ABUS15..0 sa adresnih linija magistrale i signala RDBUS i WRBUS sa upravljakih
12237linija magistrale. Signal FCBUS se formira na osnovu signala fcTMR upravljake jedinice
12238uprav_bus.
12239 Pri realizaciji ciklusa itanja na magistrali procesor kao gazda otvara bafere sa tri stanja za
12240adresne linije ABUS15..0 i upravljaku liniju RDBUS magistrale i na njih izbacuje adresu i
12241vrednost 0 signala itanja, respektivno, ime se u kontroleru kao slugi startuje itanje
12242adresiranog registra. Kontroler po zavrenom itanju otvara bafere sa tri stanja za linije
12243podataka DBUS7..0 i upravljaku liniju FCBUS magistrale i na njih izbacuje sadraj
12244adresiranog registra i vrednost 0 signala zavretka operacije itanja u kontroleru. Procesor
12245prihvata sadraj sa linija podataka i zatvara bafere sa tri stanja za adresne linije ABUS15..0 i
12246upravljaku liniju RDBUS magistrale, dok kontroler zatvara bafere sa tri stanja za linije
12247podataka DBUS7..0 i upravljaku liniju FCBUS magistrale.
12248 Pri realizaciji ciklusa upisa na magistrali procesor kao gazda otvara bafere sa tri stanja za
12249adresne linije ABUS15..0, linije podataka DBUS7..0 i upravljaku liniju WRBUS magistrale i na
12250njih izbacuje adresu, podatak i vrednost 0 signala upisa, respektivno, ime se u kontroleru kao
12251slugi startuje upis u adresirani registar. Kontroler po zavrenom upisu otvara bafere sa tri stanja
12252za upravljaku liniju FCBUS magistrale i na nju izbacuje vrednost 0 signala zavretka
12253operacije upisa u kontroleru. Procesor zatvara bafere sa tri stanja za adresne linije ABUS 15..0,
12254linije podataka DBUS7..0 i upravljaku liniju WRBUS magistrale, dok kontroler zatvara bafere
12255sa tri stanja za upravljaku liniju FCBUS magistrale.
12256 Signali rdTMR i wrTMR imaju vrednosti koje su komplement vrednosti upravljakih
12257signala RDBUS i WRBUS magistrale, respektivno, kada signal select ima vrednost 1 i
12258vrednost 0 kada signal select ima vrednost 0. Signal rdTMR ima vrednost 1 a signal RDBUS
12259vrednost 0 za vreme operacije itanja nekog registra kontrolera, dok signal wrTMR ima
12260vrednost 1 a signal WRBUS vrednost 0 za vreme operacije upisa u neki od registara
12261kontrolera.
12262 Signal select ima vrednost 1 ukoliko se na adresnim linijama ABUS 150 magistrale nalazi
12263adresa iz opsega adresa dodeljenih registrima kontrolera za generisanje impulsa TMR.
12264Celokupan opseg adresa od 0000h do FFFFh podeljen je na opseg adresa od 0000h do EFFFh,
12265koje su dodeljene memoriji MEM, i opseg adresa od F000h do FFFFh, koje su dodeljene
12266registrima po svim kontrolerima periferija. Opseg adresa koje su dodeljene registrima po
12267kontrolerima periferija je predvien za adresiranje registara u najvie 64 kontrolera i to najvie
1226864 registra unutar odreenog kontrolera. Pri tome prilikom adresiranja nekog od registara
12269kontrolera sadraj na adresnim linijama ABUS150 magistrale ima sledeu strukturu: bitovi
12270ABUS1512 su sve jedinice, bitovi ABUS116 odreuju broj kontrolera i bitovi ABUS 50 adresu
12271registra unutar kontrolera. Broj kontrolera periferije za odreeni kontroler periferije se
12272postavlja mikroprekidaima na jednu od vrednosti u opsegu 0 do 63. Registrima CR2, WCR158
12273i WCR70 su unutar opsega adresa datog kontrolera dodeljene adrese 0, 2 i 3, pa bitovi
12274ABUS52 mora da budu nule dok se njihovo pojedinano adresiranje realizuje bitovima ABUS 1
12275i ABUS0.
12276 Na osnovu usvojene strukture adresa signal select ima vrednost 1 ukoliko su na adresnim
12277linijama ABUS1512 magistrale sve jedinice, na adresnim linijama ABUS 116 se nalazi vrednost
12278koja odgovara vrednosti postavljenoj mikroprekidaima i na adresnim linijama ABUS 52 sve
12279nule. Signali selCR, selWCRH i selWCRL se dobijaju na izlazima 0, 2 i 3 dekodera DC na
12280osnovu vrednosti signala ABUS1, ABUS0 i select sa ulaza 1, 0 i E, respektivno. Pri vrednosti 0
12281signala select i signali selCR, selWCRH i selWCRL su 0. Pri vrednosti 1 signala select jedan

411

411

12282od signala selCR, selWCRH i selWCRL postaje 1 i to signal odreen binarnom vrednou
12283signala ABUS1 i ABUS0.
12284 Signal select ima vrednost 0 ukoliko se na adresnim linijama ABUS150 magistrale ne nalazi
12285adresa iz opsega adresa dodeljenih registrima kontrolera periferije, pri emu to moe da bude
12286ili adresa memorijske lokacije ili registra iz nekog drugog kontrolera periferije. Tada se
12287formiraju vrednosti 0 signala rdTMR i wrTMR bez obzira na vrednosti signala RDBUS i
12288 WRBUS , respektivno.
12289 Kombinaciona mrea za generisanje upravljakog signala FCBUS magistrale generie ovaj
12290signal na osnovu signala fcTMR. Pri vrednosti 0 signala fcTMR na liniji signala FCBUS je
12291stanje visoke impedance, dok je pri vrednosti 1 signala fcTMR na liniji signala FCBUS
12292vrednost 0. Signal fcTMR normalno ima vrednost 0, dok se vrednost 1 u trajanju jedna
12293perioda signala takta javlja kao indikacija da je u kontroleru operacija itanja ili upisa zavrena.
122946.4.2 Upravljaka jedinica
12295
12296
12297

Upravljaka jedinica uprav se sastoji iz dva dela:


upravljake jedinice magistrale uprav_bus i
upravljake jedinice generisanja impulsa uprav_intr.

12298 Upravljaka jedinica uprav_bus omoguuje da processor CPU kao gazda realizuje u
12299kontroleru kao slugi upisivanje sadraja u registre i itanje sadraja iz registara. Upisivanjem u
12300upravljaki registar sadraja koji na poziciji bita start ima vrednost 1 startuje upravljaka
12301jedinica uprav_intr, koja generie impuls intr trajanja jedna perioda signala takta po
12302odbrojavanju onoliko perioda signala takta koliko je to zadato sadrajem registra WCR 150.
12303Upisivanjem u upravljaki registar sadraja koji na poziciji bita start ima vrednost 0, zaustavlja
12304se upravljaka jedinica uprav_intr.
12305

Struktura i opis upravljakih jedinica uprav_bus i uprav_intr se daju u daljem tekstu.

123066.4.2.1 Upravljaka jedinica magistrale


12307 U ovom odeljku se daju dijagram toka operacija, algoritam generisanja upravljakih signala i
12308struktura upravljake jedinice uprav_bus.
123096.4.2.1.1 Dijagram toka operacija
12310 Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 219). U
12311operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim
12312blokovima se nalaze opisi logikih uslova koji definiu grananja algoritma.
12313 U dijagrama toka operacija stalno se vri provera da li je procesor startovao u kontroleru
12314ciklus itanja ili ciklus upisa, pri emu se procesor ponaa kao gazda, a kontroler kao sluga.
12315Ako nije startovan ni ciklus itanja ni ciklus upisa nema izvravanja mikrooperacija. Ako je
12316startovan jedan od ova dva ciklusa izvravaju se mikrooperacije saglasno ciklusu koji je
12317startovan.

412

412

G a z d a s ta rto v a o c ik lu s
ita n ja ?

G a z d a s ta rto v a o c ik lu s
u p is a ?

U p is s a d r a ja g a z d e u a d re s ira n i
re g is ta r

S la n je s a d r a ja a d re s ira n o g
re g is tra g a z d i

In d ik a c ija g a z d i d a je c ik lu s u p is a
zav re n

In d ik a c ija g a z d i d a je c ik lu s
ita n ja z a v r e n

12318
12319

Slika 219 Dijagram toka operacija

12320 Ako je startovan ciklus itanja, procesoru se kao gazdi alje sadraj adresiranog registra
12321kontrolera i indikacija da je kontroler kao sluga zavrio itanje.
12322 Ako je startovan ciklus upisa, u adresirani registar kontrolera se upisuje sadraj koji
12323procesor kao gazda alje i gazdi alje indikacija da je kontroler kao sluga zavrio upis. U
12324sluaju kada se sadraj upisuje u upravljaki registar, aktivnosti u kontroleru zavise od toga da
12325li se kontroler startuje ili zaustavlja. Ukoliko se vri startovanje kontrolera, pokree se
12326upravljaka jedinica uprav_intr koja generie signale neophodne za odbrojavanje onoliko
12327perioda signala takta koliko je zadato sadrajem registra WCR15...0. Kada se odbroji zadati broj
12328perioda signala takta, generie se impuls trajanja jedna perioda signala takta koji se alje
12329procesoru kao signal prekida. Generisani impuls se koristi i za zaustavljanje daljeg
12330odbrojavanja signala takta do sledeeg startovanja kontrolera. Ukoliko se vri zaustavljanje
12331kontrolera, zaustavlja se i odbrojavanje signala takta i nema generisanja impulsa.
123326.4.2.1.2 Algoritam generisanja upravljakih signala
12333 Algoritam generisanja upravljakih signala je formiran na osnovu dijagrama toka operacija
12334(slika 219) i dat u obliku dijagrama toka upravljakih signala (slika 220) i sekvence
12335upravljakih signala po koracima (tabela 63).
12336 Dijagram toka upravljakih signala je predstavljen operacionim i uslovnim blokovima. U
12337operacionim blokovima se nalaze upravljaki signali i uslovi pod kojima se oni generiu. U
12338uslovnim blokovima se nalaze signali logikih uslova.
rd T M R

0
0

w rT M R
1

fc T M R ,
if s e lC R th e n C R in ,
if s e lW C R H th e n W C R H in ,
if s e lW C R L th e n W C R L in

12339
12340

fc T M R ,
if s e lC R th e n C R o u t,
if s e lW C R H th e n W C R H o u t,
if s e lW C R L th e n W C R L o u t

Slika 220 Dijagram toka upravljakih signala

12341 U sekvenci upravljakih signala po koracima se koriste iskazi za signale. Iskazi za signale su
12342oblika
12343 if uslov then signali
12344Ovaj iskaz sadri signal uslov i spisak upravljakih signala signali koji se generiu ukoliko
12345signal uslov ima vrednost 1.

413

413

12346 Objanjenja vezana za generisanje upravljakih signala su data zajedniki za dijagram toka
12347upravljakih signala i sekvencu upravljakih signala po koracima i to u okviru sekvence
12348upravljakih signala po koracima.
12349
Tabela 63 Sekvenca upravljakih signala po koracima
12350! Upravljaka jedinica generie upravljaki signale operacione jedinice fcTMR, CRout, WCRHout,
12351WCRLout, CRin, WCRHi, i WCRLin. Ovi signali imaju vrednost 0 ukoliko oba signala rdTMR i
12352wrTMR operacione jedinice imaju vrednost 0, a dobijaju vrednost 1 pod odreenim uslovima jedino
12353kada jedan od signala rdTMR i wrTMR postane 1. U daljem tekstu je objanjeno da signali rdTMR i
12354wrTMR imaju vrednost 1 trajanja jedna perioda signala takta. Stoga i svi signali koje generie
12355upravljaka jedinica imaju vrednost 1 trajanja jedna perioda signala takta. !
12356! Signal rdTMR postaje 1 kada processor CPU na neki signal takta prebaci adresne linije ABUS15..0
12357magistrale iz stanja visoke impedanse na vrednost adrese nekog od programski dostupnih registara CR 2,
12358WCR15...8 ili WCR7 operacione jedinice i upravljaku liniju RDBUS magistrale iz stanja visoke
12359impedanse na vrednost 0, ime zapoinje ciklus itanja. Uzeto je da je vreme itanja registara CR 2,
12360WCR15...8 ili WCR7 jedna perioda signala takta, pa se na isti signal takta na koji je signal RDBUS
12361postao 0 a signal rdTMR postao 1, generie vrednost 1 signala fcTMR bloka interfejs i time
12362obezbeuje da upravljaka linija FCBUS magistrale pree iz stanja visoke impedanse na vrednost 0.
12363Zbog vrednosti 0 signala FCBUS procesor na prvi sledei signal takta prihvata proitani podatak i
12364signal RDBUS magistrale prebacuje u stanje visoke impedanse to dovodi do toga da na isti signal
12365takta najpre signal rdTMR postaje 0 a zatim i signal fcTMR postaje 0. Kao rezultat, signali rdTMR i
12366fcTMR imaju vrednost 1 trajanja jedna perioda signala takta. !
12367! Slina je situacija i prilikom realizacije ciklusa upisa, pri emu signal wrTMR postaje 1 kada
12368processor prebaci adresne linije ABUS15..0 i linije podataka DBUS7..0 magistrale iz stanja visoke
12369impedanse na vrednost adrese registra i sadraja za upis u neki od programski dostupnih registara CR 2,
12370WCR15...8 ili WCR7, respektivno, i upravljaku liniju WRBUS magistrale iz stanja visoke impedanse
12371na vrednost 0, ime zapoinje ciklus upisa. Kao rezultat, signali wrTMR i fcTMR imaju vrednost 1
12372trajanja jedna perioda signala takta. !
12373! U oba sluaja se, u zavisnosti od toga koji je od registara CR 2, WCR15...8 ili WCR7...0 adresiran
12374sadrajem na adresnim linijama ABUS15..0 magistrale, generie vrednost 1 jednog od signala selCR,
12375selWCRH i selWCRL, respektivno, operacione jedinice. !
12376! Pri vrednosti 1 signala rdTMR, a u zavisnosti od toga koji od signala selCR, selWCRH i selWCRL
12377operacione jedinice ima vrednost 1, generie se vrednost 1 jednog od signala CRout, WCRHout i
12378WCRout operacione jedinice, respektivno. Vrednou 1 jednog od signala CRout, WCRHout i
12379WCRout se obezbeuje da linije podataka DBUS70 magistrale preu iz stanja visoke impedanse na
12380vrednost sadraja jednog od registara CR 2, WCR15...8 ili WCR7...0, respektivno. Kada signal rdTMR
12381postane 0 i signali fcTMR, CRout, WCRHout i WCRout postanu 0, pa se upravljaka linija
12382 FCBUS magistrale i linije podataka DBUS7..0 magistrale vraaju u stanje visoke impedanse. !
12383! Pri vrednosti 1 signala wrTMR, a u zavisnosti od toga koji od signala selCR, selWCRH i selWCRL
12384ima vrednost 1, generie se vrednost 1 jednog od signala CRin, WCRHin i WCRLin operacione
12385jedinice, respektivno. Vrednou 1 jednog od signala CRin, WCRHin i WCRLin se obezbeuje da se
12386sadraj sa linija podataka DBUS 70 magistrale upie u jedan od registara CR 2, WCR15...8 ili WCR7...0,
12387respektivno. Kada signal wrTMR postane 0 i signali fcTMR, CRin, WCRHin i WCRLin postanu 0,
12388pa se upravljaka linija FCBUS magistrale vraa u stanje visoke impedanse. !
12389
if (rdTMR + wrTMR) then fcTMR,
12390
if (rdTMRselCR) then CRout,
12391
if (rdTMRselWCRH) then WCRHout,
12392
if (rdTMRselWCRL) then WCRLout,
12393
if (wrTMRselCR) then CRin,
12394
if (wrTMRselWCRH) then WCRHin,
12395
if (wrTMRselWCRL) then WCRLin
123966.4.2.1.3 Struktura upravljake jedinice
12397 Upravljaka jedinica oiene realizacije se sastoji od logikih elemenata koji na osnovu
12398signala itanja rdTMR i signala upisa wrTMR operacione jedinice i signala logikih uslova
12399generiu sledee signale (slika 221):
414

414

12400 signal fcTMR operacione jedinice zavretka ili itanja nekog od registara kontrolera
12401CR2, WCR15...8 ili WCR7...0 ili upisa u neki od ovih registara kontrolera,
12402 signale CRout, WCRHout i WCRLout operacione jedinice itanja registara kontrolera
12403CR2, WCR15...8 ili WCR7...0,
12404 signale CRin, WCRHin i WCRLin operacione jedinice upisa u registre kontrolera CR2,
12405WCR15...8 ili WCR7...0.

s e lW C R H

W C R H out

s e lW C R L

W C R Lout

w rT M R
s e lC R

C R in


oper

C R out

oper

s e lC R


oper

rd T M R

fc T M R o p e r

12406
12407

oper

o p e r rd T M R
o p er w rT M R

s e lW C R H

W C R H in

s e lW C R L

W C R L in

Slika 221 Struktura upravljake jedinice uprav_bus

12408 Signali rdTMR i wrTMR imaju vrednosti 1 trajanja jedna perioda signala takta. To je
12409posledica usvojenog naina generisanja signala rdCPU i wrCPU procesora CPU, na osnovu
12410kojih se formiraju signali RDBUS i WRBUS magistrale BUS i rdTMR i wrTMR
12411kontrolera, i signala fcTMR, na osnovu koga se generiu signali FCBUS magistrale BUS i
12412fcCPU procesora CPU.
12413 Kod itanja procesor na i-ti signal takta ulazi u korak stepi koji koristi da signal rdCPU
12414postavi na vrednost 1, to redom daje vrednost 0 signala RDBUS , vrednost 1 signala rdTMR
12415i fcTMR, vrednost 0 signala FCBUS i vrednost 1 signala fcCPU. Kako je u procesoru
12416vrednost 1 signala fcCPU uslov za prelazak iz koraka stepi u korak stepj i kako ta vrednost
12417dolazi u koraku stepi, to procesor na prvi sledei signal takta prelazi na korak step j. Zbog toga
12418se u koraku stepi ostaje samo jedna perioda signala takta, to ima za posledicu da signal
12419rdCPU ima vrednost 1, signal RDBUS vrednost 0, signali rdTMR i fcTMR vrednost 1,
12420signal FCBUS vrednost 0 i signal fcCPU vrednost 1 trajanja jedna perioda signala takta. Iz
12421istih razloga kod upisa signal wrCPU ima vrednost 1, signal WRBUS vrednost 0, signali
12422wrTMR i fcTMR vrednost 1, signal FCBUS vrednost 0 i signal fcCPU vrednost 1 trajanja
12423jedna perioda signala takta. S obzirom na to da su vrednosti 1 signal rdCPU i wrCPU trajanja
12424jedna perioda signala takta i da svi signali koje generie upravljake jedinica uprav_bus
12425ukljuuju jedan od signala rdTMR i wrTMR, to i svi preostali signali imaju vrednost 1, ako su
12426dati u direktnom obliku, i vrednost 0, ako su dati u komplementarnom obliku, trajanja jedna
12427perioda signala takta.
12428 Upravljaka jedinica uprav_bus sadri kombinacione mree koje pomou signala rdTMR i
12429wrTMR, koji dolaze iz operacione jedinice, signala logikih uslova selCR, selWCRH i
12430selWCRL, koji dolaze iz operacione jedinice, i saglasno algoritmu generisanja upravljakih
12431signala (tabela 63) generie upravljake signale operacione jedinice.
12432
12433
12434
12435
12436
12437
12438

415

Upravljaki signali operacione jedinice oper se generiu na sledei nain:


fcTMR = rdTMR+wrTMR
CRout = rdTMRselCR
WCRHout = rdTMR selWCRH
WCRLout = rdTMR selWCRL
CRin = wrTMRselCR
WCRHin = wrTMR selWCRH

415

12439

WCRLin = wrTMR selWCRL

12440 Pri njihovom generisanju koriste se sledei signali logikih uslova koji dolaze iz operacione
12441jedinice oper i to:
12442 rdTMR operacione jedinice oper,
12443 wrTMR operacione jedinice oper,
12444 selCR operacione jedinice oper,
12445 selWCRH operacione jedinice oper,
12446 selDR operacione jedinice oper,
12447 selWCRL operacione jedinice oper.
124486.4.2.2 Upravljaka jedinica generisanja impulsa
12449 U ovom poglavlju se daju dijagram toka operacija, algoritam generisanja upravljakih
12450signala i struktura upravljake jedinice.
124516.4.2.2.1 Dijagram toka operacija
12452 Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 222). U
12453operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim
12454blokovima se nalaze opisi logikih uslova koji definiu grananja algoritma.
0

K o n tr o le r s ta rto v a n
1

B ro ja ta k to v a o d b ro ja o
z a d a ti b r o j ta k to v a
0

In k re m e n tira n je b ro ja a ta k to v a
G e n e ris a n je p re k id a
B r is a n je b ro ja a ta k to v a

12455
12456

Slika 222 Dijagram toka operacija

12457 U poetnom koraku vri se provera da li je kontroler startovan ili ne. Ako kontroler nije
12458startovan nema izvravanja mikrooperacija. Ako je kontroler startovan izvravaju se
12459odgovarajue mikrooperacije. Najpre se vri provera da li je broja taktova odbrojao zadati
12460broj taktova. Ako broja nije odbrojao, vri se provera da li je kontroler jo uvek startovan ili
12461je zaustavljen programskim putem. Ako je kontroler zaustavljen, nema izvravanja
12462mikrooperacija. Ako nije, ponavljaju se ve opisani koraci. Ako je broja odbrojao, generie se
12463impuls i brie broja taktova, pa se proverava da li je kontroler jo uvek startovan ili je
12464zaustavljen programskim putem. Ako je kontroler zaustavljen, nema izvravanja
12465mikrooperacija. Ako nije, ponavljaju se ve opisani koraci.
124666.4.2.2.2 Algoritam generisanja upravljakih signala
12467 Algoritam generisanja upravljakih signala je formiran na osnovu dijagrama toka operacija
12468(slika 222) i dat u obliku dijagrama toka upravljakih signala (slika 223) i sekvence
12469upravljakih signala po koracima (tabela 64).
12470 Dijagram toka upravljakih signala je predstavljen operacionim i uslovnim blokovima. U
12471operacionim blokovima se nalaze upravljaki signali i uslovi pod kojima se oni generiu. U
12472uslovnim blokovima se nalaze signali logikih uslova.

416

416

CR
1

i f ( T M R A C C 1 5 ...0 e q l W C R 1 5 ...0 ) t h e n i n t r ,
i f ( i n t r s t o p T M R ) t h e n i n c T M R A C C ,
i f ( i n t r s t o p T M R ) t h e n c l T M R A C C
in tr + s to p T M R

12473
12474

Slika 223 Dijagram toka upravljakih signala

12475 U sekvenci upravljakih signala po koracima se koriste iskazi za signale. Iskazi za signale su
12476oblika
12477 if uslov then signali
12478Ovaj iskaz sadri signal uslov i spisak upravljakih signala signali koji se generiu ukoliko
12479signal uslov ima vrednost 1.
12480 Objanjenja vezana za generisanje upravljakih signala su data zajedniki za dijagram toka
12481upravljakih signala i sekvencu upravljakih signala po koracima i to u okviru sekvence
12482upravljakih signala po koracima.

417

417

12483

Tabela 64 Sekvenca upravljakih signala po koracima

12484! Upravljaka jedinica generie upravljaki signal intr procesora CPU i operacione jedinice oper i
12485upravljake signale incTMRACC i clTMRACC upravljake jedinice uprav. Ovi signali imaju
12486vrednost 0 ukoliko signal CR2 operacione jedinice ima vrednost 0, a dobijaju vrednost 1 pod odreenim
12487uslovima jedino kada signal CR2 postane 1. !
12488! Signal CR2 postaje 1 kada se kontroler startuje upisivanjem vrednosti 1 u jednorazredni upravljaki
12489registar CR2 operacione jedinice koji sadri bit start. Signal CR2 ostaje 1 sve dok ne istekne vreme
12490definisano sadrajem registra WCR150 operacione jedinice i generie signal intr trajanja jedna perioda
12491signala takta kojim se upisuje vrednosti 0 u registar CR2 i time kontroler zaustavlja. SignalCR2 postaje
124920 i pre isteka vremena definisanog sadrajem registra WCR 150 ukoliko se kontroler zaustavlja
12493programskim putem upisivanjem vrednosti 0 u registar CR2. !
12494! Signal intr ima vrednost 0 sve dok je sadraj brojaa taktova TMRACC 150 upravljake jedinice manji
12495od sadraja registra WCR150. Poetna vrednost brojaa TMRACC70 je nula, a njegov sadraj se
12496inkrementira vrednou 1 signala incTMRACC. Signal incTMRACC postaje 1 kada signal CR2
12497postane 1 i ostaje 1 sve dok signal intr ima vrednost 0. Kada se zbog vrednosti 1 signala incTMRACC
12498sadraj brojaa TMRACC70 inkrementiranjem izjednai sa sadrajem registra WCR 150, signal intr
12499postaje 1. Vrednou 1 signala intr u procesoru izaziva prekida. Pored toga, zbog vrednosti 1 signala
12500intr i CR2 formira se vrednost 1 signala clTMRACC i vrednost 0 signala incTMRACC. Vrednou 1
12501signala intr u registar CR2 se upisuje vrednost 0 i kontroler zaustavlja. Pored toga, zbog vrednosti 1
12502signala clTMTACC u broja TMRACC70 se upisuju sve nule, pa signal intr postaje 0. Kao rezultat,
12503signal intr je imao vrednost 1 trajanja jedna perioda signala takta. !
12504! Normalno signal kontrolera stopTMR ima vrednost 0 i ne utie na prethodno opisani rad upravljake
12505jedinice. Meutim, prilikom zaustavljanja kontrolera programskim putem upisivanjem vrednosti 0 u
12506registar CR2, signal stopTMR operacione jedinice postaje 1 u trajanju jedna perioda signala takta.
12507Zbog vrednosti 1 signala stopTMR i CR2 formira se vrednost 1 signala clTMRACC i vrednost 0
12508signala incTMRACC, pa se u broja TMRACC70 upisuju sve nule. !
12509
if (TMRACC150 eql WCR150) then intr,
12510
if CR2 then (if int r stopTMR then incTMRACC else clTMRACC);
125116.4.2.3 Struktura upravljake jedinice
12512 Upravljaka jedinica oiene realizacije se sastoji od brojaa taktova TMRACC 15...0,
12513komparatora CMP i logikih elemenata koji na osnovu sadraja registra WCR 15...0 i signala CR2
12514upravljakog registra CR2 koji sadri bit start i signala zaustavljanja brojaa taktova
12515TMRACC15...0 stopTMR koji dolaze iz operacione jedinice generiu upravljake signale
12516upravljake jedinice incTMRACC i clTMRACC i upravljaki signal intr operacione jedinice
12517oper i procesora CPU (slika 189).
12518 Broja TMRACC15...0 se koristi kao broja taktova. Njegov poetni sadraj je nula, pa, uz
12519pretpostavku da je sadraj registra WCR15...0 koji definie vreme kanjenja posle koga treba da
12520se generie vrednost 1 signala intr trajanja jedna perioda signala takta razliit od nule, signal
12521intr na izlazu EQL komparatora CMP ima vrednost 0. Zbog toga, prilikom startovanja
12522kontrolera, kada se programskim putem upisuje vrednost 1 u razred CR2 upravljakog registra
12523kontrolera, signal incTMRACC ima vrednost 1, pa se sadraj brojaa TMRACC15...0
12524inkrementira i to onoliko puta koliki je sadraj registra WCR 15...0. Komparator CMP uporeuje
12525sadraje registra WCR15...0 i brojaa TMRACC15...0 i na izlazu EQL daje vrednost 0 signala intr
12526dok se ovi sadraji razlikuju i vrednost 1 signala intr kada ovi sadraji postanu jednaki.
12527Vrednost 1 signala intr izaziva prekid u procesoru CPU. Zbog vrednosti 1 signala intr, signal
12528incTMRACC postaje 0 a signal clIMRACC postaje 1, pa se u broja TMRACC15...0 upisuje
12529poetni sadraj sve nule. Zbog vrednosti 1 signala intr u razred CR2 upravljakog registra
12530kontrolera upisuje se vrednost 0. Signal intr ima vrednosti 1 u trajanju jedna perioda signala
12531takta.
12532 Normalno signal stopTMR operacione jedinice oper ima vrednost 0 i ne utie na prethodno
12533opisani rad upravljake jedinice. Meutim, prilikom zaustavljanja kontrolera programskim
12534putem upisivanjem vrednosti 0 u razred CR2 upravljakog registra operacione jedinice oper, signal
418

418

12535stopTMR postaje 1 u trajanju jedna perioda signala takta. Zbog vrednosti 1 signala stopTMR
12536ili CR2 formira se vrednost 1 signala clTMRACC i vrednost 0 signala incTMRACC, pa se u
12537broja TMRACC15...0 upisuju sve nule.!
0
oper
CR2

in c T M R A C C

16
IN C
C L

TM RA CC
16

oper
s to p T M R
in tr

m r
M R LD
15 0

C LK

TM RA CC

7 ...0

c lT M R A C C
oper
W C R 1 5 ...0

16

A
EQ L
B

16

CPU
oper
in tr

C M P

12538
12539

Slika 224 Sruktura upravljake jedinice uprav_intr

12540
12541

Upravljaki signal operacione jedinice oper i procesora CPU se generie na sledei nain:
intr = TMRACC150 eql WCR150

12542 Pri generisanju signala intr koriste se signali WCR150 koji dolaze iz operacione jedinice
12543oper.
12544
12545
12546

Upravljaki signali upravljake jedinice uprav se generie na sledei nain:


incTMRACC = CR2 int r stopTMR

clTMRACC = CR2 (intr + stopTMR)

12547 Pri generisanju signala incTMRACC i clTMRACC koriste se signali CR2 i stopTMR koji
12548dolaze iz operacione jedinice oper.

419

419

12549

7 LITERATURA

12550 1. Lazi, B., Logiko projektovanje raunara, NaukaElektrotehniki fakultet, Beograd,


12551Srbija, Jugoslavija, 1994
12552 2. ivkovi, D., Popovi, D., Impulsna i digitalna elektronika, NaukaElektrotehniki
12553fakultet, Beograd, Srbija, Jugoslavija, 1992.
12554 3. Aleksi, T., Raunariorganizacija i arhitektura, Nauna knjiga, Beograd, Srbija,
12555Jugoslavija, 1985.
12556 4. Stallings, W., Computer Organization and Architecture, Prentice-Hall, Englewood Cliffs,
12557New Jersey, USA, 1996.
12558 5. Patterson, D., Hennessy, J., Goldberg, D., Computer ArchitectureA Quantitative
12559Approach, Morgan Kaufmann Publishers Inc., San Francisco, California, USA, 1996.
12560 6. Flynn, M., Computer Architecture: Pipelined and Parallel Processor Design, Jones and
12561Bartlett, USA, 1995
12562 7. J. Djordjevic, A. Milenkovic, N. Grbanovic, An Integrated Educational Environment
12563for Teaching Computer Architecture and Organisation, IEEE MICRO, May 2000.pp. 66-74.
12564 8. J. Djordjevic, M. Bojovic, A. Milenkovi, An Integrated Educational Environment for
12565Computer Architecture and Organisation, Proceedings of the Symposium on Education and
12566Employment, France, September, 1998.
12567 9. J. Djordjevic, A. Milenkovic, S. Prodanovic A Hierarchical Memory System
12568Environment, IEEE TC Computer Architecture Newsletter, March 1999.
12569 10. J. orevi, B. Nikoli, Vizuelni simulator edukacionog raunara, Zbornik radova IT
125702001, abljak, Jugoslavija, Mart 2001.
12571 11. J. Djordjevic, R. N. Ibbett, M. R. Barbacci, Evaluation of computer architectures using
12572ISPS, Proc. of IEE, Vol. 127, Pt. E. No. 4, pp. 126-131, July 1980.
12573 12. J. Djordjevic, M. R. Barbacci, B. Hosler, A PMS Level Notation for the Description
12574and Simulation of Digital Systems, The Computer Journal, Vol. 28, No. 4, pp. 357-365, 1985.
12575 13. S. Miladinovi, J. orevi, A. Milenkovi, Programski sistem za grafiki opis i
12576simulaciju digitalnih sistema, Zbornik radova ETRAN 1997, Zlatibor, Jugoslavija, Jun 1997.
12577 14. N. Grbanovic, J. Djordjevic, B. Nikoli, The Software Package Of An Educational
12578Computer System, prijavljen za objavljivanje u IJEEE, England, October, 2002.
12579 15. J. orevi, B. Nikoli, Neki Aspekti Realizacije Vizuelnog Simulatora Edukacionog
12580Raunara, , Zbornik radova IT 2001, abljak, Jugoslavija, Mart 2001.
12581 16. J. orevi, T. Borozan, B. Nikoli, Softversko okruenje za simulaciju raunara,
12582 Zbornik radova ETRAN 2001, Bukovika Banja, Jugoslavija, Jun 2001.
12583 17. J. Djordjevic, A. Milenkovic, I. Todorovic, D. Marinov, CALCAS: A Computer
12584Architecture Learning and Knowledge Assessment System, IEEE TC Computer Architecture
12585Newsletter, March 1999.
12586 18. A. Milenkovic, Nikoli, B., J. Djordjevic, CASTLE, Computer Architecture Self12587Testing and Learning System, WCAE 2002, Workshop on Computer Architecture Education,
12588Anchorage, Alaska, May 26, 2002.
420

12589 19. orevi, J., Prirunik iz arhitekture raunara, Elektrotehniki fakultet, Beograd,
125901997.
12591 20. orevi, J., Prirunik iz arhitekture i organizacije raunara, Elektrotehniki fakultet,
12592Beograd, 1997.
12593 21. orevi, J., Grbanovi, N., Nikoli, B., Arhitektura raunara, Edukacioni raunarski
12594sistem, Prirunik za simulaciju sa zadacima, Elektrotehniki fakultet, Beograd, 2002.
12595

421

422

12596

422

You might also like