Anda di halaman 1dari 226

J. OREVI, Z.

RADIVOJEVI,
M. PUNT, N. MILETI

ARHITEKTURA
I
ORGANIZACIJA
RAUNARA

ZBIRKA REENIH ZADATAKA

BEOGRAD, 2013.

PREDGOVOR
Knjiga sadri reene zadatke iz predmeta Arhitektura i organizacija raunara. Zadaci su
grupisani po oblastima i to izvravanje instrukcija, ....
Knjiga je napisana u veoma kratkom vremenskom periodu, pa su, i pored izvrenih
provera, mogue odreene greke. Autor e biti zahvalan svima onima koji budu ukazili na
otkrivene greke.
Autor
Beograd
15.05.2013.

SADRAJ
PREDGOVOR ....................................................................................................................................................... 1
SADRAJ ............................................................................................................................................................... 3
1

PROJEKTOVANJE PROCESORA .......................................................................................................... 5


1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
1.14
1.15
1.16
1.17
1.18
1.19
1.20

ZADATAK................................................................................................................................................ 5
ZADATAK.............................................................................................................................................. 26
ZADATAK.............................................................................................................................................. 43
ZADATAK.............................................................................................................................................. 60
ZADATAK.............................................................................................................................................. 75
ZADATAK.............................................................................................................................................. 91
ZADATAK............................................................................................................................................ 103
ZADATAK............................................................................................................................................ 117
ZADATAK............................................................................................................................................ 131
ZADATAK ....................................................................................................................................... 143
ZADATAK ....................................................................................................................................... 151
ZADATAK ....................................................................................................................................... 159
ZADATAK ....................................................................................................................................... 167
ZADATAK ....................................................................................................................................... 177
ZADATAK ....................................................................................................................................... 183
ZADATAK ....................................................................................................................................... 189
ZADATAK ....................................................................................................................................... 195
ZADATAK ....................................................................................................................................... 206
ZADATAK ....................................................................................................................................... 212
ZADATAK ....................................................................................................................................... 218

LITERATURA ......................................................................................................................................... 224

1 PROJEKTOVANJE PROCESORA
1.1 ZADATAK
Posmatra se deo raunara koji ine memorija i procesor.
Memorija je kapaciteta 216 bajtova. irina memorijske rei je 1 bajt.
U procesoru od programski dostupnih registara postoji registar programskog brojaa PC
duine dva bajta, registar akumulatora ACC duine dva bajta, registri opte namene R[0] do
R[31] duine dva bajta, programska statusna re PSW duine jedan bajt koja sadri samo
indikator Z, ukaziva na vrh steka SP duine 2 bajta i ukaziva na tabelu sa adresama
prekidnih rutina IVTP duine 2 bajta.
Podaci su celobrojne veliine bez znaka duine dva bajta. Podaci u memoriji zauzimaju
dve susedne memorijske lokacije, pri emu se stariji bajt nalazi na nioj lokaciji a mlai bajt
na vioj lokaciji.
Procesor je sa jednoadresnim formatom instrukcija. Instrukcije su promenljive duine i to
jedan, dva, tri ili etiri bajta. Bitovi prvog bajta su oznaeni sa 31 do 24, drugogo bajta sa 23
do 16, treeg bajta sa 15 do 8 i etvrtog bajta sa 7 do 0. Struktura instrukcija je definisana na
nain dat u daljem tekstu.
Bit 7 prvog bajta instrukcije ima vrednost 0 za instrukcije skoka, pri emu bit 6 prvog bajta
instrukcije ima vrednost 0 za instrukcija uslovnog skoka i 1 za instrukcije bezuslovnog skoka.
Instrukcija uslovnog skoka je instrukcija uslovnog skoka ukoliko je rezultat nula (BZ).
Bitovima 5 do 0 prvog bajta instrukcije specificira kod operacije za instrukcije uslovnog
skoka. Na osnovu toga je za instrukciju BZ usvojen kod operacije 00000000. Instrukcija BZ
se realizuje kao relativni skok u odnosu na tekuu vrednost programskog brojaa PC, a
pomeraj je 8 bitna celobrojna veliina sa znakom data drugim bajtom instrukcije. Duina
instrukcije je dva bajta. Instrukcije bezuslovnog skoka su instrukcija bezuslovnog skoka
(JMP) i instrukcija skoka na potprogram (JSR). Bitovima 5 do 0 prvog bajta instrukcije se
specificira kod operacije za instrukcije bezuslovnog skoka. Na osnovu toga su za instrukcije
JMP i JSR usvojeni kodovi operacija 01000000 i 01000001, respektivno. Instrukcije JMP i
JSR se realizuju kao apsolutni skokovi, a adresa skoka je data drugim i treim bajtom
instrukcije, pri emu je stariji bajt adrese skoka dat drugim bajtom instrukcije a mlai bajt
adrese skoka treim bajtom instrukcije. Duina instrukcija je tri bajta.
Bit 7 prvog bajta instrukcije ima vrednost 1 za bezadresne i adresne instrukcije, pri emu
bit 6 prvog bajta instrukcije ima vrednost 0 za bezadresne instrukcije i 1 za adresne
instrukcije. Bezadresne instrukcije su instrukcija povratka iz potprograma (RTS), instrukcija
povratka iz prekidne rutine (RTI) i instrukcija aritmetikog pomeranja udesno za jedno mesto
sadraja akumulatora ACC (ASR). Bitovima 5 do 0 prvog bajta instrukcije specificira se kod
operacije za bezadresne instrukcije. Na osnovu toga su za instrukcije RTS, RTI i ASR
usvojeni kodovi operacija 10000000, 10000001 i 10000010, respektivno. Duina instrukcija
je jedan bajt. Adresne instrukcije su instrukcija prenosa u akumulator (LD), instrukcija
prenosa iz akumulatora (ST), aritmetika instrukcija sabiranja (ADD), logika instrukcija
logiki proizvod (AND) i instrukcija bezuslovnog skoka na sraunatu adresu (JADR).
Bitovima 5 do 0 prvog bajta instrukcija specificira se kod operacije za adresne instrukcije. Na
osnovu toga su za instrukcije LD, ST, ADD, AND i JADR usvojeni kodovi operacija
11000000, 11000001, 11000010, 11000011 i 11000100, respektivno. Duina instrukcija je
dva, tri ili etiri bajta i zavisi od specificiranog naina adresiranja.
Naini adresiranja se za adresne instrukcije specificiraju bitovima 7, 6 i 5 drugog bajta
instrukcije i to na sledei nain: 000-registarsko direktno adresiranje (regdir), 001-registarsko

indirektno adresiranje (regind), 010-registarsko indirektno sa postdekrementiranjem


adresiranje (postdecr), 011-registarsko indirektno sa preinkrementiranjem adresiranje
(preincr), 100-memorijsko direktno adresiranje (memdir), 101-memorijsko indirektno
adresiranje (memind), 110-registarsko indirektno sa pomerajem adresiranje (regindpom) i 111neposredno adresiranje (immed). Adresiranja kod kojih bit 7 ima vrednost 0 koriste neki od
registara opte namene R[0] i R[31] specificiran bitovima 4 do 0 drugog bajta instrukcije.
Duina instrukcija je dva bajta. Adresiranja kod kojih bit 7 ima vrednost 1 imaju trei ili trei i
etvrti bajt instrukcije. Kod memorijskog direktnog i memorijskog indirektnog adresiranja
trei i etvrti bajt instrukcije sadre adresu memorijske lokacije, pri emu je stariji bajt adrese
dat treim bajtom a mlai bajt adrese etvrtim bajtom. Kod memorijskog indirektnog
adresiranja adresa duine 16 bita zauzima dve susedne memorijske lokacije, pri emu je stariji
bajt adrese nalazi na nioj a mlai bajt adrese na vioj lokaciji. Bitovi 4 do 0 drugog bajta
instrukcije se ne koriste. Duina instrukcija je etiri bajta. Kod registarskog indirektnog sa
pomerajem adresiranja trei bajt instrukcije sadri 8 bitni pomeraj koji je dat kao celobrojna
veliina sa znakom. Jedan od registara opte namene R[0] do R[31] koji se koristi specificiran
je bitovima 4 do 0 drugog bajta instrukcije. Duina instrukcija je tri bajta. Kod neposrednog
adresiranja trei i etvrti bajt instrukcije sadre 16 bitni podatak, pri emu je stariji bajt
podatka dat treim bajtom a mlai bajt podatka etvrtim bajtom. Bitovi 4 do 0 drugog bajta
instrukcije se ne koriste. Duina instrukcija je etiri bajta.
Nema provere na greku koda operacije i naina adresiranja i nema odgovarajuih
unutranjih prekida. Od prekida jedino postoje spoljanji prekidi koji dolaze od
ulazno/izlaznih ureaja. Broj linije najvieg prioriteta po kojoj je stigao zahtev za prekid
nalazi se u binarnom obliku u registru BRU duine dva bajta i predstavlja broja ulaza u tabelu
sa adresama prekidnih rutina. Adrese su duine 16 bita zauzimaju po dve susedne memorijske
lokacije, pri emu se stariji bajt adrese nalazi na nioj lokaciji a mlai bajt adrese na vioj
lokaciji. Poetna adresa tabele sa adresama prekidnih rutina se nalazi u registru IVTP. U
okviru hardverskog dela opsluivanja zahteva za prekid na stek sa stavljaju samo registri PC i
PSW.
Stek raste prema niim memorijskim lokacijama, a registar SP ukazuje na prvu slobodnu
memorijsku lokaciju.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa direktnim vezama.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati sekvencu upravljakih signala po koracima za upravljaku jedinicu oiene
realizacije.
) Nacrtati strukturnu emu upravljake jedinice oiene realizacije i dati izraze za
generisanje upravljakih signala i to za upravljake signale operacione jedinice ldMAR, incPC
i RD, sve upravljake signale upravljake jedinice kojima se upravlja brojaem koraka i tri
signala kojima se odreuje vrednost koja treba da se upie u broja koraka.
REENjE
a) U procesoru se koriste sledei formati instrukcija:
1. Bezadresne instrukcije (RTS, RTI, ASR)
31 30 29 28 27 26 25 24

10

OC

Slika 1 Bezadresne instrukcije


Poljem OC se specificira kod operacije koja se izvrava.
2. Instrukcije uslovnog skoka (BZ)
31 30 29 28 27 26 25 24

00

23 22 21 20 19 18 17 16

OC

BP

Slika 2 Instrukcije uslovnog skoka


Poljem OC se specificira kod operacije koja se izvrava, a poljem BP 8-mo bitni pomeraj
kao celobrojna veliina sa znakom koji se sabira sa PC da bi se dobila adresa skoka.
3. Instrukcije bezuslovnog skoka (JMP, JSR)
31 30 29 28 27 26 25 24

01

23 22 21 20 19 18 17 16

15 14 13 12 11 10 9 8

JAH
I

JAL
I

OC

Slika 3 Instrukcije bezuslovnog skoka

Poljem OC se specificira kod operacije koja se izvrava, a poljima JAH i JAL 8 starijih i 8
mlaih bitova 16-to bitne adrese skoka.
4. Adresne instrukcije (LD, ST, ADD, AND) sa regdir
31 30 29 28 27 26 25 24

11

OC

23 22 21 20 19 18 17 16

AM
M

R
PSR

Slika 4 Adresne instrukcije sa regdir

Poljem OC se specificira kod operacije jednoadresne instrukcije, poljem AM registarsko


direktno adresiranje i poljem R jedan od 32 registra opte namene R[0] do R[31].
Napomena: Pretpostavlja sa da se u instrukciji JADR ne koristi registarsko direktno
adresiranje.
Adresne instrukcije (LD, ST, ADD, AND, JADR) sa regind, postdecr, preincr
31 30 29 28 27 26 25 24

11

OC

23 22 21 20 19 18 17 16

AM
M

R
PSR

Slika 5 Adresne instrukcije sa regind, postdecr, preincr

Poljem OC se specificira kod operacije jednoadresne instrukcije, poljem AM registarsko


indirektno, registarsko indirektno sa preinkrementiranjem ili registarsko indirektno sa
postdekrementiranjem adresiranje i poljem R jedan od 32 registra opte namene R[0] do
R[31].

Adresne instrukcije (LD, ST, ADD, AND, JADR) sa regindpom


31 30 29 28 27 26 25 24

11

OC

23 22 21 20 19 18 17 16

AM
M

R
PSR

15 14 13 12 11 10 9 8

AP

Slika 6 Adresne instrukcije sa regindpom

Poljem OC se specificira kod operacije jednoadresne instrukcije, poljem AM registarsko


indirektno sa pomerajem adresiranje, poljem R jedan od 32 registra opte namene R[0] do
R[31] i poljem AP 8-mo bitni pomeraj kao celobrojna veliina sa znakom.
Adresne instrukcije (LD, ADD, AND) sa imm
31 30 29 28 27 26 25 24

11

OC

23 22 21 20 19 18 17 16

AM
M

PSR

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

I MH

I ML

Slika 7 Adresne instrukcije sa imm

Poljem OC se specificira kod operacije jednoadresne instrukcije, poljem AM neposredno


adresiranje i poljima IMH i IML 8 starijih i 8 mlaih bitova 16-bitne neposredne veliine.
Napomena: Pretpostavlja sa da se u instrukcijama ST i JADR ne koristi neposredno
adresiranje.
Adresne instrukcije (LD, ST, ADD, AND, JADR) sa memdir, memind
31 30 29 28 27 26 25 24

11

OC

23 22 21 20 19 18 17 16

AM
M

PSR

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

ADH

AD L

Slika 8 Adresne instrukcije sa memdir i memind

Poljem OC se specificira kod operacije jednoadresne instrukcije, poljem AM memorijsko


direktno ili memorijsko indirektno adresiranje i poljima ADH i ADL 8 starijih i 8 mlaih
bitova 16-to bitne adrese.
b) Jedna realizacija strukturne eme operacione jedinice sa direktnim vezama je data na
slikama 9 i 10. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.
Programski dostupni registri su registar programskog brojaa PC15..0, registar akumulatora
ACC15..0, registri opte namene R[0]15..0 do R[31]15..0, programska statusna re PSW7..0 koja
sadri samo indikator Z, ukaziva na vrh steka SP15..0 i ukaziva na tabelu sa adresama
prekidnih rutina IVTP15..0.
U programski broja PC15..0 se upisuje nova vrednost u fazi izvravanja instrukcija JMP i
JSR (adresa bezuslovnog skoka iz razreda IR23..8 prihvatnog registra instrukcije), u fazi
izvravanja instrukcije JADR (sraunata adresa skoka iz registra adrese memorije MAR15..0), u
fazi izvravanja instrukcije BZ (sraunata adresa uslovnog skoka ALU15..0 sa izlaza ALU) i u
fazi izvravanja instrukcija RTS i RTI (vrednost povratka skinuta sa steka iz prihvatnog
registra 16-bitnih veliina D15..0). Ove vrednosti se multipleksiraju kroz multiplekser mxPC.
Sadraj programskog brojaa PC15..0 se inkrementira prilikom itanja svakog bajta instrukcije.
U registar akumulatora ACC15..0, se upisuje u fazi izvravanja instrukcija ADD, AND i
ASR (rezultat aritmetike, logike ili pomerake operacije ALU15..0 sa izlaza ALU) i LD
(ptihvatni registar operanda B15..0). Ove vrednosti se multipleksiraju kroz multiplekser
mxACC.
Registri opte namene R[0]15..0 do R[31]15..0 su realizovani kao registarski fajl. Adresa
registra koji se ita ili u koji se upisuje odreena je razredima IR20..16 prihvatnog registra

instrukcije, a itanje/upis se realizuje vrednostima 0 i 1 signala wrR. U adresirani registar se


upisuje u fazi izvravanja instrukcije ST ukoliko je specificirano direktno registarsko
adresiranje (sadraj akumulatora ACC15..0) i fazi izvravanja instrukcije LD (sadraja
prihvatnog registra operanda B15..0). Ove vrednosti se multipleksiraju kroz multiplekser mxR.
BUS
144444444444444444424444444444444444443

ABUS15..0

RD
WR

RD
WR

DBUS7..0

A15..0

RDBUS

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

MAR15..0

0
1
2 0

mxMDR0
mxMDR1
mxMDR2

PC15..0
R15..0
IR15..0
D15..0

B15..0
SP15..0
ALU15..0

MDR CLK

LD

ldMDR

mxMAR
1

OBI

MDR7..0

ldMAR LD
MAR CLK
incMAR INC
mxMAR0
mxMAR1
mxMAR2

OBI

0
1
2 0

mxMDR
1

ACC15..8
ACC7..0
PC7..0

PSW7..0
PC15..8

PC15..0
incPC INC
ldPC LD

PC CLK

mxPC0 0
mxPC
mxPC1 1 0 1 2 3
IR23..8
D15..0
MAR15..0
ALU15..0

MDR7..0
ldIR1 LD IR1 CLK

INC
DEC

LD

SP

ldIR2

LD

IR31..24
MDR7..0

SP15..0
incSP
decSP

MDR7..0

ldIR3 LD IR3 CLK

CLK

IR2 CLK
IR23..16

MDR7..0
ldIR4 LD IR4 CLK

IR15..8

IR7..0

PSW7..0
ldPSW LD

PSW CLK

mxPSW 0 mxPSW
0 1
MDR7..0

MDR7..0
ldDH LD

D CLK
D15..8

formiranje
indikatora

MDR7..0
ldDL LD

D CLK
D7..0

Slika 9 Operaciona jedinica (prvi deo)


U programsku statusnu re PSW7..0 se upisuje u fazi izvravanja instrukcija RTI (vrednost
sa steka iz registra podatka memorije MDR7..0) i prilikom izvravanja aritmetikih, logikih i
pomerakih instrukcija se upisuju formirane vrednosti indikatora, ali to u datom procesoru
nije realizovano. Ove vrednosti se multipleksiraju kroz multiplekser mxPSW. Uzeto je da
PSW7..0 sadri samo indikator Z.

U ukaziva na vrh steka SP15..0 se upisuje posebnom instrukcijom koja u datom procesoru
nije realizovana. Sadraj SP15..0 se dekrementira i inkrementira prilikom stavljanja na stek i
skidanja sa steka, respektivno.
ALU15..0
A15...0

ALU

mxX1 1
mxX
mxX0 0 0 1 2 3
ACC15..0
PC15..0
R15..0
IVTP15..0

B15...0

mxY1 1
mxY
mxY0 0 0 1 2 3
B15..0
IR23..23.IR23..16
IR15..15.IR15..8
BRU15..0

ACC15..0

B15..0
LD ldB
incB INC
B
CLK
decB DEC

ldACC LD ACC CLK

mxB1
mxB0

mxACC

mxACC0 0

B15...0

ALU15..0

mxR
IR20..16

mxB
0

IR15..0

CLK
IVTP
LD
0

mxR

IVTP15..0

DI15..0
A4..0

R15..0
D15..0

ACC15..0 B15..0
0

add
and
asr

formiranje BRU
WR

wrR
CLK
IL
BRU
LD
SL

DO15..0

R15..0

0
slBRU

BRU15..0

Slika 10 Operaciona jedinica (drugi deo)


U ukaziva na tabelu sa adresama prekidnih rutina IVTP15..0 se upisuje
instrukcijom koja u datom procesoru nije realizovana.

posebnom

Pomoni registri su registar adrese memorije MAR15..0, registar podatka memorije MDR7..0,
prihvatni registar instrukcije IR31..0, prihvatni registar operanda B15..0, prihvatni registar 16bitnih veliina D15..0, i registar broja ulaza BRU15..0,.
Pomoni registar adrese memorije MAR15..0 sadri adresu memorijske lokacije kod itanja
iz memorije i kod upisa u memoriju. U MAR15..0 se upisuje nova vrednost u fazi itanja
instrukcije (tekua vrednost programskog brojaa PC15..0), u fazi formiranja adrese u sluaju
registarskog indirektnog adresiranja i registarskog indirektnog sa postdekrementiranjem
adresiranja (adresirani registar opte namene R15..0), u fazi formiranja adrese u sluaju
memorijskog direktnog adresiranja i memorijskog indirektnog adresiranja (razredi IR15..0
prihvatnog registra instrukcije), u fazi formiranja adrese u sluaju memorijskog indirektnog
adresiranja (prihvatni registar 16-bitnih veliina D15..0), u fazi formiranja adrese u sluaju
registarskog indirektnog sa pomerajem adresiranja (sraunata adresa ALU15..0 sa izlaza ALU),
u fazi izvravanja instrukcije JST, RTS i RTI i u fazi opsluivanja prekida prilikom uvanja
PC15..0 i PSW7..0 na steku (SP15..0) i u fazi formiranja adrese u sluaju registarskog indirektnog

10

sa predekrementiranjem adresiranja (prihvatni registar operanda B15..0). Ove vrednosti se


multipleksiraju kroz multiplekser mxMAR.
Pomoni registar podatka memorije MDR7..0 sadri podatak proitan iz memorijske
lokacije i podatak za upis u memorijsku lokaciju. U MDR7..0 se upisuje nova vrednost u fazi
formiranja adrese operanda prilikom itanja operanda iz memorijske lokacije (proitani
sadraj memorijske lokacije DO7..0 iz interfejsa prema sistemskoj magistrali), u fazi
izvravanja instrukcije ST (stariji ACC15..8 i mlai ACC7..0 bajt akumulatora ACC15..0), u fazi
izvravanja instrukcije JSR i u fazi opsluivanja prekida (stariji PC15..8 i mlai PC7..0 bajt
programskog brojaa PC15..0) i u fazi opsluivanja prekida (programska statusna re PSW7..0).
Ove vrednosti se multipleksiraju kroz multiplekser mxMDR.
Prihvatni registar instrukcije IR31..0 slui za prihvatanje od jednog do etiri bajta
instrukcije. Realizovan je od etiri posebna registra IR1, IR2, IR3 i IR4 duine jedan bajt u
koje se upisuje u fazi itanja instrukcije (pomoni registar podatka memorije MDR7..0). U
registar IR1 se uvek upisuje, dok se u registre IR2, IR3 i IR4 upisuje u zavisnosti od toga da li
je instrukcija duine dva, tri ili etiri bajta, respektivno.
Prihvatni registar operanda B15..0 sadri drugi operand specificiran adresnim delom
instrukcije (ADD i AND). U registar B15..0 se upisuje u fazi formiranja adrese i itanja
operanda adresnih instrukcija (adresirani registar opte namene R15..0 u sluaju registarskog
direktnog adresiranja, prihvatni registar 16-bitnih veliina D15..0 u sluaju memorijskih
adresiranja i razredi IR15..0 u sluaju neposrednog adresiranja). Ove vrednosti se
multipleksiraju kroz multiplekser mxB. Ovaj registar se koristi i u fazi formiranja adrese u
sluaju registarskog indirektnog sa preinkrementiranjem adresiranja i registarskog indirektnog
sa postdekrementiranjem adresiranja. Tada se, najpre adresirani registar opte namene se
prebacuje iz registarskog fajla
u registar B15..0, zatim se vri inkrementiranja ili
dekrementiranje registra B15..0, i na kraju se registar B15..0 prebacuje u adresirani registar opte
namene. U sluaju registarskog indirektnog sa preinkrementiranjem adresiranja adresiranja
registar B15..0 se prebacuje i u registar MAR15..0.
Prihvatni registar 16-bitnih veliina D15..0 slui da se najpre u dva memorijska ciklusa
itanja prihvate dva bajta 16-bitnih veliina koji se itaju iz dva susedne memorijske lokacije i
da se zatim sadraj registra D15..0 prebaci u odgovarajui 16-razredni regitar procesora.
Realizovan je od dva posebna registra DH i DL duine jedan bajt u koje se iz registra MDR7..0
upisuje stariji i mlai bajt, respektivno. Koristi se u fazi formiranja adrese i itanja operanda u
sluaju memorijskog indirektnog adresiranja, kada se adresa operanda prebacuje u MAR15..0,
zatim u fazi formiranja adrese i itanja operanda u sluaju memorijskih adresiranja, kada se
adresa operanda prebacuje u B15..0, i na kraju u fazi izvravanje operacije instrukcije RTI,
kada se vrednost skinuta sa steka prebacuje u PC15..0.
Registar broja ulaza BRU15..0 sadri broj ulaza u tabelu sa adresama prekidnih rutina.
Pretpostavlja se da je broj ulaza formiran i da se nalazi u BRU15..0. Kako je adresa prekidne
rutine je 16 bita, a irina memorijske lokcadije 8 bita, to adresa zauzima dve susedne
memorijske lokacije. Stoga se pomeranjem registra BRU15..0 ulevo za jedno mesto najpre broj
ulaza pretvara u pomeraj, zatim se sabiranjem dobijenog pomeraja sa IVTP15..0 dobija adresa
memorijske lokacije i na kraju se sa dobijene i prve sledee adrese memorijske lokacije itaju
stariji i blai bajt 16-bitne adrese prekidne rutine.
Aritmetika/logika/pomeraka jedinica ALU se koristi u fazi izvravanja instrukcije ADD
kada se sabiraju sadraji registara ACC15..0 i B15..0, instrukcije AND kada se realizuje logika I
operacija nada sadrajima registara ACC15..0 i B15..0, i instrukcije ASR, kada se sadraj registra

11

ACC15..0 aritmetiki pomera za jedno mesto udesno. Jedinica ALU se koristi i u fazi
formiranje adrese i itanje operanda, kada se sabiranjem adresiranog registra opte namene
R15..0 i 8-bitnog pomeraja IR15..8 proirenog znakom dobija adresa memorijske lokacije. Pored
toga, jedinica ALU se koristi i u fazi opsluivanje prekida, kada se sabiranjem registara
IVTP15..0 i BRU15..0, dobija adresa memorijske lokacije poev od koje se itaju dva bajta
adrese prekidne rutine. Na kraju, jedinica ALU se koristi u fazi izvravanja instrukcije BZ,
kada se sabiranjem PC15..0 i i 8-bitnog pomeraja IR23..16 proirenog znakom dobija adresa
skoka.
Interfejs sistemske magistrale realizuje cikluse itanja i upisa na sistemskoj magistrali.
Adresa memorijske lokacije je data sadrajem registra MAR15..0 koji se vodi na linije A15..0,
proitani sadraj se sa linija DO7..0 vodi u registar MDR7..0 i sadraj za upis se iz registra
MDR7..0 vodi na linije DI7..0. Ciklusi itanja i upisa se staruje vrednou 1 signala RD i WR,
respektivno, trajanja jedna perioda signala takta koje generie upravljaka jedinica.
Vrednostima 1 i 0 signala OBI interfejs alje indikaciju upravljakoj jedinici da je ciklusu
toku i da je ciklus zavren, respektivno. Pretpostavljeno je da je sistemska magistrala
asinhrona, pa interfejs signalima RDBUS i WRBUS staruje cikluse itanja i upisa,
respektivno, i signalom FCBUS dobija indikaciju da je starovan ciklus zavren.
v) Signali logikih uslova operacija, adresiranja i duina instrukcija, generiu se prema
izrazima datim na slikama 11, 12 i 13, respektivno.
RTS = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
RTI = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
ASR = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
LD = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
ST = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
ADD = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
AND = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
JADR = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
BZ = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
JMP = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
JSR = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
STJADR = ST+JADR
Slika 11 Signali operacija
Bitovi 7 do 0 prvog bajta instrukcije kojima se specificira kod operacije nalaze se u
razredima IR31 do IR24 prihvatnog registra instrukcije IR31..0. Za sve bezadresne instrukcije
razredi IR31 i IR30 imaju vrednost 1 i 0, respektivno, dok razredi IR29 do IR24 imaju vrednosti
000000, 000001 i 000010 za instrukcije RTS, RTI i ASR, respektivno. Za sve adresne
instrukcije razredi IR31 i IR30 imaju vrednost 1 i 1, respektivno, dok razredi IR29 do IR24 imaju
vrednosti 000000, 000001, 000010, 000011 i 000100 za instrukcije LD, ST, ADD, AND i
JADR, respektivno. Za sve instrukcije uslovnog skoka razredi IR31 i IR30 imaju vrednost 0 i 0,
respektivno, dok razredi IR29 do IR24 imaju vrednosti 000000 za instrukciju BZ. Za sve
instrukcije bezuslovnog skoka razredi IR31 i IR30 imaju vrednost 0 i 1, respektivno, dok razredi
IR29 do IR24 imaju vrednosti 000000 i 000001 za instrukcije JMP i JSR, respektivno.

12

regdir = IR 23 IR 22 IR 21
regind = IR 23 IR 22 IR 21
postdecr = IR 23 IR 22 IR 21
preincr = IR 23 IR 22 IR 21
memdir = IR 23 IR 22 IR 21
memind = IR 23 IR 22 IR 21
regindpom = IR 23 IR 22 IR 21
imm = IR 23 IR 22 IR 21
Slika 12 Signali adresiranja
Bitovi 7 do 5 drugog bajta instrukcije kojima se u sluaju adresnih instrukcija specificira
nain adresiranja nalaze se u razredima IR23 do IR21 prihvatnog registra instrukcije IR31..0.
Vrednostima 000 do 111 razreda IR23 do IR21 specificiraju se 8 naina adresiranja od
registarskog direktnog adresiranja do neposrednog adresiranja.
l1 = RTS+RTI+ASR
l2_brn = BZ
l2_arlogpr = (LD+ST+ADD+AND)regdir+
(LD+ST+ADD+AND+JADR)(regind+postdecr+preincr)
l3_jmp = JMP+JSR
l3_arlogpr = (LD+ST+ADD+AND+JADR)regindpom
Slika 13 Signali duina instrukcija
Signali duina intrukcija zavise od vrednosti koda operacije, ukoliko se radi o bezadresnim
instrukcijama, instrukcijama uslovnog skoka i instrukcijama bezuslovnog skoka, i od
vrednosti koda operacije i naina adresiranja, ukoliko se radi o adresnim instrukcijama.
Duina instrukcije je jedan bajt ukoliko se radi o bezadresnim instrukcijama RTS, RTI ili
ASR, pa tada signal l1 ima vrednost 1. Duina instrukcije je dva bajta ukoliko se radi o
instrukciji uslovnog skoka BZ, pa tada signal l2_brn ima vrednost 1. Duina instrukcije je
dva bajta i ukoliko se radi ili o adresnim instrukcijama LD, ST, ADD ili AND za koje je
specificirano registarsko direktno adresiranje ili adresnim instrukcijama LD, ST, ADD, AND
ili JADR za koje je specificirano registarsko indirektno, registarsko indirektno sa
postdekrementiranjem ili registarko indirektno sa preinkrementiranjem adresiranje, pa tada
signal l2_arlogpr ima vrednost 1. Duina instrukcije je tri bajta ukoliko se radi o
instrukcijama bezuslovnog skoka JMP ili JSR, pa tada signal l3_jmp ima vrednost 1. Duina
instrukcije je tri bajta i ukoliko se radi o adresnim instrukcijama LD, ST, ADD, AND ili
JADR za koje je specificirano registarsko indirektno sa pomerajem adresiranje, pa tada signal
l3_arlogpr ima vrednost 1. U svim ostalim situacijama duina instrukcije je etiri bajta.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 14.
! itanje instrukcije !
! itanje prvog bajta instrukcije i upis u IR1. !
step00 ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 ldIR1;

13

! Prelazak na fazu izvravanje operacije ukoliko je instrukcija duine 1 bajt. !


step04 br (if l1 then step31);
! itanje drugog bajta instrukcije i upis u IR2 i prelazak na fazu izvravanje operacije ukoliko je
instrukcija uslovnog skoka duine 2 bajta. !
step05 ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 ldIR2, br (if l2_brn then step31);
! Prelazak na fazu formiranje adrese i itanje operanda ukoliko je aritmetika instrukcija, logika
instrukcije ili instrukcija prenosa sa registarskim direktnim adresiranjem, registarskim indirektnim
adresiranjem, registarskim indirektnim sa preinkrementiranjem adresiranjem ili registarskim
indirektnim sa postdekrementiranjem adresiranjem duine 2 bajta. !
step09 br (if l2_arlogpr then step15);
! itanje treeg bajta instrukcije i upis u IR3 i prelazak na fazu izvravanje operacije ukoliko je
instrukcija bezuslovnog skoka duine 3 bajta. !
step0A ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D ldIR3, br (if l3_jmp then step31);
! Prelazak na fazu formiranje adrese i itanje operanda ukoliko je aritmetika instrukcija, logika
instrukcija ili instrukcija prenosa sa registarskim indirektnim sa pomerajem adresiranjem duine 3
bajta. !
step0E br (if l3_arlogpr then step15);
! itanje etvrtog bajta instrukcije i upis u IR3 i prelazak na fazu formiranje adrese i itanje operanda
jer se radi o aritmetikoj instrukciji, logikoj instrukciji ili instrukcija prenosa sa memorijskim
direktnim adresiranjem, memorijskim indirektnim adresiranjem ili neposrednim adresiranjem duine 4
bajta. !
step0F ldMAR, incPC;
step10 RD;
step11 br (if OBI then step11);
step12 ldIR4, br step15;
! Formiranje adrese i itanje operanda !
! Prelazak na jednu od 8 sekvenci koraka u saglasnosti sa specificiranim nainom adresiranja. !
step15 br (case (regdir, regind, postdecr, preincr, memdir, memind, regindpom, imm)
then
(regdir, step16), (regind, step17), (postdecr, step18), (preincr, step1B),
(memdir, step1E), (memind, step1F), (regindpom, step27), (imm, step30));
! Registarsko direktno adresiranje !
! Sadraj adresiranog registra opte namene R15..0 u registar B15..0 i prelazak na fazu izvravanje
operacije. !
step16 ldB, br step31;
! Registarsko indirektno adresiranje !
! Sadraj adresiranog registra opte namene R15..0 u registar MAR15..0 i prelazak na korake itanja
operanda. !
step17 mxMAR0, ldMAR, br step28;
! Registarsko indirektno sa postdekrementiranjem adresiranje !
! Sadraj adresiranog registra opte namene R15..0 u registar MAR15..0, prebacivanje R15..0 u B15..0,
dekrementiranje B15..0 , prebacivanje B15..0 u R15..0 i prelazak na korake itanja operanda. !
step18 mxMAR0, ldMAR, ldB;
step19 decB;
step1A mxR,wrR, br step28;
! Registarsko indirektno sa preinkrementiranjem adresiranje !
! Prebacivanje adresiranog registra opte namene R15..0 u B15..0, inkrementiranje B15..0, prebacivanje
B15..0 u R15..0 i MAR15..0 i prelazak na korake itanja operanda. !

14

step1B ldB;
step1C incB;
step1D mxMAR2, mxMAR1, ldMAR, mxR, wrR, br step28;
! Memorijsko direktno adresiranje !
! Sadraj razreda IR15..0 u registar MAR15..0 i prelazak na korake itanja operanda. !
step1E mxMAR1, ldMAR, br step28;
! Memorijsko indirektno adresiranje !
! Sadraj razreda IR15..0 u registar MAR15..0, itanje starijeg i mlaeg bajta adrese operanda i upisivanje
u DH i DL, respektivno, prebacivanje D15..0 u MAR15..0 i prelazak na korake itanja operanda. !
step1F mxMAR1, ldMAR;
step20 RD;
step21 br (if OBI then step21);
step22 ldDH, incMAR;
step23 RD;
step24 br (if OBI then step24);
step25 ldDL;
step26 mxMAR1, mxMAR0, ldMAR, br step28;
! Registarsko indirektno sa pomerajem adresiranje !
! Prebacivanje sume adresiranog registra opte namene R15..0 i pomeraja iz razreda R15..8 proirenog
znakom u registar MAR15..0 i prelazak na korake itanja operanda. !
step27 mxX0, mxY0, add, mxMAR2, ldMAR;
! itanje operanda za sva memorijska adresiranja !
! Operand se ita na osnovu sadraja registra MAR15..0. Ukoliko se radi o instrukcijama ST ili JADR
operand se ne ita, ve se prelazi na fazu izvravanje operacije. U fazi izvravanje operacije
instrukcija ST i JADR sadraj registra MAR15..0 se koristi kao adresa odredita (ST) i adresa skoka
(JADR). !
step28 br (if STJADR then step31);
! itanje starijeg i mlaeg bajta operanda i upisivanje u DH i DL, respektivno, prebacivanje D15..0 u
B15..0 i prelazak na fazu izvravanje operacije. !
step29 RD;
step2A br (if OBI then step2A);
step2B ldDH, incMAR;
step2C RD;
step2D br (if OBI then step2D);
step2E ldDL;
step2F mxB0, ldB, br step31;
! Neposredno adresiranje !
! Neposredna veliina iz IR15..0 u registar B15..0 i prelazak na fazu izvravanje operacije. !
step30 mxB1, ldB;
! Izvravanje operacije !
! Prelazak na jednu od 11 sekvenci koraka u saglasnosti sa specificiranom operacijom. !
step31 br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step32), (ST, step33), (ADD, step3C), (AND, step3D), (ASR, step3E),
(BZ, step3F), (JMP, step41), (JADR, step42), (JSR, step43),
(RTI, step4A), (RTS, step4F));
! LD !
! Operand iz B15..0 u ACC15..0 i prelazak na fazu opsluivanje prekida. !
step32 mxACC0, ldACC, br step59;
! ST !
! Sadraj ACC15..0 se upisuje u registar opte namene R15..0 ili u memorijsku lokaciju (adresa je
sraunata u fazi formiranje adrese i itanje operanda i nalazi se u registru MAR15..0), u zavisnosti od

15

toga da li se radi o registarskom direktnom adresiranju ili nekom od memorijskih adresiranja,


respektivno. Pretpostavlja se da neposredno adresiranje nije specificirano, jer se ovo adresiranje ne
koristi za odredini operand. !
step33 br (if regdir then step3B);
! Upisivanje starijeg bajta ACC15..8 i mlaeg bajta ACC7..0 u memorijsku lokcaju ija se adresa nalazi u
registru MAR15..0 i u prvu sledeu memorijsku lokaciju, respektivno, i prelazak na fazu opsluivanje
prekida. !
step34 mxMDR0, ldMDR;
step35 WR;
step36 br (if OBI then step36);
step37 mxMDR1, ldMDR, incMAR;
step38 WR;
step39 br (if OBI then step39);
step3A br step59;
! Upisivanje ACC15..0 u adresirani registar opte namene R15..0 i prelazak na fazu opsluivanje prekida.
!
step3B wrR, br step59;
! ADD !
! Rezultat aritmetike operacije sabiranja ACC15..0 i B15..0 u ACC15..0 i prelazak na fazu opsluivanje
prekida. !
step3C add, ldACC, br step59;
! AND !
! Rezultat logike I operacije ACC15..0 i B15..0 u ACC15..0 i prelazak na fazu opsluivanje prekida.!
step3D and, ldACC, br step59;
! ASR !
! Rezultat aritmetikog pomeranja udesno ACC15..0 u ACC15..0 i prelazak na fazu opsluivanje prekida.
!
step3E asr, ldACC, br step59;
! BZ !
! Ukoliko je PSWZ=0 nema skoka, ve odmah prelazak na fazu opsluivanje prekida. !
step3F br (if PSWZ then step59);
! Ukoliko je PSWZ=1 ima skoka, pa najpre upisivanje sume PC15..0 i pomeraja IR23..16 proirenog
znakom u PC15..0, a zatim prelazak na fazu opsluivanje prekida. !
step40 mxX1, mxX0, mxY1, mxY0, add, mxPC1, ldPC, br step59;
! JMP !
! Upisivanje adrese skoka iz IR23..8 u PC15..0, a zatim prelazak na fazu opsluivanje prekida. !
step41 ldPC, br step59;

16

! JADR !
! Upisivanje adrese skoka (adresa je sraunata u fazi formiranje adrese i itanje operanda i nalazi se u
registru MAR15..0) iz MAR15..0 u PC15..0, a zatim prelazak na fazu opsluivanje prekida. !
step42 mxPC0, ldPC, br step59;
! JSR !
! Stavljanje PC15..0 na vrh steka upisivanjem najpre mlaeg bajta PC7..0 a zatim i starijeg bajta PC15..8 u
memorijsku lokaciju odreenu sadrajem
SP15..0 i u prvu niu memorijsku lokaciju uz
dekrementiranja SP15..0, respektivno, upisivanje adrese skoka IR23..8 u PC15..0 i prelazak na fazu
opsluivanje prekida. !
step43 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR1, mxMDR0, ldMDR;
step44 WR;
step45 br (if OBI then step45);
step46 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, ldMDR;
step47 WR;
step48 br (if OBI then step48);
step49 ldPC, br step59;
! RTI !
! Restauriranje PSW7..0 sadrajem se vrh steka uz inkrementiranje SP15..0 pre itanja memorijske
lokacije odreene sadrajem SP15..0 i upisivanje u PSW7..0. !
step4A incSP;
step4B mxMAR2, mxMAR0, ldMAR;
step4C RD;
step4D br (if OBI then step4D);
step4E ldPSW;
! RTS !
! Restauriranje PC15..0 sadrajem se vrh steka uz inkrementiranja SP15..0 pre itanja najpre starijeg bajta
a zatim i mlaeg bajta iz memorijske lokacije odreene sadrajem SP15..0 i prve vie memorijske
lokacije i upisivanje u DH i DL, respektivno, prebacivanje D15..0 u PC15..0 i prelazak na fazu
opsluivanje prekida. !
step4F incSP;
step50 mxMAR2, mxMAR0, ldMAR;
step51 RD;
step52 br (if OBI then step52);
step53 ldDH, incSP;
step54 mxMAR2, mxMAR0, ldMAR;
step55 RD;
step56 br (if OBI then step56);
step57 ldDL;
step58 ldPC, mxPC0, mxPC1;
! Opsluivanje prekida !
! Ukoliko je PREKID=0 nema prekida, ve odmah prelazak na fazu itanje instrukcije sledee
instrukcije tekueg programa. !
step59 br (if PREKID then step00);
! Ukoliko je PREKID=1 ima prekida. Stavljanje PC15..0 i PSW7..0 na vrh steka upisivanjem najpre
mlaeg bajta PC7..0, a zatim i starijeg bajta PC15..8 i na kraju PSW7..0 u memorijsku lokaciju odreenu
sadrajem SP15..0 i u sledee dve nie memorijske lokacije uz dekrementiranja SP15..0, respektivno. !
step5A mxMAR2, mxMAR0, ldMAR, decSP, mxMDR0, mxMDR1, ldMDR;
step5B WR;
step5C br (if OBI then step5C);
step5D mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, ldMDR;
step5E WR;
step5F br (if OBI then step5F);
step60 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, mxMDR0, ldMDR;
17

step61 WR;
step62 br (if OBI then step62);
! Pretvaranje broja ulaza u tabelu sa adresama prekidnih rutina u pomeraj pomeranjem BRU15..0 ulevo
za jedno mesto. !
step63 slBRU;
! Suma IVTP15..0 i BRU15..0 u MAR15..0, itanje starijeg i mlaeg bajta adrese prekidne rutine i
upisivanje u DH i DL, respektivno, prebacivanje D15..0 u PC15..0 i prelazak prelazak na fazu itanje
instrukcije prve instrukcije prekidne rutine . !
step64 mxX1, mxY1, add, mxMAR2, ldMAR;
step65 RD;
step66 br (if OBI then step66);
step67 ldDH, incMAR;
step68 RD;
step69 br (if OBI then step69);
step6A ldDL;
step6B mxPC1, mxPC0, ldPC, br step00;

Slika 14 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) Upravljaki signali operacione jedinice bi mogli da se generiu na osnovu sekvence
upravljakih signala po koracima (slika 14). Za svaki upravljaki signal operacione jedinice
trebalo bi proi kroz sekvencu upravljakih signala po koracima, traiti korake u kojima se
pojavljuje dati signal i izraz za dati signal formirati kao uniju signala dekodovanih stanja
brojaa koraka koji odgovaraju koracima u kojima se pojavljuje dati signal.
Upravljaki signali upravljake jedinice se ne mogu generisati na osnovu sekvence
upravljakih signala po koracima (slika 14), jer se u njoj ne pojavljuju upravljaki signali
upravljake jedinice, ve samo iskazi za skokove. Zbog toga je potrebno na osnovu sekvence
upravljakih signala po koracima formirati sekvencu upravljakih signala za upravljaku
jedinicu oiene realizacije. U njoj treba da se pored upravljakih signala operacione jedinice
pojave i upravljaki signali upravljake jedinice neophodni za realizaciju bezuslovnih,
uslovnih i viestruih uslovnih skokova specificiranih iskazima za skokove. Prilikom njenog
formiranja primenjuje se razliiti postupak za upravljake signale operacione jedinice i za
upravljake signale upravljake jedinice.
Za upravljake signale operacione jedinice treba u sekvenci upravljakih signala za
upravljaku jedinicu oiene realizacije staviti iskaze za signale onako kako se javljaju u
sekvenci upravljakih signala po koracima.
Za upravljake signale upravljake jedinice treba u sekvenci upravljakih signala po
koracima traiti iskaze: br stepA, br (if uslov then stepA) i br (case (uslov1, ..., uslovn) then
(uslov1, stepA1), ..., (uslovn, stepAn).
Umesto iskaza br stepA treba u sekvenci upravljakih signala za upravljaku jedinicu
oiene realizacije staviti signal bezuslovnog skoka koji odreuje da se bezuslovno prelazi na
korak stepA i signal valA koji odreuje da treba formirati binarnu vrednost A za upis u broja
koraka. Simbolika oznaka signala bezuslovnog skoka je bruncnd. Koraci stepi u kojima se
bezuslovni skokovi javljaju, koraci stepA na koje se bezuslovno skae, simbolike oznake
signala valA i vrednosti A u heksadecimalnom dati su u tabeli na slici 31.
stepi
step12
step16

stepA
step15
step31

valA
val35
val31

A
15
31

stepi
step3B
step3C
18

stepA
step59
step59

valA
val59
val59

A
59
59

step17
step1A
step1D
step1E
step26
step2F
step32
step3A

step28
step28
step28
step28
step28
step31
step59
step59

val28
val28
val28
val28
val28
val31
val59
val59

28
28
28
28
28
31
59
59

step3D
step3E
step40
step41
step42
step49
step6B

step59
step59
step59
step59
step59
step59
step00

59
59
59
59
59
59
00

val59
val59
val59
val59
val59
val59
val00

Slika 15 Koraci stepi, stepA, signali valA i vrednosti A za bezuslovne skokove


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

signal uslova
OBI
l1
l2_brn
l2_arlogpr
l3_jmp

signal uslovnog skoka


brl3_arlogpr
brSTJADR
brregdir
brnotPSWZ
brnotPREKID

signal uslova
l3_arlogpr
STJADR
regdir
PSWZ
PREKID

Slika 16 Signali uslovnih skokova i signali uslova


stepi
uslov
stepA
step02
step02
OBI
step04
step31
l1
step07
step07
OBI
step08
step31
l2_brn
step09 l2_arlogpr step15
step0C
step0C
OBI
step0D
step31
l3_jmp
step0E l3_arlogpr step15
step11
step11
OBI
step21
step21
OBI
step24
step24
OBI
step28 STJADR step31
step2A
step2A
OBI
step2D
step2D
OBI
step33
step3B
regdir

valA
val02
val31
val07
val31
val15
val0C
val31
val15
val11
val21
val24
val31
val2A
val2D
val3B

A
02
31
07
31
15
0C
31
15
11
21
24
31
2A
2D
3B

stepi
step36
step39
step3F
step45
step48
step4D
step52
step56
step59
step5C
step5F
step62
step66
step69

uslov
OBI
OBI
PSWZ
OBI
OBI
OBI
OBI
OBI
PREKID

OBI
OBI
OBI
OBI
OBI

stepA
step36
step39
step59
step45
step48
step4D
step52
step56
step00
step5C
step5F
step62
step66
step69

valA
val36
val2D
val59
val45
val48
val4D
val52
val56
val00
val5C
val5F
val62
val66
val69

A
36
39
59
45
48
4D
52
56
00
5C
5F
62
66
69

Slika 17 Koraci stepi, uslovi uslov, koraci stepA,


signali valA i vrednosti A za uslovne skokove
Umesto iskaza br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn) treba u
sekvenci upravljakih signala za upravljaku jedinicu oiene realizacije staviti signal
viestrukog uslovnog skoka pridruen signalima uslov1, uslov2,..., uslovn od kojih jedan treba
da ima vrednost 1 da bi se realizovao prelazak na jedan od koraka stepA1, stepA2, ..., stepAn.
Koraci stepi u kojima se viestruki uslovni skokovi javljaju i simbolike oznake pridruenih
signala viestrukih uslovnih skokova za sve korake ovog tipa koji se javljaju u sekvenci
upravljakih signala po koracima dati su u tabeli na slici 96. Signali uslova uslov1, uslov2,...,
19

uslovn, koraci stepA1, stepA2, ..., stepAn na koje se uslovno skae i vrednosti A1, A2, ..., An u
heksadecimalnom koje treba da se upiu u broja koraka u zavisnosti od toga koji od signala
uslova uslov1, uslov2,..., uslovn ima vrednost 1 za viestruke uslovne skokove u koracima
step15 i step31 dati su tabelama na slikama 19 i 20.
stepi
step15
step31

signal
bradr
bropr

Slika 18 Koraci sa viestrukim uslovnim skokovima i signali viestrukih uslovnih skokova


uslov
regdir
regind
postdecr
preincr
memdir
memind
regindpom
imm

stepA
step21
step25
step27
step29
step32
step34
step37
step41

A
16
17
18
1B
1E
1F
27
30

Slika 19 Signali uslova, koraci na koje se skae i vrednosti za upis u broja koraka za
viestruki uslovni skok u koraku step15
uslov
LD
ST
ADD
AND

stepA
step32
step33
step3C
step3D

A
32
33
3C
3D

uslov
ASR
BZ
JMP
JADR

stepA
step3E
step3F
step41
step42

A
3E
3F
41
42

uslov
JSR
RTI
RTS

stepA
step43
step4A
step4F

A
43
4A
4F

Slika 20 Signali uslova, koraci na koje se skae i vrednosti za upis u broja koraka za
viestruki uslovni skok u koraku step31
Iz izloenog se vidi da su upravljaki signali za upravljaku jedinicu oiene realizacije
signal bezuslovnog skoka bruncnd, signali uslovnih skokova (slika 16) i viestrukih uslovnih
skokova (slika 96) i signali valA za bezuslovne (slika 31) i uslovne (slika 17) skokove.
Po opisanom postupku je, na osnovu sekvence upravljakih signala po koracima (slika 14),
formirana sekvenca upravljakih signala za upravljaku jedinicu oiene realizacije (slika 21).
Jedna linija u toj sekvenci ima sledeu formu: na levoj strani nalazi se signal dekodovanog
stanja brojaa koraka, u sredini je niz upravljakih signala operacione i upravljake jedinice
koji imaju vrednost 1 kada dati signal dekodovanog stanja brojaa koraka ima vrednost 1, dok
komentar, tamo gde postoji, poinje usklinikom (!) i protee se do sledeeg usklinika (!).
Upravljaki signali operacione jedinice i upravljake jedinice se generiu na identian
nain na osnovu sekvence upravljakih signala za upravljaku jedinicu oiene realizacije
(slika 21). Za svaki upravljaki signal operacione jedinice i upravljake jedinice treba proi
kroz sekvencu upravljakih signala po koracima i traiti korake u kojima se pojavljuje dati
signal i izraz za dati signal formirati kao uniju signala dekodovanih stanja brojaa koraka koji
odgovaraju koracima u kojima se pojavljuje dati signal.

20

! itanje instrukcije !
T00 ldMAR, incPC;
T01 RD;
T02 brOBI, val02;
T03 ldIR1;
T04 brl1, val31;
T05 ldMAR, incPC;
T06 RD;
T07 brOBI, val07;
T08 ldIR2, br l2_brn, val31;
T09 brl2_arlogpr, val15;
T0A ldMAR, incPC;
T0B RD;
T0C brOBI, val0C;
T0D ldIR3, brl3_jmp, val31;
T0E brl3_arlogpr, val15;
T0F ldMAR, incPC;
T10 RD;
T11 brOBI, val11;
T12 ldIR4, bruncnd, val15;
! Formiranje adrese i itanje operanda !
T15 bradr;
! Registarsko direktno adresiranje !
T16 ldB, bruncnd, val31;
! Registarsko indirektno adresiranje !
T17 mxMAR0, ldMAR, bruncnd, val28;
! Registarsko indirektno sa postdekrementiranjem adresiranje !
T18 mxMAR0, ldMAR, ldB;
T19 decB;
T1A mxR,wrR, bruncnd, val28;
! Registarsko indirektno sa preinkrementiranjem adresiranje !
T1B ldB;
T1C incB;
T1D mxMAR2, mxMAR1, ldMAR, mxR, wrR, bruncnd, val28;
! Memorijsko direktno adresiranje !
T1E mxMAR1, ldMAR, bruncnd, val28;
! Memorijsko indirektno adresiranje !
T1F mxMAR1, ldMAR;
T20 RD;
T21 brOBI, val21;
T22 ldDH, incMAR;
T23 RD;
T24 brOBI, val24;
T25 ldDL;
T26 mxMAR1, mxMAR0, ldMAR, bruncnd, val28;
! Registarsko indirektno sa pomerajem adresiranje !
T27 mxX0, mxY0, add, mxMAR2, ldMAR;
! itanje operanda za sva memorijska adresiranja !
T28 brSTJADR, val31;
T29 RD;
T2A brOBI, val2A;
T2B ldDH, incMAR;

21

T2C RD;
T2D brOBI, val2D;
T2E ldDL;
T2F mxB0, ldB, bruncnd, val31;
! Neposredno adresiranje !
T30 mxB1, ldB;
! Izvravanje operacije !
T31 bropr;
! LD !
T32 mxACC0, ldACC, bruncnd, val59;
! ST !
T33 brregdir, val3B;
T34 mxMDR0, ldMDR;
T35 WR;
T36 brOBI, val36;
T37 mxMDR1, ldMDR, incMAR;
T38 WR;
T39 brOBI, val39;
T3A bruncnd, val59;
T3B wrR, bruncnd, val59;
! ADD !
T3C add, ldACC, bruncnd, val59;
! AND !
T3D and, ldACC, bruncnd, val59;
! ASR !
T3E asr, ldACC, bruncnd, val59;
! BZ !
T3F brnotPSWZ, val59;
T40 mxX1, mxX0, mxY1, mxY0, add, mxPC1, ldPC, bruncnd, val59;
! JMP !
T41 ldPC, bruncnd, val59;
! JADR !
T42 mxPC0, ldPC, bruncnd, val59;
! JSR !
T43 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR1, mxMDR0, ldMDR;
T44 WR;
T45 brOBI, val45;
T46 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, ldMDR;
T47 WR;
T48 brOBI, val48;
T49 ldPC, bruncnd, val59;
! RTI !
T4A incSP;
T4B mxMAR2, mxMAR0, ldMAR;
T4C RD;
T4D brOBI, val4D;
T4E ldPSW;
! RTS !
T4F incSP;
T50 mxMAR2, mxMAR0, ldMAR;
T51 RD;
T52 brOBI, val52;
T53 ldDH, incSP;
22

T54 mxMAR2, mxMAR0, ldMAR;


T55 RD;
T56 brOBI, val56;
T57 ldDL;
T58 ldPC, mxPC0, mxPC1;
! Opsluivanje prekida !
T59 brnotPREKID, val00;
T5A mxMAR2, mxMAR0, ldMAR, decSP, mxMDR0, mxMDR1, ldMDR;
T5B WR;
T5C brOBI, val5C;
T5D mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, ldMDR;
T5E WR;
T5F brOBI , val5F;
T60 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, mxMDR0, ldMDR;
T61 WR;
T62 brOBI, val 62;
T63 slBRU;
T64 mxX1, mxY1, add, mxMAR2, ldMAR;
T65 RD;
T66 brOBI, val66;
T67 ldDH, incMAR;
T68 RD;
T69 brOBI, val69;
T6A ldDL;
T6B mxPC1, mxPC0, ldPC, bruncnd, val00;

Slika 21 Sekvenca upravljakih signala za upravljaku jedinicu oiene realizacije


) Upravljaka jedinica oiene realizacije se sastoji iz sledeih blokova: blok generisanje
nove vrednosti brojaa koraka, blok broja koraka, blok dekoder koraka i blok generisanje
upravljakih signala (slika 22).
Blok generisanje nove vrednosti brojaa koraka se sastoji od kombinacionih mrea
KMOPR, KMADR i KMBR sa multiplekserom MP i slui za generisanje i selekciju vrednosti
koju treba upisati u broja koraka CNT7...0. Potreba za ovim se javlja kada treba odstupiti od
sekvencijalnog izvravanja mikrooperacija. Kombinacionom mreom KMOPR generiu se
vrednosti (slika 20) za realizaciju viestrukog uslovnog skoka u koraku step31 sekvence
upravljakih signala po koracima. U zavisnosti od toga koji od signala LD, ST,, RTS ima
vrednost 1 zavisi koja e od vrednosti iz tabele sa slike 20 da se pojavi tada na linijama op7...0.
Kombinacionom mreom KMADR generiu se vrednosti (slika 19) za realizaciju viestrukog
uslovnog skoka u koraku step15 sekvence upravljakih signala po koracima. U zavisnosti od
toga koji od signala regdir, regind, ..., imm ima vrednost 1 zavisi koja e od vrednosti iz
tabele sa slike 19 da se pojavi tada na linijama adr7...0. Kombinacionom mreom KMBR
generiu se vrednosti za upis u broja koraka CNT7...0 za bezuslovne skokove (slika 31) i
uslovne skokove (slika 17) u sekvenci upravljakih signala po koracima. U zavisnosti od toga
koji od signala val00, val02, ..., val69 ima vrednost 1 zavisi koja e od vrednosti iz tabela sa
slika 31 i 17 tada da se pojavi na linijama br7...0.
Blok broja koraka sadri broja CNT7...0. Broja CNT7...0 svojom trenutnom vrednou
odreuje koji e upravljaki signali da imaju vrednost 1. Broja CNT7...0 moe da radi u
sledeim reimima: reim inkrementiranja i reim skoka. U reimu inkrementiranja pri pojavi
signala takta vri se uveavanje sadraja brojaa CNT7...0 za jedan ime se obezbeuje
sekvencijalno generisanje upravljakih signala iz sekvence upravljakih signala (slika 21).
23

Ovaj reim rada se obezbeuje vrednou 1 signala inc. U reimu skoka pri pojavi signala
takta vri se upis nove vrednosti u broja CNT7...0 ime se obezbeuje odstupanje od
sekvencijalnog generisanja upravljakih signala iz sekvence upravljakih signala (slika 21).
Ovaj reim rada se obezbeuje vrednou 1 signala ld.

RTS

LD
ST
KMOPR
32 33

16 17

144424443
8 opr7...0

MP

...

KMADR
4F

...

...

...

KMBR
30

144424443
8 adr7...0

0 S
0
S1

val69

144424443

144424443

...

imm

signali logikih uslova


regdir
regind

signali logikih uslova

val00
val02

Blok dekoder koraka sadri dekoder DC. Na ulaze dekodera DC vode se izlazi brojaa
CNT7...0. Dekodovana stanja brojaa CNT7...0 pojavljuju se kao signali T0, T1, ..., TFF na
izlazima dekodera DC. Svakom koraku iz sekvence upravljakih signala po koracima (slika
14) dodeljeno je po jedno stanje brojaa CNT7...0 odreeno vrednou signala T0 do TFF i to
koraku step0 signal T0, koraku step1 signal T1, itd. (slika 21).

00 02

...

69

144424443
8 br7...0
generisanje nove
vrednosti brojaa
koraka

bradr
bropr

bradr
bropr
bruncnd
brcnd

ld
INC inc
LD

CNT

CLK

CNT7..0

broja koraka

DC
...

6B

dekoder koraka

T6B ...
T00
1442443
108
108
signali logikih uslova

144424443

generisanje
upravljakih
signala
operacione
jedinice

l3_arlogpr

OBI
l1
l2_brn

l2_arlogpr

generisanje
upravljakih
signala
upravljake
jedinice

PSWZ
PREKID

Slika 22 Upravljaka jedinica

24

val69

bradr
bropr
bruncnd
brcnd
val00
val02

...

slBRU

ldMAR
incPC

regdir

l3_jmp

...
...

STJADR

144424443
signali logikih uslova

108

generisanje
upravljakih
signala

Blok generisanje upravljakih signala sadri kombinacione mree koje pomou signala T0,
T1, ..., T66, koji dolaze sa bloka dekoder koraka, signala logikih uslova OBI, l1, ..., PREKID
koji dolaze iz operacione jedinice i saglasno sekvenci upravljakih signala (slika 21) generiu
dve grupe upravljakih signala i to upravljake signale blokova operacione jedinice i
upravljake signale upravljake jedinice.
Upravljaki signali operacione jedinice se generiu na sledei nain:
ldMAR = T00+T05+T0A+T0F+T17+T18+T1D+T1E+T1F+T26+T27+T43+T46+T4B+T50+T54+
T5A+T5D+T61
incPC = T00+T05+T0A+ T0F
RD = T01+T06+T0B+T10+T20+T23+T29+T2C+T4C+T51+T55+T62+T65
Na identian nain se generiu i preostali upravljaki signali operacione jedinice.
Upravljaki signali upravljake jedinice se generiu na sledei nain:
bradr = T15
bropr = T31
bruncnd = T12+T16+T17+T1A+T1D+T1E+T26+T2F+T32+T3A+T3B+T3C+T3D+T3E+T40+
T41+T42+T49+T68
brcnd = brOBIOBI+brl1l1+brl2_brnl2_brn+brl2_arlogprl2_arlogpr +
brl3_jmpl3_jmp+brl3_arlogprl3_arlogpr+brSTJADRSTJADR +
brregdirregdir+brnotPSWZ PSWZ +brnotPREKID PREKID
brOBI = T02+T07+T0C+T11+T21+T24+T2A+T2D+T36+T39+T45+T48+T4D+T52+T56+T5C+
T5F+T63+T66
brl1 = T04
brl2_brn = T08
brl2_arlogpr = T09
brl3_jmp = T0D
brl3_arlogpr = T0E
brSTJADR = T28
brregdir = T33
brnotPSWZ = T3F
brnotPREKID = T59
val00 = T59+T68
val02 = T02
val07 = T07
Na identian nain se generiu i preostali upravljaki signali operacione jedinice.
Pri generisanju signala brcnd koristi se sledei signali logikih uslova koji dolaze iz
operacione jedinice i to: OBI, l1, l2_brn, l2_arlogpr, l3_jmp, l3_arlogpr, STJADR, regdir,
PSWZ i PREKID .

25

1.2 ZADATAK
Posmatra se deo raunara iz zadatka 1.1.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa jednom internom magistralom.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
vertikalnim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i vertikalnim
kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje upravljakih
signala i to za upravljake signale operacione jedinice ldMAR, incPC i RD, i sve upravljake
signale upravljake jedinice kojima se upravlja mikroprogramski broja.
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.1.
b) Jedna realizacija strukturne eme operacione jedinice sa jednom internom magistralom
je data na slikama 23 i 24. Operaciona jedinica sadri sve programski dostupne registre,
odreen broj pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs
sistemske magistrale.

26

BUS
144444444444444444424444444444444444443

ABUS15..0

RD
WR

RD
WR

DBUS7..0

A15..0

RDBUS

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

MARout

IB15..0

ldMAR
incMAR INC

OBI

MDRout
MAR15..0

LD

OBI

MAR

MDR7..0
CLK

ldMBR

IB15..0

MDR

LD

CLK

mxMDR 0 mxMDR
0

IB7..0
IB7..0
IB7..0
PCHout
PC15..8

IB7..0
IB15..0

PCout

PC15...0
incPC INC
ldPC LD

IB15..0
IB15..0

IB15..0
IB7..0

ldIR2 LD IR2 CLK

IR31..24

IR23..16

ldIR3 LD IR3 CLK

ldIR4 LD IR4 CLK

IB7..0

PC CLK

IB7..0

IR15..8

IR7..0

SPout
SP15..0
incSP
decSP

INC
DEC

SP

ldDH LD

LD

D CLK

LD

PSW CLK

mxPSW 0 mxPSW
0 1
formiranje
indikatora

IB15..0

IRBPout
IR23..23.IR23..16

IB15..0
IB15..0

IRAPout
IR15..15.IR15..8

IB15..0

Slika 23 Operaciona jedinica (prvi deo)

27

D CLK
D7..0

Dout

IB15..0
PSW7..0

ldDL LD

D15..8

CLK

PSWout
ldPSW

IB7..0

ldIR1 LD IR1 CLK

D15..0
IRJAout
IR23..8
IRIMADout
IR15..0

ALUout

IB15..0

ALU15...0
ALU

A15...0

ldX

LD

ldY

CLK

add
and
asr

B15...0

LD

CLK

IB15..0
Bout

IB15..0
IB7..0
IB15..0

ACCHout
ACC15..8
ACCout
ACC15..0
ldACC

LD

ACC CLK

IB15..0
IB15..0
ldRA

B15..0
incB INC
decB DEC

IB4..0
LD

LD
CLK

ldB

IB15..0

RA CLK

IVTPout

CLK
LD

IVTP

RA4..0

IVTP15..0
DI15...0

A4...0

IB15..0
IB15..0

Rout

WR

formiranje BRU

wrR

DO15...0

R15..0

BRUout

CLK
LD

BRU

IL
SL

0
slBRU

BRU15..0

Slika 24 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, su dati pod v) u
reenju zadatka 1.1.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 25.
! itanje instrukcije !
step00 PCout, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout, ldIR1;
step04 br (if l1 then step33);
step05 PCout, ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 MDRout, ldIR2, ldRA, br (if l2_brn then step33);
step09 br (if l2_arlogpr then step15);
step0A PCout, ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D MDRout, ldIR3, br (if l3_jmp then step33);
step0E br (if l3_arlogpr then step15);
step0F PCout, ldMAR, incPC;
step10 RD;
step11 br (if OBI then step11);
step12 MDRout, ldIR4, br step15;
! Formiranje adrese i itanje operanda !
28

step15 br (case (regdir, regind, postdecr, preincr, memdir, memind, regindpom, imm)
then
(regdir, step16), (regind, step17), (postdecr, step18), (preincr, step1B),
(memdir, step1E), (memind, step1F), (regindpom, step27), (imm, step32));
! Registarsko direktno adresiranje !
step16 Rout, ldB, br step33;
! Registarsko indirektno adresiranje !
step17 Rout, ldMAR, br step2A;
! Registarsko indirektno sa postdekrementiranjem adresiranje !
step18 Rout, ldMAR, ldB;
step19 decB;
step1A Bout, wrR, br step2A;
! Registarsko indirektno sa preinkrementiranjem adresiranje !
step1B Rout, ldB;
step1C incB;
step1D Bout, ldMAR, wrR, br step2A;
! Memorijsko direktno adresiranje !
step1E IRIMADout, ldMAR, br step2A;
! Memorijsko indirektno adresiranje !
step1F IRIMADout, ldMAR;
step20 RD;
step21 br (if OBI then step21);
step22 MDRout, ldDH, incMAR;
step23 RD;
step24 br (if OBI then step24);
step25 MDRout, ldDL;
step26 Dout, ldMAR, br step2A;
! Registarsko indirektno sa pomerajem adresiranje !
step27 Rout, ldX;
step28 IRAPout, ldY;
step29 add, ALUout, ldMAR;
! itanje operanda za sva memorijska adresiranja !
step2A br (if STJADR then step33);
step2B RD;
step2C br (if OBI then step2C);
step2D MDRout, ldDH, incMAR;
step2E RD;
step2F br (if OBI then step2F);
step30 MDRout, ldDL;
step31 Dout, ldB, br step33;
! Neposredno adresiranje !
step32 IRIMADout, ldB;
! Izvravanje operacije !
step33 br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step34), (ST, step35), (ADD, step3E), (AND, step41), (ASR, step44),
(BZ, step46), (JMP, step4A), (JADR, step4B), (JSR, step4C),
(RTI, step55), (RTS, step5A));
! LD !
step34 Bout, ldACC, br step64;

29

! ST !
step35 br (if regdir then step3D);
step36 ACCHout, mxMDR, ldMDR;
step37 WR;
step38 br (if OBI then step38);
step39 ACCout, mxMDR, ldMDR, incMAR;
step3A WR;
step3B br (if OBI then step3B);
step3C br step64;
step3D ACCout, wrR, br step64;
! ADD !
step3E ACCout, ldX;
step3F Bout, ldY;
step40 add, ALUout, ldACC, br step64;
! AND !
step41 ACCout, ldX;
step42 Bout, ldY;
step43 and, ALUout, ldACC, br step64;
! ASR !
step44 ACCout, ldX;
step45 asr, ALUout, ldACC, br step64;
! BZ !
step46 br (if PSWZ then step64);
step47 PCout, ldX;
step48 IRBPout, ldY;
step49 add, ALUout, ldPC, br step64;
! JMP !
step4A IRJAout, ldPC, br step64;
! JADR !
step4B MARout, ldPC, br step64;
! JSR !
step4C SPout, ldMAR, decSP;
step4D PCout, mxMDR, ldMDR;
step4E WR;
step4F br (if OBI then step4F);
step50 SPout, ldMAR, decSP;
step51 PCHout, mxMDR, ldMDR;
step52 WR;
step53 br (if OBI then step53);
step54 IRJAout, ldPC, br step64;
! RTI !
step55 incSP;
step56 SPout, ldMAR;
step57 RD;
step58 br (if OBI then step58);
step59 MDRout, ldPSW;
! RTS !
step5A incSP;
step5B SPout, ldMAR;
step5C RD;
step5D br (if OBI then step5D);
step5E MDRout, ldDH, incSP;

30

step5F SPout, ldMAR;


step60 RD;
step61 br (if OBI then step61);
step62 MDRout, ldDL;
step63 Dout, ldPC;
! Opsluivanje prekida !
step64 br (if PREKID then step00);
step65 SPout, ldMAR, decSP;
step66 PCout, mxMDR, ldMDR;
step67 WR;
step68 br (if OBI then step68);
step69 SPout, ldMAR, decSP;
step6A PCHout, mxMDR, ldMDR;
step6B WR;
step6C br (if OBI then step6C);
step6D SPout, ldMAR, decSP;
step6E PSWout, mxMDR, ldMDR;
step6F WR;
step70 br (if OBI then step70);
step71 slBRU;
step72 IVTPout, ldX;
step73 BRUout, ldY;
step74 add, ALUout, ldMAR;
step75 RD;
step76 br (if OBI then step76);
step77 MDRout, ldDH, incMAR;
step78 RD;
step79 br (if OBI then step79);
step7A MDRout, ldDL;
step7B Dout, ldPC, br step00;

Slika 25 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) U sluaju upravljake jedinice mikroprogramske realizacije sa vertikalnim kodiranjem
signala i jednim tipom mikroinstrukcija upravljaki signali i operacione i upravljake jedinice
se generiu na osnovu mikroprograma, koji je potrebno prethodno formirati tako to se
svakom koraku u sekvenci upravljakih signala po koracima (slika 25) pridruuje binarna re
odreene strukture (slika 26). Ta binarna re se naziva mikroinstrukcija, mikronaredba ili
mikrokomanda, a tako dobijeni ureeni niz mikroinstrukcija pridruenih koracima sekvence
upravljakih signala po koracima, naziva se mikroprogram.
v

cc

ba

014444244443
...
7 814243
... 11 12
...
19
14444244443

signali

uslov

adresa skoka

14444244443 14444444244444443

operacioni deo

upravljaki deo

Slika 26 Format mikroinstrukcije


Poljem v0..7 duine 8 bita mikroinstrukcije odreuju se vrednosti svih upravljakih signala
operacione jedinice. Jedna binarna vrednost ovog polja se dodeljuje odreenoj kombinaciji
upravljakih signala operacione jedinice neophodnoj da se u jednom koraku realizuju
mikrooperacije. Ovakav nain kodiranja upravljakih signala se naziva vertikalni nain
kodiranja. Poljem cc8...11 duine 4 bita mikroinstrukcije specificira se bezuslovni skok, uslovni
31

skokovi na osnovu vrednosti svakog od signala logikih uslova i viestruki uslovni skokovi.
Polje ba12..19 duine 8 bita mikroinstrukcije predstavlja adresu mikroinstrukcije u
mikroprogramu na koju se skae u sluaju bezuslovnog skoka i u sluaju uslovnog skoka
ukoliko odgovarajui signal logikog uslova ima vrednost 1.
Upravljaka jedinica se sastoji iz mikroprogramske memorije, mikroprogramskog brojaa,
prihvatnog registra mikroinstrukcije, kombinacione mree za generisanje upravljakih signala
i kombinacione mree za generisanje nove vrednosti mikroprogramskog brojaa.
Mikroprogramska memorija slui za smetanje mikroprograma. Mikroprogramski broja
odreuje adresu mikroinstrukcije u mikroprogramskoj memoriji. Prihvatni registar
mikroinstrukcije slui za prihvatanje mikroinstrukcije oitane iz mikroprogramske memorije.
Kombinaciona mrea za generisanje upravljakih signala generie na osnovu oitane
mikroinstrukcije dve grupe upravljakih signala i to upravljake signale operacione jedinice i
upravljake signale upravljake jedinice. Upravljaki signali operacione jedinice se generiu
na osnovu vrednosti bitova polja v0..7. Njima se omoguava izvravanje odreenih
mikrooperacija u operacionoj jedinice. Upravljaki signali upravljake jedinice se generiu na
osnovu vrednosti bitova polja cc8...11 i signala logikih uslova. Njima se ili sadraj
mikroprogramskog brojaa inkrementira ili se u mikroprogramski broja preko kombinacione
mree za generisanje nove vrednosti mikroprogramskog brojaa upisuje nova vrednost i time
realizuje skok u mikroprogramskoj memoriji.
Detalji formata mikroinstrukcije (slika 26) su dati u daljem tekstu.
Bitovi 0 do 7 pripadaju polju v0..7 mikroinstrukcije i dodeljeni su upravljakim signalima
operacione jedinice. Vrednosti polja v0..7, simbolike oznake kodova polja v0..7 i kombinacije
upravljakih signala operacione jedinice dati su u tabeli na slici 27. Usvojeni kodovi su
simboliki oznaeni sa Vxx, pri emu xx odgovara heksadekadnoj vrednosti usvojenog koda.
Na primer, sa V00 je simboliki oznaena heksadekadna vrednost 00 ovog polja. Svakom
usvojenom kodu odgovara neka kombinacija upravljakih signala. Na primer, kodu V01
odgovaraju signali PCout, ldMAR i incPC, kodu V02 signali RD, itd. Kombinacije
upravljakih signala su tako odabrane da njima mogu da se pokriju sve situacije iz sekvence
upravljakih signala po koracima (tabela 25). Ukoliko ni jedan od upravljakih signala
operacione jedinice ne treba da ima vrednost 1, vrednost polja v0..7 treba da bude nula. Iz
tabele sa slike 27 se vidi da su za kodiranje kombinacija upravljakih signala operacione
jedinice potrebni kodovi od 00h do 33h i da je za polje v dovoljna duina 6 bitova. Meutim,
da bi mikroprogram predstavljen u heksadecimalnom obliki bio pregledan, usvojeno je da
duina polja v bude 8 bitova.

32

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

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

Kombinacija signala
/
PCout, ldMAR, incPC
RD
MDRout, ldIR1
MDRout, ldIR2, ldRA
MDRout, ldIR3
MDRout, ldIR4
Rout, ldB
Rout, ldMAR
Rout, ldMAR, ldB
decB
Bout, wrR
incB
Bout, ldMAR, wrR
IRIMADout, ldMAR
MDRout, ldDH
MDRout, ldDH, incMAR
MDRout, ldDL
Dout, ldMAR
Rout, ldX
IRAPout, ldY
add, ALUout, ldMAR
Dout, ldB
IRIMADout, ldB
Bout, ldACC
ACCout, mxMDR, ldMDR

v0...7
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33

kod
V1A
V1B
V1C
V1D
V1E
V1F
V20
V21
V22
V23
V24
V25
V26
V27
V28
V29
V2A
V2B
V2C
V2D
V2E
V2F
V30
V31
V32
V33

Kombinacija signala
WR
ACCout, mxMDR, ldMDR, incMAR
ACCout, wrR
ACCout, ldX
Bout, ldY
add, ALUout, ldACC
and, ALUout, ldACC
asr, ALUout, ldACC
PCout, ldX
IRBPout, ldY
add, ALUout, ldPC
IRJAout, ldPC
MARout, ldPC
SPout, ldMAR
SPout, ldMAR, decSP
PCout, mxMDR, ldMDR
PCHout, mxMDR, ldMDR
incSP
MDRout, ldPSW
MDRout, ldDH, incSP
MDRout, ldDL
Dout, ldPC
PSWout, mxMDR, ldMDR
slBRU
IVTPout, ldX
BRUout, ldY

Slika 27 Vrednosti polja v, simbolike oznake kodova polja v


i kombinacije upravljakih signala operacione jedinice
Bitovi 8 do 11 pripadaju polju cc8...11 mikroinstrukcije i koriste se za kodiranje upravljakih
signala upravljake jedinice za korake u kojima se javljaju bezuslovni skok, uslovni skokovi i
viestruki uslovni skokovi.
Bezuslovni skok se realizuje u onim koracima sekvence upravljakih signala po koracima
(slika 25) u kojima se pojavljuju iskazi tipa
br stepA.
Nain kodiranja signala bezuslovnog skoka bitovima polja cc8...11 mikroinstrukcije i
simbolika oznaka signala bezuslovnog skoka dati su u tabeli sa slike 28.
cc811
01

signal bezuslovnog skoka


bruncnd

Slika 28 Signal bezuslovnog skoka


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

33

cc811
02
03
04
05
06

signal uslovnog
skoka
brOBI
brl1
brl2_brn

signal
uslova
OBI
l1
l2_brn

brl2_arlogpr
brl3_jmp

l2_arlogpr
l3_jmp

cc811
07
08
09
0A
0B

signal uslovnog
signal
skoka
uslova
brl3_arlogpr l3_arlogpr
brSTJADR
STJADR
brregdir
regdir
brnotPSWZ
brnotPREKID

PSWZ
PREKID

Slika 29 Signali uslovnih skokova


Viestruki uslovni skokovi se realizuju u onim koracima sekvence upravljakih signala po
koracima u kojima se pojavljuju iskazi tipa
br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn).
Nain kodiranja signala viestrukih uslovnih skokova bitovima polja cc8...11 mikroinstrukcije,
koraci u sekvenci upravljakih signala po koracima u kojima se pojavljuju iskazi ovog tipa i
simbolike oznake signala viestrukih uslovnih skokova dati su u tabeli sa slike 30.
cc811
0C
0D

stepi
step15
step33

signal
bradr
bropr

Slika 30 Signali viestrukih uslovnih skokova


Vrednost 00 polja cc8...11 i sve ostale vrednosti koje nisu dodeljene signalu bezuslovnog
skoka, signalima uslovnih skokova i signalima viestrukih uslovnih skokova odreuju da treba
prei na sledeu mikroinstrukciju.
Iz tabela sa slika 28, 29 i 30 se vidi da su za kodiranje signala bezuslovnog skoka, uslovnih
skokova i viestrukih uslovnih skokova upravljake jedinice potrebni kodovi od 00h do 0Dh,
pa je usvojeno da duina polja cc bude 4 bita.
Bitovi 12 do 19 pripadaju polju ba1219 mikroinstrukcije i koriste se za specificiranje
adrese mikroinstrukcije na koju treba skoiti kod uslovnih i bezuslovnih skokova u sekvenci
upravljakih signala po koracima (slika 25). Ovi bitovi sadre vrednost koju treba upisati u
mikroprogramski broja u sluaju bezuslovnih skokova i ukoliko signal uslova ima vrednost 1
u sluaju uslovnih skokova. Za kodiranje polja ba1219 usvojeno je 8 bitova, jer je za
kompletan mikroprogram dovoljan kapacitet mikroprogramske memorije od 256 rei.
Mikroprogram se formira tako to se za svaki korak u sekvenci upravljakih signala po
koracima (slika 25) formira jedna mikroinstrukcija.
Kod formiranja mikroinstrukcije bitovi polja v0..7 se postavljaju ili na jednu od binarnih
vrednosti V01 do V33 ukoliko se neka od kombinacija upravljakih signala operacione jedinice
(slika 27) javlja u datom koraku ili na binarnu vrednost nula V00 ukoliko se ni jedan od
signala ne javlja u datom koraku.
U koracima u kojima se javlja neki od iskaza br stepA, br (if uslov then stepA) i br (case
(uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) se bitovi polja cc8...11 i ba1219
kodiraju u zavisnosti od toga koji se od ova tri iskaza javlja u datom koraku, dok se u
suprotnom sluaju postavljaju na nule.
Za iskaz br stepA se za polje cc8...11 uzima kod dodeljen signalu bezuslovnog skoka koji
odreuje da se bezuslovno prelazi na korak stepA i za polje ba1219 binarna vrednost A koju
treba upisati u mikroprogramski broja. Simbolika oznaka signala bezuslovnog skoka i nain
njegovog kodiranja poljem cc8...11 dati su u tabeli tabeli 28. Koraci stepi u kojima se
34

bezuslovni skokovi javljaju, koraci stepA na koje se bezuslovno skae i sama vrednost A, koju
treba upisati u mikroprogramski broja, za sve korake u sekvenci upravljakih signala po
koracima u kojima se javljaju iskazi ovog tipa, dati su u tabeli sa slike 31.
stepi
step12
step16
step17
step1A
step1D
step1E
step26

stepA
step15
step33
step33
step2A
step2A
step2A
step2A

A
15
33
33
2A
2A
2A
2A

stepi
step31
step34
step3C
step3D
step40
step43
step45

stepA
step33
step64
step64
step64
step64
step64
step64

A
33
64
64
64
64
64
64

stepi
step49
step4A
step4B
step54
step7B

stepA
step64
step64
step64
step64
step00

A
64
64
64
64
00

Slika 31 Koraci stepi, stepA i vrednosti A za bezuslovne skokove


Za iskaz br (if uslov then stepA) se za polje cc8...11 uzima kod dodeljen signalu uslovnog
skoka koji odreuje signal uslov koji treba da ima vrednost 1 da bi se realizovao prelaz na
korak stepA i za polje ba1219 binarna vrednost A koju treba upisati u mikroprogramski broja
u sluaju da signal uslov ima vrednost 1. Simbolike oznake signala uslovnog skoka, nain
njihovog kodiranja poljem cc8...11 i signali uslov za sve iskaze ovog tipa koji se javljaju u
sekvenci upravljakih signala po koracima dati su u tabeli sa slike 29. Koraci stepi u kojima se
uslovni skokovi javljaju, signali uslova uslov, koraci stepA na koje se uslovno skae i
vrednosti A koju treba upisati u mikroprogramski broja u sluaju da signal uslov ima
vrednost 1, za sve korake u sekvenci upravljakih signala po koracima u kojima se javljaju
iskazi ovog tipa dati su u tabeli sa slike 32
stepi
uslov
stepA
step02
step02
OBI
step04
step33
l1
step07
step07
OBI
step08
step
l2_brn
33
step09 l2_arlogpr step15
step0C
step0C
OBI
step0D
step33
l3_jmp
step0E l3_arlogpr step0E
step11
step11
OBI
step21
step21
OBI
step24
step24
OBI
step2A STJADR step33
step2C
step2C
OBI
step2F
step2F
OBI
step35
step
regdir
3D

A
02
33
07
33
15
0C
33
0E
11
21
24
33
2C
2F
3D

stepi
step38
step3B
step46
step4F
step53
step58
step5D
step61
step64
step68
step6C
step70
step76
step79

uslov
OBI
OBI
PSWZ
OBI
OBI
OBI
OBI
OBI
PREKID

OBI
OBI
OBI
OBI
OBI

stepA
step38
step3B
step64
step4F
step53
step58
step5D
step61
step00
step68
step6C
step70
step76
step79

A
38
3B
64
4F
53
58
5D
61
00
68
6C
70
76
79

Slika 32 Koraci stepi, uslovi uslov, koraci stepA i vrednosti A za uslovne skokove
Za iskaz br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) se za polje
cc8...11 uzima kod dodeljen signalu viestrukog uslovnog skoka koji odreuje signale uslov1,
..., uslovn za koje treba izvriti proveru koji od njih ima vrednost 1 da bi se na osnovu toga
realizovao prelaz na jedan od koraka stepA1, ..., stepAn i za polje ba1219 nule jer njegova
vrednost nije bitna. Upravljaka jedinica mora da bude tako realizovana da za svaki viestruki
uslovni skok generie vrednosti A1,..., An koje treba upisati u mikroprogramski broja. Ona
mora da obezbedi i selekciju jedne od vrednosti A1,..., An u zavisnosti od toga koji od signala
uslova uslov1, ..., uslovn ima vrednost 1. Simbolike oznake signala viestrukih uslovnih
skokova, nain njihovog kodiranja poljem cc8...11 i koraci u sekvenci upravljakih signala po
koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli sa slike 30. Vrednosti A1,..., An
koje treba upisati u mikroprogramski broja i signali uslova uslov1, ..., uslovn za koje treba
35

izvriti proveru koji od njih ima vrednost 1 da bi se na osnovu toga realizovao prelaz na jedan
od koraka stepA1, ..., stepAn za dva iskaza ovog tipa koji se javljaju u sekvenci upravljakih
signala po koracima dati su u tabelama sa slika 33 i 34.
uslov
regdir
regind
postdecr
preincr
memdir
memind
regindpom
imm

stepA
step16
step17
step18
step1B
step1E
step1F
step27
step32

A
16
17
18
1B
1E
1F
27
32

Slika 33 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step15
uslov
LD
ST
ADD
AND

stepA
step34
step35
step3E
step41

A
34
35
3E
41

uslov
ASR
BZ
JMP
JADR

stepA
step44
step46
step4A
step4B

A
44
46
4A
4B

uslov
JSR
RTI
RTS

Slika 34 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step33
! itanje instrukcije !
madr00 V01;
! PCout, ldMAR, incPC;
madr01 V02;
! RD;
madr02 brOBI, madr02;
madr03 V03;
! MDRout, ldIR1;
madr04 brl1, madr33;
madr05 V01;
! PCout, ldMAR, incPC;
madr06 V02;
! RD;
madr07 brOBI, madr07;
madr08 V04, brl2_brn, madr33; ! MDRout, ldIR2, ldRA;
madr09 brl2_arlogpr, madr15;
madr0A V01;
! PCout, ldMAR, incPC;
madr0B V02;
! RD;
madr0C brOBI, madr0C;
madr0D V05, brl3_jmp, madr33; ! MDRout, ldIR3;
madr0E brl3_arlogpr, madr15;
madr0F V01;
! PCout, ldMAR, incPC;
madr10 V02;
! RD;
madr11 brOBI, madr11;
madr12 V06, bruncnd, madr15
! MDRout, ldIR4;
! Formiranje adrese i itanje operanda !
madr15 bradr;
! Registarsko direktno adresiranje!
madr16 V07, bruncnd, madr33; ! Rout, ldB;
! Registarsko indirektno adresiranje !
madr17 V08, bruncnd, madr2A; ! Rout, ldMAR;
! Registarsko indirektno sa postdekrementiranjem adresiranje !
madr18 V09;
! Rout, ldMAR, ldB;
madr19 V0A;
! decB;
madr1A V0B, bruncnd, madr2A; ! Bout, wrR;

36

stepA
step4C
step55
step5A

A
4C
55
5A

! Registarsko indirektno sa preinkrementiranjem adresiranje !


madr1B V07;
! Rout, ldB;
madr1C V0C;
! incB;
madr1D V0D, bruncnd, madr2A; ! Bout, ldMAR, wrR;
! Memorijsko direktno adresiranje !
madr1E V0E, bruncnd, madr2A; ! IRIMADout, ldMAR;
! Memorijsko indirektno adresiranje !
madr1F V0E;
! IRIMADout, ldMAR;
madr20 V02;
! RD;
madr21 brOBI, madr21;
madr22 V10;
! MDRout, ldDH, incMAR;
madr23 V02;
! RD;
madr24 brOBI, madr24;
madr25 V11;
! MDRout, ldDL;
madr26 V12, bruncnd, madr2A; ! Dout, ldMAR;
! Registarsko indirektno sa pomerajem adresiranje !
! Rout, ldX;
madr27 V13;
madr28 V14;
! IRAPout, ldY;
madr29 V15;
! add, ALUout, ldMAR;
! itanje operanda za sva memorijska adresiranja !
madr2A brSTJADR, madr33;
madr2B V02;
! RD;
madr2C brOBI, madr2C;
madr2D V10;
! MDRout, ldDH, incMAR;
madr2E V02;
! RD;
madr2F brOBI, madr2F;
madr30 V11;
! MDRout, ldDL;
madr31 V16, bruncnd, madr33; ! Dout, ldB;
! Neposredno adresiranje !
! IRIMADout, ldB;
madr32 V17;
! Izvravanje operacije !
madr33 bropr;
! LD !
madr34 V18, bruncnd, madr64; ! Bout, ldACC;
! ST !
madr35 brregdir, madr3D;
madr36 V19;
! ACCHout, mxMDR, ldMDR;
madr37 V1A;
! WR;
madr38 brOBI, madr38;
madr39 V1B;
! ACCout, mxMDR, ldMDR, incMAR;
madr3A V1A;
! WR;
madr3B brOBI, madr3B;
madr3C bruncnd, madr64;
madr3D V1C, bruncnd, madr64; ! ACCout, wrR;
! ADD !
madr3E V1D;
! ACCout, ldX;
madr3F V1E;
! Bout, ldY;
madr40 V1F, bruncnd, madr64; ! add, ALUout, ldACC;
! AND !
madr41 V1D;
! ACCout, ldX;
madr42 V1E;
! Bout, ldY;
madr43 V20, bruncnd, madr64; ! and, ALUout, ldACC;
! ASR !
37

madr44 V1D;
madr45 V21, bruncnd, madr64;
! BZ !
madr46 brnotPSWZ, madr64;
madr47 V22;
madr48 V23;
madr49 V24, bruncnd, madr64;
! JMP !
madr4A V25, bruncnd, madr64;
! JADR !
madr4B V26, bruncnd, madr64;
! JSR !
madr4C V28;
madr4D V29;
madr4E V1A;
madr4F brOBI, madr4F;
madr50 V28;
madr51 V2A;
madr52 V1A;
madr53 brOBI, madr53;
madr54 V25, bruncnd, madr64;
! RTI !
madr55 V2B;
madr56 V27;
madr57 V02;
madr58 brOBI, madr58;
madr59 V2C;
! RTS !
madr5A V2B;
madr5B V27;
madr5C V02;
madr5D brOBI, madr5D;
madr5E V2D;
madr5F V27;
madr60 V02;
madr61 brOBI, madr61;
madr62 V2E;
madr63 V2F;
! Opsluivanje prekida !
madr64 brnotPREKID, madr00;
madr65 V28;
madr66 V29;
madr67 V1A;
madr68 brOBI, madr68;
madr69 V28;
madr6A V2A;
madr6B V1A;
madr6C brOBI, madr6C;
madr6D V28;
madr6E V30;
madr6F V1A;
madr70 brOBI, madr70;
madr71 V31;

! ACCout, ldX;
! asr, ALUout, ldACC;

! PCout, ldX;
! IRBPout, ldY;
! add, ALUout, ldPC;
! IRJAout, ldPC;
! MARout, ldPC;
! SPout, ldMAR, decSP;
! PCout, mxMDR, ldMDR;
! WR;
! SPout, ldMAR, decSP;
! PCHout, mxMDR, ldMDR;
! WR;
! IRJAout, ldPC;
! incSP;
! SPout, ldMAR;
! RD;
! MDRout, ldPSW;
! incSP;
! SPout, ldMAR;
! RD;
! MDRout, ldDH, incSP;
! SPout, ldMAR;
! RD;
! MDRout, ldDL;
! Dout, ldPC;

! SPout, ldMAR, decSP;


! PCout, mxMDR, ldMDR;
! WR;
! SPout, ldMAR, decSP;
! PCHout, mxMDR, ldMDR;
! WR;
! SPout, ldMAR, decSP;
! PSWout, mxMDR, ldMDR;
! WR;
! slBRU;
38

madr72
madr73
madr74
madr75
madr76
madr77
madr78
madr79
madr7A
madr7B

V32;
V33;
V15;
V02;
brOBI, madr76;
V10;
V02;
brOBI, madr79;
V11;
V2F, bruncnd, madr00;

! IVTPout, ldX;
! BRUout, ldY;
! add, ALUout, ldMAR;
! RD;
! MDRout, ldDH, incMAR;
! RD;
! MDRout, ldDL;
! Dout, ldPC;

Slika 35 Mikroprogram za upravljaku jedinicu mikroprogramske realizacije sa vertikalnim


kodiranjem signala i jednim tipom mikroinstrukcija
) Upravljaka jedinica mikroprogramske realizacije sa vertikalnim kodiranjem signala i
jednim tipom mikroinstrukcija se sastoji od sledeih blokova: blok generisanje nove vrednosti
mikroprogramskog brojaa, blok mikroprogramski broja, blok mikroprogramska memorija,
blok prihvatni registar mikroinstrukcije i blok generisanje upravljakih signala (slika 36).
Struktura i opis blokova upravljake jedinice se daju u daljem tekstu.
Blok generisanje nove vrednosti mikroprogramskog brojaa se sastoji od kombinacionih
mrea KMOPR i KMADR sa multiplekserom MP i razreda CW12...19 prihvatnog registra
mikroinstrukcije CW0...19 i slui za generisanje i selekciju vrednosti koju treba upisati u
mikroprogramski broja mPC7...0. Potreba za ovim se javlja kada treba odstupiti od
sekvencijalnog izvravanja mikroprograma. Kombinacionom mreom KMOPR generiu se
vrednosti (tabela sa slike 34) za realizaciju viestrukog uslovnog skoka u koraku step33
sekvence upravljakih signala po koracima. U zavisnosti od toga koji od signala LD, , RTS
ima vrednost 1 zavisi koja e od vrednosti iz tabele sa slike 34 da se pojavi tada na linijama
op7...0. Kombinacionom mreom KMADR generiu se vrednosti (tabela sa slike 33) za
realizaciju viestrukog uslovnog skoka u koraku step15 sekvence upravljakih signala po
koracima. U zavisnosti od toga koji od signala regdir,..., imm ima vrednost 1 zavisi koja e
od vrednosti iz tabele sa slike 33 da se pojavi tada na linijama adr7...0. Razredi CW11...19
prihvatnog registra mikroinstrukcije CW0...19 sadre vrednost za upis u mikroprogramski
broja mPC7...0 za bezuslovne skokove (tabela sa slike 31) i uslovne skokove (tabela sa slike
32) u sekvenci upravljakih signala po koracima.
Blok mikroprogramski broja sadri mikroprogramski broja mPC7...0. Mikroprogramski
broja mPC7...0 svojom trenutnom vrednou odreuje adresu mikroprogramske memorije
mMEM sa koje treba oitati mikroinstrukciju. Mikroprogramski broja mPC7...0 moe da radi
u sledeim reimima: reim inkrementiranja i reim skoka. U reimu inkrementiranja pri
pojavi signala takta CLKmPC vri se uveavanje sadraja mikroprogramskog brojaa mPC7...0
za jedan ime se obezbeuje sekvencijalno oitavanje mikroinstrukcija iz mikroprogramske
memorije. Ovaj reim rada se obezbeuje vrednou 1 signala inc. U reimu skoka pri pojavi
signala takta CLKmPC vri se upis nove vrednosti u mikroprogramski broja mPC7...0 ime se
obezbeuje odstupanje od sekvencijalnog oitavanja mikroinstrukcija iz mikroprogramske
memorije. Ovaj reim rada se obezbeuje vrednou 1 signala ld.

39

signali logikih uslova

144424443

144424443
imm

LD
ST

RTS

regdir
regind

signali logikih uslova

...

KMOPR

KMADR

34 35

5A

16 17

144424443
opr7...0
8
3

8
2

generisanje
nove
vrednosti
mikroprogramskog
brojaa

...

MP

32

144424443
adr7...0
CW12...19

8
1

0 S
0

bradr
bropr

S1

CLKmPC

mPC7...0

bradr
bropr
bruncnd
brcnd

ld
INC inc
LD

mPC

CLK

mikroprogramski
broja

mikroprogramska
memorija

mMEM

WR

20

...

...

11

12

...

19

prihvatni
registar
mikroinstrukcije

LD

CW19
CW0 CW7 CW123
CW11CW123
12
8
123
4
8
8
...

...

signali logikih uslova

144424443

...

generisanje
upravljakih
signala
operacione
jedinice

l3_arlogpr

OBI
generisanje
upravljakih
signala
upravljake
jedinice

l1
l2_brn

l2_arlogpr

STJADR
regdir
PSWZ

l3_jmp

PREKID

144424443
signali logikih uslova

CLKCW

CLK

CW

brcnd

bruncnd

bropr

bradr

...

BRUout

ldMAR

PCout

...
generisanje
upravljakih
signala

Slika 36 Struktura upravljake jedinice


Blok mikroprogramski memorija sadri mikroprogramsku memoriju mMEM, koja slui za
smetanje mikroprograma. Adresiranje mikroprogramske memorije se realizuje sadrajem
mikroprogramskog brojaa mPC7...0.
Blok prihvatni registar mikroinstrukcije sadri prihvatni registar mikroinstrukcije CW0...19.
Prihvatni registar mikroinstrukcije CW0...19 slui za prihvatanje mikroinstrukcije oitane iz
mikroprogramske memorije mMEM. Na osnovu sadraja ovog registra generiu se
upravljaki signali. Razredi CW0...7 i CW8...11 se koriste u bloku generisanje upravljakih

40

signala za generisanje upravljakih signala operacione jedinice i upravljake jedinice,


respektivno, dok se razredi CW12...19 koriste u bloku generisanje nove vrednosti
mikroprogramskog brojaa kao adresa skoka u mikrorogramu u sluaju bezuslovnih i
uslovnih skokova.
Blok generisanje upravljakih signala sadri kombinacione mree koje na osnovu sadraja
razreda CW0...7 prihvatnog registra mikroinstrukcije generiu upravljake signale operacione
jedinice i na osnovu sadraja razreda CW8...11 prihvatnog registra mikroinstrukcije i signala
logikih uslova OBI, l1, ..., PREKID koji dolaze iz operacione jedinice generiu upravljake
signale upravljake jedinice.
Upravljaki signala operacione jedinice se generiu tako to se najpre generiu signali
kombinacija upravljakih signala V00 do V33 (tabela sa slike 27) i to:
V00 = CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
V01 = CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
V02 = CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
Potom, se za svaki upravljaki signal operacione jedinice posmatra u kojim kombinacijama
upravljakih signala V00 do V33 se signal pojavljuje (tabela 27), pa se dati signal dobija kao
njihova unija.
Upravljaki signali operacione jedinice se generiu na sledei nain:
ldMAR = V01 + V08 + V09+ V0D+ V0E + V12+ V15 + V27 + V28
incPC = V01
RD = V02
Na identian nain se generiu i preostali upravljaki signali operacione jedinice.
Upravljaki signali upravljake jedinice se generiu na sledei nain:
bradr = CW8 CW9 CW10 CW11
bropr = CW8 CW9 CW10 CW11
bruncnd = CW8 CW9 CW10 CW11
brcnd = brOBIOBI+brl1l1+brl2_brnl2_brn+brl2_arlogprl2_arlogpr +
brl3_jmpl3_jmp+brl3_arlogprl3_arlogpr+brSTJADRSTJADR+
brregdirregdir+brnotPSWZ PSWZ +brnotPREKID PREKID
brOBI = CW8 CW9 CW10 CW11
brl1 = CW8 CW9 CW10 CW11
brl2_brn = CW8 CW9 CW10 CW11
brl2_arlogpr = CW8 CW9 CW10 CW11
brl3_jmp = CW8 CW9 CW10 CW11
brl3_arlogpr = CW8 CW9 CW10 CW11
brSTJADR = CW8 CW9 CW10 CW11
brregdir = CW8 CW9 CW10 CW11
brnotPSWZ = CW8 CW9 CW10 CW11
brnotPREKID = CW8 CW9 CW10 CW11

41

Pri generisanju signala brcnd koristi se sledei signali logikih uslova koji dolaze iz
operacione jedinice i to: OBI, l1, l2_brn, l2_arlogpr, l3_jmp, l3_arlogpr, STJADR, regdir,
PSWZ i PREKID .

42

1.3 ZADATAK
Posmatra se deo raunara iz zadatka 1.1.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa dve interne magistrale.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
meovitim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i meovitim
kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje upravljakih
signala i to za upravljake signale operacione jedinice ldMAR, incPC i Bout2, i sve
upravljake signale upravljake jedinice kojima se upravlja mikroprogramskim brojaem.
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.1.
b) Jedna realizacija strukturne eme operacione jedinice sa dve interne magistrale je data na
slikama 37 i 38. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.

43

BUS
144444444444444444424444444444444444443

ABUS15..0

RD
WR
IB115..0

RD
WR

DBUS7..0

A15...0

RDBUS

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

OBI

MARou1

OBI

MDRout2
MAR15..0

ldMAR LD
incMAR INC

MAR

MDR7..0

CLK

LD

ldMBR

IB115..0

MDR

CLK

mxMDR 0 mxMDR
0

PCHout2
PC15..8

IB115..0
IB115..0

PC

IB215..0
IB27..0

CLK

ldIR1 LD IR1 CLK

ldIR2 LD IR2 CLK

IR31..24

IR23..16

ldIR3 LD IR3 CLK

ldIR4 LD IR4 CLK

SP15..0
INC

LD

SP

DEC

IB27..0

PCout2

SPout1
incSP
decSP

IB27...0

PC15..0
incPC INC
ldPC LD

CLK

IB215..0

IR15..8
PSWout2

IB27..0
IB27..0

PSW CLK
ldDH LD

mxPSW 0 mxPSW
0

IB115..0

IRBPout1
IR23..23.IR23..16

IB115..0

IRAPout1
IR15..15.IR15..8

ldDL LD

D CLK
D7..0
IB27..0

Dout1

IB115..0
IB115..0

D CLK
D15..8

formiranje
indikatora

IB115..0

IB27..0

IR7..0

PSW7..0
ldPSW LD

IB27..0

D15..0
IRJAout1
IR23..8
IRIMADout1
IR15..0

Slika 37 Operaciona jedinica (prvi deo)

44

ALUout1

IB115..0

ALU15..0
A15...0

ALU

add
and
asr

B15...0

IB215..0
Bout2

ldX LD

B15..0

CLK

IB115..0

incB INC
decB DEC

LD
CLK

ldB
IB215..0

ACCHout2
ACC15..8

IB27..0

ACCout2

IB215..0

ACC15..0

IB215..0

ldACC LD ACC CLK


IB115..0
IB115..0

LD

ldRA

CLK
LD

IVTPout1

IVTP
IVTP15..0

IB24..0
RA

IB215..0

IB215..0

CLK

formiranje BRU

RA4..0

CLK
LD

DI15...0
A4...0

R
DO15...0

WR

BRU

BRU15..0

wrR
Rout2

SL
IL

slBRU
BRUout2
0
IB215..0
IB215..0

R15..0
IB115..0

IB215..0

IB1_2

IB215..0
IB2_1

IB115..0

IB215..0

Slika 38 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, su dati pod v) u
reenju zadatka 1.1.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 39.

45

! itanje instrukcije !
step00 PCout2, IB2_1, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout2, ldIR1;
step04 br (if l1 then step32);
step05 PCout2, IB2_1, ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 MDRout2, ldIR2, ldRA, br (if l2_brn then step32) ;
step09 br (if l2_ arlogpr then step15);
step0A PCout2, IB2_1, ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D MDRout2, ldIR3, br (if l3_jmp then step32);
step0E br (if l3_ arlogpr then step15);
step0F PCout2, IB2_1, ldMAR, incPC;
step10 RD;
step11 br (if OBI then step11);
step12 MDRout2, ldIR4, br step15;
! Formiranje adrese i itanje operanda !
step15 br (case (regdir, regind, postdecr, preincr, memdir, memind, regindpom, imm)
then
(regdir, step16), (regind, step17), (postdecr, step18), (preincr, step1B),
(memdir, step1E), (memind, step1F), (regindpom, step27), (imm, step31));
! Registarsko direktno adresiranje !
step16 Rout2, ldB, br step32;
! Registarsko indirektno adresiranje !
step17 Rout2, IB2_1, ldMAR, br step29;
! Registarsko indirektno sa postdekrementiranjem adresiranje !
step18 Rout2, IB2_1, ldMAR, ldB;
step19 decB;
step1A Bout2, wrR, br step29;
! Registarsko indirektno sa preinkrementiranjem adresiranje !
step1B Rout2, ldB;
step1C incB;
step1D Bout2, IB2_1, ldMAR, wrR, br step29;
! Memorijsko direktno adresiranje !
step1E IRIMADout1, ldMAR, br step29;
! Memorijsko indirektno adresiranje !
step1F IRIMADout1, ldMAR;
step20 RD;
step21 br (if OBI then step21);
step22 MDRout2, ldDH, incMAR;
step23 RD;
step24 br (if OBI then step24);
step25 MDRout2, ldDL;
step26 Dout1, ldMAR, br step29;
! Registarsko indirektno sa pomerajem adresiranje !
step27 IRAPout1, ldX;
step28 Rout2, add, ALUout1, ldMAR;
! itanje operanda za sva memorijska adresiranja !
step29 br (if STJADR then step32);
step2A RD;
46

step2B br (if OBI then step2B);


step2C MDRout2, ldDH, incMAR;
step2D RD;
step2E br (if OBI then step2E);
step2F MDRout2, ldDL;
step30 Dout1, IB1_2, ldB, br step32;
! Neposredno adresiranje !
step31 IRIMADout1, IB1_2, ldB;
! Izvravanje operacije !
step32 br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step33), (ST, step34), (ADD, step3D), (AND, step3F), (ASR, step41),
(BZ, step43), (JMP, step46), (JADR, step47), (JSR, step48),
(RTI, step4F), (RTS, step54));
! LD !
step33 Bout2, IB2_1, ldACC, br step5E;
! ST !
step34 br (if regdir then step3C);
step35 ACCHout2, mxMDR, ldMDR;
step36 WR;
step37 br (if OBI then step37);
step38 ACCout2, mxMDR, ldMDR, incMAR;
step39 WR;
step3A br (if OBI then step3A);
step3B br step5E;
step3C ACCout2, wrR, br step5E;
! ADD !
step3D ACCout2, IB2_1, ldX;
step3E Bout2, add, ALUout1, ldACC, br step5E;
! AND !
step3F ACCout2, IB2_1, ldX;
step40 Bout2, and, ALUout1, ldACC, br step5E;
! ASR !
step41 ACCout2, IB2_1, ldX;
step42 asr, ALUout1, ldACC, br step5E;
! BZ !
step43 br (if PSWZ then step5E);
step44 IRBPout1, ldX;
step45 PCout2, add, ALUout1, ldPC, br step5E;
! JMP !
step46 IRJAout1, ldPC, br step5E;
! JADR !
step47 MARout1, ldPC, br step5E;
! JSR !
step48 SPout1, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step49 WR;
step4A br (if OBI then step4A);
step4B SPout1, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step4C WR;
step4D br (if OBI then step4D);
step4E IRJAout1, ldPC, br step5E;

47

! RTI !
step4F incSP;
step50 SPout1, ldMAR;
step51 RD;
step52 br (if OBI then step52);
step53 MDRout2, ldPSW;
! RTS !
step54 incSP;
step55 SPout1, ldMAR;
step56 RD;
step57 br (if OBI then step57);
step58 MDRout2, ldDH, incSP;
step59 SPout1, ldMAR;
step5A RD;
step5B br (if OBI then step5B);
step5C MDRout2, ldDL;
step5D Dout1, ldPC;
! Opsluivanje prekida !
step5E br (if PREKID then step00);
step5F SPout1, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step60 WR;
step61 br (if OBI then step61);
step62 SPout1, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step63 WR;
step64 br (if OBI then step64);
step65 SPout1, ldMAR, decSP, PSWout2, mxMDR, ldMDR;
step66 WR;
step67 br (if OBI then step67);
step68 slBRU;
step69 IVTPout1, ldX;
step6A BRUout2, add, ALUout1, ldMAR;
step6B RD;
step6C br (if OBI then step6C);
step6D MDRout2, ldDH, incMAR;
step6E RD;
step6F br (if OBI then step6F);
step70 MDRout2, ldDL;
step71 Dou1, ldPC, br step00;

Slika 39 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) U sluaju upravljake jedinice mikroprogramske realizacije sa meovitim kodiranjem
signala i jednim tipom mikroinstrukcija upravljaki signali i operacione i upravljake jedinice
se generiu na osnovu mikroprograma, koji je potrebno prethodno formirati tako to se
svakom koraku u sekvenci upravljakih signala po koracima (slika 39) pridruuje binarna re
odreene strukture (slika 40). Ta binarna re se naziva mikroinstrukcija, mikronaredba ili
mikrokomanda, a tako dobijeni ureeni niz mikroinstrukcija pridruenih koracima sekvence
upravljakih signala po koracima, naziva se mikroprogram.

48

cc

ba

0123
... 3 4123
... 7 8123
... 11 12
... 15 16...1920...23 24 ... 27 28
...
35
123 123 123 14243 144424443

M1

M2

M3

M4

M5 M6

1444444444442444444444443

operacioni deo

uslov

adresa skoka

1444442444443

upravljaki deo

Slika 40 Format mikroinstrukcije


Poljem m0...23 duine 24 bita mikroinstrukcije odreuju se vrednosti svih upravljakih
signala operacione jedinice. Upravljaki signali operacione jedinice grupisani su u est grupa
oznaenih sa M1, M2, M3, M4, M5 i M6, pri emu je svaki signali kodiran jednom od
binarnih vrednosti grupe u kojoj se nalazi. Ovakav nain kodiranja upravljakih signala se
naziva meoviti nain kodiranja. Poljem cc24...27 duine 4 bita mikroinstrukcije specificira se
bezuslovni skok, uslovni skokovi na osnovu vrednosti svakog od signala logikog uslova i
viestruki uslovni skokovi. Polje ba28...35 duine 8 bita mikroinstrukcije predstalja adresu
mikroinstrukcije u mikroprogramu na koju se skae u sluaju bezuslovnog skoka i u sluaju
uslovnog skoka ukoliko odgovarajui signal logikog uslova ima vrednost 1.
Upravljaka jedinica se sastoji iz mikroprogramske memorije, mikroprogramskog brojaa,
prihvatnog registra mikroinstrukcije, kombinacione mree za generisanje upravljakih signala
i kombinacione mree za generisanje nove vrednosti mikroprogramskog brojaa.
Mikroprogramska memorija slui za smetanje mikroprograma. Mikroprogramski broja
odreuje adresu mikroinstrukcije u mikroprogramskoj memoriji. Prihvatni registar
mikroinstrukcije slui za prihvatanje mikroinstrukcije oitane iz mikroprogramske memorije.
Kombinaciona mrea za generisanje upravljakih signala generie na osnovu oitane
mikroinstrukcije dve grupe upravljakih signala i to upravljake signale operacione jedinice i
upravljake signale upravljake jedinice. Upravljaki signali operacione jedinice se generiu
na osnovu vrednosti bitova polja m0...23. Njima se omoguava izvravanje odgovarajuih
mikrooperacija u operacionoj jedinici. Upravljaki signali upravljake jedinice se generiu na
osnovu vrednosti bitova polja cc24...27 i signala logikih uslova. Njima se ili sadraj
mikroprogramskog brojaa inkrementira ili se u mikroprogramski broja preko kombinacione
mree za generisanje nove vrednosti mikroprogramskog brojaa upisuje nova vrednost i time
realizuje skok u mikroprogramskoj memoriji.
Detalji formata mikroinstrukcije (slika 40) su dati u daljem tekstu.
Bitovi 0 do 23 pripadaju polju m0...23 mikroinstrukcije i dodeljeni su upravljakim
signalima operacione jedinice. Upravljaki signali operacione jedinice grupisani su u est
grupa oznaenih sa M1, M2, M3, M4, M5 i M6. Usvojeno kodiranje upravljakih signala
operacione jedinice unutar svake grupe je dato u tabelama na slikama 1, 2 i 3. Usvojeno je da
je duina svih polja po 4 bita. Prilikom odreivanja broja grupa i rasporeivanja signala po
grupama usvojeno je da svi signali koji se u sekvenci upravljakih signala po koracima
javljaju u istom koraku budu u razliitim grupama. Kodom M11 se oznaava da je binarna
vrednost bitova grupe M1 jedan i da od signala iz date grupe samo signal Spout1 ima
vrednost 1, dok svi ostali imaju vrednost 0. Na slian nain se oznaavaju i binarne vrednosti
preostalih grupa i time za svaku grupu odreuje koji od signala iz date grupe treba da ima
vrednost 1. Ukoliko za neke od grupa ni jedan od signala iz date grupe signala ne treba da ima
vrednost 1, vrednost polja date grupe treba da bude nula.

49

m0m3
0
1
2
3
4
5
6
7
8
9

M1
kod
signal
M10
M11
SPout1
M12
IVTPout1
M13
ALUout1
M14
Dout1
M15
MARout1
M16
IRBPout1
M17
IRJAout1
M18
IRIMADout1
M19
IRAPout1

M1F
-

m4m7
0
1
2
3
4
5
6
7
8
9

M2
kod
M20
M21
M22
M23
M24
M25
M26
M27
M28
M29

M2F

signal
ldMAR
ldX
ldPC
ldPSW
ldACC
wrR

Slika 1 Vrednosti polja M1 i M2, simbolike oznake kodova polja M1 i M2


i upravljaki signali operacione jedinice
m8m11
0
1
2
3
4
5
6
7
8
9

M3
kod
M30
M31
M32
M33
M34
M35
M36
M37
M38
M39

M3F

signal
incPC
decSP
incSP
decB
incB
IB1_2
WR
RD
slBRU

m12m15
0
1
2
3
4
5
6
7
8
9

M4
kod
M40
M41
M42
M43
M44
M45
M46
M47
M48
M49

M4F

signal

PCout2
PCHout2
PSWout2
BRUout2
MDRout2
ACCout2
ACCHout2
Bout2
Rout2

Slika 2 Vrednosti polja M5 i M6, simbolike oznake kodova polja M5 i M6


i upravljaki signali operacione jedinice
m16m19
0
1
2
3
4
5
6
7
8

M5
kod
M50
M51
M52
M53
M54
M55
M56
M57
M58

M5F

signal
ldMDR
ldDH
ldDL
ldIR1
ldIR2
ldIR3
ldIR4
ldB

m20m23
0
1
2
3
4
5
6
7
8

M6
kod
M60
M61
M62
M63
M64
M65
M66
M67
M68

M6F

signal
mxMDR
add
and
asr
IB2_1
ldRA

Slika 3 Vrednosti polja M5 i M6, simbolike oznake kodova polja M5 i M6


i upravljaki signali operacione jedinice

50

Bitovi 24 do 27 pripadaju polju cc24...27 mikroinstrukcije i koriste se za kodiranje


upravljakih signala upravljake jedinice za korake u kojima se javljaju bezuslovni skok,
uslovni skokovi i viestruki uslovni skokovi.
Bezuslovni skok se realizuje u onim koracima sekvence upravljakih signala po koracima
(slika 39) u kojima se pojavljuju iskazi tipa
br stepA.
Nain kodiranja signala bezuslovnog skoka bitovima polja cc24...27 mikroinstrukcije i
simbolika oznaka signala bezuslovnog skoka dati su u tabeli sa slike 41.
cc2427
1

signal bezuslovnog skoka


bruncnd

Slika 41 Signal bezuslovnog skoka


Uslovni skokovi se realizuju u onim koracima sekvence upravljakih signala po koracima u
kojima se pojavljuju iskazi tipa
br (if uslov then stepA).
Nain kodiranja signala uslovnih skokova bitovima polja cc24...27 mikroinstrukcije, simbolike
oznake signala uslovnih skokova koje za svaki od njih treba generisati i signal uslova koji
treba da ima vrednost 1 da bi se realizovao skok dati su u tabeli sa slike 42.
cc2427
2
3
4
5
6

signal uslovnog
skoka
brOBI
brl1
brl2_brn

signal
uslova
OBI
l1
l2_brn

brl2_arlogpr
brl3_jmp

l2_arlogpr
l3_jmp

cc2427
7
8
9
A
B

signal uslovnog
signal
skoka
uslova
brl3_arlogpr l3_arlogpr
brSTJADR
STJADR
brregdir
regdir
brnotPSWZ
brnotPREKID

PSWZ
PREKID

Slika 42 Signali uslovnih skokova


Viestruki uslovni skokovi se realizuju u onim koracima sekvence upravljakih signala po
koracima u kojima se pojavljuju iskazi tipa
br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn).
Nain kodiranja signala viestrukih uslovnih skokova bitovima polja cc24...27 mikroinstrukcije,
koraci u sekvenci upravljakih signala po koracima u kojima se pojavljuju iskazi ovog tipa i
simbolike oznake signala viestrukih uslovnih skokova dati su u tabeli sa slike 43.
cc2427
C
D

stepi
step15
step32

signal
bradr
bropr

Slika 43 Signali viestrukih uslovnih skokova


Vrednost 0 polja cc24...27 i sve ostale vrednosti koje nisu dodeljene signalu bezuslovnog
skoka, signalima uslovnih skokova i signalima viestrukih uslovnih skokova odreuju da treba
prei na sledeu mikroinstrukciju. Iz tabela sa slika 41, 42 i 43 se vidi da su za kodiranje
signala bezuslovnog skoka, uslovnih skokova i viestrukih uslovnih skokova upravljake
jedinice potrebni kodovi od 0h do Dh, pa je usvojeno da duina polja cc bude 4 bita.
Bitovi 28 do 35 pripadaju polju ba28...35 mikroinstrukcije i koriste se za specificiranje
adrese mikroinstrukcije na koju treba skoiti kod uslovnih i bezuslovnih skokova u sekvenci
upravljakih signala po koracima (slika 39). Ovi bitovi sadre vrednost koju treba upisati u

51

mikroprogramski broja u sluaju bezuslovnih skokova i ukoliko signal uslova ima vrednost 1
u sluaju uslovnih skokova. Za kodiranje polja ba28...35 usvojeno je 8 bitova, jer je za
kompletan mikroprogram dovoljan kapacitet mikroprogramske memorije od 256 rei.
Mikroprogram se formira tako to se za svaki korak u sekvenci upravljakih signala po
koracima (slika 39) formira jedna mikroinstrukcija.
Kod formiranja mikroinstrukcije bitovi grupa M1, M2, M3, M4, M5 i M6 polja m0...23 se
postavljaju ili na odgovarajue binarne vrednosti ukoliko se neki od signala operacione
jedinice (slike 1, 2 i 3) iz svake od grupa M1, M2, M3, M4, M5 i M6 javlja u datom koraku ili
na nule za one grupe za koje se ni jedan od signala iz date grupe ne javlja u datom koraku.
U koracima u kojima se javlja neki od iskaza br stepA, br (if uslov then stepA) i br (case
(uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) se bitovi polja cc24...27 i ba2835
kodiraju u zavisnosti od toga koji se od ova tri iskaza javlja u datom koraku, dok se u
suprotnom sluaju postavljaju na nule.
Za iskaz br stepA se za polje cc24...27 uzima kod dodeljen signalu bezuslovnog skoka koji
odreuje da se bezuslovno prelazi na korak stepA i za polje ba2835 binarna vrednost A koju
treba upisati u mikroprogramski broja. Simbolika oznaka signala bezuslovnog skoka i nain
njegovog kodiranja poljem cc24...27 dati su u tabeli tabeli 41. Koraci stepi u kojima se
bezuslovni skokovi javljaju, koraci stepA na koje se bezuslovno skae i sama vrednost A, koju
treba upisati u mikroprogramski broja, za sve korake u sekvenci upravljakih signala po
koracima u kojima se javljaju iskazi ovog tipa, dati su u tabeli sa slike 44.
stepi
step12
step16
step17
step1A
step1D
step1E
step26

stepA
step15
step32
step29
step29
step29
step29
step29

A
15
32
29
29
29
29
29

stepi
step30
step33
step3B
step3C
step3E
step40
step42

stepA
step32
step5E
step5E
step5E
step5E
step5E
step5E

A
32
5E
5E
5E
5E
5E
5E

stepi
step45
step46
step47
step4E
step71

stepA
step5E
step5E
step5E
step5E
step00

A
5E
5E
5E
5E
00

Slika 44 Koraci stepi, stepA i vrednosti A za bezuslovne skokove


Za iskaz br (if uslov then stepA) se za polje cc24...27 uzima kod dodeljen signalu uslovnog
skoka koji odreuje signal uslov koji treba da ima vrednost 1 da bi se realizovao prelaz na
korak stepA i za polje ba2835 binarna vrednost A koju treba upisati u mikroprogramski broja
u sluaju da signal uslov ima vrednost 1. Simbolike oznake signala uslovnog skoka, nain
njihovog kodiranja poljem cc24...27 i signali uslov za sve iskaze ovog tipa koji se javljaju u
sekvenci upravljakih signala po koracima dati su u tabeli sa slike 42. Koraci stepi u kojima se
uslovni skokovi javljaju, signali uslova uslov, koraci stepA na koje se uslovno skae i
vrednosti A koju treba upisati u mikroprogramski broja u sluaju da signal uslov ima
vrednost 1, za sve korake u sekvenci upravljakih signala po koracima u kojima se javljaju
iskazi ovog tipa dati su u tabeli sa slike 45.

52

stepi
uslov
stepA
step02
step02
OBI
step04
step32
l1
step07
step07
OBI
step08
step32
l2_brn
step09 l2_arlogpr step15
step0C
step0C
OBI
step0D
step32
l3_jmp
step0E l3_arlogpr step15
step11
step11
OBI
step21
step21
OBI
step24
step24
OBI
step29 STJADR step32
step2B
step2B
OBI
step2E
step2E
OBI
step34
step3C
regdir

A
02
32
07
32
15
0C
32
15
11
21
24
32
2B
2E
3C

stepi
step37
step3A
step43
step4A
step4D
step52
step57
step5B
step5E
step61
step64
step67
step6C
step6F

uslov
OBI
OBI
PSWZ
OBI
OBI
OBI
OBI
OBI
PREKID

OBI
OBI
OBI
OBI
OBI

stepA
step37
step3A
step5E
step4A
step4D
step52
step57
step5B
step00
step61
step64
step67
step6C
step6F

A
37
3A
5E
4A
4D
52
57
5B
00
61
64
67
6C
6F

Slika 45 Koraci stepi, uslovi uslov, koraci stepA i vrednosti A za uslovne skokove
Za iskaz br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) se za polje
cc24...27 uzima kod dodeljen signalu viestrukog uslovnog skoka koji odreuje signale uslov1,
..., uslovn za koje treba izvriti proveru koji od njih ima vrednost 1 da bi se na osnovu toga
realizovao prelaz na jedan od koraka stepA1, ..., stepAn i za polje ba2835 nule jer njegova
vrednost nije bitna. Upravljaka jedinica mora da bude tako realizovana da za svaki viestruki
uslovni skok generie vrednosti A1,..., An koje treba upisati u mikroprogramski broja. Ona
mora da obezbedi i selekciju jedne od vrednosti A1,..., An u zavisnosti od toga koji od signala
uslova uslov1, ..., uslovn ima vrednost 1. Simbolike oznake signala viestrukih uslovnih
skokova, nain njihovog kodiranja poljem cc24...27 i koraci u sekvenci upravljakih signala po
koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli sa slike 43. Vrednosti A1,..., An
koje treba upisati u mikroprogramski broja i signali uslova uslov1, ..., uslovn za koje treba
izvriti proveru koji od njih ima vrednost 1 da bi se na osnovu toga realizovao prelaz na jedan
od koraka stepA1, ..., stepAn za dva iskaza ovog tipa koji se javljaju u sekvenci upravljakih
signala po koracima dati su u tabelama sa slika 46 i 47.
uslov
regdir
regind
postdecr
preincr
memdir
memind
regindpom
imm

stepA
step16
step17
step18
step1B
step1E
step1F
step27
step31

A
16
17
18
1B
1E
1F
27
31

Slika 46 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step15
uslov
LD
ST
ADD
AND

stepA
step33
step34
step3D
step3F

A
33
34
3D
41

uslov
ASR
BZ
JMP
JADR

stepA
step41
step43
step46
step47

A
41
43
46
47

uslov
JSR
RTI
RTS

Slika 47 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step32
53

stepA
step48
step4F
step54

A
48
4F
54

! itanje instrukcije !
madr00 M41, M65, M21, M31;
! PCout2, IB2_1, ldMAR, incPC;
! RD;
madr01 M38;
madr02 brOBI, madr02;
madr03 M45, M54;
! MDRout2, ldIR1;
madr04 brl1, madr32;
madr05 M41, M65, M21, M31;
! PCout2, IB2_1, ldMAR, incPC;
! RD;
madr06 M38;
madr07 brOBI, madr07;
madr08 M45, M55, M66, brl2_brn, madr32; ! MDRout2, ldIR2, ldRA;
madr09 brl2_arlogpr, madr15;
madr0A M41, M65, M21, M31;
! PCout2, IB2_1, ldMAR, incPC;
! RD;
madr0B M38;
madr0C brOBI, madr0C;
madr0D M45, M56, brl3_jmp, madr32;
! MDRout2, ldIR3;
madr0E brl3_arlogpr, madr15;
madr0F M41, M65, M21, M31;
! PCout2, IB2_1, ldMAR, incPC;
madr10 M38;
! RD;
madr11 brOBI, madr11;
! MDRout2, ldIR4;
madr12 M45, M57, bruncnd, madr15;
! Formiranje adrese i itanje operanda !
madr15 bradr;
! Registarsko direktno adresiranje !
madr16 M49, M58, bruncnd, madr32;
! Rout2, ldB;
! Registarsko indirektno adresiranje !
madr17 M49, M65, M21, bruncnd, madr29; ! Rout2, IB2_1, ldMAR;
! Registarsko indirektno sa postdekrementiranjem adresiranje !
madr18 M49, M65, M21, M58;
! Rout2, IB2_1, ldMAR, ldB;
madr19 M34;
! decB;
madr1A M48, M26, bruncnd, madr29;
! Bout2, wrR;
! Registarsko indirektno sa preinkrementiranjem adresiranje !
madr1B M49, M58;
! Rout2, ldB;
madr1C M35;
! incB;
madr1D M48, M65, M21, M26, bruncnd, madr29; ! Bout2, IB2_1, ldMAR, wrR;
! Memorijsko direktno adresiranje !
madr1E M18, M21, bruncnd, madr29;
! IRIMADout1, ldMAR;
! Memorijsko indirektno adresiranje !
! IRIMADout1, ldMAR;
madr1F M18, M21;
madr20 M38;
! RD;
madr21 brOBI, madr21;
madr22 M45, M52, M27;
! MDRout2, ldDH, incMAR;
madr23 M38;
! RD;
madr24 brOBI, madr24;
madr25 M45, M53;
! MDRout2, ldDL;
madr26 M14, M21, bruncnd, madr29;
! Dout1, ldMAR;
! Registarsko indirektno sa pomerajem adresiranje !
madr27 M19, M22;
! IRAPout1, ldX;
madr28 M49, M62, M13, M21;
! Rout2, add, ALUout1, ldMAR;
! itanje operanda za sva memorijska adresiranja !
madr29
brSTJADR, madr32;
madr2A M38;
! RD;
madr2B brOBI, madr2B;
madr2C M45, M52, M27;
! MDRout2, ldDH, incMAR;
54

madr2D M38;
! RD;
madr2E brOBI, madr2E;
madr2F M45, M53;
! MDRout2, ldDL;
madr30 M14, M36, M58, bruncnd, madr32;
! Dout1, IB1_2, ldB;
! Neposredno adresiranje !
madr31 M18, M36, M58;
! IRIMADout1, IB1_2, ldB;
! Izvravanje operacije !
madr32 bropr;
! LD !
madr33 M48, M65, M25, bruncnd, madr5E;
! Bout2, IB2_1, ldACC;
! ST !
madr34 brregdir, madr3C;
madr35 M47, M61, M51;
! ACCHout2, mxMDR, ldMDR;
madr36 M37;
! WR;
madr37 brOBI, madr37;
madr38 M46, M61, M51, M27;
! ACCout2, mxMDR, ldMDR, incMAR;
madr39 M37;
! WR;
madr3A brOBI, madr3A;
madr3B bruncnd, madr5E;
madr3C M46, M26, bruncnd, madr5E;
!ACCout2, wrGPR;
! ADD !
madr3D M46, M65, M22;
! ACCout2, IB2_1, ldX;
madr3E M48, M62, M13, M25, bruncnd, madr5E; ! Bout2, add, ALUout1, ldACC;
! AND !
madr3F M46, M65, M22;
! ACCout2, IB2_1, ldX;
madr40 M48, M63, M13, M25, bruncnd, madr5E; ! Bout2, and, ALUout1, ldACC;
! ASR !
madr41 M46, M65, M22;
! ACCout2, IB2_1, ldX;
madr42 M64, M13, M25, bruncnd, madr5E;
! asr, ALUout1, ldACC;
! BZ !
madr43 brnotPSWZ, madr5E;
madr44 M16, M22;
! IRBRout1, ldX;
madr45 M41, M62, M13, M23, bruncnd, madr5E; ! PCout2, add, ALUout1, ldPC;
! JMP !
! IRJAout1, ldPC;
madr46 M17, M23, bruncnd, madr5E;
! JADR !
madr47 M15, M23, bruncnd, madr5E;
! MARout1, ldPC;
! JSR !
madr48 M11, M21, M32, M41, M61, M51;
! SPout1, ldMAR, decSP,
PCout2, mxMDR, ldMDR;
madr49 M37;
! WR;
madr4A brOBI, madr4A;
madr4B M11, M21, M32, M42, M61, M51;
! SPout1, ldMAR, decSP,
PCHout2, mxMDR, ldMDR;
madr4C M37;
! WR;
madr4D brOBI, madr4D;
madr4E M17, M23, bruncnd, madr5E;
! IRJAout1, ldPC ;
! RTI !
madr4F M31;
! incSP;
madr50 M11, M21;
! SPout1, ldMAR;
madr51 M38;
! RD;
madr52 brOBI, madr52;
madr53 M45, M24;
! MDRout2, ldPSW;
55

! RTS !
madr54 M33;
madr55 M11, M21;
madr56 M38;
madr57 brOBI, madr57;
madr58 M45, M52, M33;
madr59 M11, M21;
madr5A M38;
madr5B brOBI, madr5B;
madr5C M45, M53;
madr5D M14, M23;
! Opsluivanje prekida !
madr5E brnotPREKID, madr00;
madr5F M11, M21, M32, M41, M61, M51;
madr60
madr61
madr62

M37;
brOBI, madr61;
M11, M21, M32, M42, M61, M51;

madr63
madr64
madr65

M37;
brOBI, madr64;
M11, M21, M32, M43, M61, M51;

madr66
madr67
madr68
madr69
madr6A
madr6B
madr6C
madr6D
madr6E
madr6F
madr70
madr71

M37;
brOBI, madr67;
M39;
M12, M22;
M44, M62, M13, M21;
M38;
brOBI, madr6C;
M45, M52, M27;
M38;
brOBI, madr6F;
M45, M53;
M14, M23, bruncnd, madr00;

! incSP;
! SPout1, ldMAR;
! RD;
! MDRout2, ldDH, incSP;
! SPout1, ldMAR;
! RD;
! MDRout2, ldDL;
! Dout1, ldPC;

! SPout1, ldMAR, decSP,


PCout2, mxMDR, ldMDR;
! WR;
! SPout1, ldMAR, decSP,
PCHout2, mxMDR, ldMDR;
! WR;
! SPout1, ldMAR, decSP,
PSWout2, mxMDR, ldMDR;
! WR;
! slBRU;
! IVTPout1, ldX;
! BRUout2, add, ALUout1, ldMAR;
! RD;
! MDR2out, ldDH, incMAR;
! RD;
! MDR2out, ldDL;
! Dou1, ldPC;

Slika 48 Mikroprogram za upravljaku jedinicu mikroprogramske realizacije sa meovitim


kodiranjem signala i jednim tipom mikroinstrukcija
d) Upravljaka jedinica mikroprogramske realizacije sa meovitim kodiranjem signala i
jednim tipom mikroinstrukcija se sastoji od sledeih blokova: blok generisanje nove vrednosti
mikroprogramskog brojaa, blok mikroprogramski broja, blok mikroprogramska memorija,
blok prihvatni registar mikroinstrukcije i blok generisanje upravljakih signala (slika 49).
Struktura i opis blokova upravljake jedinice se daju u daljem tekstu.
Blok generisanje nove vrednosti mikroprogramskog brojaa se sastoji od kombinacionih
mrea KMOPR i KMADR sa multiplekserom MP i razreda CW28...35 prihvatnog registra
mikroinstrukcije CW0...35 i slui za generisanje i selekciju vrednosti koju treba upisati u
mikroprogramski broja mPC7...0. Potreba za ovim se javlja kada treba odstupiti od
sekvencijalnog izvravanja mikroprograma. Kombinacionom mreom KMOPR generiu se
vrednosti (tabela sa slike 47) za realizaciju viestrukog uslovnog skoka u koraku step32
sekvence upravljakih signala po koracima. U zavisnosti od toga koji od signala LD, , RTS
ima vrednost 1 zavisi koja e od vrednosti iz tabele sa slike 47 da se pojavi tada na linijama

56

op7...0. Kombinacionom mreom KMADR generiu se vrednosti (tabela sa slike 46) za


realizaciju viestrukog uslovnog skoka u koraku step15 sekvence upravljakih signala po
koracima. U zavisnosti od toga koji od signala regdir,..., imm ima vrednost 1 zavisi koja e
od vrednosti iz tabele sa slike 46 da se pojavi tada na linijama adr7...0. Razredi CW28...35
prihvatnog registra mikroinstrukcije CW0...35 sadre vrednost za upis u mikroprogramski
broja mPC7...0 za bezuslovne skokove (tabela sa slike 44) i uslovne skokove (tabela sa slike
45) u sekvenci upravljakih signala po koracima.
Blok mikroprogramski broja sadri mikroprogramski broja mPC7...0. Mikroprogramski
broja mPC7...0 svojom trenutnom vrednou odreuje adresu mikroprogramske memorije
mMEM sa koje treba oitati mikroinstrukciju. Mikroprogramski broja mPC7...0 moe da radi
u sledeim reimima: reim inkrementiranja i reim skoka. U reimu inkrementiranja pri
pojavi signala takta CLKmPC vri se uveavanje sadraja mikroprogramskog brojaa mPC7...0
za jedan ime se obezbeuje sekvencijalno oitavanje mikroinstrukcija iz mikroprogramske
memorije. Ovaj reim rada se obezbeuje vrednou 1 signala inc. U reimu skoka pri pojavi
signala takta CLKmPC vri se upis nove vrednosti u mikroprogramski broja mPC7...0 ime se
obezbeuje odstupanje od sekvencijalnog oitavanja mikroinstrukcija iz mikroprogramske
memorije. Ovaj reim rada se obezbeuje vrednou 1 signala ld.
Blok mikroprogramski memorija sadri mikroprogramsku memoriju mMEM, koja slui za
smetanje mikroprograma. Adresiranje mikroprogramske memorije se realizuje sadrajem
mikroprogramskog brojaa mPC7...0.
Blok prihvatni registar mikroinstrukcije sadri prihvatni registar mikroinstrukcije CW0...35.
Prihvatni registar mikroinstrukcije CW0...35 slui za prihvatanje mikroinstrukcije oitane iz
mikroprogramske memorije mMEM. Na osnovu sadraja ovog registra generiu se
upravljaki signali. Razredi CW0...23 i CW24...27 se koriste u bloku generisanje upravljakih
signala za generisanje upravljakih signala operacione jedinice i upravljake jedinice,
respektivno, dok se razredi CW28...35 koriste u bloku generisanje nove vrednosti
mikroprogramskog brojaa kao adresa skoka u mikrorogramu u sluaju bezuslovnih i
uslovnih skokova.
Blok generisanje upravljakih signala sadri kombinacione mree koje na osnovu sadraja
razreda CW0...23 prihvatnog registra mikroinstrukcije generiu upravljake signale operacione
jedinice i na osnovu sadraja razreda CW24...27 prihvatnog registra mikroinstrukcije i signala
logikih uslova OBI, l1, ..., PREKID koji dolaze iz operacione jedinice generiu upravljake
signale upravljake jedinice.
Upravljaki signali operacione jedinice se generiu na sledei nain:
ldMAR = CW4 CW5 CW6 CW7
incPC = CW8 CW9 CW10 CW11
Bout2 = CW12 CW13 CW14 CW15
Na identian nain se generiu i preostali upravljaki signali operacione jedinice.

57

signali logikih uslova

144424443

144424443
imm

LD
ST

RTS

regdir
regind

signali logikih uslova

...

KMOPR

KMADR

33 34

54

16 17

144424443
opr7...0
8
3

8
2

generisanje
nove
vrednosti
mikroprogramskog
brojaa

...

MP

31

144424443
adr7...0
CW28...35

8
1

0 S
0

bradr
bropr

S1

CLKmPC

mPC7...0

bradr
bropr
bruncnd
brcnd

ld
INC inc
LD

mPC

CLK

mikroprogramski
broja

mikroprogramska
memorija

mMEM

WR

36

...

23

24

...

27

28

...

35

CLKCW

prihvatni
registar
mikroinstrukcije

LD

CW35
CW0 CW23CW123
CW27CW123
28
24
123
4
24
8
...

...

signali logikih uslova

144424443

...

generisanje
upravljakih
signala
operacione
jedinice

OBI

l3_arlogpr
generisanje
upravljakih
signala
upravljake
jedinice

l1
l2_brn

l2_arlogpr

STJADR
regdir
PSWZ

l3_jmp

PREKID

144424443
signali logikih uslova

CLK

CW

Slika 49 Struktura upravljake jedinice


Upravljaki signali upravljake jedinice se generiu na sledei nain:
bradr = CW24 CW25 CW26 CW27
bropr = CW24 CW25 CW26 CW27
bruncnd = CW24 CW25 CW26 CW27

58

brcnd

bruncnd

bropr

bradr

...

BRUout2

IB2_1

PCout2

...
generisanje
upravljakih
signala

brcnd = brOBIOBI+brl1l1+brl2_brnl2_brn+brl2_arlogprl2_arlogpr+
brl3_jmpl3_jmp+brl3_arlogprl3_arlogpr+brSTJADRSTJADR+
brregdirregdir+brnotPSWZ PSWZ +brnotPREKID PREKID
brOBI = CW24 CW25 CW26 CW27
brl1 = CW24 CW25 CW26 CW27
brl2_brn = CW24 CW25 CW26 CW27
brl2_arlogpr = CW24 CW25 CW26 CW27
brl3_jmp = CW24 CW25 CW26 CW27
brl3_arlogpr = CW24 CW25 CW26 CW27
brSTJADR = CW24 CW25 CW26 CW27
brregdir = CW24 CW25 CW26 CW27
brnotPSWZ = CW24 CW25 CW26 CW27
brnotPREKID = CW24 CW25 CW26 CW27
Pri generisanju signala brcnd koriste se sledei signali logikih uslova koji dolaze iz
operacione jedinice i to: OBI, l1, l2_brn, l2_arlogpr, l3_jmp, l3_arlogpr, STJADR, regdir,
PSWZ i PREKID .

59

1.4 ZADATAK
Posmatra se deo raunara iz zadatka 1.1.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa tri interne magistrale.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
horizontalnim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i
horizontalnim kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje
upravljakih signala i to za upravljake signale operacione jedinice ldMAR, incPC i Bout1, i
sve upravljake signale upravljake jedinice kojima se upravlja mikroprogramskim brojaem.
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.1.
b) Jedna realizacija strukturne eme operacione jedinice sa tri interne magistrale je data na
slikama 50 i 51. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.

60

BUS
144444444444444444424444444444444444443

ABUS15..0

RD
WR

RD
WR

DBUS7..0

A15...0

RDBUS

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

OBI

OBI

MDRout1

IB17..0

MDR7..0
LD

ldMBR

MDR

CLK

mxMDR 0 mxMDR
0

IB27..0
MARout3

IB315..0

MAR15...0
ldMAR
incMAR

LD
INC

IB27..0
IB215..0

PCout2

MAR

CLK

IB315..0
Dout3

PCHout2
PC15..8

D15..0
IRJAout3
IR23..8

PC15..0
incPC INC
PC CLK
ldPC LD

IB315..0

IRIMADout3
IB315..0
IR15..0
IB315..0

SPout3

IB315..0

SP15..0

IB17..0

IB215..0

incSP INC
SP
decSP DEC

LD

IB17..0

PSWout2
IB27..0

PSW7...0

IRBPout1
IR23..23.IR23..16
IB215..0

IR31..24

IR23..16

IB17..0

formiranje
indikatora

IB115..0

ldIR2 LD IR2 CLK

ldIR3 LD IR3 CLK ldIR4

mxPSW 0 mxPSW
0

ldIR1 LD IR1 CLK


IB17..0

ldPSW LD PSW CLK

IB17..0

IB315..0

ldDH LD
IRAPout2
IR15..15.IR15..8

D CLK
D15..8

IR4 CLK
IR7..0

IR15..8

Slika 50 Operaciona jedinica (prvi deo)

61

LD

ldDL LD

D CLK
D7..0

ALUout3

IB315..0

ALU15..0
A15...0

IB115..0 IB215..0

ALU

add
and
asr

B15...0

IB215..0

Bout1

IB115..0
IB27..0
IB215..0

B15..0

ACCHout2
ACC15..8
ACCout2
ACC15..0

incB INC
decB DEC

LD
CLK

ldB
IB315..0

ldACC LD ACC CLK


IB315..0

IB215..0
IB115..0

IB115..0
IB115..0

Rout1

RA CLK

LD

IVTP
IVTP15..0

IB315..0

DI15...0

A4...0

RA4..0

WR

wrR

DO15...0

R15..0

IB215..0

BRUout2

IB215..0

CLK
LD

BRU

IL
SL

0
slBRU
IB315..0

IB215..0

IB2_1

formiranje BRU

BRU15..0

IB1_3

IB115..0

IB115..0

CLK
LD

IB14..0
ldRA

IB115..0

IVTPout1

IB2_3

IB315..0

IB215..0

Slika 51 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, su dati pod v) u
reenju zadatka 1.1.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 52.

62

! itanje instrukcije !
step00 PCout2, IB2_3, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout1, ldIR1;
step04 br (if l1 then step31);
step05 PCout2, IB2_3, ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 MDRout1, ldIR2, ldRA, br (if l2_brn then step31);
step09 br (if l2_arlogpr then step15);
step0A PCout2, IB2_3, ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D MDRout1, ldIR3, br (if l3_jmp then step31);
step0E br (if l3_arlogpr then step15);
step0F PCout2, IB2_3, ldMAR, incPC;
step10 RD;
step11 br (if OBI then step11);
step12 MDRout1, ldIR4, br step15;
! Formiranje adrese i itanje operanda !
step15 br (case (regdir, regind, postdecr, preincr, regindpom, memdir, memind, immed)
then
(regdir, step16), (regind, step17), (postdecr, step18), (preincr, step1B),
(memdir, step1E), (memind, step1F), (regindpom, step27), (imm, step30));
! Registarsko direktno adresiranje !
step16 Rout1, IB1_3, ldB, br step31;
! Registarsko indirektno adresiranje !
step17 Rout1, IB1_3, ldMAR, br step28;
! Registarsko indirektno sa postdekrementiranjem adresiranje !
step18 Rout1, IB1_3, ldMAR, ldB;
step19 decB;
step1A Bout1, IB1_3, wrR, br step28;
! Registarsko indirektno sa preinkrementiranjem adresiranje !
step1B Rout1, IB1_3, ldB;
step1C incB;
step1D Bout1, IB1_3, ldMAR, wrR, br step28;
! Memorijsko direktno adresiranje !
step1E IRIMADout3, ldMAR, br step28;
! Memorijsko indirektno adresiranje !
step1F IRIMADout3, ldMAR;
step20 RD;
step21 br (if OBI then step21);
step22 MDRout1, ldDH, incMAR;
step23 RD;
step24 br (if OBI then step24);
step25 MDRout1, ldDL;
step26 Dout3, ldMAR, br step28;
! Registarsko indirektno sa pomerajem adresiranje !
step27 Rout1, IRSPout2, add, ALUout3, ldMAR;
! itanje operanda za sva memorijska adresiranja !
step28 br (if STJADR then step31);
step29 RD;
step2A br (if OBI then step2A);
63

step2B MDRout1, ldDH, incMAR;


step2C RD;
step2D br (if OBI then step2D);
step2E MDRout1, ldDL;
step2F Dout3, ldB, br step31;
! Neposredno adresiranje !
step30 IRIMADout3, ldB;
! Izvravanje operacije !
step31 br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step32), (ST, step33), (ADD, step3C), (AND, step3D), (ASR, step3E),
(BZ, step3F), (JMP, step41), (JADR, step42), (JSR, step43),
(RTI, step4A), (RTS, step4F));
! LD !
step32 Bout1, IB1_3, ldACC, br step59;
! ST !
step33 br (if regdir then step3B);
step34 ACCHout2, mxMDR, ldMDR;
step35 WR;
step36 br (if OBI then step36);
step37 ACCout2, mxMDR, ldMDR, incMAR;
step38 WR;
step39 br (if OBI then step39);
step3A br step59;
step3B ACCout2, IB2_3, wrR, br step59;
! ADD !
step3C ACCout2, Bout1, add, ALUout3, ldACC, br step59;
! AND !
step3D ACCout2, Bout1, and, ALUout3, ldACC, br step59;
! ASR !
step3E ACCout2, IB2_1, asr, ALUout3, ldACC, br step59;
! BZ !
step3F br (if PSWZ then step59);
step40 PCout2, IRBRout1, add, ALUout3, ldPC, br step59;
! JMP !
step41 IRJAout3, ldPC, br step59;
! JADR !
step42 MARout3, ldPC, br step59;
! JSR !
step43 SPout3, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step44 WR;
step45 br (if OBI then step45);
step46 SPout3, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step47 WR;
step48 br (if OBI then step48);
step49 IRJAout3, ldPC, br step59;
! RTI !
step4A incSP;
step4B SPout3, ldMAR;
step4C RD;
step4D br (if OBI then step4D);

64

step4E MDRout1, ldPSW;


! RTS !
step4F incSP;
step50 SPout3, ldMAR;
step51 RD;
step52 br (if OBI then step52);
step53 MDRout1, ldDH, incSP;
step54 SPout3, ldMAR;
step55 RD;
step56 br (if OBI then step56);
step57 MDRout1, ldDL;
step58 Dout3, ldPC;
! Opsluivanje prekida !
step59 br (if PREKID then step00);
step5A SPout3, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step5B WR;
step5C br (if OBI then step5C);
step5D SPout3, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step5E WR;
step5F br (if OBI then step5F);
step60 SPout3, ldMAR, decSP, PSWout2, mxMDR, ldMDR;
step61 WR;
step62 br (if OBI then step62);
step63 slBRU;
step64 IVTPout1, BRUout2, add, ALUout3, ldMAR;
step65 RD;
step66 br (if OBI then step66);
step67 MDR1out, ldDH, incMAR;
step68 RD;
step69 br (if OBI then step69);
step6A MDR1out, ldDL;
step6B Dou3, ldPC, br step00;

Slika 52 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) U sluaju upravljake jedinice mikroprogramske realizacije sa horizontalnim
kodiranjem signala i jednim tipom mikroinstrukcija upravljaki signali i operacione i
upravljake jedinice se generiu na osnovu mikroprograma, koji je potrebno prethodno
formirati tako to se svakom koraku u sekvenci upravljakih signala po koracima (slika 52)
pridruuje binarna re odreene strukture (slika 53). Ta binarna re se naziva mikroinstrukcija,
mikronaredba ili mikrokomanda, a tako dobijeni ureeni niz mikroinstrukcija pridruenih
koracima sekvence upravljakih signala po koracima, naziva se mikroprogram.
h

cc

ba

01444444444442444444444443
...
51 52
... 55 56
...
63
14243 144424443

signali

uslov

adresa skoka

1444444444442444444444443

1444442444443

operacioni deo

upravljaki deo

Slika 53 Format mikroinstrukcije


Poljem h0...51 duine 52 bita mikroinstrukcije odreuju se vrednosti svih upravljakih
signala operacione jedinice. Uzeto je da svakom upravljakom signalu odgovara poseban bit.
Ovakav nain kodiranja upravljakih signala se naziva horizontalni nain kodiranja. Poljem
65

cc52...55 duine 4 bita mikroinstrukcije specificira se bezuslovni skok, uslovni skokovi na


osnovu vrednosti svakog od signala logikih uslova i viestruki uslovni skokovi. Polje ba56...63
duine 8 bita mikroinstrukcije definie se adresa mikroinstrukcije u mikroprogramu na koju se
skae u sluaju bezuslovnog skoka i u sluaju uslovnog skoka ukoliko odgovarajui signal
logikog uslova ima vrednost 1.
Upravljaka jedinica se sastoji iz mikroprogramske memorije, mikroprogramskog brojaa,
prihvatnog registra mikroinstrukcije, kombinacione mree za generisanje upravljakih signala
i kombinacione mree za generisanje nove vrednosti mikroprogramskog brojaa.
Mikroprogramska memorija slui za smetanje mikroprograma. Mikroprogramski broja
odreuje adresu mikroinstrukcije u mikroprogramskoj memoriji. Prihvatni registar
mikroinstrukcije slui za prihvatanje mikroinstrukcije oitane iz mikroprogramske memorije.
Kombinaciona mrea za generisanje upravljakih signala generie na osnovu oitane
mikroinstrukcije dve grupe upravljakih signala i to upravljake signale operacione jedinice i
upravljake signale upravljake jedinice. Upravljaki signali operacione jedinice se generiu
na osnovu vrednosti bitova polja h0...51. Njima se omoguava izvravanje odreenih
mikrooperacija u operacionoj jedinici. Upravljaki signali upravljake jedinice se generiu na
osnovu vrednosti bitova polja cc52...55 i signala logikih uslova. Njima se ili sadraj
mikroprogramskog brojaa inkrementira ili se u mikroprogramski broja preko kombinacione
mree za generisanje nove vrednosti mikroprogramskog brojaa upisuje nova vrednost i time
realizuje skok u mikroprogramskoj memoriji.
Detalji formata mikroinstrukcije (slika 53) su dati u daljem tekstu.
Bitovi 0 do 51 pripadaju polju h0...51 mikroinstrukcije i dodeljeni su upravljakim signalima
operacione jedinice PCout2, IB2_3, ..., BRUout2 (slika 54).
h0...51
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

signal
PCout2
IB2_3
ldMAR
incPC
RD
MDRout1
ldIR1
ldIR2
ldRA
ldIR3
ldIR4
Rout1
IB1_3
ldB
decB
Bout1
wrR
incB
IRIMADout3
ldDH

h0...51
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

signal
incMAR
ldDL
Dout3
IRAPout2
add
ALUout3
ldACC
ACCHout2
mxMDR
ldMDR
WR
ACCout2
and
IB2_1
asr
IRBPout1
ldPC
IRJAout3
MARout3
SPout3

h0...51
40
41
42
43
44
45
46
47
48
49
50
51

signal
decSP
PCHout2
incSP
ldPSW
PSWout2
slBRU
IVTPout1
BRUout2
-

Slika 54 Bitovi polja h i upravljaki signali operacione jedinice


Bitovi 52 do 55 pripadaju polju cc52...55 mikroinstrukcije i koriste se za kodiranje
upravljakih signala upravljake jedinice za korake u kojima se javljaju bezuslovni skok,
uslovni skokovi i viestruki uslovni skokovi.

66

Bezuslovni skok se realizuje u onim koracima sekvence upravljakih signala po koracima


(slika 52) u kojima se pojavljuju iskazi tipa
br stepA.
Nain kodiranja signala bezuslovnog skoka bitovima polja cc52...55 mikroinstrukcije i
simbolika oznaka signala bezuslovnog skoka dati su u tabeli sa slike 55.
cc5255
1

signal bezuslovnog skoka


bruncnd

Slika 55 Signal bezuslovnog skoka


Uslovni skokovi se realizuju u onim koracima sekvence upravljakih signala po koracima u
kojima se pojavljuju iskazi tipa
br (if uslov then stepA).
Nain kodiranja signala uslovnih skokova bitovima polja cc52...55 mikroinstrukcije, simbolike
oznake signala uslovnih skokova koje za svaki od njih treba generisati i signal uslova koji
treba da ima vrednost 1 da bi se realizovao skok dati su u tabeli sa slike 56.
cc5255
2
3
4
5
6

signal uslovnog
skoka
brOBI
brl1
brl2_brn

signal
uslova
OBI
l1
l2_brn

brl2_arlogpr
brl3_jmp

l2_arlogpr
l3_jmp

cc5255
7
8
9
A
B

signal uslovnog
signal
skoka
uslova
brl3_arlogpr l3_arlogpr
brSTJADR
STJADR
brregdir
regdir
brnotPSWZ
brnotPREKID

PSWZ
PREKID

Slika 56 Signali uslovnih skokova


Viestruki uslovni skokovi se realizuju u onim koracima sekvence upravljakih signala po
koracima u kojima se pojavljuju iskazi tipa
br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn).
Nain kodiranja signala viestrukih uslovnih skokova bitovima polja cc52...55 mikroinstrukcije,
koraci u sekvenci upravljakih signala po koracima u kojima se pojavljuju iskazi ovog tipa i
simbolike oznake signala viestrukih uslovnih skokova dati su u tabeli sa slike 57.
cc5255
C
D

stepi
step15
step31

signal
bradr
bropr

Slika 57 Signali viestrukih uslovnih skokova


Vrednost 0 polja cc52...55 i sve ostale vrednosti koje nisu dodeljene signalu bezuslovnog
skoka, signalima uslovnih skokova i signalima viestrukih uslovnih skokova odreuju da treba
prei na sledeu mikroinstrukciju. Iz tabela sa slika 55, 56 i 57 se vidi da su za kodiranje
signala bezuslovnog skoka, uslovnih skokova i viestrukih uslovnih skokova upravljake
jedinice potrebni kodovi od 1h do Dh, pa je usvojeno da duina polja cc bude 4 bita.
Bitovi 56 do 63 pripadaju polju ba56...63 mikroinstrukcije i koriste se za specificiranje
adrese mikroinstrukcije na koju treba skoiti kod uslovnih i bezuslovnih skokova u sekvenci
upravljakih signala po koracima (slika 52). Ovi bitovi sadre vrednost koju treba upisati u
mikroprogramski broja u sluaju bezuslovnih skokova i ukoliko signal uslova ima vrednost 1
u sluaju uslovnih skokova. Za kodiranje polja ba56...63 usvojeno je 8 bitova, jer je za
kompletan mikroprogram dovoljan kapacitet mikroprogramske memorije od 256 rei.
Mikroprogram se formira tako to se za svaki korak u sekvenci upravljakih signala po
koracima (slika 52) formira jedna mikroinstrukcija.

67

Kod formiranja mikroinstrukcije polazi se od sekvence upravljakih signala po koracima i


bitovi polja h0...51 koji odgovaraju upravljakim signalima operacione jedinice koji se javljaju
u datom koraku postavljaju na 1, dok se bitovi polja h0...51 koji odgovaraju upravljakim
signalima operacione jedinice koji se ne javljaju u datom koraku postavljaju na 0. Bitovi polja
cc52...55 i ba5663 se u koracima u kojima se javlja neki od iskaza br stepA, br (if uslov then
stepA) i br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) kodiraju u
saglasnosti sa tim koji se od ova tri iskaza javlja u datom koraku, dok se u suprotnom sluaju
postavljaju na nule.
Za iskaz br stepA se za polje cc52...55 uzima kod dodeljen signalu bezuslovnog skoka koji
odreuje da se bezuslovno prelazi na korak stepA i za polje ba5663 binarna vrednost A koju
treba upisati u mikroprogramski broja. Simbolika oznaka signala bezuslovnog skoka i nain
njegovog kodiranja poljem cc52...55 dati su u tabeli tabeli 55. Koraci stepi u kojima se
bezuslovni skokovi javljaju, koraci stepA na koje se bezuslovno skae i sama vrednost A, koju
treba upisati u mikroprogramski broja, za sve korake u sekvenci upravljakih signala po
koracima u kojima se javljaju iskazi ovog tipa, dati su u tabeli sa slike 58.
stepi
step12
step16
step17
step1A
step1D
step1E
step26

stepA
step15
step31
step28
step28
step28
step28
step28

A
15
31
28
28
28
28
28

stepi
step2F
step32
step3A
step3B
step3C
step3D
step3E

stepA
step31
step59
step59
step59
step59
step59
step59

A
31
59
59
59
59
59
59

stepi
step40
step41
step42
step49
step6B

stepA
step59
step59
step59
step59
step00

A
59
59
59
59
00

Slika 58 Koraci stepi, stepA i vrednosti A za bezuslovne skokove


Za iskaz br (if uslov then stepA) se za polje cc52...55 uzima kod dodeljen signalu uslovnog
skoka koji odreuje signal uslov koji treba da ima vrednost 1 da bi se realizovao prelaz na
korak stepA i za polje ba5663 binarna vrednost A koju treba upisati u mikroprogramski broja
u sluaju da signal uslov ima vrednost 1. Simbolike oznake signala uslovnog skoka, nain
njihovog kodiranja poljem cc52...55 i signali uslov za sve iskaze ovog tipa koji se javljaju u
sekvenci upravljakih signala po koracima dati su u tabeli sa slike 56. Koraci stepi u kojima se
uslovni skokovi javljaju, signali uslova uslov, koraci stepA na koje se uslovno skae i
vrednosti A koju treba upisati u mikroprogramski broja u sluaju da signal uslov ima
vrednost 1, za sve korake u sekvenci upravljakih signala po koracima u kojima se javljaju
iskazi ovog tipa dati su u tabeli sa slike 59.
stepi
uslov
stepA
step02
step02
OBI
step04
step31
l1
step07
step07
OBI
step08
step31
l2_brn
step09 l2_arlogpr step15
step0C
step0C
OBI
step0D
step31
l3_jmp
step0E l3_arlogpr step15
step11
step11
OBI
step21
step21
OBI
step24
step24
OBI
step28 STJADR step32
step2A
step2A
OBI
step2D
step2D
OBI
step33
step3B
regdir

A
02
31
07
31
15
0C
31
15
11
21
24
31
2A
2D
3B

stepi
step36
step39
step3F
step45
step48
step4D
step52
step56
step59
step5C
step5F
step62
step66
step69

68

uslov
OBI
OBI
PSWZ
OBI
OBI
OBI
OBI
OBI
PREKID

OBI
OBI
OBI
OBI
OBI

stepA
step36
step39
step59
step45
step48
step4D
step52
step56
step00
step5C
step5F
step62
step66
step69

A
36
39
59
45
48
4D
52
56
00
5C
5F
62
66
69

Slika 59 Koraci stepi, uslovi uslov, koraci stepA i vrednosti A za uslovne skokove
Za iskaz br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) se za polje
cc52...55 uzima kod dodeljen signalu viestrukog uslovnog skoka koji odreuje signale uslov1,
..., uslovn za koje treba izvriti proveru koji od njih ima vrednost 1 da bi se na osnovu toga
realizovao prelaz na jedan od koraka stepA1, ..., stepAn i za polje ba5663 nule jer njegova
vrednost nije bitna. Upravljaka jedinica mora da bude tako realizovana da za svaki viestruki
uslovni skok generie vrednosti A1,..., An koje treba upisati u mikroprogramski broja. Ona
mora da obezbedi i selekciju jedne od vrednosti A1,..., An u zavisnosti od toga koji od signala
uslova uslov1, ..., uslovn ima vrednost 1. Simbolike oznake signala viestrukih uslovnih
skokova, nain njihovog kodiranja poljem cc24...27 i koraci u sekvenci upravljakih signala po
koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli sa slike 57. Vrednosti A1,..., An
koje treba upisati u mikroprogramski broja i signali uslova uslov1, ..., uslovn za koje treba
izvriti proveru koji od njih ima vrednost 1 da bi se na osnovu toga realizovao prelaz na jedan
od koraka stepA1, ..., stepAn za dva iskaza ovog tipa koji se javljaju u sekvenci upravljakih
signala po koracima dati su u tabelama sa slika 60 i 61.
uslov
regdir
regind
postdecr
preincr
memdir
memind
regindpom
imm

stepA
step16
step17
step18
step1B
step1E
step1F
step27
step30

A
16
17
18
1B
1E
1F
27
30

Slika 60 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step15
uslov
LD
ST
ADD
AND

stepA
step32
step33
step3C
step3D

A
32
33
3C
3D

uslov
ASR
BZ
JMP
JADR

stepA
step3E
step3F
step41
step42

A
3E
3F
41
42

uslov
JSR
RTI
RTS

Slika 61 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step31
! itanje instrukcije !
madr00 PCout2, IB2_3, ldMAR, incPC;
madr01 RD;
madr02 brOBI, madr02;
madr03 MDRout1, ldIR1;
madr04 brl1, madr31;
madr05 PCout2, IB2_3, ldMAR, incPC;
madr06 RD;
madr07 brOBI, madr07;
madr08 MDRout1, ldIR2, ldRA, brl2_brn, madr31;
madr09 brl2_arlogpr, madr15;
madr0A PCout2, IB2_3, ldMAR, incPC;
madr0B RD;
madr0C brOBI, madr0C;
madr0D MDRout1, ldIR3, brl3_jmp, madr31;
madr0E brl3_arlogpr, madr15;
madr0F PCout2, IB2_3, ldMAR, incPC;
69

stepA
step43
step4A
step4F

A
43
4A
4F

madr10 RD;
madr11 brOBI, madr11;
madr12 MDRout1, ldIR4, bruncnd, madr15;
! Formiranje adrese i itanje operanda !
madr15 bradr;
! Registarsko direktno adresiranje !
madr16 Rout1, IB1_3, ldB, bruncnd, madr31;
! Registarsko indirektno adresiranje !
madr17 Rout1, IB1_3, ldMAR, bruncnd, madr28;
! Registarsko indirektno sa postdekrementiranjem adresiranje !
madr18 Rout1, IB1_3, ldMAR, ldB;
madr19 decB;
madr1A Bout1, IB1_3, wrR, bruncnd, madr28;
! Registarsko indirektno sa preinkrementiranjem adresiranje !
madr1B Rout1, IB1_3, ldB;
madr1C incB;
madr1D Bout1, IB1_3, ldMAR, wrR, bruncnd, madr28;
! Memorijsko direktno adresiranje !
madr1E IRIMADout3, ldMAR, bruncnd, madr28;
! Memorijsko indirektno adresiranje !
madr1F IRIMADout3, ldMAR;
madr20 RD;
madr21 brOBI, madr21;
madr22 MDRout1, ldDH, incMAR;
madr23 RD;
madr24 brOBI, madr24;
madr25 MDRout1, ldDL;
madr26 Dout3, ldMAR, bruncnd, madr28;
! Registarsko indirektno sa pomerajem adresiranje !
madr27 Rout1, IRAPout2, add, ALUout3, ldMAR;
! itanje operanda za sva memorijska adresiranja !
madr28 brSTJADR, madr31;
madr29 RD;
madr2A brOBI, madr2B;
madr2B MDRout1, ldDH, incMAR;
madr2C RD;
madr2D brOBI, madr2D;
madr2E MDRout1, ldDL;
madr2F Dout3, ldB, bruncnd, madr31;
! Neposredno adresiranje !
madr30 IRIMADout3, ldB;
! Izvravanje operacije !
madr31 bropr;
! LD !
madr32 Bout1, IB1_3, ldACC, bruncnd, madr59;
! ST !
madr33 brregdir, madr3B;
madr34 ACCHout2, mxMDR, ldMDR;
madr35 WR;
madr36 brOBI, madr36;
madr37 ACCout2, mxMDR, ldMDR, incMAR;
madr38 WR;
madr39 brOBI, madr39;
70

madr3A bruncnd, madr59;


madr3B ACCout2, IB2_3, wrGPR, bruncnd, madr59;
! ADD !
madr3C ACCout2, Bout1, add, ALUout3, ldACC, bruncnd, madr59;
! AND !
madr3D ACCout2, Bout1, and, ALUout3, ldACC, bruncnd, madr59;
! ASR !
madr3E ACCout2, IB2_1, asr, ALUout3, ldACC, bruncnd, madr59;
! BZ !
madr3F brnotPSWZ, madr59;
madr40 PCout2, IRBRout1, add, ALUout3, ldPC, bruncnd, madr59;
! JMP !
madr41 IRJAout3, ldPC, bruncnd, madr59;
! JADR !
madr42 MARout3, ldPC, bruncnd, madr59;
! JSR !
madr43 SPout3, ldMAR, decSP, PCout2, mxMDR, ldMDR;
madr44 WR;
madr45 brOBI, madr45;
madr46 SPout3, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
madr47 WR;
madr48 brOBI, madr48;
madr49 IRJAout3, ldPC, bruncnd, madr59;
! RTI !
madr4A incSP;
madr4B SPout3, ldMAR;
madr4C RD;
madr4D brOBI, madr4D;
madr4E MDRout1, ldPSW;
! RTS !
madr4F incSP;
madr50 SPout3, ldMAR;
madr51 RD;
madr52 brOBI, madr52;
madr53 MDRout1, ldDH, incSP;
madr54 SPout3, ldMAR;
madr55 RD;
madr56 brOBI, madr56;
madr57 MDRout1, ldDL;
madr58 Dout3, ldPC;
! Opsluivanje prekida !
madr59 brnotPREKID, madr00;
madr5A SPout3, ldMAR, decSP, PCout2, mxMDR, ldMDR;
madr5B WR;
madr5C brOBI, madr5C;
madr5D SPout3, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
madr5E WR;
madr5F brOBI, madr5F;
madr60 Spout3, ldMAR, decSP, PSWout2, mxMDR, ldMDR;
madr61 WR;
madr62 brOBI, madr62;
madr63 slBRU;
madr64 IVTPout1, BRUout2, add, ALUout3, ldMAR;
71

madr65
madr66
madr67
madr68
madr69
madr6A
madr6B

RD;
brOBI, madr66;
MDR1out, ldDH, incMAR;
RD;
brOBI, madr69;
MDR1out, ldDL;
Dou3, ldPC, bruncnd, madr00;

Slika 62 Mikroprogram za upravljaku jedinicu mikroprogramske realizacije sa horizontalnim


kodiranjem signala i jednim tipom mikroinstrukcija
) Upravljaka jedinica mikroprogramske realizacije sa horizontalnim kodiranjem signala i
jednim tipom mikroinstrukcija se sastoji od sledeih blokova: blok generisanje nove vrednosti
mikroprogramskog brojaa, blok mikroprogramski broja, blok mikroprogramska memorija,
blok prihvatni registar mikroinstrukcije i blok generisanje upravljakih signala (slika 63).
Struktura i opis blokova upravljake jedinice se daju u daljem tekstu.
Blok generisanje nove vrednosti mikroprogramskog brojaa se sastoji od kombinacionih
mrea KMOPR i KMADR sa multiplekserom MP i razreda CW56..63 prihvatnog registra
mikroinstrukcije CW0...63 i slui za generisanje i selekciju vrednosti koju treba upisati u
mikroprogramski broja mPC7...0. Potreba za ovim se javlja kada treba odstupiti od
sekvencijalnog izvravanja mikroprograma. Kombinacionom mreom KMOPR generiu se
vrednosti (tabela sa slike 61) za realizaciju viestrukog uslovnog skoka u koraku step31
sekvence upravljakih signala po koracima. U zavisnosti od toga koji od signala LD, , RTS
ima vrednost 1 zavisi koja e od vrednosti iz tabele sa slike 61 da se pojavi tada na linijama
op7...0. Kombinacionom mreom KMADR generiu se vrednosti (tabela sa slike 60) za
realizaciju viestrukog uslovnog skoka u koraku step15 sekvence upravljakih signala po
koracima. U zavisnosti od toga koji od signala regdir,..., imm ima vrednost 1 zavisi koja e
od vrednosti iz tabele sa slike 60 da se pojavi tada na linijama adr7...0. Razredi CW56...63
prihvatnog registra mikroinstrukcije CW0...63 sadre vrednost za upis u mikroprogramski
broja mPC7...0 za bezuslovne skokove (tabela sa slike 58) i uslovne skokove (tabela sa slike
59) u sekvenci upravljakih signala po koracima.
Blok mikroprogramski broja sadri mikroprogramski broja mPC7...0. Mikroprogramski
broja mPC7...0 svojom trenutnom vrednou odreuje adresu mikroprogramske memorije
mMEM sa koje treba oitati mikroinstrukciju. Mikroprogramski broja mPC7...0 moe da radi
u sledeim reimima: reim inkrementiranja i reim skoka. U reimu inkrementiranja pri
pojavi signala takta CLKmPC vri se uveavanje sadraja mikroprogramskog brojaa mPC7...0
za jedan ime se obezbeuje sekvencijalno oitavanje mikroinstrukcija iz mikroprogramske
memorije. Ovaj reim rada se obezbeuje vrednou 1 signala inc. U reimu skoka pri pojavi
signala takta CLKmPC vri se upis nove vrednosti u mikroprogramski broja mPC7...0 ime se
obezbeuje odstupanje od sekvencijalnog oitavanja mikroinstrukcija iz mikroprogramske
memorije. Ovaj reim rada se obezbeuje vrednou 1 signala ld.
Blok mikroprogramski memorija sadri mikroprogramsku memoriju mMEM, koja slui za
smetanje mikroprograma. Adresiranje mikroprogramske memorije se realizuje sadrajem
mikroprogramskog brojaa mPC7...0.
Blok prihvatni registar mikroinstrukcije sadri prihvatni registar mikroinstrukcije CW0...63.
Prihvatni registar mikroinstrukcije CW0...63 slui za prihvatanje mikroinstrukcije oitane iz
mikroprogramske memorije mMEM. Na osnovu sadraja ovog registra generiu se
upravljaki signali. Razredi CW0...51 i CW5255 se koriste u bloku generisanje upravljakih
signala za generisanje upravljakih signala operacione jedinice i upravljake jedinice,
72

respektivno, dok se razredi CW56...63 koriste u bloku generisanje nove vrednosti


mikroprogramskog brojaa kao adresa skoka u mikrorogramu u sluaju bezuslovnih i
uslovnih skokova.
signali logikih uslova

144424443

144424443
imm

LD
ST

RTS

regdir
regind

signali logikih uslova

...

KMOPR

KMADR

32 33

4F

16 17

144424443
opr7...0
8
3

8
2

generisanje
nove
vrednosti
mikroprogramskog
brojaa

...

MP

30

144424443
adr7..0
CW56..63

8
1

0 S
0

bradr
bropr

S1

CLKmPC

mPC7...0

bradr
bropr
bruncnd
brcnd

ld
INC inc
LD

mPC

CLK

mikroprogramski
broja

mikroprogramska
memorija

mMEM

WR

64

...

51

52

...

55

56

...

63

CLKCW

prihvatni
registar
mikroinstrukcije

LD

CW63
CW0 CW51CW123
CW55CW123
56
52
123
4
52
8
...

...

signali logikih uslova

144424443

...

generisanje
upravljakih
signala
operacione
jedinice

l3_arlogpr

OBI
generisanje
upravljakih
signala
upravljake
jedinice

l1
l2_brn

l2_arlogpr

STJADR
regdir
PSWZ

l3_jmp

PREKID

144424443
signali logikih uslova

CLK

CW

brcnd

bruncnd

bropr

bradr

...

BRUout2

IB2_3

PCout2

...
generisanje
upravljakih
signala

Slika 63 Struktura upravljake jedinice


Blok generisanje upravljakih signala sadri kombinacione mree koje na osnovu sadraja
razreda CW0...51 prihvatnog registra mikroinstrukcije generiu upravljake signale operacione
jedinice i na osnovu sadraja razreda CW52.55 prihvatnog registra mikroinstrukcije i signala

73

logikih uslova OBI, l1, ..., PREKID koji dolaze iz operacione jedinice generiu upravljake
signale upravljake jedinice.
Upravljaki signali operacione jedinice se generiu na sledei nain:
ldMAR = CW2
incPC = CW3
Bout1 = CW15
Na identian nain se generiu i preostali upravljaki signali operacione jedinice.
Upravljaki signali upravljake jedinice se generiu na sledei nain:
bradr = CW52 CW53 CW54 CW55
bropr = CW52 CW53 CW54 CW55
bruncnd = CW52 CW53 CW54 CW55
brcnd = brOBIOBI+brl1l1+brl2_brn l2_brn+brl2_arlogprl2_arlogpr+
brl3_jmpl3_jmp+brl3_arlogprl3_arlogpr+brSTJADRSTJADR+
brregdirregdir+brnotPSWZ PSWZ +brnotPREKID PREKID
brOBI = CW52 CW53 CW54 CW55
brl1 = CW52 CW53 CW54 CW55
brl2_brn = CW52 CW53 CW54 CW55
brl2_arlogpr = CW52 CW53 CW54 CW55
brl3_jmp = CW52 CW53 CW54 CW55
brl3_arlogpr = CW52 CW53 CW54 CW55
brSTJADR = CW52 CW53 CW54 CW55
brregdir = CW52 CW53 CW54 CW55
brnotPSWZ = CW52 CW53 CW54 CW55
brnotPREKID = CW52 CW53 CW54 CW55
Pri generisanju signala brcnd koristi se sledei signali logikih uslova koji dolaze iz
operacione jedinice i to: OBI, l1, l2_brn, l2_arlogpr, l3_jmp, l3_arlogpr, STJADR, regdir,
PSWZ i PREKID .

74

1.5 ZADATAK
Posmatra se deo raunara koji ine memorija i procesor.
Memorija je kapaciteta 216 bajtova. irina memorijske rei je 1 bajt.
U procesoru od programski dostupnih registara postoji registar programskog brojaa PC
duine dva bajta, registri opte namene R[0] do R[7] duine dva bajta, programska statusna
re PSW duine jedan bajt koja sadri samo indikator Z, ukaziva na vrh steka SP duine 2
bajta i ukaziva na tabelu sa adresama prekidnih rutina IVTP duine 2 bajta.
Podaci su celobrojne veliine bez znaka duine dva bajta. Podaci u memoriji zauzimaju
dve susedne memorijske lokacije, pri emu se stariji bajt nalazi na nioj lokaciji a mlai bajt
na vioj lokaciji.
Procesor je sa dvoadresnim formatom instrukcija. Prvi izvorini operand je dat sadrajem
jednog od registara opte namene koji predstavlja i odredite, dok je drugi izvorini operand
dat adresnim delom instrukcije. Instrukcije su promenljive duine i to jedan, dva, tri ili etiri
bajta. Bitovi prvog bajta su oznaeni sa 31 do 24, drugogo bajta sa 23 do 16, treeg bajta sa 15
do 8 i etvrtog bajta sa 7 do 0. Struktura instrukcija je definisana na nain dat u daljem tekstu.
Bit 7 prvog bajta instrukcije ima vrednost 0 za instrukcije skoka, pri emu bit 6 prvog bajta
instrukcije ima vrednost 0 za instrukcija uslovnog skoka i 1 za instrukcije bezuslovnog skoka.
Instrukcija uslovnog skoka je instrukcija uslovnog skoka ukoliko je rezultat nula (BZ).
Bitovima 5 do 0 prvog bajta instrukcije specificira kod operacije za instrukcije uslovnog
skoka. Na osnovu toga je za instrukciju BZ usvojen kod operacije 00000000. Instrukcija BZ
se realizuje kao relativni skok u odnosu na tekuu vrednost programskog brojaa PC, a
pomeraj je 8 bitna celobrojna veliina sa znakom data drugim bajtom instrukcije. Duina
instrukcije je dva bajta. Instrukcije bezuslovnog skoka su instrukcija bezuslovnog skoka
(JMP) i instrukcija skoka na potprogram (JSR). Bitovima 5 do 0 prvog bajta instrukcije se
specificira kod operacije za instrukcije bezuslovnog skoka. Na osnovu toga su za instrukcije
JMP i JSR usvojeni kodovi operacija 01000000 i 01000001, respektivno. Instrukcije JMP i
JSR se realizuju kao apsolutni skokovi, a adresa skoka je data drugim i treim bajtom
instrukcije, pri emu je stariji bajt adrese skoka dat drugim bajtom instrukcije a mlai bajt
adrese skoka treim bajtom instrukcije. Duina instrukcija je tri bajta.
Bit 7 prvog bajta instrukcije ima vrednost 1 za bezadresne i adresne instrukcije, pri emu
bit 6 prvog bajta instrukcije ima vrednost 0 za bezadresne instrukcije i 1 za adresne
instrukcije. Bezadresne instrukcije su instrukcija povratka iz potprograma (RTS) i instrukcija
povratka iz prekidne rutine (RTI). Bitovima 5 do 0 prvog bajta instrukcije specificira se kod
operacije za bezadresne instrukcije. Na osnovu toga su za instrukcije RTS i RTI usvojeni
kodovi operacija 10000000 i 10000001, respektivno. Duina instrukcija je jedan bajt. Adresne
instrukcije su instrukcija prenosa u prvi registar (LD), instrukcija prenosa iz prvog registra
(ST), aritmetika instrukcija sabiranja (ADD), logika instrukcija logiki proizvod (AND),
instrukcija bezuslovnog skoka na sraunatu adresu (JADR) i instrukcija aritmetikog
pomeranja udesno za jedno mesto drugog operanda i prenosa u prvi registar (ASR). Bitovima
5 do 0 prvog bajta instrukcija specificira se kod operacije za adresne instrukcije. Na osnovu
toga su za instrukcije LD, ST, ADD, AND, JADR i ASR usvojeni kodovi operacija 11000000,
11000001, 11000010, 11000011, 11000100 i11000101, respektivno. Duina instrukcija je dva,
tri ili etiri bajta i zavisi od specificiranog naina adresiranja.
Za adresne instrukcije se bitovima 7, 6 i 5 drugog bajta instrukcije specificira prvi registar,
dok se bitovima 4 do 0 specificira adresni deo instrukcije. Bitovima 4 i 3 se specificira nain
adresiranja i to na sledei nain: 00-registarsko direktno adresiranje (regdir), 01-memorijsko
indirektno adresiranje (memind), 10-registarsko indirektno sa pomerajem adresiranje

75

(regindpom) i 11-neposredno adresiranje (imm). U sluaju registarskog direktnog adresiranja


koristi se neki od registara opte namene R[0] i R[7] specificiran bitovima 2 do 0 drugog bajta
instrukcije. Duina instrukcija je dva bajta. U sluaju ostalih adresiranja postoji trei ili trei i
etvrti bajt instrukcije. Kod memorijskog indirektnog adresiranja trei i etvrti bajt instrukcije
sadre adresu memorijske lokacije, pri emu je stariji bajt adrese dat treim bajtom a mlai
bajt adrese etvrtim bajtom. Kod memorijskog indirektnog adresiranja adresa duine 16 bita
zauzima dve susedne memorijske lokacije, pri emu je stariji bajt adrese nalazi na nioj a
mlai bajt adrese na vioj lokaciji. Bitovi 2 do 0 drugog bajta instrukcije se ne koriste. Duina
instrukcija je etiri bajta. Kod registarskog indirektnog sa pomerajem adresiranja trei bajt
instrukcije sadri 8 bitni pomeraj koji je dat kao celobrojna veliina sa znakom. Jedan od
registara opte namene R[0] do R[7] koji se koristi specificiran je bitovima 2 do 0 drugog
bajta instrukcije. Duina instrukcija je tri bajta. Kod neposrednog adresiranja trei i etvrti
bajt instrukcije sadre 16 bitni podatak, pri emu je stariji bajt podatka dat treim bajtom a
mlai bajt podatka etvrtim bajtom. Bitovi 2 do 0 drugog bajta instrukcije se ne koriste.
Duina instrukcija je etiri bajta.
Nema provere na greku koda operacije i naina adresiranja i nema odgovarajuih
unutranjih prekida. Od prekida jedino postoje spoljanji prekidi koji dolaze od
ulazno/izlaznih ureaja. Broj linije najvieg prioriteta po kojoj je stigao zahtev za prekid
nalazi se u binarnom obliku u registru BRU i predstavlja broja ulaza u tabelu sa adresama
prekidnih rutina. Adrese su duine 16 bita zauzimaju po dve susedne memorijske lokacije, pri
emu se stariji bajt adrese nalazi na nioj lokaciji a mlai bajt adrese na vioj lokaciji. Poetna
adresa tabele sa adresama prekidnih rutina se nalazi u registru IVTP. U okviru hardverskog
dela opsluivanja zahteva za prekid na stek sa stavljaju samo registri PC i PSW.
Stek raste prema niim memorijskim lokacijama, a registar SP ukazuje na prvu slobodnu
memorijsku lokaciju.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa direktnim vezama.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
horizontalnim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i
horizontalnim kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje
upravljakih signala i to za upravljake signale operacione jedinice ldMAR, incPC i RD, i sve
upravljake signale upravljake jedinice kojima se upravlja mikroprogramskim brojaem.

76

REENjE
a) U procesoru se koriste sledei formati instrukcija:
1. Bezadresne instrukcije (RTS, RTI)
31 30 29 28 27 26 25 24

10

OC

Slika 64 Bezadresne instrukcije


Poljem OC se specificira kod operacije koja se izvrava.
2. Instrukcije uslovnog skoka (BZ)
31 30 29 28 27 26 25 24

00

23 22 21 20 19 18 17 16

OC

BP

Slika 65 Instrukcije uslovnog skoka


Poljem OC se specificira kod operacije koja se izvrava, a poljem BP 8-mo bitni pomeraj
kao celobrojna veliina sa znakom koji se sabira sa PC da bi se dobila adresa skoka.
3. Instrukcije bezuslovnog skoka (JMP, JSR)
31 30 29 28 27 26 25 24

01

23 22 21 20 19 18 17 16

15 14 13 12 11 10 9 8

JAH

JAL

OC

Slika 66 Instrukcije bezuslovnog skoka

Poljem OC se specificira kod operacije koja se izvrava, a poljima JAH i JAL 8 starijih i 8
mlaih bitova 16-to bitne adrese skoka.
4. Adresne instrukcije (LD, ST, ADD, AND, ASR) sa regdir
31 30 29 28 27 26 25 24

10

OC

23 22 21 20 19 18 17 16

R1 A M R2

Slika 67 Adresne instrukcije sa regdir


Poljem OC se specificira kod operacije dvoadresne instrukcije, poljem R1 jedan od 8
registara opte namene R[0] do R[7], poljem AM registarsko direktno adresiranje i poljem R2
jedan od 8 registara opte namene R[0] do R[7].
Napomena: Pretpostavlja sa da se u instrukciji JADR ne koristi registarsko direktno
adresiranje.
Adresne instrukcije (LD, ST, ADD, AND, ASR) sa regindpom
31 30 29 28 27 26 25 24

11

OC

23 22 21 20 19 18 17 16

15 14 13 12 11 10 9 8

R1 A M R2

AP

Slika 68 Adresne instrukcije sa regindpom


Poljem OC se specificira kod operacije dvoadresne instrukcije, poljem R1 jedan od 8
registara opte namene R[0] do R[7], poljem AM registarsko indirektno sa pomerajem
adresiranje, poljem R2 jedan od 8 registara opte namene R[0] do R[7] i poljem AP 8-mo bitni
pomeraj kao celobrojna veliina sa znakom.
Adresne instrukcije (JADR) sa regindpom
31 30 29 28 27 26 25 24

11

OC

23 22 21 20 19 18 17 16

A M R2

15 14 13 12 11 10 9 8

AP

Slika 69 Adresne instrukcije sa regindpom


77

Poljem OC se specificira kod operacije jednoadresne instrukcije, poljem AM registarsko


indirektno sa pomerajem adresiranje, poljem R2 jedan od 8 registara opte namene R[0] do
R[7] i poljem AP 8-mo bitni pomeraj kao celobrojna veliina sa znakom.
Adresne instrukcije (LD, ADD, AND, ASR) sa immed
31 30 29 28 27 26 25 24

11

OC

23 22 21 20 19 18 17 16

R1 A M

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

IMH

IML

Slika 70 Adresne instrukcije sa immed


Poljem OC se specificira kod operacije dvoadresne instrukcije, poljem R1 jedan od 8
registara opte namene R[0] do R[7], poljem AM neposredno adresiranje i poljima IMH i IML
8 starijih i 8 mlaih bitova 16-bitne neposredne veliine.
Napomena: Pretpostavlja sa da se u instrukcijama ST i JADR ne koristi neposredno
adresiranje.
Adresne instrukcije (LD, ST, ADD, AND, ASR) sa memind
31 30 29 28 27 26 25 24

11

OC

23 22 21 20 19 18 17 16

R1 A M

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

ADH

ADL

Slika 71 Adresne instrukcije sa memind


Poljem OC se specificira kod operacije dvoadresne instrukcije, poljem R1 jedan od 8
registara opte namene R[0] do R[7], poljem AM memorijsko indirektno adresiranje i poljima
ADH i ADL 8 starijih i 8 mlaih bitova 16-to bitne adrese.
Adresne instrukcije (JADR) sa memind
31 30 29 28 27 26 25 24

11

OC

23 22 21 20 19 18 17 16

AM

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

ADH

ADL

Slika 72 Adresne instrukcije sa memind


Poljem OC se specificira kod operacije jednoadresne instrukcije, poljem AM memorijsko
indirektno adresiranje i poljima ADH i ADL 8 starijih i 8 mlaih bitova 16-to bitne adrese.
b) Jedna realizacija strukturne eme operacione jedinice sa direktnim vezama je data na
slikama 73 i 74. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.

78

BUS
144444444444444444424444444444444444443

ABUS15...0

RD
WR

RD
WR

DBUS7..0

A15..0

RDBUS

WRBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

MAR15..0
ldMAR
MAR CLK
incMAR INC
0
1
2 0

mxMDR0
mxMDR1
mxMDR2

PC15..0
IR15..0
D15..0

OBI

MDR CLK

LD

ldMDR

mxMAR
1

OBI

MDR7..0

LD

mxMAR0
mxMAR1
mxMAR2

FCBUS

0
1
2 0

mxMDR
1

A15..8
A7..0
PC7..0

SP15..0
ALU15..0

PSW7..0
PC15..8

PC15..0
incPC INC
ldPC LD

PC CLK

mxPC0 0
mxPC
mxPC1 1 0 1 2 3
IR23..8
D15..0
MAR15..0
ALU15..0

MDR7..0
ldIR1 LD IR1 CLK

INC
DEC

SP

ldIR2

LD

IR31..24
MDR7..0

SP15..0
incSP
decSP

MDR7..0

LD

ldIR3 LD IR3 CLK

CLK

IR15...8

IR2 CLK
IR23..16

MDR7..0
ldIR4 LD IR4 CLK
IR7..0

PSW7..0
ldPSW LD

PSW CLK

mxPSW 0 mxPSW
0

MDR7..0

MDR7..0
ldDH LD

D CLK

MDR7..0
ldDL LD

D CLK

D15...8

formiranje
indikatora

Slika 73 Operaciona jedinica (prvi deo)

79

D7...0

ALU15..0
ALU

A15...0

mxX1 1
mxX
mxX0 0 0 1 2 3
A15..0
PC15..0
R15..0
IVTP15..0

add
and
asr

B15...0

mxY1
mxY0

mxY

B15..0
IR15..15.IR15..8

IR23..23.IR23...16
BRU15..0

A15..0
ldA LD
mxA1
mxA0

1
0

B15..0

A CLK
mxB1
mxB0

mxA
0

ALU15..0
B15...0

R15..0
D15..0

1
0

ldB

mxB
0

R15..0
D15...0

IR23..21 IR18..16
0

LD
CLK

IR15..0

CLK
IVTP
LD

mxRA 0 mxRA

A15..0

IVTP15..0

DI15...0
A2...0

formiranje BRU
WR

wrR
CLK
LD

DO15...0

BRU

R15..0

IL
SL

0
slBRU

BRU15..0

Slika 74 Operaciona jedinica (drugi deo)


b) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, generiu se
prema izrazima datim na slikama 11, 12 i 13, respektivno.
RTS = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
RTI = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
LD = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
ST = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
ADD = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
AND = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
JADR = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
ASR = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
BZ = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
JMP = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
JSR = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
STJADR = ST+JADR
Slika 75 Signali operacija
regdir = IR 20 IR 19

80

memind = IR 20 IR 19
regindpom = IR 20 IR 19
imm = IR 20 IR 19
Slika 76 Signali adresiranja
l1 = RTS + RTI
l2_brn= BZ
l2_arlogshpr = (LD+ST+ADD+AND+ASR)regdir
l3_jmp= JMP+JSR
l3_arlogshpr =(LD+ST+ADD+AND+ASR+ JADR)regindpom
Slika 77 Signali duina instrukcija
v) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 78.
! itanje instrukcije !
step00 ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 ldIR1;
step04 br (if l1 then step29);
step05 ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 ldIR2, br (if l2_brn then step29);
step09 br (if l2_arlogshpr then step15);
step0A ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D ldIR3, br (if l3_jmp then step29);
step0E br (if l3_arlogshpr then step15);
step0F ldMAR, incPC;
step10 RD;
step11 br (if OBI then step11);
step12 ldIR4, br step15;
! Formiranje adrese i itanje operanda !
step15 br (case (regdir, memind, regindpom, imm)
then
(regdir, step16), (memind, step17), (regindpom, step1F), (imm, step28));
! Registarsko direktno adresiranje !
step16 mxRA, ldB, br step29;
! Memorijsko indirektno adresiranje !
step17 mxMAR1, ldMAR;
step18 RD;
step19 br (if OBI then step19);
step1A ldDH, incMAR;
step1B RD;
step1C br (if OBI then step1C);
step1D ldDL;
step1E mxMAR1, mxMAR0, ldMAR, br step20;
! Registarsko indirektno sa pomerajem adresiranje !
step1F mxRA, mxX0, mxY0, add, mxMAR2, ldMAR;
! itanje operanda za sva memorijska adresiranja !

81

step20 br (if STJADR then step29);


step21 RD;
step22 br (if OBI then step22);
step23 ldDH, incMAR;
step24 RD;
step25 br (if OBI then step25);
step26 ldDL;
step27 mxB0, ldB, br step29;
! Neposredno adresiranje !
step28 mxB1, ldB;
! Izvravanje operacije !
step29 br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step2A), (ST, step2D), (ADD, step36), (AND, step39), (ASR, step3C),
(BZ, step3F), (JMP, step41), (JADR, step42), (JSR, step43),
(RTI, step4A), (RTS, step4F));
! LD !
step2A mxA0 , ldA;
step2B wrR, br step59;
! ST !
step2D mxA1, mxA0 , ldA, br (if regdir then step35);
step2E mxMDR0, ldMDR;
step2F WR;
step30 br (if OBI then step30);
step31 mxMDR1, ldMDR, incMAR;
step32 WR;
step33 br (if OBI then step33);
step34 br step59;
step35 mxRA, wrR, br step59;
! ADD !
step36 mxA1, mxA0 , ldA;
step37 add, ldA;
step38 wrR, br step59;
! AND !
step39 mxA1, mxA0 , ldA;
step3A and, ldA;
step3B wrR, br step59;
! ASR !
step3C mxA0, ldA;
step3D asr, ldA;
step3E wrR, br step59;
! BZ !
step3F br (if PSWZ then step59);
step40 mxX1, mxX0, mxY1, mxY0, add, mxPC1, ldPC, br step59;
! JMP !
step41 ldPC, br step59;
! JADR !
step42 mxPC0, ldPC, br step59;
! JSR !
step43 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR1, mxMDR0, ldMDR;
step44 WR;

82

step45 br (if OBI then step45);


step46 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, ldMDR;
step47 WR;
step48 br (if OBI then step48);
step49 ldPC, br step59;
! RTI !
step4A incSP;
step4B mxMAR2, mxMAR0, ldMAR;
step4C RD;
step4D br (if OBI then step4D);
step4E ldPSW;
! RTS !
step4F incSP;
step50 mxMAR2, mxMAR0, ldMAR;
step51 RD;
step52 br (if OBI then step52);
step53 ldDH, incSP;
step54 mxMAR2, mxMAR0, ldMAR;
step55 RD;
step56 br (if OBI then step56);
step57 ldDL;
step58 ldPC, mxPC0, mxPC1;
! Opsluivanje prekida !
step59 br (if PREKID then step00);
step5A mxMAR2, mxMAR0, ldMAR, decSP, mxMDR0, mxMDR1, ldMDR;
step5B WR;
step5C br (if OBI then step5C);
step5D mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, ldMDR;
step5E WR;
step5F br (if OBI then step5F);
step60 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, mxMDR0, ldMDR;
step61 WR;
step62 br (if OBI then step62);
step63 slBRU;
step64 mxX1, mxY1, add, mxMAR2, ldMAR;
step65 RD;
step66 br (if OBI then step66);
step67 ldDH, incMAR;
step68 RD;
step69 br (if OBI then step69);
step6A ldDL;
step6B mxPC1, mxPC0, ldPC, br step00;

Slika 78 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
g) Mikroprogram za upravljaku jedinicu mikroprogramske realizacije i horizontalnim
kodiranjem upravljakih signala operacione jedinice (slika 88) se formira istim postupkom
kao i u zadatku 1.4, tako to se svakom koraku iz sekvence upravljakih signala pokoracima
(slika 78) pridrui mikroinstrukcija (slika 79).

83

cc

ba

01444444444442444444444443
...
43 44
... 47 48
...
55
14243 144424443

signali

uslov

adresa skoka

1444444444442444444444443

1444442444443

operacioni deo

upravljaki deo

Slika 79 Format mikroinstrukcije


Bitovi 0 do 43 pripadaju polju h0...43 mikroinstrukcije i dodeljeni su upravljakim signalima
operacione jedinice ldMAR, incPC, ..., mxPSW (slika 80).
h0...51
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

signal
ldMAR
incPC
RD
ldIR1
ldIR2
ldIR3
ldIR4
mxRA
ldB
mxMAR1
ldDH
ldDL
incMAR
mxMAR0
mxX0
mxY0

h0...51
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

signal
add
mxMAR2
mxB0
mxB1
mxA0
ldA
wrR
mxA1
mxMDR0
ldMDR
WR
mxMDR1
and
asr
mxX1
mxY1

h0...51
32
33
34
35
36
37
38
39
40
41
42
43

signal
mxPC1
ldPC
mxPC0
decSP
mxMDR2
incSP
ldPSW
slBRU
mxPSW
-

Slika 80 Bitovi polja h i upravljaki signali operacione jedinice


Bitovi 44 do 47 pripadaju polju cc44...47 mikroinstrukcije i koriste se za kodiranje
upravljakih signala upravljake jedinice za korake u kojima se javljaju bezuslovni skok,
uslovni skokovi i viestruki uslovni skokovi. Nain kodiranja signala bezuslovnog skoka
bitovima polja cc44...47 mikroinstrukcije i simbolika oznaka signala bezuslovnog skoka dati su
u tabeli sa slike 81.
cc4447
1

signal bezuslovnog skoka


bruncnd

Slika 81 Signal bezuslovnog skoka


Nain kodiranja signala uslovnih skokova bitovima polja cc44...47 mikroinstrukcije, simbolike
oznake signala uslovnih skokova koje za svaki od njih treba generisati i signal uslova koji
treba da ima vrednost 1 da bi se realizovao skok dati su u tabeli sa slike 82.
cc4447
2
3
4
5
6

signal uslovnog
signal uslova
skoka
brOBI
OBI
brl1
l1
brl2_brn
l2_brn

cc4447
7
8
9
A

brl2_arlogshpr l2_arlogshpr
brl3_jmp
l3_jmp

signal uslovnog
signal
skoka
uslova
brl3_arlog
l3_arlogshpr
brSTJADR
STJADR
brregdir
regdir
brnotPSWZ
brnotPREKID

PSWZ
PREKID

Slika 82 Signali uslovnih skokova


Nain kodiranja signala viestrukih uslovnih skokova bitovima polja cc44...47 mikroinstrukcije,
koraci u sekvenci upravljakih signala po koracima u kojima se pojavljuju iskazi ovog tipa i
simbolike oznake signala viestrukih uslovnih skokova dati su u tabeli sa slike 83.

84

cc4447
C
D

stepi
step15
step29

signal
bradr
bropr

Slika 83 Signali viestrukih uslovnih skokova


Bitovi 48 do 55 pripadaju polju ba48...55 mikroinstrukcije i koriste se za specificiranje
adrese mikroinstrukcije na koju treba skoiti kod uslovnih i bezuslovnih skokova u sekvenci
upravljakih signala po koracima (slika 78).
Kod formiranja mikroinstrukcije polazi se od sekvence upravljakih signala po koracima i
bitovi polja h0...43 koji odgovaraju upravljakim signalima operacione jedinice koji se javljaju
u datom koraku postavljaju na 1, dok se bitovi polja h0...43 koji odgovaraju upravljakim
signalima operacione jedinice koji se ne javljaju u datom koraku postavljaju na 0. Bitovi polja
cc44...47 i ba4855 se u koracima u kojima se javlja neki od iskaza br stepA, br (if uslov then
stepA) i br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) kodiraju u
saglasnosti sa tim koji se od ova tri iskaza javlja u datom koraku, dok se u suprotnom sluaju
postavljaju na nule.
Za iskaz br stepA se za polje cc44...47 uzima kod dodeljen signalu bezuslovnog skoka (slika
81). Koraci stepi u kojima se bezuslovni skokovi javljaju, koraci stepA na koje se bezuslovno
skae i sama vrednost A, koju treba upisati u mikroprogramski broja, za sve korake u
sekvenci upravljakih signala po koracima u kojima se javljaju iskazi ovog tipa, dati su u
tabeli sa slike 84.
stepi
step12
step16
step1E
step27
step2B

stepA
step15
step29
step20
step29
step59

A
15
29
20
29
59

stepi
step34
step38
step3B
step3E
step3F

stepA
step59
step59
step59
step59
step59

A
59
59
59
59
59

stepi
step40
step41
step42
step49
step6B

stepA
step59
step59
step59
step59
step00

A
59
59
59
59
00

Slika 84 Koraci stepi, stepA i vrednosti A za bezuslovne skokove


Za iskaz br (if uslov then stepA) se za polje cc44...47 uzima kod dodeljen signalu uslovnog
skoka (slika 82). Koraci stepi u kojima se uslovni skokovi javljaju, signali uslova uslov,
koraci stepA na koje se uslovno skae i vrednosti A koju treba upisati u mikroprogramski
broja u sluaju da signal uslov ima vrednost 1, za sve korake u sekvenci upravljakih signala
po koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli sa slike 85.
stepi
uslov
stepA
step02
step02
OBI
step04
step31
l1
step07
step07
OBI
step08
step31
l2_brn
step09 l2_arlogshpr step15
step0C
step0C
OBI
step0D
step31
l3_jmp
step0E l3_arlogshpr step15
step11
step11
OBI
step19
step19
OBI
step1C
step1C
OBI
step20
step29
STJADR
step22
step22
OBI
step25
step25
OBI

A
02
31
07
31
15
0C
31
15
11
19
1C
29
22
25

stepi
step30
step33
step3F
step45
step48
step4D
step52
step56
step59
step5C
step5F
step62
step66
step69

85

uslov
OBI
OBI
PSWZ
OBI
OBI
OBI
OBI
OBI
PREKID

OBI
OBI
OBI
OBI
OBI

stepA
step30
step33
step59
step45
step48
step4D
step52
step56
step00
step5C
step5F
step62
step66
step69

A
30
33
59
45
48
4D
52
56
00
5C
5F
62
66
69

step2D

regdir

step35

35

Slika 85 Koraci stepi, uslovi uslov, koraci stepA i vrednosti A za uslovne skokove
Za iskaz br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) se za polje
cc44...47 uzima kod dodeljen signalu viestrukog uslovnog skoka (slika 83). Vrednosti A1,...,
An koje treba upisati u mikroprogramski broja i signali uslova uslov1, ..., uslovn za koje
treba izvriti proveru koji od njih ima vrednost 1 da bi se na osnovu toga realizovao prelaz na
jedan od koraka stepA1, ..., stepAn za dva iskaza ovog tipa koji se javljaju u sekvenci
upravljakih signala po koracima dati su u tabelama sa slika 86 i 87.
uslov
regdir
memind
regindpom
imm

stepA
step16
step17
step27
step28

A
16
17
27
28

Slika 86 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step15
uslov
LD
ST
ADD
AND

stepA
step2A
step2D
step36
step39

A
2A
2D
36
39

uslov
ASR
BZ
JMP
JADR

stepA
step3C
step3F
step41
step42

A
3C
3F
41
42

uslov
JSR
RTI
RTS

Slika 87 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step31
! itanje instrukcije !
madr00 ldMAR, incPC;
madr01 RD;
madr02 brOBI, madr02;
madr03 ldIR1;
madr04 brl1, madr29;
madr05 ldMAR, incPC;
madr06 RD;
madr07 brOBI, madr07;
madr08 ldIR2, brl2_brn, madr29;
madr09 brl2_arlogshpr, madr15;
madr0A ldMAR, incPC;
madr0B RD;
madr0C brOBI, madr0C;
madr0D ldIR3, brl3_jmp, madr29;
madr0E brl3_arlogshpr, madr15;
madr0F ldMAR, incPC;
madr10 RD;
madr11 brOBI, madr11;
madr12 ldIR4, bruncnd, madr15;
! Formiranje adrese i itanje operanda !
madr15 bradr;
! Registarsko direktno adresiranje !
madr16 mxRA, ldB, bruncnd, madr29;
! Memorijsko indirektno adresiranje !
madr17 mxMAR1, ldMAR;
madr18 RD;
madr19 brOBI, madr19;
86

stepA
step43
step4A
step4F

A
43
4A
4F

madr1A ldDH, incMAR;


madr1B RD;
madr1C brOBI, madr1C;
madr1D ldDL;
madr1E mxMAR1, mxMAR0, ldMAR, bruncnd, madr20;
! Registarsko indirektno sa pomerajem adresiranje !
madr1F mxRA, mxX0, mxY0, add, mxMAR2,ldMAR;
! itanje operanda za sva memorijska adresiranja !
madr20 brSTJADR, madr29;
madr21 RD;
madr22 brOBI, madr22;
madr23 ldDH, incMAR;
madr24 RD;
madr25 brOBI, madr25;
madr26 ldDL;
madr27 mxB0, ldB, bruncnd, madr29;
! Neposredno adresiranje !
madr28 mxB1, ldB;
! Izvravanje operacije !
madr29 bropr;
! LD !
madr2A mxA0 , ldA;
madr2B wrR, bruncnd, madr59;
! ST !
madr2D mxA1, mxA0 , ldA, brregdir, madr35;
madr2E mxMDR0, ldMDR;
madr2F WR;
madr30 brOBI, madr30;
madr31 mxMDR1, ldMDR, incMAR;
madr32 WR;
madr33 brOBI, madr33;
madr34 br madr59;
madr35 mxRA, wrR, bruncnd, madr59;
! ADD !
madr36 mxA1, mxA0 , ldA;
madr37 add, ldA;
madr38 wrR, bruncnd, madr59;
! AND !
madr39 mxA1, mxA0 , ldA;
madr3A and, ldA;
madr3B wrR, bruncnd, madr59;
! ASR !
madr3C mxA0, ldA;
madr3D asr, ldA;
madr3E wrR, bruncnd, madr59;
! BZ !
madr3F brnotPSWZ, madr59;
madr40 mxX1, mxX0, mxY1, mxY0, add, mxPC1, ldPC, bruncnd, madr59;
! JMP !
madr41 ldPC, bruncnd, madr59;
! JADR !
madr42 mxPC0, ldPC, bruncnd, madr59;
! JSR !

87

madr43 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR1, mxMDR0, ldMDR;


madr44 WR;
madr45 brOBI, madr45;
madr46 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, ldMDR;
madr47 WR;
madr48 brOBI, madr48;
madr49 ldPC, bruncnd, madr59;
! RTI !
madr4A incSP;
madr4B mxMAR2, mxMAR0, ldMAR;
madr4C RD;
madr4D brOBI, madr4D;
madr4E ldPSW;
! RTS !
madr4F incSP;
madr50 mxMAR2, mxMAR0, ldMAR;
madr51 RD;
madr52 brOBI, madr52;
madr53 ldDH, incSP;
madr54 mxMAR2, mxMAR0, ldMAR;
madr55 RD;
madr56 brOBI, madr56;
madr57 ldDL;
madr58 ldPC, mxPC0, mxPC1;
! Opsluivanje prekida !
madr59 brnotPREKID, madr00;
madr5A mxMAR2, mxMAR0, ldMAR, decSP, mxMDR0, mxMDR1, ldMDR;
madr5B WR;
madr5C brOBI, madr5C;
madr5D mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, ldMDR;
madr5E WR;
madr5F brOBI, madr5F;
madr60 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, mxMDR0, ldMDR;
madr61 WR;
madr62 brOBI, madr62;
madr63 slBRU;
madr64 mxX1, mxY1, add, mxMAR2, ldMAR;
madr65 RD;
madr66 brOBI, madr66;
madr67 ldDH, incMAR;
madr68 RD;
madr69 brOBI, madr69;
madr6A ldDL;
madr6B mxPC1, mxPC0, ldPC, bruncnd, madr00;

Slika 88 Mikroprogram za upravljaku jedinicu mikroprogramske realizacije sa horizontalnim


kodiranjem signala i jednim tipom mikroinstrukcija
d) Upravljaka jedinica mikroprogramske realizacije sa horizontalnim kodiranjem signala i
jednim tipom mikroinstrukcija (slika 89) ima istu strukturu i isti nain generisanja
upravljakih signala operacione i upravljake jedinice kao i upravljaka jedinica iz zadataka
1.4.

88

signali logikih uslova

144424443

144424443
imm

LD
ST

RTS

regdir
regind

signali logikih uslova

...

KMOPR

KMADR

2A 2C

4F

16 17

144424443
opr7...0
8
3

generisanje
nove
vrednosti
mikroprogramskog
brojaa

...

8
2

28

144424443
adr7..0
CW48..55

8
1

0 S
0

MP

bradr
bropr

S1

CLKmPC

mPC7...0

bradr
bropr
bruncnd
brcnd

ld
INC inc
LD

mPC

CLK

mikroprogramski
broja

mikroprogramska
memorija

mMEM

WR

56
CLK

...

43

44

...

47

...

48

55

CLKCW

prihvatni
registar
mikroinstrukcije

LD

CW55
CW0 CW43CW123
CW47CW123
48
44
123
4
44
8
...

...

signali logikih uslova

144424443

...

generisanje
upravljakih
signala
operacione
jedinice

OBI

l3_arlogshpr
generisanje
upravljakih
signala
upravljake
jedinice

l1
l2_brn

l2_arlogshpr

STJADR
regdir
PSWZ

l3_jmp

PREKID

144424443
signali logikih uslova

CW

brcnd

bruncnd

bropr

bradr

...

slBRU

incPC

ldMAR

...
generisanje
upravljakih
signala

Slika 89 Struktura upravljake jedinice


Upravljaki signali operacione jedinice se generiu na sledei nain:
ldMAR = CW0
incPC = CW1
RD = CW2
Na identian nain se generiu i preostali upravljaki signali operacione jedinice.
Upravljaki signali upravljake jedinice se generiu na sledei nain:
bradr = CW44 CW45 CW46 CW47
89

bropr = CW44 CW45 CW46 CW47


bruncnd = CW44 CW45 CW46 CW47
brcnd = brOBIOBI+brl1l1+brl2_brnl2_brn+brl2_arlogshprl2_arlogshpr+
brl3_jmpl3_jmp+brl3_arlogshprl3_arlogshpr+brSTJADRSTJADR+
brregdirregdir+brnotPSWZ PSWZ +brnotPREKID PREKID
brOBI = CW44 CW45 CW46 CW47
brl1 = CW44 CW45 CW46 CW47
brl2_brn = CW44 CW45 CW46 CW47
brl2_arlogshpr = CW44 CW45 CW46 CW47
brl3_jmp = CW44 CW45 CW46 CW47
brl3_arlogshpr = CW44 CW45 CW46 CW47
brSTJADR = CW44 CW45 CW46 CW47
brregdir = CW44 CW45 CW46 CW47
brnotPSWZ = CW44 CW45 CW46 CW47
brnotPREKID = CW44 CW45 CW46 CW47
Pri generisanju signala brcnd koristi se sledei signali logikih uslova koji dolaze iz
operacione jedinice i to: OBI, l1, l2_brn, l2_arlogshpr, l3_jmp, l3_arlogshpr, STJADR,
regdir, PSWZ i PREKID .

90

1.6 ZADATAK
Posmatra se deo raunara iz zadatka 1.5.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa jednom internom magistralom.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati sekvencu upravljakih signala po koracima za upravljaku jedinicu oiene
realizacije.
) Nacrtati strukturnu emu upravljake jedinice oiene realizacije i dati izraze za
generisanje upravljakih signala i to za upravljake signale operacione jedinice PCout,
ldMAR i BRUout, sve upravljake signale upravljake jedinice kojima se upravlja brojaem
koraka i tri signala kojima se odreuje vrednost koja treba da se upie u broja koraka.
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.5.
b) Jedna realizacija strukturne eme operacione jedinice sa jednom internom magistralom
je data na slikama 90 i 91. Operaciona jedinica sadri sve programski dostupne registre,
odreen broj pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs
sistemske magistrale.

91

BUS
144444444444444444424444444444444444443

ABUS15..0

IB15..0

IB15..0

RD
WR
MARout

RD
WR

DBUS7..0

A15..0

RDBUS

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

OBI

OBI
MDRout

MAR15..0
ldMAR LD
incMAR INC

MAR

MDR7..0

CLK

ldMBR

LD

MDR

CLK

mxMDR 0 mxMDR
0

IB7..0
IB7..0

IB7..0

IB7..0
IB15..0

IB15..0
IB7..0

PC15..8

PCout

incPC INC
ldPC LD

IR31..24

IR23..16

ldIR3 LD IR3 CLK

ldIR4 LD IR4 CLK

PC CLK

IR15...8

SP15..0
incSP
decSP

IR7..0

IB7..0

SPout
INC
DEC

SP

ldDH LD

LD

IB15..0
PSW7..0
PSW CLK

mxPSW 0 mxPSW

IB15..0
IB15..0

IB15..0

formiranje
indikatora

IB15..0

D CLK

ldDL LD

Dout
D15...0
IRBPout
IR23..23.IR23..16
IRJAout
IRAPout
IR15..15.IR15..8

Slika 90 Operaciona jedinica (prvi deo)

92

D CLK
D7...0

D15...8

CLK

PSWout
ldPSW LD

IB7..0

ldIR2 LD IR2 CLK

IB7..0

PC15..0

IB15..0
IB15..0

ldIR1 LD IR1 CLK


PCHout

IR23..8
IRIMADout
IR15..0

ALUout

IB15..0

ALU15..0
A15...0

ldX

LD

ALU

ldY

CLK

add
and
asr

B15...0

LD

CLK

IB15..0
Bout

IB15..0
AHout

IB7..0

A15..8

Aout

IB15..0

B15..0

A15..0
ldA

LD

CLK

IB15..0
IB15..0
IB7..5.2..0
IB7..5

ldR1A

CLK
LD

IB2..0

R1A CLK

LD

R1A2..0
0

LD

ldR2A

R2A CLK

IVTPout

IVTP
IVTP15..0

R2A2..0
DI15...0

mxRA 0 mxRA

A2..0

WR

formiranje BRU

wrR

DO15...0

IB15..0
IB15..0

ldB

LD
CLK

CLK
LD

R15..0

Rout

BRUout

BRU

IL
SL

0
slBRU

BRU15..0

Slika 91 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, su dati pod v) u
reenju zadatka 1.5.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 92.
! itanje instrukcije !
step00 PCout, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout, ldIR1;
step04 br (if l1 then step2B);
step05 PCout, ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 MDRout, ldIR2, ldR1A, ldR2A, br (if l2_brn then step2B);
step09 br (if l2_arlogshpr then step15);
step0A PCout, ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D MDRout, ldIR3, br (if l3_jmp then step2B);
step0E br (if l3_arlogshpr then step15);
step0F PCout, ldMAR, incPC;
step10 RD;
93

step11 br (if OBI then step11);


step12 MDRout, ldIR4, br step15;
! Formiranje adrese i itanje operanda !
step15 br (case (regdir, memind, regindpom, imm)
then
(regdir, step16), (memind, step17), (regindpom, step1F), (imm, step2A));
! Registarsko direktno adresiranje !
step16 mxRA, Rout, ldB, br step2B;
! Memorijsko indirektno adresiranje !
step17 IRIMADout, ldMAR;
step18 RD;
step19 br (if OBI then step19);
step1A MDRout, ldDH, incMAR;
step1B RD;
step1C br (if OBI then step1C);
step1D MDRout, ldDL;
step1E Dout, ldMAR, br step2B;
! Registarsko indirektno sa pomerajem adresiranje !
step1F mxRA, Rout, ldX;
step20 IRAPout, ldY;
step21 add, ALUout, ldMAR;
! itanje operanda za sva memorijska adresiranja !
step22 br (if STJADR then step2B);
step23 RD;
step24 br (if OBI then step24);
step25 MDRout, ldDH, incMAR;
step26 RD;
step27 br (if OBI then step27);
step28 MDRout, ldDL;
step29 Dout, ldB, br step2B;
! Neposredno adresiranje !
step2A IRIMADout, ldB;
! Izvravanje operacije !
step2B br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then (LD, step2C), (ST, step2F), (ADD, step38), (AND, step3D), (ASR, step42),
(BZ, step46), (JMP, step4A), (JADR, step4B), (JSR, step4C),
(RTI, step55), (RTS, step5A));
! LD !
step2C Bout, ldA;
step2D Aout, wrR, br step64;
! ST !
step2F Rout, ldA, br (if regdir then step37);
step30 AHout, mxMDR, ldMDR;
step31 WR;
step32 br (if OBI then step32);
step33 Aout, mxMDR, ldMDR, incMAR;
step34 WR;
step35 br (if OBI then step35);
step36 br step64;
step37 Aout, mxRA, wrR, br step64;
! ADD !
step38 Rout, ldA;
94

step39 Aout, ldX;


step3A Bout, ldY;
step3B add, ALUout, ldA;
step3C Aout, wrR, br step64;
! AND !
step3D Rout, ldA;
step3E Aout, ldX;
step3F Bout, ldY;
step40 and, ALUout, ldA;
step41 Aout, wrR, br step64;
! ASR !
step42 Rout, ldA;
step43 Aout, ldX;
step44 asr, ALUout, ldA;
step45 Aout, wrR, br step64;
! BZ !
step46 br (if PSWZ then step64);
step47 PCout, ldX;
step48 IRBPout, ldY;
step49 add, ALUout, ldPC, br step64;
! JMP !
step4A IRJAout, ldPC, br step64;
! JADR !
step4B MARout, ldPC, br step64;
! JSR !
step4C SPout, ldMAR, decSP;
step4D PCout, mxMDR, ldMDR;
step4E WR;
step4F br (if OBI then step4F);
step50 SPout, ldMAR, decSP;
step51 PCHout, mxMDR, ldMDR;
step52 WR;
step53 br (if OBI then step53);
step54 IRJAout, ldPC, br step64;
! RTI !
step55 incSP;
step56 SPout, ldMAR;
step57 RD;
step58 br (if OBI then step58);
step59 MDRout, ldPSW;
! RTS !
step5A incSP;
step5B SPout, ldMAR;
step5C RD;
step5D br (if OBI then step5D);
step5E MDRout, ldDH, incSP;
step5F SPout, ldMAR;
step60 RD;
step61 br (if OBI then step61);
step62 MDRout, ldDL;
step63 Dout, ldPC;
! Opsluivanje prekida !

95

step64 br (if PREKID then step00);


step65 SPout, ldMAR, decSP;
step66 PCout, mxMDR, ldMDR;
step67 WR;
step68 br (if OBI then step68);
step69 SPout, ldMAR, decSP;
step6A PCHout, mxMDR, ldMDR;
step6B WR;
step6C br (if OBI then step6C);
step6D SPout, ldMAR, decSP;
step6E PSWout, mxMDR, ldMDR;
step6F WR;
step70 br (if OBI then step70);
step71 slBRU;
step72 IVTPout, ldX;
step73 BRUout, ldY;
step74 add, ALUout, ldMAR;
step75 RD;
step76 br (if OBI then step76);
step77 MDRout, ldDH, incMAR;
step78 RD;
step79 br (if OBI then step79);
step7A MDRout, ldDL;
step7B Dout, ldPC, br step00;

Slika 92 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) Sekvenca upravljakih signala za upravljaku jedinicu oiene realizacije (slika 99) se
formira na osnovu sekvence upravljakih signala po koracima (slika 92). Prilikom njenog
formiranja primenjuje se razliiti postupak za upravljake signale operacione jedinice i za
upravljake signale upravljake jedinice.
Za upravljake signale operacione jedinice treba u sekvenci upravljakih signala za
upravljaku jedinicu oiene realizacije staviti iskaze za signale onako kako se javljaju u
sekvenci upravljakih signala po koracima.
Za upravljake signale upravljake jedinice treba u sekvenci upravljakih signala po
koracima traiti iskaze: br stepA, br (if uslov then stepA) i br (case (uslov1, ..., uslovn) then
(uslov1, stepA1), ..., (uslovn, stepAn). Umesto iskaza br stepA treba u sekvenci upravljakih
signala za upravljaku jedinicu oiene realizacije staviti signal bezuslovnog skoka i signal
valA koji odreuje da treba formirati binarnu vrednost A za upis u broja koraka. Simbolika
oznaka signala bezuslovnog skoka je bruncnd. Koraci stepi u kojima se bezuslovni skokovi
javljaju, koraci stepA na koje se bezuslovno skae, simbolike oznake signala valA i vrednosti
A u heksadecimalnom dati su u tabeli na slici 93.

96

stepi
step12
step16
step1E
step29
step2D
step36
step37
step3C

stepA
step15
step2B
step2B
step2B
step64
step64
step64
step64

valA
val15
val2B
val2B
val2B
val64
val64
val64
val64

A
15
2B
2B
2B
64
64
64
64

stepi
step41
step45
step49
step4A
step4B
step54
step7B

stepA
step64
step64
step64
step64
step64
step64
step00

A
64
64
64
64
64
64
00

valA
val64
val64
val64
val64
val64
val64
val00

Slika 93 Koraci stepi, stepA, signali valA i vrednosti A za bezuslovne skokove


Umesto iskaza br (if uslov then stepA) treba u sekvenci upravljakih signala za upravljaku
jedinicu oiene realizacije staviti signal uslovnog skoka i signal valA koji odreuje da treba
formirati binarnu vrednost A za upis u broja koraka u sluaju da signal uslov ima vrednost 1.
Simbolike oznake signala uslovnih skokova i signala uslova za sve iskaze ovog tipa koji se
javljaju u sekvenci upravljakih signala po koracima, dati su u tabeli na slici 94. Koraci stepi u
kojima se uslovni skokovi javljaju, signali uslova uslov, koraci stepA na koje se uslovno
skae, simbolike oznake signala valA i vrednosti A u heksadecimalnom dati su u tabeli na
slici 95.
signal uslovnog skoka
brOBI
brl1
brl2_brn
brl2_arlogshpr
brl3_jmp

signal uslova
OBI
l1
l2_brn
l2_arlogshpr
l3_jmp

signal uslovnog skoka


brl3_arlogshpr
brSTJADR
brregdir
brnotPSWZ
brnotPREKID

signal uslova
l3_arlogshpr
STJADR
regdir
PSWZ
PREKID

Slika 94 Signali uslovnih skokova i signali uslova


stepi
uslov
stepA
step02
step02
OBI
step04
step2B
l1
step07
step07
OBI
step08
step2B
l2_brn
step09 l2_arlogshpr step15
step0C
step0C
OBI
step0D
step2B
l3_jmp
step0E l3_arlogshpr step15
step11
step11
OBI
step19
step19
OBI
step1C
step1C
OBI
step22
step2B
STJADR
step24
step24
OBI
step27
step27
OBI
step2F
step2F
regdir

valA
val02
val2B
val07
val2B
val15
val0C
val2B
val15
val11
val19
val1C
val2B
val24
val27
val2F

A
02
2B
07
2B
15
0C
2B
15
11
19
1C
2B
24
27
2F

stepi
step32
step35
step46
step4F
step53
step58
step5D
step61
step64
step68
step6C
step70
step76
step79

uslov
OBI
OBI
PSWZ
OBI
OBI
OBI
OBI
OBI
PREKID

OBI
OBI
OBI
OBI
OBI

stepA
step32
step35
step64
step4F
step53
step58
step5D
step61
step00
step68
step6C
step70
step76
step79

valA
val32
val35
val64
val4F
val53
val58
val5D
val61
val00
val68
val6C
val70
val76
val79

A
32
35
64
4F
53
58
5D
61
00
68
6C
70
76
79

Slika 95 Koraci stepi, uslovi uslov, koraci stepA,


signali valA i vrednosti A za uslovne skokove
Umesto iskaza br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn) treba u
sekvenci upravljakih signala za upravljaku jedinicu oiene realizacije staviti signal
viestrukog uslovnog skoka. Koraci stepi u kojima se viestruki uslovni skokovi javljaju i
simbolike oznake pridruenih signala viestrukih uslovnih skokova za sve korake ovog tipa
koji se javljaju u sekvenci upravljakih signala po koracima dati su u tabeli na slici 96. Signali
uslova uslov1, uslov2,..., uslovn, koraci stepA1, stepA2, ..., stepAn na koje se uslovno skae i

97

vrednosti A1, A2, ..., An u heksadecimalnom koje treba da se upiu u broja koraka u
zavisnosti od toga koji od signala uslova uslov1, uslov2,..., uslovn ima vrednost 1 za
viestruke uslovne skokove u koracima step15 i step31 dati su tabelama na slikama 97 i 98.
stepi
step15
step2B

signal
bradr
bropr

Slika 96 Koraci sa viestrukim uslovnim skokovima i signali viestrukih uslovnih skokova


uslov
regdir
memind
regindpom
imm

stepA
step16
step17
step1F
step2A

A
16
17
1F
2A

Slika 97 Signali uslova, koraci na koje se skae i vrednosti za upis u broja koraka za
viestruki uslovni skok u koraku step15
uslov
LD
ST
ADD
AND

stepA
step2C
step2F
step38
step3D

A
2C
2F
38
3D

uslov
ASR
BZ
JMP
JADR

stepA
step42
step46
step4A
step4B

A
42
46
4A
4B

uslov
JSR
RTI
RTS

stepA
step4C
step55
step5A

Slika 98 Signali uslova, koraci na koje se skae i vrednosti za upis u broja koraka za
viestruki uslovni skok u koraku step2B
! itanje instrukcije !
T00 PCout, ldMAR, incPC;
T01 RD;
T02 brOBI, val02;
T03 MDRout, ldIR1;
T04 brl1, val2B;
T05 PCout, ldMAR, incPC;
T06 RD;
T07 brOBI, val07;
T08 MDRout, ldIR2, ldR1A, ldR2A, brl2_brn, val2B;
T09 brl2_arlogshpr, val15;
T0A PCout, ldMAR, incPC;
T0B RD;
T0C brOBI, val0C;
T0D MDRout, ldIR3, brl3_jmp, val2B;
T0E brl3_arlogshpr, val15;
T0F PCout, ldMAR, incPC;
T10 RD;
T11 brOBI, val11;
T12 MDRout, ldIR4, bruncnd, val15;
! Formiranje adrese i itanje operanda !
T15 bradr;
! Registarsko direktno adresiranje !
T16 mxRA, Rout, ldB, bruncnd, val2B;
! Memorijsko indirektno adresiranje !
T17 IRIMADout, ldMAR;
T18 RD;
T19 brOBI, val19;
T1A MDRout, ldDH, incMAR;

98

A
4C
55
5A

T1B RD;
T1C brOBI, val1C;
T1D MDRout, ldDL;
T1E Dout, ldMAR, bruncnd, val2B;
! Registarsko indirektno sa pomerajem adresiranje !
T1F mxRA, Rout, ldX;
T20 IRAPout, ldY;
T21 add, ALUout, ldMAR;
! itanje operanda za sva memorijska adresiranja !
T22 brSTJADR, val2B;
T23 RD;
T24 brOBI, val24;
T25 MDRout, ldDH, incMAR;
T26 RD;
T27 brOBI, val27;
T28 MDRout, ldDL;
T29 Dout, ldB, bruncnd, val2B;
! Neposredno adresiranje !
T2A IRIMADout, ldB;
! Izvravanje operacije !
T2B bropr;
! LD !
T2C Bout, ldA;
T2D Aout, wrR, bruncnd, val64;
! ST !
T2F Rout, ldA, brregdir, val37;
T30 AHout, mxMDR, ldMDR;
T31 WR;
T32 brOBI, val32;
T33 Aout, mxMDR, ldMDR, incMAR;
T34 WR;
T35 brOBI, val35;
T36 bruncnd, val64;
T37 Aout, mxRA, wrR, bruncnd, val64;
! ADD !
T38 Rout, ldA;
T39 Aout, ldX;
T3A Bout, ldY;
T3B add, ALUout, ldA;
T3C Aout, wrR, bruncnd, val64;
! AND !
T3D Rout, ldA;
T3E Aout, ldX;
T3F Bout, ldY;
T40 and, ALUout, ldA;
T41 Aout, wrR, bruncnd, val64;
! ASR !
T42 Rout, ldA;
T43 Aout, ldX;
T44 asr, ALUout, ldA;
T45 Aout, wrR, bruncnd, val64;
! BZ !
T46 brnotPSW, val64;
99

T47 PCout, ldX;


T48 IRBPout, ldY;
T49 add, ALUout, ldPC, bruncnd, val64;
! JMP !
T4A IRJAout, ldPC, bruncnd, val64;
! JADR !
T4B MARout, ldPC, bruncnd, val64;
! JSR !
T4C SPout, ldMAR, decSP;
T4D PCout, mxMDR, ldMDR;
T4E WR;
T4F brOBI, val4F;
T50 SPout, ldMAR, decSP;
T51 PCHout, mxMDR, ldMDR;
T52 WR;
T53 brOBI, val53;
T54 IRJAout, ldPC, bruncnd, val64;
! RTI !
T55 incSP;
T56 SPout, ldMAR;
T57 RD;
T58 brOBI, val58;
T59 MDRout, ldPSW;
! RTS !
T5A incSP;
T5B SPout, ldMAR;
T5C RD;
T5D brOBI, val5D;
T5E MDRout, ldDH, incSP;
T5F SPout, ldMAR;
T60 RD;
T61 brOBI, val61;
T62 MDRout, ldDL;
T63 Dout, ldPC;
! Opsluivanje prekida !
T64 brnotPREKID, val00;
T65 SPout, ldMAR, decSP;
T66 PCout, mxMDR, ldMDR;
T67 WR;
T68 brOBI, val68;
T69 SPout, ldMAR, decSP;
T6A PCHout, mxMDR, ldMDR;
T6B WR;
T6C brOBI, val6C;
T6D SPout, ldMAR, decSP;
T6E PSWout, mxMDR, ldMDR;
T6F WR;
T70 brOBI, val70;
T71 slBRU;
T72 IVTPout, ldX;
T73 BRUout, ldY;
T74 add, ALUout, ldMAR;
T75 RD;
100

T76
T77
T78
T79
T7A
T7B

brOBI, val76;
MDRout, ldDH, incMAR;
RD;
brOBI, val79;
MDRout, ldDL;
Dout, ldPC, bruncnd, val00;

Slika 99 Sekvenca upravljakih signala za upravljaku jedinicu oiene realizacije


) Upravljaka jedinica oiene realizacije ima istu strukturu i isti nain generisanja
upravljakih signala operacione i upravljake jedinice kao i upravljaka jedinica iz zadatka 1.1.
signali logikih uslova

val79

val00
val02

imm

regindpom

RTS

regdir

144424443
LD
ST

memind

144424443
signali logikih uslova

...

...

KMOPR

KMADR

2C 2E

5A

16

144424443
8 opr7...0

MP

17

1F

KMBR
2A

144424443
8 adr7...0

0 S
0
S1

00 02

79

144424443
8 br7...0
generisanje nove
vrednosti brojaa
koraka

bradr
bropr

8
ld
INC inc
LD

CNT

CLK

CNT7..0

bradr
bropr
bruncnd
brcnd

broja koraka

DC
...

7B

dekoder koraka

T00
T7B ...
1442443
124
124
l3_arlogshpr

OBI
l1
l2_brn

l2_arlogshpr

generisanje
upravljakih
signala
upravljake
jedinice

regdir
PSWZ

l3_jmp

PREKID
bradr
bropr
bruncnd
brcnd
val00
val02

val79

...

BRUout

...

PCout
ldMAR

STJADR

144424443
signali logikih uslova

generisanje
upravljakih
signala
operacione
jedinice

144424443

signali logikih uslova

124

Slika 100 Upravljaka jedinica


Upravljaki signali operacione jedinice se generiu na sledei nain:
PCout = T00+ T05+ T0A + T0F
101

generisanje
upravljakih
signala

ldMAR = T00 +T05 +T0A+ T0F+ T17 + T1E+ T21+ T4C + T50+ T56+ T5B + T5F+ T65 +
T69+ T6D+ T74
BRUout = T73
Na identian nain se generiu i preostali upravljaki signali operacione jedinice.
Upravljaki signali upravljake jedinice se generiu na sledei nain:
bradr = T15
bropr = T2B
bruncnd = T12 +T16 + T1E + T29 + T2D + T36 + T37 + T3C + T41 +
T45 + T49 + T4A + T4B + T54+ T7B
brcnd = brOBIOBI+brl1l1+brl2_brnl2_brn+brl2_arlogshprl2_arlogshpr+
brl3_jmpl3_jmp+brl3_arlogshprl3_arlogshpr+brSTJADRSTJADR+
brregdirregdir+brnotPSWZ PSWZ +brnotPREKID PREKID
brOBI = T02 + T07 + T0C + T11 + T19 + T1C + T24 + T27 + T32 + T35 + T4F + T53 +
T58 + T5D + T61 + T68 + T6C + T70 + T76 + T79
brl1 = T04
brl2_brn = T08
brl2_arlogshpr = T09
brl3_jmp = T0D
brl3_arlogshpr = T0E
brSTJADR = T22
brregdir = T2F
brnotPSWZ = T46
brnotPREKID = T64
val00 = T64 + T7B
val02 = T02
val07 = T07
Na identian nain se generiu i preostali upravljaki signali operacione jedinice.
Pri generisanju signala brcnd koristi se sledei signali logikih uslova koji dolaze iz
operacione jedinice i to: OBI, l1, l2_brn, l2_arlogshpr, l3_jmp, l3_arlogshpr, STJADR,
regdir, PSWZ i PREKID .

102

1.7 ZADATAK
Posmatra se deo raunara iz zadatka 1.5.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa dve interne magistrale.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
vertikalnim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i vertikalnim
kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje upravljakih
signala i to za upravljake signale operacione jedinice PCout, ldMAR i incPC, i sve
upravljake signale upravljake jedinice kojima se upravlja mikroprogramski broja.
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.5.
b) Jedna realizacija strukturne eme operacione jedinice sa dve interne magistrale je data na
slikama 101 i 102. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.

103

BUS
144444444444444444424444444444444444443

ABUS15..0

IB115..0

RD
WR

RD
WR

DBUS7..0

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

A15...0

MARou1
IB115..0

RDBUS

IB215..0
OBI

OBI

MDRout2
MDR7..0

MAR15..0

ldMAR LD
incMAR INC

MAR

CLK

IB115..0

ldMBR

MDR

LD

IB27..0
CLK

mxMDR 0 mxMDR
0

IB27..0
IB27...0

PCHout2
PC15..8

PCout2

IB215..0

PC15..0
IB115..0
IB115..0

incPC INC
ldPC LD

PC

CLK

SPout1
SP15..0
incSP
decSP

INC

SP

DEC

LD
CLK

IB215..0

PSWout2

IB27..0

PSW7..0
ldPSW LD

PSW CLK

mxPSW 0 mxPSW
0

formiranje
indikatora

IB115..0
IB115..0

IB27..0

Dout1
D15..0
IRBPout1
IR23..23.IR23..16

IB115..0
IB115..0
IB115..0

IB27..0

IRAPout1
IR15..15.IR15..8

ldIR1 LD IR1 CLK

ldIR2 LD IR2 CLK

IR31..24

IR23..16

ldIR3 LD IR3 CLK

ldIR4 LD IR4 CLK

IRJAout1
IR23..8

IRIMADout1
IR15..0

IR15..8
ldDH LD

D CLK

IR7..0
ldDL LD

D15..8

Slika 101 Operaciona jedinica (prvi deo)

104

IB27..0

IB27..0

D CLK
D7..0

IB215..0

ALUout1

IB115..0

ALU15..0
ALU

A15...0

ldX

LD

add
and
asr

B15...0

IB215..0
Bout2

CLK

B15..0

IB115..0

ldB

LD
CLK

IB215..0

AHout2

IB27..0

A15..8

Aout2

IB215...0
IB215..0

A15..0
ldA LD

A CLK

IB115..0
IB115..0

IVTPout1

IVTP

R1A2..0
0

LD

ldR2A

formiranje BRU

R2A CLK

CLK
LD

R2A2..0
IB215...0

mxRA 0 mxRA

DI15...0
A2..0

WR

BRU

IL
SL

BRU15..0

IB1_2

0
slBRU
BRUout2

IB215..0

wrR

DO15...0

IB115..0

IB215..0

IB22..0

R1A CLK

ldR1A

CLK
LD

IVTP15..0

IB27..5
LD

IB215..0

Rout2

R15..0

IB215..0
IB215..0

IB2_1

IB115..0

IB215..0

Slika 102 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, su dati pod v) u
reenju zadatka 1.5.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 103.

105

! itanje instrukcije !
step00 PCout2, IB2_1, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout2, ldIR1;
step04 br (if l1 then step2A);
step05 PCout2, IB2_1, ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 MDRout2, ldIR2, ldR1A, ldR2A, br (if l2_brn then step2A);
step09 br (if l2_arlogshpr then step15);
step0A PCout2, IB2_1, ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D MDRout2, ldIR3, br (if l3_jmp then step2A);
step0E br (if l3_arlogshpr then step15);
step0F PCout2, IB2_1, ldMAR, incPC;
step10 RD;
step11 br (if OBI then step11);
step12 MDRout2, ldIR4, br step15;
! Formiranje adrese i itanje operanda !
step15 br (case (regdir, memind, regindpom, imm)
then
(regdir, step16), (memind, step17), (regindpom, step1F), (imm, step29));
! Registarsko direktno adresiranje !
step16 mxRA, Rout2, ldB, br step2A;
! Memorijsko indirektno adresiranje !
step17 IRIMADout1, ldMAR;
step18 RD;
step19 br (if OBI then step19);
step1A MDRout2, ldDH, incMAR;
step1B RD;
step1C br (if OBI then step1C);
step1D MDRout2, ldDL;
step1E Dout1, ldMAR, br step21;
! Registarsko indirektno sa pomerajem adresiranje !
step1F IRAPout1, ldX;
step20 mxRA, Rout2, add, ALUout1, ldMAR;
! itanje operanda za sva memorijska adresiranja !
step21 br (if STJADR then step2A);
step22 RD;
step23 br (if OBI then step23);
step24 MDRout2, ldDH, incMAR;
step25 RD;
step26 br (if OBI then step26);
step27 MDRout2, ldDL;
step28 Dout1, IB1_2, ldB, br step2A;
! Neposredno adresiranje !
step29 IRIMADout1, IB1_2, ldB;

106

! Izvravanje operacije !
step2A br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step2B), (ST, step2E), (ADD, step37), (AND, step3B), (ASR, step3F),
(BZ, step43), (JMP, step46), (JADR, step47), (JSR, step48),
(RTI, step4F), (RTS, step54));
! LD !
step2B Bout2, IB2_1, ldA;
step2C Aout2, wrR, br step5E;
! ST !
step2E Rout2, IB2_1, ldA, br (if regdir then step36);
step2F AHout2, mxMDR, ldMDR;
step30 WR;
step31 br (if OBI then step31);
step32 Aout2, mxMDR, ldMDR, incMAR;
step33 WR;
step34 br (if OBI then step34);
step35 br step5E;
step36 Aout2, mxRA, wrR, br step5E;
! ADD !
step37 Rout2, IB2_1, ldA;
step38 Aout2, IB2_1, ldX;
step39 Bout2, add, ALUout1, ldA;
step3A Aout2, wrR, br step5E;
! AND !
step3B Rout2, IB2_1, ldA;
step3C Aout2, IB2_1, ldX;
step3D Bout2, and, ALUout1, ldA;
step3E Aout2, wrR, br step5E;
! ASR !
step3F Rout2, IB2_1, ldA;
step40 Aout2, IB2_1, ldX;
step41 asr, ALUout1, ldA;
step42 Aout2, wrR, br step5E;
! BZ !
step43 br (if PSWZ then step5E);
step44 IRBPout1, ldX;
step45 PCout2, add, ALUout1, ldPC, br step5E;
! JMP !
step46 IRJAout1, ldPC, br step5E;
! JADR !
step47 MARout1, ldPC, br step5E;
! JSR !
step48 SPout1, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step49 WR;
step4A br (if OBI then step4A);
step4B SPout1, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step4C WR;
step4D br (if OBI then step4D);
step4E IRJAout1, ldPC, br step5E;

107

! RTI !
step4F incSP;
step50 SPout1, ldMAR;
step51 RD;
step52 br (if OBI then step52);
step53 MDRout2, ldPSW;
! RTS !
step54 incSP;
step55 SPout1, ldMAR;
step56 RD;
step57 br (if OBI then step57);
step58 MDRout2, ldDH, incSP;
step59 SPout1, ldMAR;
step5A RD;
step5B br (if OBI then step5B);
step5C MDRout2, ldDL;
step5D Dout1, ldPC;
! Opsluivanje prekida !
step5E br (if PREKID then step00);
step5F SPout1, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step60 WR;
step61 br (if OBI then step61);
step62 SPout1, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step63 WR;
step64 br (if OBI then step64);
step65 SPout1, ldMAR, decSP, PSWout2, mxMDR, ldMDR;
step66 WR;
step67 br (if OBI then step67);
step68 slBRU;
step69 IVTPout1, ldX;
step6A BRUout2, add, ALUout1, ldMAR;
step6B RD;
step6C br (if OBI then step6C);
step6D MDRout2, ldDH, incMAR;
step6E RD;
step6F br (if OBI then step6F);
step70 MDRout2, ldDL;
step71 Dou1, ldPC, br step00;

Slika 103 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) Mikroprogram za upravljaku jedinicu mikroprogramske realizacije i vertikalnim
kodiranjem upravljakih signala operacione jedinice (slika 113) se formira istim postupkom
kao i u zadatku 1.2, tako to se svakom koraku iz sekvence upravljakih signala pokoracima
(slika 103) pridrui mikroinstrukcija (slika 104).
v

cc

ba

014444244443
...
7 814243
... 11 12
...
19
14444244443

signali

uslov

adresa skoka

14444244443 14444444244444443

operacioni deo

upravljaki deo

Slika 104 Format mikroinstrukcije

108

Bitovi 0 do 7 pripadaju polju v0..7 mikroinstrukcije i dodeljeni su kombinacijama


upravljakih signala operacione jedinice (slike 105).
v0...7
00
01
02
03
04
05
06
07
08
09

kod
V00
V01
V02
V03
V04
V05
V06
V07
V08
V09

Kombinacija signala
/
PCout2, IB2_1, ldMAR, incPC
RD
MDRout2, ldIR1
MDRout2, ldIR2, ldR1A, ldR2A
MDRout2, ldIR3
MDRout2, ldIR4
mxRA, Rout2, ldB
IRIMADout1, ldMAR
MDRout2, ldDH, incMAR

v0...7
15
16
17
18
19
1A
1B
1C
1D
1E

kod
V15
V16
V17
V18
V19
V1A
V1B
V1C
V1D
V1E

0A

V0A

MDRout2, ldDL

1F

V1F

0B

V0B

Dout1, ldMAR

20

V20

0C

V0C

21

V21

0D

V0D

22

V22

SPout1, ldMAR

0E
0F
10

V0E
V0F
V10

IRAPout1, ldX
mxRA, Rout2, add, ALUout1,
ldMAR
Dout1, IB1_2, ldB
IRIMADout1, IB1_2, ldB
Bout2, IB2_1, ldA

Kombinacija signala
Aout2, mxMDR, ldMDR, incMAR
Aout2, mxRA, wrR
Aout2, IB2_1, ldX
Bout2, add, ALUout1, ldA
Bout2, and, ALUout1, ldA
asr, ALUout1, ldA
IRBPout1, ldX
PCout2, add, ALUout1, ldPC
IRJAout1, ldPC
MARout1, ldPC
SPout1, ldMAR, decSP, PCout2,
mxMDR, ldMDR
SPout1, ldMAR, decSP, PCHout2,
mxMDR, ldMDR
incSP

23
24
25

V23
V24
V25

11

V11

Aout2, wrR

26

V26

12
13
14

V12
V13
V14

Rout2, IB2_1, ldA


AHout2, mxMDR, ldMDR
WR

27
28
29

V27
V28
V29

MDRout2, ldPSW
MDRout2, ldDH, incSP
Dout1, ldPC
SPout1, ldMAR, decSP, PSWout2,
mxMDR, ldMDR
slBRU
IVTPout1, ldX
BRUout2, add, ALUout1, ldMAR

Slika 105 Vrednosti polja v, simbolike oznake kodova polja v


i kombinacije upravljakih signala operacione jedinice
Bitovi 8 do 11 pripadaju polju cc8...11 mikroinstrukcije i koriste se za kodiranje upravljakih
signala upravljake jedinice za korake u kojima se javljaju bezuslovni skok, uslovni skokovi i
viestruki uslovni skokovi. Nain kodiranja signala bezuslovnog skoka bitovima polja cc8...11
mikroinstrukcije i simbolika oznaka signala bezuslovnog skoka dati su u tabeli sa slike 106.
cc811
1

signal bezuslovnog skoka


bruncnd

Slika 106 Signal bezuslovnog skoka


Nain kodiranja signala uslovnih skokova bitovima polja cc8...11 mikroinstrukcije, simbolike
oznake signala uslovnih skokova koje za svaki od njih treba generisati i signal uslova koji
treba da ima vrednost 1 da bi se realizovao skok dati su u tabeli sa slike 107.
cc811
2
3
4
5
6

signal uslovnog
skoka
brOBI
brl1
brl2_brn
brl2_arlogshpr
brl3_jmp

signal uslova

cc811

OBI
l1
l2_brn

7
8
9
A

l2_arlogshpr
l3_jmp

signal uslovnog
skoka
brl3_arlogshpr
brSTJADR
brregdir

l3_arlogshpr
STJADR
regdir

brnotPSWZ
brnotPREKID

PREKID

Slika 107 Signali uslovnih skokova

109

signal uslova

PSWZ

Nain kodiranja signala viestrukih uslovnih skokova bitovima polja cc8...11 mikroinstrukcije,
koraci u sekvenci upravljakih signala po koracima u kojima se pojavljuju iskazi ovog tipa i
simbolike oznake signala viestrukih uslovnih skokova dati su u tabeli sa slike 108.
cc811
C
D

stepi
step15
step2A

signal
bradr
bropr

Slika 108 Signali viestrukih uslovnih skokova


Bitovi 12 do 19 pripadaju polju ba1219 mikroinstrukcije i koriste se za specificiranje
adrese mikroinstrukcije na koju treba skoiti kod uslovnih i bezuslovnih skokova u sekvenci
upravljakih signala po koracima (slika 103).
Kod formiranja mikroinstrukcije polazi se od sekvence upravljakih signala po koracima i
bitovi polja v0..7 postavljaju ili na jednu od binarnih vrednosti V01 do V29 ukoliko se neka od
kombinacija upravljakih signala operacione jedinice (slika 105) javlja u datom koraku ili na
binarnu vrednost nula V00 ukoliko se ni jedan od upravljakih signala operacione jedinice ne
javlja u datom koraku. Bitovi polja cc8...11 i ba1219 se u koracima u kojima se javlja neki od
iskaza br stepA, br (if uslov then stepA) i br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ...,
(uslovn, stepAn)) kodiraju u saglasnosti sa tim koji se od ova tri iskaza javlja u datom koraku,
dok se u suprotnom sluaju postavljaju na nule.
Za iskaz br stepA se za polje cc8...11 uzima kod dodeljen signalu bezuslovnog skoka (slika
106). Koraci stepi u kojima se bezuslovni skokovi javljaju, koraci stepA na koje se bezuslovno
skae i sama vrednost A, koju treba upisati u mikroprogramski broja, za sve korake u
sekvenci upravljakih signala po koracima u kojima se javljaju iskazi ovog tipa, dati su u
tabeli sa slike 109.
stepi
step12
step16
step1E
step28
step2C

stepA
step15
step2A
step21
step2A
step5E

A
15
2A
21
2A
5E

stepi
step35
step36
step3A
step3E
step42

stepA
step5E
step5E
step5E
step5E
step5E

A
5E
5E
5E
5E
5E

stepi
step45
step46
step47
step4E
step71

stepA
step5E
step5E
step5E
step5E
step00

A
5E
5E
5E
5E
00

Slika 109 Koraci stepi, stepA i vrednosti A za bezuslovne skokove


Za iskaz br (if uslov then stepA) se za polje cc8...11 uzima kod dodeljen signalu uslovnog
skoka (slika 107). Koraci stepi u kojima se uslovni skokovi javljaju, signali uslova uslov,
koraci stepA na koje se uslovno skae i vrednosti A koju treba upisati u mikroprogramski
broja u sluaju da signal uslov ima vrednost 1, za sve korake u sekvenci upravljakih signala
po koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli sa slike 110.

110

stepi
uslov
stepA
step02
step02
OBI
step04
step2A
l1
step07
step07
OBI
step08
step2A
l2_brn
step09 l2_arlogshpr step15
step0C
step0C
OBI
step0D
step2A
l3_jmp
step0E l3_arlogshpr step15
step11
step13
OBI
step19
step19
OBI
step1C
step1C
OBI
step21
step2A
STJADR
step23
step23
OBI
step26
step26
OBI
step2E
step36
regdir

A
02
2A
07
2A
15
0C
2A
15
13
19
1C
2A
23
26
36

stepi
step31
step34
step43
step4A
step4D
step52
step57
step5B
step5E
step61
step64
step67
step6C
step6F

uslov
OBI
OBI
PSWZ
OBI
OBI
OBI
OBI
OBI
PREKID

OBI
OBI
OBI
OBI
OBI

stepA
step31
step34
step5E
step4A
step4D
step52
step57
step5B
step00
step61
step64
step67
step6C
step6F

A
31
34
5E
4A
4D
52
57
5B
00
61
64
67
6C
6F

Slika 110 Koraci stepi, uslovi uslov, koraci stepA i vrednosti A za uslovne skokove
Za iskaz br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) se za polje
cc8...11 uzima kod dodeljen signalu viestrukog uslovnog skoka (slika 108). Vrednosti A1,...,
An koje treba upisati u mikroprogramski broja i signali uslova uslov1, ..., uslovn za koje
treba izvriti proveru koji od njih ima vrednost 1 da bi se na osnovu toga realizovao prelaz na
jedan od koraka stepA1, ..., stepAn za dva iskaza ovog tipa koji se javljaju u sekvenci
upravljakih signala po koracima dati su u tabelama sa slika 111 i 112.
uslov
regdir
memind
regindpom
imm

stepA
step16
step17
step1F
step29

A
16
17
1F
29

Slika 111 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step15
uslov
LD
ST
ADD
AND

stepA
step2B
step2E
step37
step3B

A
2B
2E
37
3B

uslov
ASR
BZ
JMP
JADR

stepA
step3F
step43
step46
step47

A
3F
43
46
47

uslov
JSR
RTI
RTS

stepA
step48
step4F
step54

Slika 112 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step2A
! itanje instrukcije !
madr00 V01;
madr01 V02;
madr02 brOBI, madr02;
madr03 V03;
madr04 brl1, madr2A;
madr05 V01;
madr06 V02; ! RD;
madr07 brOBI, madr07;
madr08 V04, brl2_brn, madr2A;
madr09 brl2_arlogshpr, madr15;
madr0A V01;

! PCout2, IB2_1, ldMAR, incPC;


! RD;
! MDRout2, ldIR1;
! PCout2, IB2_1, ldMAR, incPC;

! MDRout2, ldIR2, ldR1A, ldR2A;


! PCout2, IB2_1, ldMAR, incPC;
111

A
48
4F
54

madr0B V02;
! RD;
madr0C brOBI, madr0C;
madr0D V05, brl3_jmp, madr2A; ! MDRout2, ldIR3;
madr0E brl3_arlogshpr, madr15;
! PCout2, IB2_1, ldMAR, incPC;
madr0F V01;
madr10 V02;
! RD;
madr11 brOBI, madr11;
madr12 V06, bruncnd, madr15; ! MDRout2, ldIR4;
! Formiranje adrese i itanje operanda !
madr15 bradr;
! Registarsko direktno adresiranje !
madr16 V07, bruncnd, madr2A; ! mxRA, Rout2, ldB;
! Memorijsko indirektno adresiranje !
madr17 V08;
! IRIMADout1, ldMAR;
madr18 V02;
! RD;
madr19 brOBI, madr19;
madr1A V09;
! MDRout2, ldDH, incMAR;
madr1B V02;
! RD;
madr1C brOBI, madr1C;
madr1D V0A;
! MDRout2, ldDL;
madr1E V0B, bruncnd, madr21; ! Dout1, ldMAR;
! Registarsko indirektno sa pomerajem adresiranje !
madr1F V0C;
! IRAPout1, ldX;
madr20 V0D;
! mxRA, Rout2, add, ALUout1, ldMAR;
! itanje operanda za sva memorijska adresiranja !
madr21 brSTJADR, madr2A;
madr22 V02;
! RD;
madr23 brOBI, madr23;
madr24 V09;
! MDRout2, ldDH, incMAR;
madr25 V02;
! RD;
madr26 brOBI, madr26;
madr27 V0A;
! MDRout2, ldDL;
madr28 V0E, bruncnd, madr2A; ! Dout1, IB1_2, ldB;
! Neposredno adresiranje !
! IRIMADout1, IB1_2, ldB;
madr29 V0F;
! Izvravanje operacije !
madr2A bropr;
! LD !
madr2B V10;
! Bout2, IB2_1, ldA;
madr2C V11, bruncnd, madr5E; ! Aout2, wrR, bruncnd, madr5E;
! ST !
madr2E V12, brregdir, madr36; ! Rout2, IB2_1, ldA;
madr2F V13;
! AHout2, mxMDR, ldMDR;
madr30 V14;
! WR;
madr31 brOBI, madr31;
madr32 V15;
! Aout2, mxMDR, ldMDR, incMAR;
madr33 V14;
! WR;
madr34 brOBI, madr34;
madr35 bruncnd, madr5E;
madr36 V16, bruncnd, madr5E; ! Aout2, mxRA, wrR;
! ADD !
! Rout2, IB2_1, ldA;
madr37 V12;
madr38 V17;
! Aout2, IB2_1, ldX;
112

madr39 V18;
madr3A V11, bruncnd, madr5E;
! AND !
madr3B V12;
madr3C V17;
madr3D V19;
madr3E V11, bruncnd, madr5E;
! ASR !
madr3F V12;
madr40 V17;
madr41 V1A;
madr42 V11, bruncnd, madr5E;
! BZ !
madr43 brnotPSWZ, madr5E;
madr44 V1B;
madr45 V1C, bruncnd, madr5E;
! JMP !
madr46 V1D, bruncnd, madr5E;
! JADR !
madr47 V1E, bruncnd, madr5E;
! JSR !
madr48 V1F;
madr49 V14;
madr4A brOBI, madr4A;
madr4B V20;
madr4C V14;
madr4D brOBI, madr4D;
madr4E V1D, bruncnd, madr5E;
! RTI !
madr4F V21;
madr50 V22;
madr51 V02;
madr52 brOBI, madr52;
madr53 V23;
! RTS !
madr54 V21;
madr55 V22;
madr56 V02;
madr57 brOBI, madr57;
madr58 V24;
madr59 V22;
madr5A V02;
madr5B brOBI, madr5B;
madr5C V0A;
madr5D V25;
! Opsluivanje prekida !
madr5E brnotPREKID, madr00;
madr5F V1F;
madr60 V14;
madr61 brOBI, madr61;
madr62 V20;
madr63 V14;
madr64 brOBI, madr64;

! Bout2, add, ALUout1, ldA;


! Aout2, wrR;
! Rout2, IB2_1, ldA;
! Aout2, IB2_1, ldX;
! Bout2, and, ALUout1, ldA;
! Aout2, wrR;
! Rout2, IB2_1, ldA;
! Aout2, IB2_1, ldX;
! asr, ALUout1, ldA;
! Aout2, wrR;

! IRBPout1, ldX;
! PCout2, add, ALUout1, ldPC;
! IRJAout1, ldPC;
! MARout1, ldPC;
! SPout1, ldMAR, decSP, PCout2, mxMDR, ldMDR;
! WR;
! SPout1, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
! WR;
! IRJAout1, ldPC;
! incSP;
! SPout1, ldMAR;
! RD;
! MDRout2, ldPSW;
! incSP;
! SPout1, ldMAR;
! RD;
! MDRout2, ldDH, incSP;
! SPout1, ldMAR;
! RD;
! MDRout2, ldDL;
! Dout1, ldPC;

! SPout1, ldMAR, decSP, PCout2, mxMDR, ldMDR;


! WR;
! SPout1, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
! WR;

113

madr65
madr66
madr67
madr68
madr69
madr6A
madr6B
madr6C
madr6D
madr6E
madr6F
madr70
madr71

V26;
V14;
brOBI, madr67;
V27;
V28;
V29;
V02;
brOBI, madr6C;
V09;
V02;
brOBI, madr6F;
V0A;
V25, bruncnd, madr00;

! SPout1, ldMAR, decSP, PSWout2, mxMDR, ldMDR;


! WR;
! slBRU;
! IVTPout1, ldX;
! BRUout2, add, ALUout1, ldMAR;
! RD;
! MDRout2, ldDH, incMAR;
! RD;
! MDRout2, ldDL;
! Dou1, ldPC;

Slika 113 Mikroprogram za upravljaku jedinicu mikroprogramske realizacije sa vertikalnim


kodiranjem signala i jednim tipom mikroinstrukcija
) Upravljaka jedinica mikroprogramske realizacije sa vertikalnim kodiranjem signala i
jednim tipom mikroinstrukcija (slika 114) ima istu strukturu i isti nain generisanja
upravljakih signala operacione i upravljake jedinice kao i upravljaka jedinica iz zadataka
1.2.

114

signali logikih uslova

imm

regdir
16

memind

RTS

LD
ST

144424443
54

regindpom

144424443
signali logikih uslova

generisanje
nove
vrednosti
mikroprogramskog
brojaa

...

KMOPR

KMADR

2B 2D

144424443
opr7...0
8
3

8
2

MP

1F

17

29

144424443
8 adr7...0
CW12...19

8
1

0 S
0

bradr
bropr

S1

CLKmPC

mPC7...0

bradr
bropr
bruncnd
brcnd

ld
INC inc
LD

mPC

CLK

mikroprogramski
broja

mikroprogramska
memorija

mMEM

WR

20

...

...

11

...

12

19

CLKCW

prihvatni
registar
mikroinstrukcije

LD

CW19
CW0 CW7 CW123
CW11CW123
12
8
123
4
8
8
...

...

signali logikih uslova

144424443

...

generisanje
upravljakih
signala
operacione
jedinice

OBI

l3_arlogshpr
generisanje
upravljakih
signala
upravljake
jedinice

l1
l2_brn

l2_arlogshpr

STJADR
regdir
PSWZ

l3_jmp

PREKID

144424443
signali logikih uslova

CLK

CW

brcnd

bruncnd

bropr

bradr

...

BRUout2

IB2_1

PCout2

...
generisanje
upravljakih
signala

Slika 114 Struktura upravljake jedinice


Upravljaki signala operacione jedinice se generiu tako to se najpre generiu signali
kombinacija upravljakih signala V00 do V29 (tabela sa slike 27) i to:
V00 = CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
V01 = CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7
V02 = CW0 CW1 CW2 CW3 CW4 CW5 CW6 CW7

115

Potom, se za svaki upravljaki signal operacione jedinice posmatra u kojim kombinacijama


upravljakih signala V00 do V29 se signal pojavljuje (tabela 27), pa se dati signal dobija kao
njihova unija. Kao rezultat, upravljaki signali operacione jedinice se generiu na sledei
nain:
PCout2 = V01 + V1C
ldMAR = V01 + V08 + V0B+ V0D+ V1F + V20+ V22 + V26 + V29
incPC = V01
Na identian nain se generiu i preostali upravljaki signali operacione jedinice.
Upravljaki signali upravljake jedinice se generiu na sledei nain:
bradr = CW8 CW9 CW10 CW11
bropr = CW8 CW9 CW10 CW11
bruncnd = CW8 CW9 CW10 CW11
brcnd = brOBIOBI + brl1l1+brl2_brnl2_brn+brl2_arlogshprl2_arlogshpr+
brl3_jmpl3_jmp+brl3_arlogshprl3_arlogshpr+brSTJADRSTJADR+
brregdirregdir+brnotPSWZ PSWZ +brnotPREKID PREKID
brOBI = CW8 CW9 CW10 CW11
brl1 = CW8 CW9 CW10 CW11
brl2_brn = CW8 CW9 CW10 CW11
brl2_arlogshpr = CW8 CW9 CW10 CW11
brl3_jmp = CW8 CW9 CW10 CW11
brl3_arlogshpr = CW8 CW9 CW10 CW11
brSTJADR = CW8 CW9 CW10 CW11
brregdir = CW8 CW9 CW10 CW11
brnotPSWZ = CW8 CW9 CW10 CW11
brnotPREKID = CW8 CW9 CW10 CW11
Pri generisanju signala brcnd koristi se sledei signali logikih uslova koji dolaze iz
operacione jedinice i to: OBI, l1, l2_brn, l2_arlogshpr, l3_jmp, l3_arlogshpr, STJADR,
regdir, PSWZ i PREKID .

116

1.8 ZADATAK
Posmatra se deo raunara iz zadatka 1.5.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa tri interne magistrale.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
meovitim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i meovitim
kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje upravljakih
signala i to za upravljake signale operacione jedinice ldMAR, incPC i IB1_2, i sve
upravljake signale upravljake jedinice kojima se upravlja mikroprogramskim brojaem.
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.5.
b) Jedna realizacija strukturne eme operacione jedinice sa tri interne magistrale je data na
slikama 115 i 116. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.

117

BUS
144444444444444444424444444444444444443

ABUS15..0

IB215..0
RD
WR

RD
WR

DBUS7..0

A15...0

RDBUS

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DI7..0
DO7..0

OBI

OBI

MDRout1

IB17..0

MDR7..0
MDR

LD

ldMBR

CLK

mxMDR 0 mxMDR
0

IB27..0

IB27...0
MARout3

IB315..0

MAR15...0
ldMAR
incMAR
IB27..0
IB215..0

LD
INC

MAR

CLK

IB315..0

PCHout2
PC15..8
PCout2

Dout3
D15..0
PC15..0

IB315..0
IRJAout3
IR23..8

incPC INC
PC CLK
ldPC LD

IB315..0
IRIMADout3
IB37..0

IR15..0

IB315..0

SPout3

IB315..0

SP15..0

IB17..0

IB215..0
IB27..0

incSP INC
SP
decSP DEC

LD

IB17..0
PSWout2

PSW7...0

ldPSW LD PSW CLK


0

IRBPout1

IB115..0

IR31..24

IR23..16

ldIR3 LD IR3 CLK ldIR4

IB17..0

formiranje
indikatora

ldDH LD

IR23..23.IR23..16
IB215..0

ldIR2 LD IR2 CLK

IB17..0

mxPSW 0 mxPSW

IB17..0

ldIR1 LD IR1 CLK

IR15..8
D CLK
D15..8

IRAPout2
IR15..15.IR15..8

Slika 115 Operaciona jedinica (prvi deo)

118

LD

IR4 CLK
IR7..0

ldDL LD

D CLK
D7..0

ALUout3

IB315..0

ALU15..0
A15...0

IB115..0
IB115..0

ALU

B15...0

add
and
asr

IB215..0

Bout1
B15..0
AHout2

IB27..0
IB215..0

Aout2

ldB

LD
CLK

A15..8

IB315..0

A15..0
ldA LD

A CLK
IB315..0

IB215..0

IB215..0
CLK
LD

IVTPout1

IB115..0

IVTP
IVTP15..0

IB115..0
IB17..5

IB12..0

R1A CLK

LD

ldR1A

R1A2..0

LD

ldR2A

IB115..0

Rout1

R2A CLK
R2A2..0

DI15...0
A2..0

WR

R15..0

mxRA 0 mxRA

BRUout2

CLK
LD

BRU

IL
SL

0
slBRU
IB315..0

IB2_3

IB215..0

IB2_1

formiranje BRU

BRU15..0

IB1_3

IB115..0

wrR

DO15...0

IB215..0

IB115..0

IB315..0

IB315..0

IB315..0

IB215..0

Slika 116 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, su dati pod v) u
reenju zadatka 1.5.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 117.

119

! itanje instrukcije !
step00 PCout2, IB2_3, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout1, ldIR1;
step04 br (if l1 then step29);
step05 PCout2, IB2_3, ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 MDRout1, ldIR2, ldR1A, ldR2A, br (if l2_brn then step29) ;
step09 br (if l2_arlogshpr then step15);
step0A PCout2, IB2_3, ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D MDRout1, ldIR3, br (if l3_jmp then step29);
step0E br (if l3_arlogshpr then step15);
step0F PCout2, IB2_3, ldMAR, incPC;
step10 RD;
step11 br (if OBI then step13);
step12 MDRout1, ldIR4, br step215 ;
! Formiranje adrese i itanje operanda !
step15 br (case (regdir, memind, regindpom, imm)
then (regdir, step16), (memind, step17), (regindpom, step1F), (imm, step28));
! Registarsko direktno adresiranje !
step16 mxRA, Rout1, IB1_3, ldB, br step29;
! Memorijsko indirektno adresiranje !
step17 IRIMADout3, ldMAR;
step18 RD;
step19 br (if OBI then step19);
step1A MDRout1, ldDH, incMAR;
step1B RD;
step1C br (if OBI then step1C);
step1D MDRout1, ldDL;
step1E Dout3, ldMAR, br step20;
! Registarsko indirektno sa pomerajem adresiranje !
step1F mxRA, Rout1, IRAPout2, add, ALUout3, ldMAR;
! itanje operanda za sva memorijska adresiranja !
step20 br (if STJADR then step29);
step21 RD;
step22 br (if OBI then step22);
step23 MDRout1, ldDH, incMAR;
step24 RD;
step25 br (if OBI then step25);
step26 MDRout1, ldDL;
step27 Dout3, ldB, br step29;
! Neposredno adresiranje !
step28 IRIMADout3, ldB;
! Izvravanje operacije !
step29 br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR, RTI, RTS)
then (LD, step2A), (ST, step2D), (ADD, step36), (AND, step39), (ASR, step3C),
(BZ, step3F), (JMP, step41), (JADR, step42), (JSR, step43),
(RTI, step4A), (RTS, step4F));
120

! LD !
step2A Bout1, IB1_3, ldA;
step2B Aout2, IB2_3, wrR, br step59;
! ST !
step2D Rout1, IB1_3, ldA, br (if regdir then step35);
step2E AHout2, mxMDR, ldMDR;
step2F WR;
step30 br (if OBI then step30);
step31 Aout2, mxMDR, ldMDR, incMAR;
step32 WR;
step33 br (if OBI then step33);
step34 br step59;
step35 Aout2, IB2_3, mxRA, wrR, br step59;
! ADD !
step36 Rout1, IB1_3, ldA;
step37 Aout2, Bout1, add, ALUout3, ldA;
step38 Aout2, IB2_3, wrR, br step59;
! AND !
step39 Rout1, IB1_3, ldA;
step3A Aout2, Bout1, and, ALUout3, ldA;
step3B Aout2, IB2_3, wrR, br step59;
! ASR !
step3C Rout1, IB1_3, ldA;
step3D Aout2, IB2_1, asr, ALUout3, ldA;
step3E Aout2, IB2_3, wrR, br step59;
! BZ !
step3F br (if PSWZ then step59);
step40 PCout2, IRBPout1, add, ALUout3, ldPC, br step59;
! JMP !
step41 IRJAout3, ldPC, br step59;
! JADR !
step42 MARout3, ldPC, br step59;
! JSR !
step43 SPout3, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step44 WR;
step45 br (if OBI then step45);
step46 SPout3, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step47 WR;
step48 br (if OBI then step48);
step49 IRJAout3, ldPC, br step59;
! RTI !
step4A incSP;
step4B SPout3, ldMAR;
step4C RD;
step4D br (if OBI then step4D);
step4E MDRout1, ldPSW;
! RTS !
step4F incSP;
step50 SPout3, ldMAR;
step51 RD;
step52 br (if OBI then step52);
step53 MDRout1, ldDH, incSP;

121

step54 SPout3, ldMAR;


step55 RD;
step56 br (if OBI then step56);
step57 MDRout1, ldDL;
step58 Dout3, ldPC;
! Opsluivanje prekida !
step59 br (if PREKID then step00);
step5A SPout3, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step5B WR;
step5C br (if OBI then step5C);
step5D SPout3, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step5E WR;
step5F br (if OBI then step5F);
step60 SPout3, ldMAR, decSP, PSWout2, mxMDR, ldMDR;
step61 WR;
step62 br (if OBI then step62);
step63 slBRU;
step64 IVTPout1, BRUout2, add, ALUout3, ldMAR;
step65 RD;
step66 br (if OBI then step66);
step67 MDR1out, ldDH, incMAR;
step68 RD;
step69 br (if OBI then step69);
step6A MDR1out, ldDL;
step6B Dou3, ldPC, br step00;

Slika 117 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) Mikroprogram za upravljaku jedinicu mikroprogramske realizacije i meovitim
kodiranjem upravljakih signala operacione jedinice (slika 113) se formira istim postupkom
kao i u zadatku 1.3, tako to se svakom koraku iz sekvence upravljakih signala pokoracima
(slika 117) pridrui mikroinstrukcija (slika 118).
m

cc

ba

014243
... 3 414243
... 7 814243
... 11 12
... 15 16 ... 19 20 ... 23 24 ... 27 28
...
35
14243 14243 14243 14243 14444244443

M1

M2

M3

M4

M5

M6

uslov

adresa skoka

14444444444444444244444444444444443 14444444244444443

operacioni deo

upravljaki deo

Slika 118 Format mikroinstrukcije


Bitovi 0 do 23 pripadaju polju m0...23 mikroinstrukcije i dodeljeni su upravljakim
signalima operacione jedinice (slike 119, 120 i 121).

122

m0m3
0
1
2
3
4
5
6
7
8
9

M1
kod
signal
M10
M11
SPout3
M12
ALUout3
M13
Dout3
M14
MARout3
M15
IRJAout3
M16
IRIMADout3
M17
IB2_3
M18
IB1_3
M19
ldR1A

M1F
-

m4m7
0
1
2
3
4
5
6
7
8
9

M2
kod
M20
M21
M22
M23
M24
M25
M26
M27
M28
M29

M2F

signal
ldMAR
incMAR
ldPSW
ldA
ldPC
wrR
ldR2A

Slika 119 Vrednosti polja M1 i M2, simbolike oznake kodova polja M1 i M2


i upravljaki signali operacione jedinice
m8m11
0
1
2
3
4
5
6
7
8
9
A
B
C

M3
kod
M30
M31
M32
M33
M34
M35
M36
M37
M38
M39
M3A
M3B
M3C

M3F

signal
incPC
decSP
incSP
ldB
decB
incB
WR
RD
slBRU
add
and
asr

m12m15
0
1
2
3
4
5
6
7
8
9
A
B
C

M4
kod
M40
M41
M42
M43
M44
M45
M46
M47
M48
M49
M4A
M4B
M4C

M4F

signal

PCout2
PCHout2
PSWout2
BRUout2
Aout2
AHout2
IRAPout2
IB1_2

Slika 120 Vrednosti polja M3 i M4, simbolike oznake kodova polja M3 i M4


i upravljaki signali operacione jedinice
m16m19
0
1
2
3
4
5
6
7
8

M5
kod
M50
M51
M52
M53
M54
M55
M56
M57
M58

M5F

signal
ldMDR
ldDH
ldDL
ldIR1
ldIR2
ldIR3
ldIR4
mxRA

m20m23
0
1
2
3
4
5
6
7
8

M6
kod
M60
M61
M62
M63
M64
M65
M66
M67
M68

M6F

signal
mxMDR
IB2_1
ldRA
MDRout1
Rout1
IVTPout1
IRBPout1
Bout1

Slika 121 Vrednosti polja M5 i M6, simbolike oznake kodova polja M5 i M6


i upravljaki signali operacione jedinice

123

Bitovi 24 do 27 pripadaju polju cc24...27 mikroinstrukcije i koriste se za kodiranje


upravljakih signala upravljake jedinice za korake u kojima se javljaju bezuslovni skok,
uslovni skokovi i viestruki uslovni skokovi. Nain kodiranja signala bezuslovnog skoka
bitovima polja cc24...27 mikroinstrukcije i simbolika oznaka signala bezuslovnog skoka dati su
u tabeli sa slike 122.
cc2427
1

signal bezuslovnog skoka


bruncnd

Slika 122 Signal bezuslovnog skoka


Nain kodiranja signala uslovnih skokova bitovima polja cc24...27 mikroinstrukcije, simbolike
oznake signala uslovnih skokova koje za svaki od njih treba generisati i signal uslova koji
treba da ima vrednost 1 da bi se realizovao skok dati su u tabeli sa slike 123.
cc2427
2
3
4
5
6

signal uslovnog
skoka
brOBI
brl1
brl2_brn
brl2_arlogshpr
brl3_jmp

signal uslova

cc2427

OBI
l1
l2_brn

7
8
9
A

l2_arlogshpr
l3_jmp

signal uslovnog
skoka
brl3_arlogshpr
brSTJADR
brregdir
brnotPSWZ
brnotPREKID

signal uslova
l3_arlogshpr
STJADR
regdir

PSWZ
PREKID

Slika 123 Signali uslovnih skokova


Nain kodiranja signala viestrukih uslovnih skokova bitovima polja cc24...27 mikroinstrukcije,
koraci u sekvenci upravljakih signala po koracima u kojima se pojavljuju iskazi ovog tipa i
simbolike oznake signala viestrukih uslovnih skokova dati su u tabeli sa slike 124.
cc2427
C
D

stepi
step15
step29

signal
bradr
bropr

Slika 124 Signali viestrukih uslovnih skokova


Bitovi 28 do 35 pripadaju polju ba28...35 mikroinstrukcije i koriste se za specificiranje
adrese mikroinstrukcije na koju treba skoiti kod uslovnih i bezuslovnih skokova u sekvenci
upravljakih signala po koracima (slika 117).
Kod formiranja mikroinstrukcije polazi se od sekvence upravljakih signala po koracima i
bitovi grupa M1, M2, M3, M4, M5 i M6 polja m0...23 se postavljaju ili na odgovarajue
binarne vrednosti ukoliko se neki od signala operacione jedinice (tabele sa slika 122, 123 i
124) iz svake od grupa M1, M2, M3, M4, M5 i M6 javlja u datom koraku ili na nule za one
grupe za koje se ni jedan od signala iz date grupe ne javlja u datom koraku. Bitovi polja
cc24...27 i ba2835 se u koracima u kojima se javlja neki od iskaza br stepA, br (if uslov then
stepA) i br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) kodiraju u
saglasnosti sa tim koji se od ova tri iskaza javlja u datom koraku, dok se u suprotnom sluaju
postavljaju na nule.
Za iskaz br stepA se za polje cc24...27 uzima kod dodeljen signalu bezuslovnog skoka (slika
122). Koraci stepi u kojima se bezuslovni skokovi javljaju, koraci stepA na koje se bezuslovno
skae i sama vrednost A, koju treba upisati u mikroprogramski broja, za sve korake u
sekvenci upravljakih signala po koracima u kojima se javljaju iskazi ovog tipa, dati su u
tabeli sa slike 125.

124

stepi
step12
step16
step1E
step27
step2B

stepA
step15
step29
step20
step29
step59

A
15
29
20
29
59

stepi
step34
step35
step38
step3B
step3E

stepA
step59
step59
step59
step59
step59

A
59
59
59
59
59

stepi
step40
step41
step42
step49
step6B

stepA
step59
step59
step59
step59
step00

A
59
59
59
59
00

Slika 125 Koraci stepi, stepA i vrednosti A za bezuslovne skokove


Za iskaz br (if uslov then stepA) se za polje cc24...27 uzima kod dodeljen signalu uslovnog
skoka (slika 123). Koraci stepi u kojima se uslovni skokovi javljaju, signali uslova uslov,
koraci stepA na koje se uslovno skae i vrednosti A koju treba upisati u mikroprogramski
broja u sluaju da signal uslov ima vrednost 1, za sve korake u sekvenci upravljakih signala
po koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli sa slike 126.
stepi
uslov
stepA
step02
step02
OBI
step04
step29
l1
step07
step07
OBI
step08
step29
l2_brn
step09 l2_arlogshpr step15
step0C
step0C
OBI
step0D
step29
l3_jmp
step0E l3_arlogshpr step15
step11
step11
OBI
step19
step19
OBI
step1C
step1C
OBI
step20
step29
STJADR
step22
step22
OBI
step25
step25
OBI
step2D
step35
regdir

A
02
29
07
29
15
0C
29
15
11
19
1C
29
22
25
35

stepi
step30
step33
step3F
step45
step48
step4D
step52
step56
step59
step5C
step5F
step62
step66
step69

uslov
OBI
OBI
PSWZ
OBI
OBI
OBI
OBI
OBI
PREKID

OBI
OBI
OBI
OBI
OBI

stepA
step30
step33
step59
step45
step48
step4D
step52
step56
step00
step5C
step5F
step62
step66
step69

A
30
33
59
45
48
4D
52
56
00
5C
5F
62
66
69

Slika 126 Koraci stepi, uslovi uslov, koraci stepA i vrednosti A za uslovne skokove
Za iskaz br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) se za polje
cc24...27 uzima kod dodeljen signalu viestrukog uslovnog skoka (slika 124). Vrednosti A1,...,
An koje treba upisati u mikroprogramski broja i signali uslova uslov1, ..., uslovn za koje
treba izvriti proveru koji od njih ima vrednost 1 da bi se na osnovu toga realizovao prelaz na
jedan od koraka stepA1, ..., stepAn za dva iskaza ovog tipa koji se javljaju u sekvenci
upravljakih signala po koracima dati su u tabelama sa slika 127 i 128.
uslov
regdir
memind
regindpom
imm

stepA
step16
step17
step1F
step28

A
16
17
1F
28

Slika 127 Signali uslova, koraci na koje se skae i vrednosti za upis


u mikroprogramski broja za viestruki uslovni skok u koraku step15
uslov
LD
ST
ADD
AND

stepA
step2A
step2D
step36
step39

A
2A
2D
36
39

uslov
ASR
BZ
JMP
JADR

stepA
step3C
step3F
step41
step42

A
3C
3F
41
42

uslov
JSR
RTI
RTS

Slika 128 Signali uslova, koraci na koje se skae i vrednosti za upis


125

stepA
step43
step4A
step4F

A
43
4A
4F

u mikroprogramski broja za viestruki uslovni skok u koraku step29


! itanje instrukcije !
! PCout2, IB2_3, ldMAR, incPC;
madr00 M41, M17, M21, M31;
madr01 M38;
! RD;
madr02 brOBI, madr02;
! MDRout1, ldIR1;
madr03 M64, M54;
madr04 brl1, madr29;
! PCout2, IB2_3, ldMAR, incPC;
madr05 M41, M17, M21, M31;
madr06 M38;
! RD;
madr07 brOBI, madr07;
madr08 M64, M55, M19, M27, brl2_brn, madr29; ! MDRout1, ldIR2, ldR1A, ldR2A;
madr09 brl2_arlogshpr, madr15;
! PCout2, IB2_3, ldMAR, incPC;
madr0A M41, M17, M21, M31;
madr0B M38;
! RD;
madr0C brOBI, madr0C;
madr0D M64, M56, brl3_jmp, madr29;
! MDRout1, ldIR3;
madr0E brl3_arlogshpr, madr15;
! PCout2, IB2_3, ldMAR, incPC;
madr0F M41, M17, M21, M31;
madr10 M38;
! RD;
madr11 brOBI, madr11;
madr12 M64, M57, bruncnd, madr15;
! MDRout1, ldIR4;
! Formiranje adrese i itanje operanda !
madr15 bradr;
! Registarsko direktno adresiranje !
madr16 M58, M65, M18, M34, bruncnd, madr29; ! mxRA, Rout1, IB1_3, ldB;
! Memorijsko indirektno adresiranje !
madr17 M16, M21;
! IRIMADout3, ldMAR;
madr18 M38;
! RD;
madr19 brOBI, madr19;
madr1A M64, M52, M22;
! MDRout1, ldDH, incMAR;
madr1B M38;
! RD;
madr1C brOBI, madr1C;
madr1D M64, M53;
! MDRout1, ldDL;
madr1E M13, M21, bruncnd, madr20;
! Dout3, ldMAR;
! Registarsko indirektno sa pomerajem adresiranje !
madr1F M58, M65, M47, M3A, M12, M21; ! mxRA, Rout1, IRAPout2, add, ALUout3,
ldMAR;
! itanje operanda za sva memorijska adresiranja!
madr20 brSTJADR, madr29;
madr21 M38;
! RD;
madr22 brOBI, madr22;
madr23 M64, M52, M22;
! MDRout1, ldDH, incMAR;
madr24 M38;
! RD;
madr25 brOBI, madr25;
madr26 M64, M53;
! MDRout1, ldDL;
madr27 M13, M34, bruncnd, madr29;
! Dout3, ldB;
! Neposredno adresiranje !
madr28 M16, M34;
! IRIMADout3, ldB;
! Izvravanje operacije !
madr29 bropr;
! LD !
! Bout1, IB1_3, ldA;
madr2A M68, M18, M24;

126

madr2B
! ST !
madr2D
madr2E
madr2F
madr30
madr31
madr32
madr33
madr34
madr35
! ADD !
madr36
madr37
madr38
! AND !
madr39
madr3A
madr3B
! ASR !
madr3C
madr3D
madr3E
! BZ !
madr3F
madr40
! JMP !
madr41
! JADR !
madr42
! JSR !
madr43
madr44
madr45
madr46
madr47
madr48
madr49
! RTI !
madr4A
madr4B
madr4C
madr4D
madr4E
! RTS !
madr4F
madr50
madr51
madr52
madr53

M45, M17, M26, bruncnd, madr59; ! Aout2, IB2_3, wrR;


M65, M18, M24, brregdir, madr35; ! Rout1, IB1_3, ldA;
M46, M61, M51;
! AHout2, mxMDR, ldMDR;
M37;
! WR;
brOBI, madr30;
M45, M61, M51, M22;
! Aout2, mxMDR, ldMDR, incMAR;
M37;
! WR;
brOBI, madr33;
bruncnd, madr59;
M45, M17, M58, M26, bruncnd, madr59; ! Aout2, IB2_3, mxRA, wrR;
M65, M18, M24;
! Rout1, IB1_3, ldA;
M45, M68, M3A, M12, M24;
! Aout2, Bout1, add, ALUout3, ldA;
M45, M17, M26, bruncnd, madr59; ! Aout2, IB2_3, wrR;
M65, M18, M24;
! Rout1, IB1_3, ldA;
M45, M68, M3B, M12, M24;
! Aout2, Bout1, and, ALUout3, ldA;
M45, M17, M26, bruncnd, madr59; ! Aout2, IB2_3, wrR;
M65, M18, M24;
! Rout1, IB1_3, ldA;
M45, M62, M3C, M12, M24;
! Aout2, IB2_1, asr, ALUout3, ldA;
M45, M17, M26, bruncnd, madr59; ! Aout2, IB2_3, wrR;
brnotPSWZ, madr59;
M41, M67, M3A, M12, M25, bruncnd, madr59; ! PCout2, IRBPout1, add,
ALUout3, ldPC;
M15, M25, bruncnd, madr59;

! IRJAout3, ldPC;

M14, M25, bruncnd, madr59;

! MARout3, ldPC;

M11, M21, M32, M41, M61, M51;

! SPout3, ldMAR, decSP, PCout2, mxMDR,


ldMDR;
! WR;

M37;
brOBI, madr45;
M11, M21, M32, M42, M61, M51;
M37;
brOBI, madr48;
M15, M25, bruncnd, madr59;

! SPout3, ldMAR, decSP, PCHout2, mxMDR,


ldMDR;
! WR;
! IRJAout3, ldPC;

M31;
M11, M21;
M38;
brOBI, madr4D;
M64, M23;

! incSP;
! SPout3, ldMAR;
! RD;

M31;
M11, M21;
M38;
brOBI, madr52;
M64, M52, M33;

! incSP;
! SPout3, ldMAR;
! RD;

! MDRout1, ldPSW;

! MDRout1, ldDH, incSP;


127

madr54 M11, M21;


madr55 M38;
madr56 brOBI, madr56;
madr57 M64, M53;
madr58 M13, M25;
! Opsluivanje prekida !
madr59 brnotPREKID, madr00;
madr5A M11, M21, M32, M41, M61, M51;
madr5B
madr5C
madr5D

M37;
brOBI, madr5C;
M11, M21, M32, M42, M61, M51;

madr5E
madr5F
madr60

M37; ! WR;
brOBI, madr5F;
M11, M21, M32, M43, M61, M51;

madr61
madr62
madr63
madr64
madr65
madr66
madr67
madr68
madr69
madr6A
madr6B

M37; ! WR;
brOBI, madr62;
M39; ! slBRU;
M66, M44, M3A, M12, M21;
M38; ! RD;
brOBI, madr66;
M64, M52, M22;
M38; ! RD;
brOBI, madr69;
M64, M53;
M13, M25, bruncnd, madr00;

! SPout3, ldMAR;
! RD;
! MDRout1, ldDL;
! Dout3, ldPC;

! SPout3, ldMAR, decSP, PCout2, mxMDR,


ldMDR;
! WR;
! SPout3, ldMAR, decSP, PCHout2, mxMDR,
ldMDR;

! SPout3, ldMAR, decSP, PSWout2, mxMDR,


ldMDR;

! IVTPout1, BRUout2, add, ALUout3, ldMAR;

! MDR1out, ldDH, incMAR;

! MDR1out, ldDL;
! Dou3, ldPC;

Slika 129 Mikroprogram za upravljaku jedinicu mikroprogramske realizacije sa meovitim


kodiranjem signala i jednim tipom mikroinstrukcija
) Upravljaka jedinica mikroprogramske realizacije sa meovitim kodiranjem signala i
jednim tipom mikroinstrukcija (slika 114) ima istu strukturu i isti nain generisanja
upravljakih signala operacione i upravljake jedinice kao i upravljaka jedinica iz zadataka
1.3.

128

signali logikih uslova

imm

regdir
16

memind

RTS

LD
ST

144424443
4F

regindpom

144424443
signali logikih uslova

generisanje
nove
vrednosti
mikroprogramskog
brojaa

...

KMOPR

KMADR

2A 2C

144424443
opr7...0
8
3

8
2

MP

1F

17

28

144424443
8 adr7...0
CW28...35

8
1

0 S
0

bradr
bropr

S1

CLKmPC

mPC7...0

bradr
bropr
bruncnd
brcnd

ld
INC inc
LD

mPC

CLK

mikroprogramski
broja

mikroprogramska
memorija

mMEM

WR

36

...

23

24

...

27

...

28

35

LD

CLKCW

prihvatni
registar
mikroinstrukcije

CW35
CW0 CW23CW123
CW27CW123
28
24
123
4
24
8
...

...

signali logikih uslova

144424443

...

generisanje
upravljakih
signala
operacione
jedinice

l3_arlogshpr

OBI
generisanje
upravljakih
signala
upravljake
jedinice

l1
l2_brn

l2_arlogshpr

STJADR
regdir
PSWZ

l3_jmp

PREKID

144424443
signali logikih uslova

CLK

CW

brcnd

bruncnd

bropr

bradr

...

BRUout2

IB2_3

PCout2

...
generisanje
upravljakih
signala

Slika 130 Struktura upravljake jedinice


Upravljaki signali operacione jedinice se generiu na sledei nain:
ldMAR = CW4 CW5 CW6 CW7
incPC = CW8 CW9 CW10 CW11
IB1_2 = CW12 CW13 CW14 CW15
Na identian nain se generiu i preostali upravljaki signali operacione jedinice.

129

Upravljaki signali upravljake jedinice se generiu na sledei nain:


bradr = CW24 CW25 CW26 CW27
bropr = CW24 CW25 CW26 CW27
bruncnd = CW24 CW25 CW26 CW27
brcnd = brOBIOBI+brl1l1+brl2_brnl2_brn+brl2_arlogshpr l2_arlogshpr +
brl3_jmp l3_jmp+brl3_arlogshprl3_arlogshpr+brSTJADR TJADR+
brregdirregdir+brnotPSWZ PSWZ +brnotPREKID PREKID
brOBI = CW24 CW25 CW26 CW27
brl1 = CW24 CW25 CW26 CW27
brl2_brn = CW24 CW25 CW26 CW27
brl2_arlogshpr = CW24 CW25 CW26 CW27
brl3_jmp = CW24 CW25 CW26 CW27
brl3_arlogshpr = CW24 CW25 CW26 CW27
brSTJADR = CW24 CW25 CW26 CW27
brregdir = CW24 CW25 CW26 CW27
brnotPSWZ = CW24 CW25 CW26 CW27
brnotPREKID = CW24 CW25 CW26 CW27
Pri generisanju signala brcnd koristi se sledei signali logikih uslova koji dolaze iz
operacione jedinice i to: OBI, l1, l2_brn, l2_arlogshpr, l3_jmp, l3_arlogshpr, STJADR,
regdir, PSWZ i PREKID .

130

1.9 ZADATAK
Posmatra se deo raunara koji ine memorija i procesor.
Memorija je kapaciteta 216 bajtova. irina memorijske rei je 1 bajt.
U procesoru od programski dostupnih registara postoji registar programskog brojaa PC
duine dva bajta, registri opte namene R[0] do R[3] duine dva bajta, programska statusna
re PSW duine jedan bajt koja sadri samo indikator Z, ukaziva na vrh steka SP duine 2
bajta, registar broja ulaza u tabelu sa adresama prekidnih rutina BRU duine 2 bajta i ukaziva
na tabelu sa adresama prekidnih rutina IVTP duine 2 bajta.
Podaci su celobrojne veliine bez znaka duine dva bajta. Podaci u memoriji zauzimaju
dve susedne memorijske lokacije, pri emu se stariji bajt nalazi na nioj lokaciji a mlai bajt
na vioj lokaciji.
Procesor je sa dvoadresnim formatom instrukcija. Oba operanda su nezavisno specificirana
adresnim delom instrukcije. Instrukcije su promenljive duine od jednog do est bajtova.
Bitovi prvog bajta su oznaeni sa 47 do 40, drugog bajta sa 39 do 32, treeg bajta sa 31 do 24,
etvrtog bajta sa 23 do 16, petog bajta sa 15 do 8 i estog bajta sa 7 do 0. Struktura instrukcija
je definisana na nain dat u daljem tekstu.
Bit 7 prvog bajta instrukcije ima vrednost 0 za instrukcije skoka, pri emu bit 6 prvog bajta
instrukcije ima vrednost 0 za instrukcija uslovnog skoka i 1 za instrukcije bezuslovnog skoka.
Instrukcija uslovnog skoka je instrukcija uslovnog skoka ukoliko je rezultat nula (BZ).
Bitovima 5 do 0 prvog bajta instrukcije specificira kod operacije za instrukcije uslovnog
skoka. Na osnovu toga je za instrukciju BZ usvojen kod operacije 00000000. Instrukcija BZ
se realizuje kao relativni skok u odnosu na tekuu vrednost programskog brojaa PC, a
pomeraj je 8-mo bitna celobrojna veliina sa znakom data drugim bajtom instrukcije. Duina
instrukcije je dva bajta. Instrukcije bezuslovnog skoka su instrukcija bezuslovnog skoka
(JMP) i instrukcija skoka na potprogram (JSR). Bitovima 5 do 0 prvog bajta instrukcije se
specificira kod operacije za instrukcije bezuslovnog skoka. Na osnovu toga su za instrukcije
JMP i JSR usvojeni kodovi operacija 01000000 i 01000001, respektivno. Instrukcije JMP i
JSR se realizuju kao apsolutni skokovi, a adresa skoka je data drugim i treim bajtom
instrukcije, pri emu je stariji bajt adrese skoka dat drugim bajtom instrukcije a mlai bajt
adrese skoka treim bajtom instrukcije. Duina instrukcija je tri bajta.
Bit 7 prvog bajta instrukcije ima vrednost 1 za bezadresne i adresne instrukcije, pri emu
bit 6 prvog bajta instrukcije ima vrednost 0 za bezadresne instrukcije i 1 za adresne
instrukcije. Bezadresne instrukcije su instrukcija povratka iz potprograma (RTS) i instrukcija
povratka iz prekidne rutine (RTI). Bitovima 5 do 0 prvog bajta instrukcije specificira se kod
operacije za bezadresne instrukcije. Na osnovu toga su za instrukcije RTS i RTI usvojeni
kodovi operacija 10000000 i 10000001, respektivno. Duina instrukcija je jedan bajt. Adresne
instrukcije su instrukcija prenosa drugog operanda u prvi operand (LD), instrukcija prenosa
prvog operanda u drugi operand (ST), aritmetika instrukcija sabiranja prvog i drugog
operanda i smetanja rezultata u prvi operand (ADD), logika instrukcija I operacije prvog i
drugog operanda i smetanja rezultata u prvi operand (AND), instrukcija bezuslovnog skoka
na sraunatu adresu na osnovu specificirane adrese prvim operandom (JADR) i instrukcija
aritmetikog pomeranja udesno za jedno mesto drugog operanda i prenosa u prvi operand
(ASR). Bitovima 5 do 0 prvog bajta instrukcija specificira se kod operacije za adresne
instrukcije. Na osnovu toga su za instrukcije LD, ST, ADD, AND, JADR i ASR usvojeni
kodovi operacija 11000000, 11000001, 11000010, 11000011, 11000100 i11000101,
respektivno.

131

Naini adresiranja se za adresne instrukcije specificiraju bitovima 7 i 6 drugog bajta


instrukcije za prvi operand, a bitovima 3 i 2 za drugi operand i to na sledei nain: 00registarsko direktno adresiranje (regdir), 01-memorijsko indirektno adresiranje (memind), 10registarsko indirektno sa pomerajem adresiranje (regindpom) i 11-neposredno adresiranje
(imm). U sluaju regdir adresiranja koristi se neki od registara opte namene R[0] i R[3]
specificiran bitovima 5 i 4 za prvi operand i bitovima 1 i 0 za drugi operand. Ostali bajtovi
instrukcije postoje ukoliko to zahtevaju specificirani naini adresiranja prvog i drugog
operanda. Pri tome prvo ide jedan (regindpom) ili dva (memind, imm) bajta prvog a zatim
drugog operanda. Kod memind adresiranja dva bajta instrukcije sadre adresu memorijske
lokacije, pri emu je stariji bajt adrese dat prvim bajtom a mlai bajt adrese drugim bajtom.
Kod memorijskog indirektnog adresiranja adresa duine 16 bita zauzima dve susedne
memorijske lokacije, pri emu je stariji bajt adrese nalazi na nioj a mlai bajt adrese na vioj
lokaciji. Bitovi 5 i 4 za prvi operand i bitovi 1 i 0 za drugi operand drugog bajta instrukcije se
ne koriste. Kod regindpom adresiranja jedan bajt instrukcije sadri 8 bitni pomeraj koji je dat
kao celobrojna veliina sa znakom. Jedan od registara opte namene R[0] do R[3] koji se
koristi specificiran je bitovima 5 i 4 za prvi operand i bitovima 1 i 0 za drugi operand. Kod
imm adresiranja dva bajta instrukcije sadre 16-to bitni podatak, pri emu je stariji bajt
podatka dat prvim bajtom a mlai bajt podatka drugim bajtom. Bitovi 5 i 4 za prvi operand i
bitovi 1 i 0 za drugi operand drugog bajta instrukcije se ne koriste.
Duina adresnih instrukcija je dva do est bajtova i zavisi od specificiranih naina
adresiranja operanada. Duina instrukcije je dva bajta ukoliko se za oba operanda koristi
regdir adresiranje. Duina instrukcije je tri bajta ukoliko se za jedan od dva operanda koristi
regdir adresiranje, a za drugi operand regindpom adresiranje. Duina instrukcije je etiri bajta
ukoliko se za oba operanda koristi regindpom adresiranje ili ukoliko se za jedan od dva
operanda koristi regdir adresiranje, a za drugi operand memind ili imm adresiranje. Duina
instrukcije je pet bajtova ukoliko se za jedan od dva operanda koristi regindpom adresiranje, a
za drugi operand memind ili imm adresiranje. Duina instrukcije je est bajtova ukoliko se za
dva operanda koristi neka od kombinacija memind ili imm adresiranja.
Nema provere na greku koda operacije i naina adresiranja i nema odgovarajuih
unutranjih prekida. Od prekida jedino postoje spoljanji prekidi koji dolaze od
ulazno/izlaznih ureaja. Broj linije najvieg prioriteta po kojoj je stigao zahtev za prekid
nalazi se u binarnom obliku u registru BRU duine dva bajta i predstavlja broja ulaza u tabelu
sa adresama prekidnih rutina. Adrese su duine 16 bita zauzimaju po dve susedne memorijske
lokacije, pri emu se stariji bajt adrese nalazi na nioj lokaciji a mlai bajt adrese na vioj
lokaciji. Poetna adresa tabele sa adresama prekidnih rutina se nalazi u registru IVTP. U
okviru hardverskog dela opsluivanja zahteva za prekid na stek sa stavljaju samo registri PC i
PSW.
Stek raste prema niim memorijskim lokacijama, a registar SP ukazuje na prvu slobodnu
memorijsku lokaciju.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa direktnim vezama.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
meovitim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i meovitim
kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje upravljakih
132

signala i to za upravljake signale operacione jedinice ldMAR, incPC i RD, i sve upravljake
signale upravljake jedinice kojima se upravlja mikroprogramskim brojaem.
REENjE
a) U procesoru se koriste sledei formati instrukcija:

133

1. Bezadresne instrukcije (RTS, RTI)


47 46 45 44 43 42 41 40

10

OC

Slika 131 Bezadresne instrukcije


Poljem OC se specificira kod operacije koja se izvrava.
2. Instrukcije uslovnog skoka (BZ)
47 46 45 44 43 42 41 40

00

OC

39 38 37 36 35 34 33 32

BP

Slika 132 Instrukcije uslovnog skoka


Poljem OC se specificira kod operacije koja se izvrava, a poljem BP 8-mo bitni pomeraj
kao celobrojna veliina sa znakom koji se sabira sa PC da bi se dobila adresa skoka.
3. Instrukcije bezuslovnog skoka (JMP, JSR)
47 46 45 44 43 42 41 40

01

OC

39 38 37 36 35 34 33 32

31 30 29 28 27 26 25 24

JAH
I

JAL
I

Slika 133 Instrukcije bezuslovnog skoka

Poljem OC se specificira kod operacije koja se izvrava, a poljima JAH i JAL 8 starijih i 8
mlaih bitova 16-to bitne adrese skoka.
4. Adresne instrukcije (JADR)
47 46 45 44 43 42 41 40

39 38 37 36 35 34 33 32

10

A1 R1 -

OC

31 30 29 28 27 26 25 24

23 22 21 20 19 18 17 16

APADH

ADL

Slika 134 Jednoadresne instrukcije


Poljem OC se specificira kod operacije jednoadresne instrukcije JADR i poljem A1
memind ili regindpom adresiranje. Pretpostavlja sa da se u instrukciji JADR ne koriste regdir
ili imm adresiranja. Bitovi 35 do 32 se ne koriste. U sluaju memind adresiranja polje R1 se
ne koristi, dok APADH i ADL predstavljaju 8 starijih i 8 mlaih bitova 16-to bitne adrese
memorijske lokacije. U sluaju regindpom adresiranja polje R1 specificira jedan od 4 registra
opte namene R[0] do R[3], APADH predstavlja 8-to bitni pomeraj kao celobrojnu veliinu sa
znakom, dok polje ADL ne postoji.
Adresne instrukcije (LD, ST, ADD, AND, ASR)
47 46 45 44 43 42 41 40

39 38 37 36 35 34 33 32

31 30 29 28 27 26 25 24

23 22 21 20 19 18 17 16

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

11

A1 R1 A2 R2

A P A D I MH 1

AD I ML 1

A P A D I MH 2

AD I ML 2

OC

Slika 135 Dvoadresne instrukcije


Poljem OC se specificira kod operacije dvoadresne instrukcije. Poljem A1 se specificira
adresiranje za prvi operand i to dirreg, memind, regindpom i imm adresiranje. Pretpostavlja sa
da se u instrukcijama LD, ADD, AND i ASR ne koristi imm adresiranje. U sluaju dirreg
adresiranja poljem R1 se specificira jedan od 4 registra opte namene R[0] do R[3], dok polja
APADIMH1 i ADIML1 ne postoje. U sluaju memind adresiranja polje R1 se ne koristi, dok
se polja APADIMH1 i ADIML1 predstavljaju 8 starijih i 8 mlaih bitova 16-to bitne adrese
memorijske lokacije. U sluaju regindpom adresiranja polje R1 specificira jedan od 4 registra
opte namene R[0] do R[3], APADIMH1 predstavlja 8-mo bitni pomeraj kao celobrojnu
veliinu sa znakom, dok polje ADIML1 se ne postoji. U sluaju imm adresiranja polje R1 se
ne koristi, dok polja APADIMH1 i ADIML1 predstavljaju 8 starijih i 8 mlaih bitova 16-to
134

bitne neposredne veliine. Na isti nain se poljima A2, R2, APADIMH2 i ADIML2 specificira
drugi operand. Pretpostavlja ss da se u instrukciji ST ne koristi imm adresiranje.
b) Jedna realizacija strukturne eme operacione jedinice sa direktnim vezama je data na
slikama 136 i 137. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.
BUS
144444444444444444424444444444444444443

ABUS15...0

RD
WR

RD
WR

DBUS7..0

RDBUS

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

A15..0

MAR15..0

MDR7..0

ldMAR LD
MAR CLK
incMAR INC
mxMAR0
mxMAR1
mxMAR2

0
1
2 0

PC15..0
R15..0
IR31..16
D15..0

mxMDR0
mxMDR1
mxMDR2

IR15..0

AA15..0
SP15..0
ALU15..0

MDR CLK

LD

ldMDR

mxMAR
1

OBI

OBI

0
1
2 0

mxMDR
1

A15..8
A7..0
PC7..0

PSW7..0
PC15..8

AA15..0
ldAA LD

CLK

AA

MAR15..0
PC15..0
incPC INC
ldPC LD

MDR7..0
ldIR1 LD IR1 CLK

ldIR2 LD IR2 CLK

IR47..40

IR39..32

PC CLK

mxPC0 0
mxPC
mxPC1 1 0 1 2 3
IR39..24
D15..0
MAR15..0
ALU15..0

MDR7..0

INC
DEC

SP

MDR7..0

ldIR3 LD IR3 CLK

ldIR4 LD IR4 CLK

IR31..24

IR23..16

SP15..0
incSP
decSP

MDR7..0

MDR7..0

MDR7..0

LD
CLK

ldIR5 LD IR5 CLK

ldIR6 LD IR6 CLK

IR15...8

IR7..0

PSW7..0
ldPSW LD
mxPSW
MDR7..0

PSW CLK
0

MDR7..0

MDR7..0

mxPSW
1

ldDH LD

formiranje
indikatora

D CLK
D15...8

Slika 136 Operaciona jedinica (prvi deo)

135

ldDL LD

D CLK
D7...0

ALU15...0
ALU

A15...0

mxX1
mxX0

1
0

B15...0

mxY2 2
mxY1 1
mxY
mxY0 0 0 1 2 3 4 5 6 7
B15..0
IR31..31.IR31..24
IR15..15.IR15..8
BRU15...0
IR39..39.IR39..32

mxX

A15...0
R15...0

add
and
asr

PC15...0
IVTP15...0
A15..0

ldA LD
mxA1
mxA0

1
0

B15..0

A CLK
mxB1
mxB0

mxA
0

ALU15..0
B15...0

R15...0
D15..0

1
0

ldB

mxB
0

R15..0
D15...0

IR37.36 IR33.32
mxRA

LD
CLK

IR15..0
IR31..16

CLK
IVTP
LD

mxRA 0

A15..0

IVTP15..0

DI15...0
A1..0

formiranje BRU
WR

wrR
CLK
LD

DO15...0

BRU

R15..0

IL
SL

0
slBRU

BRU15..0

Slika 137 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, generiu se
prema izrazima datim na slikama 11, 12 i 13, respektivno.
RTS = IR 47 IR 46 IR 45 IR 44 IR 43 IR 42 IR 41 IR 40
RTI = IR 47 IR 46 IR 45 IR 44 IR 43 IR 42 IR 41 IR 40
LD = IR 47 IR 46 IR 45 IR 44 IR 43 IR 42 IR 41 IR 40
ST = IR 47 IR 46 IR 45 IR 44 IR 43 IR 42 IR 41 IR 40
ADD = IR 47 IR 46 IR 45 IR 44 IR 43 IR 42 IR 41 IR 40
AND = IR 47 IR 46 IR 45 IR 44 IR 43 IR 42 IR 41 IR 40
JADR = IR 47 IR 46 IR 45 IR 44 IR 43 IR 42 IR 41 IR 40
ASR = IR 47 IR 46 IR 45 IR 44 IR 43 IR 42 IR 41 IR 40
BZ = IR 47 IR 46 IR 45 IR 44 IR 43 IR 42 IR 41 IR 40
JMP = IR 47 IR 46 IR 45 IR 44 IR 43 IR 42 IR 41 IR 40
JSR = IR 47 IR 46 IR 45 IR 44 IR 43 IR 42 IR 41 IR 40
LD_ASR= LD+ASR
LD_ASR_JADR = LD+ASR+JADR
Slika 138 Signali operacija

136

regdir1 = IR 39 IR 38
memind1 = IR 39 IR 38
regindpom1 = IR 39 IR 38
imm1 = IR 39 IR 38
regdir2 = IR 33 IR 32
memind2 = IR 33 IR 32
regindpom2 = IR 33 IR 32
imm2 = IR 33 IR 32
Slika 139 Signali naina adresiranja
l1 = RTS+RTI
l2_brn= BZ
arlogshpr = LD+ST+ADD+AND+JADR+ASR
Slika 140 Signali duina instrukcija

137

g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka je data na slici 141.
! itanje instrukcije !
! itanje prvog bajta instrukcije koji predstavlja kod operacije !
step00 ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 ldIR1;
step04 br (if l1 then step51);
! prelazak na fazu izvravanje operacije za bezadresne
instrukcije !
! itanje drugog bajta instrukcije koji predstavlja 8-bitni pomeraj za instrukcije uslovnog skoka, vii
bajt 16-bitne adrese za instrukcije bezuslovnog skoka i bajt sa specifikacijom adresiranja oba
operanda za arlogshpr instrukcije (aritmetike instrukcije, logike instrukcije, pomerake instrukcije
i instrukcije prenosa). !
step05 ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 ldIR2, br (if l2_brn then step51); ! prelazak na fazu izvravanje operacije za
instrukcije uslovnog skoka !
step09 br (if arlogshpr then step10);
! prelazak na itanje bajtova arlogshpr instrukcija !
! itanje treeg bajta instrukcije koji predstavlja nii bajt 16-bitne adrese instrukcija bezuslovnog
skoka. !
step0A ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D ldIR3, br step51;
! prelazak na fazu izvravanje operacije za
instrukcije bezuslovnog skoka !
! itanje preostalih bajtova za prvi operand arlogshpr instrukcija. Saglasno specificiranom nainu
adresiranja za prvi operand nema itanja za regdir adresiranje, dok se ita jedan bajt koji predstavlja
8-mo bitni pomeraj za regindpom adresiranje i dva bajta koji predstavljaju 16-to bitnu adresu za
memind adresiranje i 16-to bitni operand za imm adresiranje. !
step10 br (if regdir1 then step1A);
! prelazak na itanje bajtova drugog operanda
ukoliko je regdir adresiranje !
step11 ldMAR, incPC;
step12 RD;
step13 br (if OBI then step13);
step14 ldIR3, br (if regindpom1 then step19); ! prelazak na proveru za instrukciju JADR ukoliko
je regindpom adresiranje !
step15 ldMAR, incPC;
step16 RD;
step17 br (if OBI then step17);
step18 ldIR4;
step19 br (if JADR then step25);
! prelazak na fazu formiranje adrese i itanje
prvog operanda za jednoadresnu instrukciju
bezuslovnog skoka na sraunatu adresu (JADR) !
! itanje preostalih bajtova za drugi operand arlogshpr instrukcija. Saglasno specificiranom nainu
adresiranja za drugi operand nema itanja za registarsko direktno adresiranje, dok se ita jedan bajt
koji predstavlja 8-mo bitni pomeraj za registarsko indirektno sa pomerajem adresiranje i dva bajta koji
predstavljaju 16-to bitnu adresu za memorijsko indirektno adresiranje i 16-to bitni operand za

138

neposredno adresiranje. !
step1A br (if regdir2 then step25);

! prelazak na fazu formiranje adrese i itanje


prvog operanda ukoliko je regdir adresiranje !

step1B ldMAR, incPC;


step1C RD;
step1D br (if OBI then step1D);
step1E ldIR5, br (if regindpom2 then step25);

! prelazak na fazu formiranje adrese i


itanje prvog operanda ukoliko je regindpom
adresiranje !

step1F ldMAR, incPC;


step20 RD;
step21 br (if OBI then step21);
step22 ldIR6, br step25;
! Formiranje adrese i itanje prvog operanda !
! Prvi operand prvo u B, pa iz B u A. !
step25 br (case (regdir1, memind1, regindpom1, imm1)
then
(regdir1, step26), (memind1, step28), (regindpom1, step30), (imm1, step39));
! Registarsko direktno adresiranje !
step26 br (if LD_ASR then step3C); ! Za LD i ASR nema itanje prvog operanda iz registra opte
namene (u fazi izvravanje operacije upis drugog operanda u
registar opte namene prvog operanda), pa prelazak na fazu
formiranje adrese i itanje drugog operanda. !
step27 ldB, br step3A;
! Memorijsko indirektno adresiranje !
step28 mxMAR1, ldMAR;
step29 RD;
step2A br (if OBI then step2A);
step2B ldDH, incMAR;
step2C RD;
step2D br (if OBI then step2D);
step2E ldDL;
step2F mxMAR1, mxMAR0, ldMAR, br step31;
! Registarsko indirektno sa pomerajem adresiranje !
step30 mxX0, mxY0, add, mxMAR2, ldMAR;
! itanje operanda !
step31 ldAA, br (if LD_ASR_JADR then step3B); ! uvanje adrese prvog operanda iz MAR u AA.
Za LD, ASR i JADR nema itanje prvog operanda iz
memorije (u fazi izvravanje operacije upis drugog operanda u
memoriju na adresi prvog operanda sauvanoj u AA za LD i
ASR, i upis sraunate adreses skoka iz MAR u PC za JADR. !
step32 RD;
step33 br (if OBI then step33);
step34 ldDH, incMAR;
step35 RD;
step36 br (if OBI then step36);
step37 ldDL;
step38 mxB0, ldB, br step3A;
! Neposredno adresiranje !
step39 mxB1, ldB;
! Prvi operand iz B u A !
step3A mxA0, ldA;
! prelazak na fazu izvravanje operacije za jednoadresnu
step3B br (if JADR then step51);
instrukciju bezuslovnog skoka na sraunatu adresu (JADR). !

139

! Formiranje adrese i itanje drugog operanda !


! Drugi operand u B. !
step3C br (case (regdir2, memind2, regindpom2, imm2)
then
(regdir2, step3D), (memind2, step3F), (regindpom2, step47), (imm2, step50));
! Registarsko direktno adresiranje !
step3D br (if ST then step51);
! Za ST nema itanja drugog operanda iz registra opte
namene (u fazi izvravanje operacije upis prvog operanda u
registar opte namene), pa prelazak na fazu izvravanje
operacije. !
step3E mxRA, ldB, br step51;
! Memorijsko indirektno adresiranje !
step3F mxMAR2, mxMAR1, mxMAR0, ldMAR;
step40 RD;
step41 br (if OBI then step41);
step42 ldDH, incMAR;
step43 RD;
step44 br (if OBI then step44);
step45 ldDL;
step46 mxMAR1, mxMAR0, ldMAR, br step48;
! Registarsko indirektno sa pomerajem adresiranje !
step47 mxRA, mxX0, mxY2, add, mxMAR2, ldMAR;
! itanje operanda !
! Za ST nema itanja drugog operanda iz memorije (u fazi
step48 br (if ST then step51);
izvravanje operacije upis prvog operanda u memoriju na
adresi koja je u MAR), pa prelazak na fazu izvravanje
operacije. !
step49 RD;
step4A br (if OBI then step4A);
step4B ldDH, incMAR;
step4C RD;
step4D br (if OBI then step4D);
step4E ldDL;
step4F mxB0, ldB, br step51;
! Neposredno adresiranje !
step50 mxB1, mxB0, ldB;
! Izvravanje operacije !
step51 br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step53), (ST, step5D), (ADD, step66), (AND, step67), (ASR, step68),
(BZ, step6A), (JMP, step6C), (JADR, step6D), (JSR, step6E),
(RTI, step75), (RTS, step7A));
! LD !
! Upis drugog operanda u prvi operand. !
step53 mxA0, ldA;
! Drugi operand iz B u A. !
step54 br (if regdir1 then step5C);
! Upis u memoriju. !
step55 mxMAR2, mxMAR1, ldMAR, mxMDR0, ldMDR ; ! Sauvana adresa prvog operanda iz
AA u MAR i stariji bajt iz A15..8 u MDR. !
step56 WR;
step57 br (if OBI then step57);
step58 mxMDR1, ldMDR, incMAR;
! Mlai bajt iz A7..0 u MDR i inkrementiranje MAR. !
step59 WR;

140

step5A br (if OBI then step5A);


step5B br step84;
! Upis u registar opte namene. !
step5C wrR, br step84;
! ST !
! Upis prvog operanda u drugi operand. !
step5D br (if regdir2 then step65);
! Upis u memoriju. !
! Adresa je u MAR, a stariji bajt iz A15..8 u MDR. !
step6E mxMDR0, ldMDR;
step5F WR;
step60 br (if OBI then step60);
step61 mxMDR1, ldMDR, incMAR;
! Mlai bajt iz A7..0 u MDR i inkrementiranje MAR. !
step62 WR;
step63 br (if OBI then step63);
step64 br step84;
! Upis u registar opte namene. !
step65 mxRA, wrR, br step84;
! ADD !
step66 add, ldA, br step54;
! AND !
step67 and, ldA, br step54;
! ASR !
step68 mxA0, ldA;
! Drugi operand iz B u A. !
step69 asr, ldA, br step54;
! BZ !
step6A br (if PSWZ then step84);
step6B mxX1, mxX0, mxY1, mxY0, add, mxPC1, ldPC, br step84;
! JMP !
step6C ldPC, br step84;
! JADR !
step6D mxPC0, ldPC, br step84;
! JSR !
step6E mxMAR2, mxMAR0, ldMAR, decSP, mxMDR1, mxMDR0, ldMDR;
step6F WR;
step70 br (if OBI then step70);
step71 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, ldMDR;
step72 WR;
step73 br (if OBI then step73);
step74 ldPC, br step84;
! RTI !
step75 incSP;
step76 mxMAR2, mxMAR0, ldMAR;
step77 RD;
step78 br (if OBI then step78);
step79 ldPSW;
! RTS !
step7A incSP;
step7B mxMAR2, mxMAR0, ldMAR;
step7C RD;
step7D br (if OBI then step7D);
step7E ldDH, incSP;
step7F mxMAR2, mxMAR0, ldMAR;
step80 RD;
141

step81 br (if OBI then step81);


step82 ldDL;
step83 ldPC, mxPC0, mxPC1;
! Opsluivanje prekida !
step84 br (if PREKID then step00);
step85 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR0, mxMDR1, ldMDR;
step86 WR;
step87 br (if OBI then step87);
step88 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, ldMDR;
step89 WR;
step8A br (if OBI then step8A);
step8B mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, mxMDR0, ldMDR;
step8C WR;
step8D br (if OBI then step8D);
step8E slBRU;
step8F mxX1, mxY1, add, mxMAR2, ldMAR;
step90 RD;
step91 br (if OBI then step91);
step92 ldDH, incMAR;
step93 RD;
step94 br (if OBI then step94);
step95 ldDL;
step96 mxPC1, mxPC0, ldPC, br step00;

Slika 141 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) Mikroprogram se formira na nain dat pod d) u reenju zadataka 1.3 i 1.8.
) Upravljaka jedinica se realizuje na nain dat pod ) u reenju zadataka 1.3 i 1.8.

142

1.10 ZADATAK
Posmatra se deo raunara iz zadatka 1.9.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa jednom internom magistralom.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
horizontalnim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i
horizontalnim kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje
upravljakih signala i to za upravljake signale operacione jedinice ldMAR, incPC i RD, i sve
upravljake signale upravljake jedinice kojima se upravlja mikroprogramskim brojaem.
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.9.
b) Jedna realizacija strukturne eme operacione jedinice sa jednom internom magistralom
je data na slikama 142 i 143. Operaciona jedinica sadri sve programski dostupne registre,
odreen broj pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs
sistemske magistrale.

143

BUS
144444444444444444424444444444444444443

ABUS15..0

IB15..0

IB15..0

RD
WR
MARout

RD
WR

DBUS7..0

A15..0

RDBUS

WRBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

OBI

OBI
MDRout

MAR15..0
ldMAR
incMAR

FCBUS

LD

MAR

INC

MDR7..0

CLK

MDR

LD

ldMBR

CLK

mxMDR 0 mxMDR
0
1

IB7..0
IB7..0
IB7..0
IB15..0

IB7..0
AAout
AA15..0
ldAA LD

AA CLK

IB15..0

IB15..0
IB15..0

IB15..0
IB7..0

IR47..40

IR39..32

ldIR3 LD IR3 CLK

ldIR4 LD IR4 CLK

IR31..24

IR23..16

ldIR5 LD IR5 CLK

ldIR6 LD IR6 CLK

PCHout
PCout

PC15...8

IB7..0

PC15..0
incPC INC
ldPC LD

PC CLK

IR15..8

IB7..0
ldDH LD

SPout
SP15..0
LD
incSP INC
SP
CLK
decSP DEC

PSWout
PSW7..0
PSW CLK

mxPSW 0 mxPSW
0

formiranje
indikatora

IR7..0

D CLK

ldDL LD

D15..8

IB15..0
IB15..0
IB15..0
IB15..0
IB15..0

D CLK
D7..0

Dout

IB15..0
IB15..0

ldPSW LD

IB7..0

ldIR2 LD IR2 CLK

IB7..0

IB15..0
IB7..0

ldIR1 LD IR1 CLK

IRBPout
IR39..39.IR39..32

D15...0

IRAP2out
IR15..15.IR15..8
IRAP1out
IR31..31.IR31..24

Slika 142 Operaciona jedinica (prvi deo)

144

IRJAout
IR39..24
IRIMAD2out
IR15...0
IRIMAD1out
IR31..16

ALUout

IB15..0

ALU15..0
A15...0

ldX

LD

ALU

ldY

CLK

add
and
asr

B15...0

LD

CLK

IB15..0
Bout

IB15..0
AHout

IB7..0

A15..8
Aout

IB15..0

B15..0

A15..0
ldA

IB15..0

LD

IB15..0
IB5.4..1.0
IB5.4

ldR1A

CLK

LD
CLK

ldB

CLK
LD

R1A1.0
0

R2A CLK

LD

ldR2A

IVTPout

IVTP
IVTP15..0

R2A1.0
DI15...0

mxRA 0 mxRA
IB15..0

INC
DEC

IB1.0

R1A CLK

LD

incB
decB

A1.0

Rout

WR

formiranje BRU

wrR

DO15...0

R15..0

IB15..0

CLK
LD

BRUout

Slika 143 Operaciona jedinica (drugi deo)

145

BRU

IL
SL

BRU15..0

0
slBRU

v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, su dati pod v) u
reenju zadatka 1.9.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 144.
! itanje instrukcije !
! itanje prvog bajta instrukcije koji predstavlja kod operacije !
step00 PCout, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout, ldIR1;
step04 br (if l1 then step55);
! prelazak na fazu izvravanje operacije za bezadresne
instrukcije !
! itanje drugog bajta instrukcije koji predstavlja 8-bitni pomeraj za instrukcije uslovnog skoka, vii
bajt 16-bitne adrese za instrukcije bezuslovnog skoka i bajt sa specifikacijom adresiranja oba
operanda za arlogshpr instrukcije (aritmetike instrukcije, logike instrukcije, pomerake instrukcije
i instrukcije prenosa). !
step05 PCout, ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 MDRout, ldIR2, br (if l2_brn then step55); ! prelazak na fazu izvravanje operacije za
instrukcije uslovnog skoka !
step09 br (if arlogshpr then step10);
! prelazak na itanje bajtova arlogshpr instrukcija !
! itanje treeg bajta instrukcije koji predstavlja nii bajt 16-bitne adrese instrukcija bezuslovnog
skoka. !
step0A PCout, ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D MDRout, ldIR3;
step0E br step55;
! prelazak na fazu izvravanje operacije za
instrukcije bezuslovnog skoka !
! itanje preostalih bajtova za prvi operand arlogshpr instrukcija. Saglasno specificiranom nainu
adresiranja za prvi operand nema itanja za regdir adresiranje, dok se ita jedan bajt koji predstavlja
8-mo bitni pomeraj za regindpom adresiranje i dva bajta koji predstavljaju 16-to bitnu adresu za
memind adresiranje i 16-to bitni operand za imm adresiranje. !
step10 br (if regdir1 then step1A);
! prelazak na itanje bajtova drugog operanda
ukoliko je regdir adresiranje !
step11 PCout, ldMAR, incPC;
step12 RD;
step13 br (if OBI then step13);
step14 MDRout, ldIR3, br (if regindpom1 then step19); ! prelazak na proveru za instrukciju
JADR ukoliko je regindpom adresiranje !
step15 PCout, ldMAR, incPC
step16 RD;
step17 br (if OBI then step17);
step18 MDRout, ldIR4;
step19 br (if JADR then step25);
! prelazak na fazu formiranje adrese i itanje
prvog operanda za jednoadresnu instrukciju
bezuslovnog skoka na sraunatu adresu (JADR) !
! itanje preostalih bajtova za drugi operand arlogshpr instrukcija. Saglasno specificiranom nainu
adresiranja za drugi operand nema itanja za registarsko direktno adresiranje, dok se ita jedan bajt
koji predstavlja 8-mo bitni pomeraj za registarsko indirektno sa pomerajem adresiranje i dva bajta koji
predstavljaju 16-to bitnu adresu za memorijsko indirektno adresiranje i 16-to bitni operand za

146

neposredno adresiranje. !
step1A br (if regdir2 then step25); ! prelazak na fazu formiranje adrese i itanje
prvog operanda ukoliko je regdir adresiranje !
step1B PCout, ldMAR, incPC;
step1C RD;
step1D br (if OBI then step1D);
step1E MDRout, ldIR5, br (if regindpom2 then step25); ! prelazak na fazu formiranje adrese i
itanje prvog operanda ukoliko je regindpom
adresiranje !
step1F PCout, ldMAR, incPC;
step20 RD;
step21 br (if OBI then step21);
step22 MDRout, ldIR6, br step25;
! Formiranje adrese i itanje prvog operanda !
step25 br (case (regdir1, memind1, regindpom1, imm1)
then
(regdir1, step26), (memind1, step28),
(regindpom1, step30), (imm1, step3B));
! Registarsko direktno adresiranje !
step26 br (if LD_ASR then step3E); ! Za LD i ASR nema itanje prvog operanda iz registra opte
namene (u fazi izvravanje operacije upis drugog operanda u
registar opte namene prvog operanda), pa prelazak na fazu
formiranje adrese i itanje drugog operanda. !
step27 Rout, ldB, br step3C;
! Memorijsko indirektno adresiranje !
step28 IRIMAD1out, ldMAR;
step29 RD;
step2A br (if OBI then step2A);
step2B MDRout, ldDH, incMAR;
step2C RD;
step2D br (if OBI then step2D);
step2E MDRout, ldDL;
step2F Dout, ldMAR, br step33;
! Registarsko indirektno sa pomerajem adresiranje !
step30 Rout, ldX;
step31 IRAP1out, ldY;
step32 add, ALUout, ldMAR;
! itanje operanda !
step33 MARout, ldAA, br (if LD_ASR_JADR then step3D); ! uvanje adrese prvog operanda iz
MAR u AA. Za LD, ASR i JADR nema itanje prvog operanda
iz memorije (u fazi izvravanje operacije upis drugog operanda
u memoriju na adresi prvog operanda sauvanoj u AA za LD i
ASR, i upis sraunate adreses skoka iz MAR u PC za JADR. !
step34 RD;
step35 br (if OBI then step35);
step36 MDRout, ldDH, incMAR;
step37 RD;
step38 br (if OBI then step38);
step39 MDRout, ldDL;
step3A Dout, ldB, br step3C;
! Neposredno adresiranje!
step3B IRIMAD1out, ldB;
! Prvi operand iz B u A !
step3C Bout, ldA;

147

step3D br (if JADR then step55);

! prelazak na fazu izvravanje operacije za jednoadresnu


instrukciju bezuslovnog skoka na sraunatu adresu (JADR) !
! Formiranje adrese i itanje drugog operanda !
step3E br (case (regdir2, memind2, regindpom2, imm2)
then
(regdir2, step3F), (memind2, step41), (regindpom2, step49), (imm2, step54));
! Registarsko direktno adresiranje !
step3F br (if ST then step55);
! Za ST nema itanja drugog operanda iz registra opte
namene (u fazi izvravanje operacije upis prvog operanda u
registar opte namene), pa prelazak na fazu izvravanje
operacije. !
step40 mxRA, Rout, ldB, br step55;
! Memorijsko indirektno adresiranje !
step41 IRIMAD2out, ldMAR;
step42 RD;
step43 br (if OBI then step43);
step44 MDRout, ldDH, incMAR;
step45 RD;
step46 br (if OBI then step46);
step47 MDRout, ldDL;
step48 Dout, ldMAR, br step4C;
! Registarsko indirektno sa pomerajem adresiranje !
step49 mxRA, Rout, ldX;
step4A IRAP2out, ldY;
step4B add, ALUout, ldMAR;
! itanje operanda !
! Za ST nema itanja drugog operanda iz memorije (u fazi
step4C br (if ST then step55);
izvravanje operacije upis prvog operanda u memoriju na
adresi koja je u MAR), pa prelazak na fazu izvravanje
operacije. !
step4D RD;
step4E br (if OBI then step4E);
step4F MDRout, ldDH, incMAR;
step50 RD;
step51 br (if OBI then step4D);
step52 MDRout, ldDL;
step53 Dout, ldB, br step55;
! Neposredno adresiranje !
step54 IRIMAD2out, ldB;
! Izvravanje operacije !
step55 br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step56), (ST, step61), (ADD, step6A), (AND, step6D), (ASR, step70),
(BZ, step72), (JMP, step76), (JADR, step77), (JSR, step78),
(RTI, step81), (RTS, step86));
! LD !
! Upis drugog operanda u prvi operand. !
step56 Bout, ldA;
! Drugi operand iz B u A. !
step57 br (if regdir1 then step60);
! Upis u memoriju. !
step58 AAout, ldMAR;
! Sauvana adresa prvog operanda iz AA u MAR. !
step59 AHout, mxMDR, ldMDR; ! Stariji bajt iz A15..8 u MDR. !
step5A WR;

148

step5B br (if OBI then step5B);


step5C Aout, mxMDR, ldMDR, incMAR; ! Mlai bajt iz A7..0 u MDR i inkrementiranje MAR. !
step5D WR;
step5E br (if OBI then step5E);
step5F br step90;
! Upis u registar opte namene. !
step60 Aout, wrR, br step90;
! ST !
! Upis prvog operanda u drugi operand. !
step61 br (if regdir2 then step69);
! Upis u memoriju. !
step62 AHout, mxMDR, ldMDR;
! Adresa je u MAR, a stariji bajt iz A15..8 u MDR. !
step63 WR;
step64 br (if OBI then step64);
step65 Aout, mxMDR, ldMDR, incMAR; ! Mlai bajt iz A7..0 u MDR i inkrementiranje MAR. !
step66 WR;
step67 br (if OBI then step67);
step68 br step90;
! Upis u registar opte namene. !
step69 Aout, mxRA, wrR, br step90;
! ADD !
step6A Aout, ldX;
step6B Bout, ldY;
step6C add, ALUout, ldA, br step57;
! AND !
step6D Aout, ldX;
step6E Bout, ldY;
step6F and, ALUout, ldA, br step57;
! ASR !
! Drugi operand iz B u X. !
step70 Bout, ldX;
step71 asr, ALUout, ldA, br step57;
! BZ !
step72 br (if PSWZ then step90);
step73 PCout, ldX;
step74 IRBPout, ldY;
step75 add, ALUout, ldPC, br step90;
! JMP !
step76 IRJAout, ldPC, br step90;
! JADR !
step77 MARout, ldPC, br step90;
! JSR !
step78 SPout, ldMAR, decSP;
step79 PCout, mxMDR, ldMDR;
step7A WR;
step7B br (if OBI then step7B);
step7C SPout, ldMAR, decSP;
step7D PCHout, mxMDR, ldMDR;
step7E WR;
step7F br (if OBI then step7F);
step80 IRJAout, ldPC, br step90;
! RTI !
step81 incSP;
step82 SPout, ldMAR;
149

step83 RD;
step84 br (if OBI then step84);
step85 MDRout, ldPSW;
! RTS !
step86 incSP;
step87 SPout, ldMAR;
step88 RD;
step89 br (if OBI then step89);
step8A MDRout, ldDH, incSP;
step8B SPout, ldMAR;
step8C RD;
step8D br (if OBI then step8D);
step8E MDRout, ldDL;
step8F Dout, ldPC;
! Opsluivanje prekida !
step90 br (if PREKID then step00);
step91 SPout, ldMAR, decSP;
step92 PCout, mxMDR, ldMDR;
step93 WR;
step94 br (if OBI then step94);
step95 SPout, ldMAR, decSP;
step96 PCHout, mxMDR, ldMDR;
step97 WR;
step98 br (if OBI then step98);
step99 SPout, ldMAR, decSP;
step9A PSWout, mxMDR, ldMDR;
step9B WR;
step9C br (if OBI then step9C);
step9D slBRU;
step9E IVTPout, ldX;
step9F BRUout, ldY;
stepA0 add, ALUout, ldMAR;
stepA1 RD;
stepA2 br (if OBI then stepA2);
stepA3 MDRout, ldDH, incMAR;
stepA4 RD;
stepA5 br (if OBI then stepA5);
stepA6 MDRout, ldDL;
stepA7 Dout, ldPC, br step00;

Slika 144 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) Mikroprogram se formira na nain dat pod d) u reenju zadataka 1.4 i 1.5.
) Upravljaka jedinica se realizuje na nain dat pod ) u reenju zadataka 1.4 i 1.5.

150

1.11 ZADATAK
Posmatra se deo raunara iz zadatka 1.5.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa dve interne magistrale.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati sekvencu upravljakih signala po koracima za upravljaku jedinicu oiene
realizacije.
) Nacrtati strukturnu emu upravljake jedinice oiene realizacije i dati izraze za
generisanje upravljakih signala i to za upravljake signale operacione jedinice PCout,
ldMAR i incPC, i sve upravljake signale upravljake jedinice kojima se upravlja brojaem
koraka i tri signala kojima se odreuje vrednost koja treba da se upie u broja koraka..
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.9.
b) Jedna realizacija strukturne eme operacione jedinice sa dve interne magistrale je data na
slikama 145 i 146. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.

151

BUS
144444444444444444424444444444444444443

ABUS15..0

RD
WR

RD
WR

DBUS7..0

A15..0

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

OBI

OBI

MDRout2

MARou1
IB115..0

IB115..0

WRBUS

RDBUS

MAR15..0

ldMAR
incMAR

LD

MAR

INC

AAout1
IB115..0

CLK

ldAA LD

AA CLK

MDR

LD

ldMBR

CLK

mxMDR 0 mxMDR
0 1

AA15..0

IB115..0

IB27..0

PCHout2
PC15...8
PCout2

IB27..0
IB215..0

PC15..0
IB115..0

incPC INC
ldPC LD

PC

IB27..0

MDR7..0

CLK

SPout1

IB115..0

SP15..0
incSP
decSP

INC
DEC

SP

LD
CLK

IB215..0

PSWout2

IB27..0

PSW7..0
ldPSW LD

PSW CLK

mxPSW 0 mxPSW
0

formiranje
indikatora

IB115..0

IB27..0
IB27..0

Dout1
D15..0
ldIR1

IB115..0

IRBPout1
IR39..39.IR39..32

IB115..0
IB115..0

IRAP2out1
IR15..15.IR15..8

IB115..0
IB115..0
IB115..0

IRAP1out1
IR31..31.IR31..24

LD

IR1

CLK

IR47..40
IRJAout1
IR39..24 ldIR3

LD

IR3

CLK

IR31..24
IRIMAD2out1
IR15...0 ldIR5

LD

IR5

CLK

IR15..8
IRIMAD1out1
IR31..16 ldDH LD

CLK

D15..8

Slika 145 Operaciona jedinica (prvi deo)

152

ldIR2 LD
IB27..0
ldIR4 LD
IB27..0
ldIR6 LD
IB27..0
ldDL LD

IB27..0
IR2

CLK

IR39..32
IR4

CLK

IR23..16
IR6

CLK

IR7..0
D
D7..0

CLK

ALUout1

IB115..0

ALU15..0
ALU

A15...0

ldX

LD

add
and
asr

B15...0

IB215..0
IB215..0
Bout2

CLK

B15..0

IB115..0

ldB

LD
CLK

IB215..0

AHout2
A15..8

IB27..0
Aout2

IB215..0

A15..0
ldA LD

IB215..0

A CLK

IB115..0

IVTPout1

IB115..0

ldR1A

R1A1.0
0

LD

ldR2A

IB215..0

formiranje BRU

R2A CLK
R2A1.0

DI15...0

A1.0

DO15...0

IB1_2

CLK
LD

IB215..0

mxRA 0 mxRA

IB115..0

IVTP

IB21.0

R1A CLK

LD

CLK
LD

IVTP15..0

IB25.4

IB215..0

BRU

BRU15..0
WR

wrR
Rout2

R15..0

IB215..0
IB215..0

IB2_1

IB115..0

0
slBRU
BRUout2
IB215..0
IL
SL

IB215..0

Slika 146 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, su dati pod v) u
reenju zadatka 1.9.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 147.

153

! itanje instrukcije !
! itanje prvog bajta instrukcije koji predstavlja kod operacije !
step00 PCout2, IB2_1, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout2, ldIR1;
step04 br (if l1 then step4F); ! prelazak na fazu izvravanje operacije za bezadresne
instrukcije !
! itanje drugog bajta instrukcije koji predstavlja 8-bitni pomeraj za instrukcije uslovnog skoka, vii
bajt 16-bitne adrese za instrukcije bezuslovnog skoka i bajt sa specifikacijom adresiranja oba
operanda za arlogshpr instrukcije (aritmetike instrukcije, logike instrukcije, pomerake instrukcije
i instrukcije prenosa). !
step05 PCout2, IB2_1, ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 MDRout2, ldIR2, br (if l2_brn then step4F); ! prelazak na fazu izvravanje operacije za
instrukcije uslovnog skoka !
step09 br (if arlogshpr then step0E); ! prelazak na itanje bajtova arlogshpr instrukcija !
! itanje treeg bajta instrukcije koji predstavlja nii bajt 16-bitne adrese instrukcija bezuslovnog
skoka. !
step0A PCout2, IB2_1, ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D MDRout2, ldIR3, br step4F; ! prelazak na fazu izvravanje operacije za
instrukcije bezuslovnog skoka !
! itanje preostalih bajtova za prvi operand arlogshpr instrukcija. Saglasno specificiranom nainu
adresiranja za prvi operand nema itanja za regdir adresiranje, dok se ita jedan bajt koji predstavlja
8-mo bitni pomeraj za regindpom adresiranje i dva bajta koji predstavljaju 16-to bitnu adresu za
memind adresiranje i 16-to bitni operand za imm adresiranje. !
step0E br (if regdir1 then step18); ! prelazak na itanje bajtova drugog operanda
ukoliko je regdir adresiranje !
step0F PCout2, IB2_1, ldMAR, incPC;
step10 RD;
step11 br (if OBI then step11);
step12 MDRout2, ldIR3, br (if regindpom1 then step17); ! prelazak na proveru za instrukciju
JADR ukoliko je regindpom adresiranje !
step13 PCout2, IB2_1, ldMAR, incPC;
step14 RD;
step15 br (if OBI then step15);
step16 MDRout2, ldIR4;
step17 br (if JADR then step21);
! prelazak na fazu formiranje adrese i itanje
prvog operanda za jednoadresnu instrukciju
bezuslovnog skoka na sraunatu adresu (JADR) !
! itanje preostalih bajtova za drugi operand arlogshpr instrukcija. Saglasno specificiranom nainu
adresiranja za drugi operand nema itanja za registarsko direktno adresiranje, dok se ita jedan bajt
koji predstavlja 8-mo bitni pomeraj za registarsko indirektno sa pomerajem adresiranje i dva bajta koji
predstavljaju 16-to bitnu adresu za memorijsko indirektno adresiranje i 16-to bitni operand za

154

neposredno adresiranje. !
step18 br (if regdir2 then step21); ! prelazak na fazu formiranje adrese i itanje
prvog operanda ukoliko je regdir adresiranje !
step19 PCout2, IB2_1, ldMAR, incPC;
step1A RD;
step1B br (if OBI then step1B);
step1C MDRout2, ldIR5, br (if regindpom2 then step21); ! prelazak na fazu formiranje adrese i
itanje prvog operanda ukoliko je regindpom adresiranje !
step1D PCout2, IB2_1, ldMAR, incPC;
step1E RD;
step1F br (if OBI then step1F);
step20 MDRout2, ldIR6;
! Formiranje adrese i itanje prvog operanda !
step21 br (case (regdir1, memind1, regindpom1, imm1)
then
(regdir1, step22), (memind1, step24),
(regindpom1, step2C), (imm1, step36));
! Registarsko direktno adresiranje !
step22 br (if LD_ASR then step39); ! Za LD i ASR nema itanje prvog operanda iz registra opte
namene (u fazi izvravanje operacije upis drugog operanda u
registar opte namene prvog operanda), pa prelazak na fazu
formiranje adrese i itanje drugog operanda. !
step23 Rout2, ldB, step37;
! Memorijsko indirektno adresiranje !
step24 IRIMAD1out1, ldMAR;
step25 RD;
step26 br (if OBI then step26);
step27 MDRout2, ldDH, incMAR;
step28 RD;
step29 br (if OBI then step29);
step2A MDRout2, ldDL;
step2B Dout1, ldMAR, br step2E;
! Registarsko indirektno sa pomerajem adresiranje!
step2C IRAP1out1, ldX;
step2D Rout2, add, ALUout1, ldMAR;
! itanje operanda !
step2E MARout1, ldAA, br (if LD_ASR_JADR then step38); ! uvanje adrese prvog operanda
iz MAR u AA. Za LD, ASR i JADR nema itanje prvog
operanda iz memorije (u fazi izvravanje operacije upis drugog
operanda u memoriju na adresi prvog operanda sauvanoj u
AA za LD i ASR, i upis sraunate adreses skoka iz MAR u PC
za JADR. !
step2F RD;
step30 br (if OBI then step30);
step31 MDRout2, ldDH, incMAR;
step32 RD;
step33 br (if OBI then step33);
step34 MDRout2, ldDL;
step35 Dout1, IB1_2, ldB, br step37;
! Neposredno adresiranje!
step36 IRIMAD1out1, IB1_2, ldB;

155

! Prvi operand iz B u A !
step37 Bout2, IB2_1, ldA;
step38 br (if JADR then step4F);

! prelazak na fazu izvravanje operacije za jednoadresnu


instrukciju bezuslovnog skoka na sraunatu adresu (JADR). !
! Formiranje adrese i itanje drugog operanda !
step39 br (case (regdir2, memind2, regindpom2, imm2)
then
(regdir2, step3A), (memind2, step3C),
(regindpom2, step44), (imm2, step4E));
! Registarsko direktno adresiranje !
step3A br (if ST then step4F);
! Za ST nema itanja drugog operanda iz registra opte
namene (u fazi izvravanje operacije upis prvog operanda u
registar opte namene), pa prelazak na fazu izvravanje
operacije. !
step3B mxRA, Rout2, ldB, br step4F;
! Memorijsko indirektno adresiranje !
step3C IRIMAD2out1, ldMAR;
step3D RD;
step3E br (if OBI then step3E);
step3F MDRout2, ldDH, incMAR;
step40 RD;
step41 br (if OBI then step41);
step42 MDRout2, ldDL;
step43 Dout1, ldMAR, br step46;
! Registarsko indirektno sa pomerajem adresiranje !
step44 IRPM2out1, ldX;
step45 mxRA, Rout2, add, ALUout1, ldMAR;
! itanje operanda !
step46 br (if ST then step4F);
! Za ST nema itanja drugog operanda iz memorije (u fazi
izvravanje operacije upis prvog operanda u memoriju na
adresi koja je u MAR), pa prelazak na fazu izvravanje
operacije. !
step47 RD;
step48 br (if OBI then step48);
step49 MDRout2, ldDH, incMAR;
step4A RD;
step4B br (if OBI then step4B);
step4C MDRout2, ldDL;
step4D Dout1, IB1_2, ldB, br step4F;
! Neposredno adresiranje !
step4E IRIMAD2out1, IB1_2, ldB;
! Izvravanje operacije !
step4F br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step50), (ST, step5A), (ADD, step63), (AND, step65), (ASR, step67),
(BZ, step69), (JMP, step6C), (JADR, step6D), (JSR, step6E),
(RTI, step75), (RTS, step7A));
! LD !
! Upis drugog operanda u prvi operand. !
step50 Bout2, IB2_1, ldA;
! Drugi operand iz B u A. !
step51 br (if regdir1 then step59);

156

! Upis u memoriju. !
step52 AAout1, ldMAR, AHout2, mxMDR, ldMDR; ! Sauvana adresa prvog operanda iz AA
u MAR i stariji bajt iz A15..8 u MDR. !
step53 WR;
step54 br (if OBI then step54);
step55 Aout2, mxMDR, ldMDR, incMAR; ! Mlai bajt iz A7..0 u MDR i inkrementiranje MAR. !
step56 WR;
step57 br (if OBI then step57);
step58 br step84;
! Upis u registar opte namene. !
step59 Aout2, wrR, br step84;
! ST !
! Upis prvog operanda u drugi operand. !
step5A br (if regdir2 then step62);
! Upis u memoriju. !
! Adresa je u MAR, a stariji bajt iz A15..8 u MDR. !
step5B AHout2, mxMDR, ldMDR;
step5C WR;
step5D br (if OBI then step5D);
step5E Aout2, mxMDR, ldMDR, incMAR; ! Mlai bajt iz A7..0 u MDR i inkrementiranje MAR. !
step5F WR;
step60 br (if OBI then step60);
step61 br step84;
! Upis u registar opte namene. !
step62 Aout2, mxRA, wrR, br step84;
! ADD !
step63 Aout2, IB2_1, ldX;
step64 Bout2, add, ALUout1, ldA, br step51;
! AND !
step65 Aout2, IB2_1, ldX;
step66 Bout2, and, ALUout1, ldA, br step51;
! ASR !
step67 Bout2, IB2_1, ldX;
! Drugi operand iz B u X. !
step68 asr, ALUout1, ldA, br step51;
! BZ !
step69 br (if PSWZ then step84);
step6A IRBPout1, ldX;
step6B PCout2, add, ALUout1, ldPC, br step84;
! JMP !
step6C IRJAout1, ldPC, br step84;
! JADR !
step6D MARout1, ldPC, br step84;
! JSR !
step6E SPout1, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step6F WR;
step70 br (if OBI then step70);
step71 SPout1, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step72 WR;
step73 br (if OBI then step73);
step74 IRJAout1, ldPC, br step84;
! RTI !
step75 incSP;
step76 SPout1, ldMAR;
step77 RD;
157

step78 br (if OBI then step78);


step79 MDRout2, ldPSW;
! RTS !
step7A incSP;
step7B SPout1, ldMAR;
step7C RD;
step7D br (if OBI then step7D);
step7E MDRout2, ldDH, incSP;
step7F SPout1, ldMAR;
step80 RD;
step81 br (if OBI then step81);
step82 MDRout2, ldDL;
step83 Dout1, ldPC;
! Opsluivanje prekida !
step84 br (if PREKID then step00);
step85 SPout1, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step86 WR;
step87 br (if OBI then step87);
step88 SPout1, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step89 WR;
step8A br (if OBI then step8A);
step8B SPout1, ldMAR, decSP, PSWout2, mxMDR, ldMDR;
step8C WR;
step8D br (if OBI then step8D);
step8E slBRU;
step8F IVTPout1, ldX;
step90 BRUout2, add, ALUout1, ldMAR;
step91 RD;
step92 br (if OBI then step92);
step93 MDRout2, ldDH, incMAR;
step94 RD;
step95 br (if OBI then step95);
step96 MDRout2, ldDL;
step97 Dou1, ldPC, br step00;

Slika 147 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) Sekvenca upravljakih signala po koracima za upravljaku jedinicu oiene realizacije
se formira na nain dat pod d) u reenju zadataka 1.1 i 1.6.
) Upravljaka jedinica se realizuje na nain dat pod ) u reenju zadataka 1.1 i 1.6.

158

1.12 ZADATAK
Posmatra se deo raunara iz zadatka 1.9.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa tri interne magistrale.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
vertikalnim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i vertikalnim
kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje upravljakih
signala i to za upravljake signale operacione jedinice ldMAR, incPC i IB1_2, i sve
upravljake signale upravljake jedinice kojima se upravlja mikroprogramskim brojaem.
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.9.
b) Jedna realizacija strukturne eme operacione jedinice sa tri interne magistrale je data na
slikama 148 i 149. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.

159

BUS
144444444444444444424444444444444444443

ABUS15..0

RD
WR

RD
WR

DBUS7..0

RDBUS

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


A15..0
DI7..0
DO7..0

OBI

OBI

MDRout1

IB17..0

MDR7..0
MDR

LD

ldMBR

CLK

mxMDR 0 mxMDR
0

IB27..0

IB27...0
MARout3

IB315..0
AAout3

MAR15..0
ldMAR
incMAR

IB27..0
IB215..0

LD
INC

AA15...0
MAR

CLK

ldAA LD

IRIMAD1out3
IR31..16

PC15..0
PC

CLK

IB315..0
IB315..0

PCHout2
PC15..8
PCout2
incPC INC
ldPC LD

AA

IRJAout3
IB315..0
IR39..24
IB315..0

IRIMAD2out3
IB315..0
IR15..0
IB315..0

CLK

SPout3

IB315..0

SP15..0

IB17..0

IB215..0
IB27..0

incSP INC
decSP DEC

Dout3

LD

PSWout2
PSW7..0

IRBPout1
IR39..39.IR39..32

IB215..0

IRAP2out2
IR15..15.IR15..8

IB215..0

IRAP1out2
IR31..31.IR31..24

ldIR2 LD IR2 CLK


IR39..32

ldIR3 LD IR3 CLK


IR31..24
IB1

ldIR4 LD IR4 CLK


IR23..16

ldIR5 LD IR5 CLK


IR15..8
IB1

ldIR6 LD IR6 CLK


IR7..0

7..0

formiranje
indikatora

7..0

ldDH LD

D CLK
D15..8

Slika 148 Operaciona jedinica (prvi deo)

160

IB315..0

ldIR1 LD IR1 CLK


IR47..40
IB1
7..0

PSW CLK

mxPSW 0 mxPSW

IB17..0

D15..0

IB17..0

ldPSW LD

IB115..0

SP

IB315..0

ldDL LD

D CLK
D7..0

ALUout3

IB315..0

ALU15..0
A15...0

IB115..0

ALU

add
and
asr

B15...0

IB215..0

Bout1

IB115..0

INC

AHout2

IB27..0
IB215..0

incB DEC
decB

A15..8

Aout2

ldB
IB315..0

A15..0
ldA LD

A CLK
IB315..0

IB215..0

IB215..0
IVTPout1

IB115..0

CLK
LD

IVTP
IVTP15..0

IB15.4..1.0
IB15.4
LD

IB11.0

R1A CLK

LD

ldR1A R1A1.0

R2A CLK

ldR2A R2A1.0

IB315..0

IB315..0
DI15..0

A1.0

WR

wrR

DO15..0

mxRA 0 mxRA

Rout1

IB115..0

formiranje BRU

R15..0
BRUout2

IB215..0
IB1_3

IB115..0

IB2_1

CLK
LD

BRU

IL
SL

0
slBRU

BRU15..0
IB315..0

IB2_3

IB215..0

IB115..0

LD
CLK

IB315..0

IB215..0

Slika 149 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, su dati pod v) u
reenju zadatka 1.9.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 150.

161

! itanje instrukcije !
! itanje prvog bajta instrukcije koji predstavlja kod operacije !
step00 PCout2, IB2_3, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout1, ldIR1;
! prelazak na fazu izvravanje operacije za bezadresne
step04 br (if l1 then step4F);
instrukcije !
! itanje drugog bajta instrukcije koji predstavlja 8-bitni pomeraj za instrukcije uslovnog skoka, vii
bajt 16-bitne adrese za instrukcije bezuslovnog skoka i bajt sa specifikacijom adresiranja oba
operanda za arlogshpr instrukcije (aritmetike instrukcije, logike instrukcije, pomerake instrukcije
i instrukcije prenosa). !
step05 PCout2, IB2_3, ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 MDRout1, ldIR2, br (if l2_brn then step4F); ! prelazak na fazu izvravanje operacije za
instrukcije uslovnog skoka !
step09 br (if arlogshpr then step0E);
! prelazak na itanje bajtova arlogshpr instrukcija !
! itanje treeg bajta instrukcije koji predstavlja nii bajt 16-bitne adrese instrukcija bezuslovnog
skoka. !
step0A PCout2, IB2_3, ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D MDRout1, ldIR3, br step4F;
! prelazak na fazu izvravanje operacije za
instrukcije bezuslovnog skoka !
! itanje preostalih bajtova za prvi operand arlogshpr instrukcija. Saglasno specificiranom nainu
adresiranja za prvi operand nema itanja za regdir adresiranje, dok se ita jedan bajt koji predstavlja
8-mo bitni pomeraj za regindpom adresiranje i dva bajta koji predstavljaju 16-to bitnu adresu za
memind adresiranje i 16-to bitni operand za imm adresiranje. !
step0E br (if regdir1 then step18); ! prelazak na itanje bajtova drugog operanda
ukoliko je regdir adresiranje !
step0F PCout2, IB2_3, ldMAR, incPC;
step10 RD;
step11 br (if OBI then step11);
step12 MDRout1, ldIR3, br (if regindpom1 then step17); ! prelazak na proveru za instrukciju
JADR ukoliko je regindpom adresiranje !
step13 PCout2, IB2_3, ldMAR, incPC;
step14 RD;
step15 br (if OBI then step15);
step16 MDRout1, ldIR4;
step17 br (if JADR then step21);
! prelazak na fazu formiranje adrese i itanje
prvog operanda za jednoadresnu instrukciju
bezuslovnog skoka na sraunatu adresu (JADR) !
! itanje preostalih bajtova za drugi operand arlogshpr instrukcija. Saglasno specificiranom nainu
adresiranja za drugi operand nema itanja za registarsko direktno adresiranje, dok se ita jedan bajt
koji predstavlja 8-mo bitni pomeraj za registarsko indirektno sa pomerajem adresiranje i dva bajta koji
predstavljaju 16-to bitnu adresu za memorijsko indirektno adresiranje i 16-to bitni operand za

162

neposredno adresiranje. !
step18 br (if regdir2 then step21); ! prelazak na fazu formiranje adrese i itanje
prvog operanda ukoliko je regdir adresiranje !
step19 PCout2, IB2_3, ldMAR, incPC;
step1A RD;
step1B br (if OBI then step1B);
step1C MDRout1, ldIR5, br (if regindpom2 then step21); ! prelazak na fazu formiranje adrese i
itanje prvog operanda ukoliko je regindpom adresiranje !
step1D PCout2, IB2_3, ldMAR, incPC;
step1E RD;
step1F br (if OBI then step1F);
step20 MDRout1, ldIR6;
! Formiranje adrese i itanje prvog operanda !
! Prvi operand prvo u B, pa iz B u A. !
step21 br (case (regdir1, memind1, regindpom1, imm1)
then
(regdir1, step22), (memind1, step24), (regindpom1, step2C), (imm1, step35));
! Registarsko direktno adresiranje !
step22 br (if LD_ASR then step38); ! Za LD i ASR nema itanje prvog operanda iz registra opte
namene (u fazi izvravanje operacije upis drugog operanda u
registar opte namene prvog operanda), pa prelazak na fazu
formiranje adrese i itanje drugog operanda. !
step23 Rout1, IB1_3, ldB, step36; !
! Memorijsko indirektno adresiranje !
step24 IRIMAD1out3, ldMAR;
step25 RD;
step26 br (if OBI then step26);
step27 MDRout1, ldDH, incMAR;
step28 RD;
step29 br (if OBI then step29);
step2A MDRout1, ldDL;
step2B Dout3, ldMAR, br step2E;
! Registarsko indirektno sa pomerajem adresiranje !
step2C Rout1, IRAP1out2, add, ALUout3, ldMAR;
! itanje operanda !
step2D MARout3, ldAA, br (if LD_ASR_JADR then step37); ! uvanje adrese prvog operanda
iz MAR u AA. Za LD, ASR i JADR nema itanje prvog
operanda iz memorije (u fazi izvravanje operacije upis drugog
operanda u memoriju na adresi prvog operanda sauvanoj u
AA za LD i ASR, i upis sraunate adreses skoka iz MAR u PC
za JADR. !
step2E RD;
step2F br (if OBI then step2F);
step30 MDRout1, ldDH, incMAR;
step31 RD;
step32 br (if OBI then step32);
step33 MDRout1, ldDL;
step34 Dout3, ldB, br step36;
! Neposredno adresiranje !
step35 IRIMAD1out3, ldB;
! Prvi operand iz B u A !
step36 Bout2, IB2_1, ldA;
step37 br (if JADR then step4F); ! prelazak na fazu izvravanje operacije za jednoadresnu
instrukciju bezuslovnog skoka na sraunatu adresu (JADR). !

163

! Formiranje adrese i itanje drugog operanda !


step38 br (case (regdir2, memind2, regindpom2, imm2)
then
(regdir2, step39), (memind2, step3B), (regindpom2, step43), (imm2, step4C));
! Registarsko direktno adresiranje !
step39 br (if ST then step4F);
! Za ST nema itanja drugog operanda iz registra opte
namene (u fazi izvravanje operacije upis prvog operanda u
registar opte namene), pa prelazak na fazu izvravanje
operacije. !
step3A mxA, Rout1, IB1_3, ldB, br step4F;
! Memorijsko indirektno adresiranje !
step3B IRIMAD2out3, ldMAR;
step3C RD;
step3D br (if OBI then step3D);
step3E MDRout1, ldDH, incMAR;
step3F RD;
step40 br (if OBI then step40);
step41 MDRout1, ldDL;
step42 Dout3, ldMAR, br step44;
! Registarsko indirektno sa pomerajem adresiranje !
step43 mxRA, Rout1, IRAP2out2, add, ALUout3, ldMAR;
! itanje operanda !
! Za ST nema itanja drugog operanda iz memorije (u fazi
step44 br (if ST then step4F);
izvravanje operacije upis prvog operanda u memoriju na
adresi koja je u MAR), pa prelazak na fazu izvravanje
operacije. !
step45 RD;
step46 br (if OBI then step46);
step47 MDRout2, ldDH, incMAR;
step48 RD;
step49 br (if OBI then step4B);
step4A MDRout1, ldDL;
step4B Dout3, ldB, br step4F;
! Neposredno adresiranje !
step4C IRIMAD2out3, ldB;
! Izvravanje operacije !
step4D br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR, RTI, RTS)
then
(LD, step4E), (ST, step58), (ADD, step61), (AND, step62), (ASR, step63),
(BZ, step64), (JMP, step66), (JADR, step67), (JSR, step68),
(RTI, step6F), (RTS, step74));
! LD !
! Upis drugog operanda u prvi operand. !
step4E Bout1, IB1_3, ldA;
! Drugi operand iz B u A. !
step4F br (if regdir1 then step57);
! Upis u memoriju. !
step50 AAout3, ldMAR, AHout2, mxMDR, ldMDR; ! Sauvana adresa prvog operanda iz
AA u MAR i stariji bajt iz A15..8 u MDR. !
step51 WR;
step52 br (if OBI then step52);
step53 Aout2, mxMDR, ldMDR, incMAR; ! Mlai bajt iz A7..0 u MDR i inkrementiranje MAR. !
step54 WR;
step55 br (if OBI then step55);
step56 br step7E;

164

! Upis u registar opte namene. !


step57 Aout2, IB2_3, wrR, br step7E;
! ST !
! Upis prvog operanda u drugi operand. !
step58 br (if regdir2 then step60);
! Upis u memoriju. !
step59 AHout2, mxMDR, ldMDR; ! Adresa je u MAR, a stariji bajt iz A15..8 u MDR. !
step5A WR;
step5B br (if OBI then step5B);
step5C Aout2, mxMDR, ldMDR, incMAR; ! Mlai bajt iz A7..0 u MDR i inkrementiranje MAR. !
step5D WR;
step5E br (if OBI then step5E);
step5F br step7E;
! Upis u registar opte namene. !
step60 Aout2, IB2_3, mxRA, wrR, br step7E;
! ADD !
step61 Bout1, Aout2, add, ALUout3, ldA, br step4F;
! AND !
step62 Bout1, Aout2, and, ALUout3, ldA, br step4F;
! ASR !
! Drugi operand iz B u A. !
step63 Bout1, asr, ALUout3, ldA, br step4F;
! BZ !
step64 br (if PSWZ then step7E);
step65 PCout2, IRBPout1, add, ALUout3, ldPC, br step7E;
! JMP !
step66 IRJAout3, ldPC, br step7E;
! JADR !
step67 MARout3, ldPC, br step7E;
! JSR !
step68 SPout3, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step69 WR;
step6A br (if OBI then step6A);
step6B SPout3, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step6C WR;
step6D br (if OBI then step6D);
step6E IRJAout3, ldPC, br step7E;
! RTI !
step6F incSP;
step70 SPout3, ldMAR;
step71 RD;
step72 br (if OBI then step72);
step73 MDRout1, ldPSW;
! RTS !
step74 incSP;
step75 SPout3, ldMAR;
step76 RD;
step77 br (if OBI then step77);
step78 MDRout1, ldDH, incSP;
step79 SPout3, ldMAR;
step7A RD;
step7B br (if OBI then step7B);
step7C MDRout1, ldDL;
step7D Dout3, ldPC;
165

! Opsluivanje prekida !
step7E br (if PREKID then step00);
step7F SPout3, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step80 WR;
step81 br (if OBI then step81);
step82 SPout3, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step83 WR;
step84 br (if OBI then step84);
step85 SPout3, ldMAR, decSP, PSWout2, mxMDR, ldMDR;
step86 WR;
step87 br (if OBI then step87);
step88 slBRU;
step89 IVTPout1, BRUout2, add, ALUout3, ldMAR;
step8A RD;
step8B br (if OBI then step8B);
step8C MDR1out, ldDH, incMAR;
step8D RD;
step8E br (if OBI then step8E);
step8F MDR1out, ldDL;
step90 Dou3, ldPC, br step00;

Slika 150 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) Mikroprogram se formira na nain dat pod d) u reenju zadataka 1.2 i 1.7.
) Upravljaka jedinica se realizuje na nain dat pod ) u reenju zadataka 1.2 i 1.7.

166

1.13 ZADATAK
Posmatra se deo raunara koji ine memorija i procesor.
Memorija je kapaciteta 216 bajtova. irina memorijske rei je 1 bajt.
U procesoru od programski dostupnih registara postoji registar programskog brojaa PC
duine 2 bajta, registar akumulatora ACC duine dva bajta, registar podatka DR duine dva
bajta, adresni registar AR duine 2 bajta, bazni registar BR duine 2 bajta, indeksni registar
XR duine 2 bajta, programska statusna re PSW duine jedan bajt koja sadri samo indikator
Z, ukaziva na vrh steka SP duine 2 bajta, registar broja ulaza u tabelu sa adresama prekidnih
rutina BRU duine 2 bajta i ukaziva na tabelu sa adresama prekidnih rutina IVTP duine 2
bajta.
Podaci su celobrojne veliine bez znaka duine dva bajta. Podaci u memoriji zauzimaju
dve susedne memorijske lokacije, pri emu se stariji bajt nalazi na nioj lokaciji a mlai bajt
na vioj lokaciji.
Procesor je sa jednoadresnim formatom instrukcija. Instrukcije su promenljive duine i to
jedan, dva ili tri bajta. Bitovi prvog bajta instrukcije su oznaeni sa 23 do 16, drugog bajta sa
15 do 8 i treeg bajta sa 7 do 0. Struktura instrukcija je definisana na nain dat u daljem
tekstu.
Bitovi 7 do 3 prvog bajta instrukcije imaju vrednost 00000 za sve instrukcije uslovnog
skoka. Instrukcija uslovnog skoka je instrukcija uslovnog skoka ukoliko je rezultat nula (BZ).
Bitovima 2 do 0 prvog bajta instrukcije specificira kod operacije za instrukcije uslovnog
skoka. Na osnovu toga je za instrukciju BZ usvojen kod operacije 00000000. Instrukcija BZ
se realizuje kao relativni skok u odnosu na tekuu vrednost programskog brojaa PC, a
pomeraj je 8 bitna celobrojna veliina sa znakom data drugim bajtom instrukcije. Duina
instrukcije je dva bajta..
Bitovi 7 do 3 prvog bajta instrukcije imaju vrednost 00001 za sve instrukcije bezuslovnog
skoka. Instrukcije bezuslovnog skoka su instrukcija bezuslovnog skoka (JMP) i instrukcija
skoka na potprogram (JSR). Bitovima 2 do 0 prvog bajta instrukcije specificira kod operacije
za instrukcije bezuslovnog skoka Na osnovu toga su za instrukcije JMP i JSR usvojeni kodovi
operacija 00001000 i 00001001, respektivno. Instrukcije JMP i JSR se realizuju kao apsolutni
skokovi, a adresa skoka je data drugim i treim bajtom instrukcije, pri emu je stariji bajt
adrese skoka dat drugim bajtom instrukcije a mlai bajt adrese skoka treim bajtom
instrukcije. Duina instrukcija je tri bajta.
Bitovi 7 do 3 prvog bajta instrukcije imaju vrednost 11111 za sve bezadresne instrukcije.
Bezadresne instrukcije su instrukcija povratka iz potprograma (RTS) i instrukcija povratka iz
prekidne rutine (RTI). Bitovima 2 do 0 prvog bajta instrukcije specificira kod operacije za
bezadresne instrukcije. Na osnovu toga su za instrukcije RTS i RTI usvojeni kodovi operacija
11111000 i 11111001, respektivno. Duina instrukcija je jedan bajt.
Bitovi 7 do 3 prvog bajta vrednostima 00010 do 11110 specificiraju kod operacije za
adresne instrukcije. Adresne instrukcije su instrukcija prenosa u akumulator (LD), instrukcija
prenosa iz akumulatora (ST), aritmetika instrukcija sabiranja (ADD), logika instrukcija
logiki proizvod (AND), instrukcija bezuslovnog skoka na sraunatu adresu (JADR) i
instrukcija aritmetikog pomeranja udesno za jedno mesto operanda i prenosa u akumulator
(ASR). Na osnovu toga su za instrukcije LD, ST, ADD, AND, JADR i ASR usvojeni kodovi
operacija 00010, 00011, 00100, 00101, 00110 i 00111, respektivno. Duina instrukcija je
jedan, dva ili tri bajta i zavisi od specificiranog naina adresiranja.

167

Naini adresiranja se za adresne instrukcije specificiraju bitovima 2, 1 i 0 prvog bajta


instrukcije i to na sledei nain: 000-registarsko direktno adresiranje, 001-registarsko
indirektno adresiranje, 010-bazno sa pomerajem adresiranje, 011-indeksno sa pomerajem
adresiranje, 100-bazno indeksno sa pomerajem adresiranje, 101-PC relativno sa pomerajem
adresiranje, 110-memorijsko direktno adresiranje i 111-neposredno adresiranje. Kod
registarskog direktnog adresiranja implicitno se koristi registar podatka DR70. Duina
instrukcije je jedan bajt. Kod registarskog indirektnog adresiranja implicitno se koristi adresni
registar AR15..0. Duina instrukcije je jedan bajt. Kod baznog sa pomerajem adresiranja
implicito se koristi bazni registar registar BR15..0, dok drugi bajt instrukcije sadri 8-mo bitni
pomeraj koji je dat kao celobrojna veliina sa znakom. Duina instrukcije je dva bajta. Kod
indeksnog sa pomerajem adresiranja implicito se koristi indeksni registar registar XR150, dok
drugi bajt instrukcije sadri 8-mo bitni pomeraj koji je dat kao celobrojna veliina sa znakom.
Duina instrukcije je dva bajta. Kod bazno indeksnog sa pomerajem adresiranja implicito se
koriste bazni registar BR150 i indeksni registar XR150, a drugi bajt instrukcije sadri 8-mo
bitni pomeraj koji je dat kao celobrojna veliina sa znakom. Duina instrukcija je 2 bajta. Kod
PC relativnog sa pomerajem adresiranja implicito se koristi registar programskog brojaa
PC15..0, dok drugi bajt instrukcije sadri 8-mo bitni pomeraj koji je dat kao celobrojna veliina
sa znakom. Duina instrukcije je dva bajta. Kod memorijskog direktnog adresiranja drugi i
trei bajt instrukcije sadre adresu memorijske lokacije, pri emu je stariji bajt adrese dat
drugim a mlai bajt adrese treim bajtom instrukcije. Duina instrukcije je tri bajta. Kod
neposrednog adresiranja drugi i trei bajt instrukcije sadre 16 bitni podatak, pri emu je
stariji bajt podatka dat drugim bajtom a mlai bajt podatka treim bajtom. Duina instrukcije
je tri bajta.
Nema provere na greku koda operacije i naina adresiranja i nema odgovarajuih
unutranjih prekida. Od prekida jedino postoje spoljanji prekidi koji dolaze od
ulazno/izlaznih ureaja. Broj linije najvieg prioriteta po kojoj je stigao zahtev za prekid
nalazi se u binarnom obliku u registru BRU duine dva bajta i predstavlja broja ulaza u tabelu
sa adresama prekidnih rutina. Adrese su duine 16 bita zauzimaju po dve susedne memorijske
lokacije, pri emu se stariji bajt adrese nalazi na nioj lokaciji a mlai bajt adrese na vioj
lokaciji. Poetna adresa tabele sa adresama prekidnih rutina se nalazi u registru IVTP. U
okviru hardverskog dela opsluivanja zahteva za prekid na stek sa stavljaju samo registri PC i
PSW.
Stek raste prema niim memorijskim lokacijama, a registar SP ukazuje na prvu slobodnu
memorijsku lokaciju.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa direktnim vezama
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
vertikalnim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i vertikalnim
kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje upravljakih
signala i to za upravljake signale operacione jedinice ldMAR, incPC i RD, i sve upravljake
signale upravljake jedinice kojima se upravlja mikroprogramskim brojaem.

168

REENjE
a) U procesoru se koriste sledei formati instrukcija:
1. Bezadresne instrukcije (RTS, RTI)
23 22 21 20 19 18 17 16

1 1 1 1 1 OC

Slika 151 Bezadresne instrukcije


Poljem OC se specificira operacija koja se izvrava.
2. Instrukcije uslovnog skoka (BZ)
23 22 21 20 19 18 17 16

0 0 0 0 0 OC

23 22 21 20 19 18 17 16

BP

Slika 152 Instrukcije uslovnog skoka


Poljem OC se specificira operacija koja se izvrava, a poljem BP 8-mo bitni pomeraj kao
celobrojna veliina sa znakom koji se sabira sa PC da bi se dobila adresa skoka.
3. Instrukcije bezuslovnog skoka (JMP, JSR)
23 22 21 20 19 18 17 16

0 0 0 0 1 OC

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

JAH

JAL

Slika 153 Instrukcije bezuslovnog skoka

Poljem OC se specificira operacija koja se izvrava, a poljima JAH i JAL 8 starijih i 8


mlaih bitova 16-to bitne adrese skoka.
4. Adresne instrukcije (LD, ST, ADD, AND, ASR) sa regdir
23 22 21 20 19 18 17 16

OC

000

Slika 154 Adresne instrukcije sa regdir


Poljem OC, i to vrednostima 00010 do 11110, se specificira kod operacije adresne
instrukcije, bitovima 18, 17 i 16 registarsko direktno adresiranje, dok se registar podatka
DR15..0 implicitno koristi.
Napomena: Pretpostavlja sa da se u instrukciji JADR ne koristi registarsko direktno
adresiranje.
5. Adresne instrukcije (LD, ST, ADD, AND, ASR, JADR) sa regind
23 22 21 20 19 18 17 16

OC

001

Slika 155 Adresne instrukcije sa regind


Poljem OC, i to vrednostima 00010 do 11110, se specificira kod operacije adresne
instrukcije, bitovima 18, 17 i 16 registarsko indirektno adresiranje, dok se adresni registar
AR15..0 implicitno koristi.
6. Adresne instrukcije (LD, ST, ADD, AND, ASR, JADR) sa brpom
23 22 21 20 19 18 17 16

OC

010

15 14 13 12 11 10 9 8

AP
P

Slika 156 Adresne instrukcije sa brpom

169

Poljem OC, i to vrednostima 00010 do 11110, se specificira kod operacije adresne


instrukcije, bitovima 18, 17 i 16 bazno sa pomerajem adresiranje, poljem AP 8-mo bitni
pomeraj kao celobrojna veliina sa znakom, dok se bazni registar BR15..0 implicitno koristi.
7. Adresne instrukcije (LD, ST, ADD, AND, ASR, JADR) sa xrpom
23 22 21 20 19 18 17 16

OC

011

15 14 13 12 11 10 9 8

AP
P

Slika 157 Adresne instrukcije sa xrpom

Poljem OC, i to vrednostima 00010 do 11110, se specificira kod operacije adresne


instrukcije, bitovima 18, 17 i 16 indeksno sa pomerajem adresiranje, poljem AP 8-mo bitni
pomeraj kao celobrojna veliina sa znakom, dok se indeksni registar XR15..0 implicitno koristi.
8. Adresne instrukcije (LD, ST, ADD, AND, ASR, JADR) sa bxpom
23 22 21 20 19 18 17 16

OC

100

15 14 13 12 11 10 9 8

AP
P

Slika 158 Adresne instrukcije sa bxpom

Poljem OC, i to vrednostima 00010 do 11110, se specificira kod operacije adresne


instrukcije, bitovima 18, 17 i 16 bazno indeksno sa pomerajem adresiranje, poljem AP 8-mo
bitni pomeraj kao celobrojna veliina sa znakom, dok se bazni registar BR15..0 i indeksni
registar XR15..0 implicitno koriste.
9. Adresne instrukcije (LD, ST, ADD, AND, ASR, JADR) sa pcpom
23 22 21 20 19 18 17 16

OC

101

15 14 13 12 11 10 9 8

AP
P

Slika 159 Adresne instrukcije sa pcpom

Poljem OC, i to vrednostima 00010 do 11110, se specificira kod operacije adresne


instrukcije, bitovima 18, 17 i 16 PC relativno sa pomerajem adresiranje, poljem AP 8-mo bitni
pomeraj kao celobrojna veliina sa znakom, dok se registar programskog brojaa PC15..0
implicitno koristi.
10. Adresne instrukcije (LD, ST, ADD, AND, ASR, JADR) sa memdir
23 22 21 20 19 18 17 16

OC

110

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

ADH

ADL

Slika 160 Adresne instrukcije sa memdir


Poljem OC, i to vrednostima 00010 do 11110, se specificira kod operacije adresne
instrukcije, bitovima 18, 17 i 16 memorijsko direktno adresiranje, a poljima ADH i ADL 8
starijih i 8 mlaih bitova 16-to bitne adrese.
11. Adresne instrukcije (LD, ST, ADD, AND, ASR) sa imm
23 22 21 20 19 18 17 16

OC

111

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

IMH

IML

Slika 161 Adresne instrukcije sa imm


Poljem OC, i to vrednostima 00010 do 11110, se specificira kod operacije adresne
instrukcije, bitovima 18, 17 i 16 neposredno adresiranje, a poljima IMH i IML 8 starijih i 8
mlaih bitova 16-bitne neposredne veliine.
Napomena: Pretpostavlja sa da se u instrukciji JADR ne koristi neposredno adresiranje.

170

b) Jedna realizacija strukturne eme operacione jedinice sa direktnim vezama je data na


slikama 162 i 163. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.
BUS
144444444444444444424444444444444444443

ABUS15...0

RD
WR

RD
WR

DBUS7..0

A15..0

RDBUS

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

MAR15..0

0
1
2 0

PC15..0
AR15..0
IR15..0
D15..0

mxMDR0
mxMDR1
mxMDR2

B15..0
SP15..0
ALU15..0

MDR CLK

LD

ldMDR

mxMAR
1

OBI

MDR7..0

ldMAR LD
MAR CLK
incMAR INC
mxMAR0
mxMAR1
mxMAR2

OBI

0
1
2 0

mxMDR
1

ACC15..8
ACC7..0
PC7..0

PSW7..0
PC15..8

PC15..0
incPC INC
ldPC LD

PC CLK

MDR7..0
ldIR1 LD IR1 CLK

mxPC0 0
mxPC
mxPC1 1 0 1 2 3
IR15..0
D15...0
MAR15..0
ALU15..0

IR23..16
MDR7..0

SP15..0
incSP INC
decSP DEC

SP

LD

ldIR2 LD IR2 CLK

CLK

IR15..8

MDR7..0
ldIR3 LD IR3 CLK
IR7..0

PSW7..0
ldPSW LD

PSW CLK

mxPSW 0 mxPSW
0

MDR7..0

MDR7..0
ldDH LD

D CLK
D15..8

formiranje
indikatora

Slika 162 Operaciona jedinica (prvi deo)

171

MDR7..0
ldDL LD

D CLK
D7..0

ALU15..0
A15...0

ALU

mxX2 2
mxX
mxX1 1
mxX0 0 0 1 2 3 4 5 6 7
ACC15..0
B15..0
IVTP15..0
XR15..0
PC15..0
BR15..0

add
and
asr

B15...0

mxY1
mxY0

1
0

mxY
0

XR15..0
BRU15..0

ACC15..0
ldACC
mxACC1
mxACC0

1
0

mxB1
mxB0

ldDR

DR

ldAR

BR

AR

ldAR

BR15..0

ALU15..0
IR15..0

CLK
IVTP
LD

AR15..0

ACC15..0
ldBR

mxB
0

ACC15..0
CLK
LD

DR15..0
CLK
LD

DR15..0
D15...0

D15..0

ACC15..0

ldB

LD
CLK

mxACC

ALU15..0
B15...0
CLK
LD

B15..0

ACC CLK

LD

B15..0
IR15..15.IR15..8

ACC15..0
CLK
LD

XR
XR15..0

IVTP15..0
formiranje BRU
CLK
IL
BRU
LD
SL

0
slBRU

BRU15..0

Slika 163 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, generiu se
prema izrazima datim na slikama 164, 165 i 166, respektivno.
RTS = IR 23 IR 22 IR 21 IR 20 IR 19 IR 18 IR 17 IR 16
RTI = IR 23 IR 22 IR 21 IR 20 IR 19 IR 18 IR 17 IR 16
LD = IR 23 IR 22 IR 21 IR 20 IR 19
ST = IR 23 IR 22 IR 21 IR 20 IR 19
ADD = IR 23 IR 22 IR 21 IR 20 IR 19
AND = IR 23 IR 22 IR 21 IR 20 IR 19
JADR = IR 23 IR 22 IR 21 IR 20 IR 19
ASR = IR 23 IR 22 IR 21 IR 20 IR 19
BZ = IR 23 IR 22 IR 21 IR 20 IR 19 IR 18 IR 17 IR 16
JMP = IR 23 IR 22 IR 21 IR 20 IR 19 IR 18 IR 17 IR 16
JSR = IR 23 IR 22 IR 21 IR 20 IR 19 IR 18 IR 17 IR 16
STJADR = ST+JADR
Slika 164 Signali operacija

172

regdir = IR 18 IR 17 IR 16
regind = IR 18 IR 17 IR 16
brpom = IR 18 IR 17 IR 16
xrpom = IR 18 IR 17 IR 16
bxpom = IR 18 IR 17 IR 16
pcpom = IR 18 IR 17 IR 16
memdir = IR 18 IR 17 IR 16
imm = IR 18 IR 17 IR 16
Slika 165 Signali naina adresiranja
l1_bezadr = RTS+RTI
l1_arlogshpr = (LD+ST+ADD+AND+ASR+JADR)(regdir+regind)
l2_brn= BZ
l2_arlogshpr = (LD+ST+ADD+AND+ASR+JADR)(brpom+xrpom+bxpom+pcpom)
l3_jmp= JMP+JSR
Slika 166 Signali duina instrukcija
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 167.

173

! itanje instrukcije !
step00 ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 ldIR1;
step04 br (if l1_bezadr then step21);
step05 br (if l1_arlogshpr then step0F);
step06 ldMAR, incPC;
step07 RD;
step08 br (if OBI then step08);
step09 ldIR2, br (if l2_brn then step21);
step0A br (if l2_arlogshpr then step0F);
step0B ldMAR, incPC;
step0C RD;
step0D br (if OBI then step0D);
step0E ldIR3, br (if l3_jmp then step21);
! Formiranje adrese i itanje operanda !
step0F br (case (regdir, regind, brpom, xrpom, bxpom, pcpom, memdir, imm)
then (regdir, step10), (regind, step11), (brpom, step12), (xrpom, step13),
(bxpom, step14), (pcpom, step16), (memdir, step17), (imm, step20));
! Registarsko direktno adresiranje !
step10 ldB, br step21;
! Registarsko indirektno adresiranje !
step11 mxMAR0, ldMAR, br step18;
! Bazno sa pomerajem adresiranje !
step12 mxX2, mxY0, add, mxMAR2, ldMAR br step18;
! Indeksno sa pomerajem adresiranje !
step13 mxX2, mxX0, mxY0, add, mxMAR2, ldMAR br step18;
! Bazno indeksno sa pomerajem adresiranje !
step14 mxX2, mxY1, mxY0, add, mxB1, mxB0, ldB;
step15 mxX0, mxY0, add, mxMAR2, ldMAR br step18;
! PC relativno sa pomerajem adresiranje !
step16 mxX1, mxX0, mxY0, add, mxMAR2, ldMAR br step18;
! Memorijsko direktno adresiranje !
step17 mxMAR1, ldMAR;
! itanje operanda !
step18 br (if STJADR then step21);
step19 RD;
step1A br (if OBI then step1A);
step1B ldDH, incMAR;
step1C RD;
step1D br (if OBI then step1D);
step1E ldDL;
step1F mxB0, ldB, br step21;
! Neposredno adresiranje !
step20 mxB1, ldB;
! Izvravanje operacije !
step21 br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step22), (ST, step23), (ADD, step2C), (AND, step2D), (ASR, step2E),
(BZ, step2F), (JMP, step31), (JADR, step32), (JSR, step33),
(RTI, step3A), (RTS, step3F));
174

! LD !
step22 mxACC0, ldACC, br step49;
! ST !
step23 br (if regdir then step2B);
step24 mxMDR0, ldMDR;
step25 WR;
step26 br (if OBI then step26);
step27 mxMDR1, ldMDR, incMAR;
step28 WR;
step29 br (if OBI then step29);
step2A br step49;
step2B ldDR, br step49;
! ADD !
step2C add, ldACC, br step49;
! AND !
step2D and, ldACC, br step49;
! ASR !
step2E mxX0, asr, ldACC, br step49;
! BZ !
step2F br (if PSWZ then step49);
step30 mxX1, mxX0, mxY1, add, mxPC1, ldPC, br step49;
! JMP !
step31 ldPC, br step49;
! JADR !
step32 mxPC0, ldPC, br step49;
! JSR !
step33 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR1, mxMDR0, ldMDR;
step34 WR;
step35 br (if OBI then step35);
step36 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, ldMDR;
step37 WR;
step38 br (if OBI then step38);
step39 ldPC, br step49;
! RTI !
step3A incSP;
step3B mxMAR2, mxMAR0, ldMAR;
step3C RD;
step3D br (if OBI then step3D);
step3E ldPSW;
! RTS !
step3F incSP;
step40 mxMAR2, mxMAR0, ldMAR;
step41 RD;
step42 br (if OBI then step42);
step43 ldDH, incSP;
step44 mxMAR2, mxMAR0, ldMAR;
step45 RD;
step46 br (if OBI then step46);
step47 ldDL;
step48 mxPC1, mxPC0, ldPC;
! Opsluivanje prekida !
step49 br (if PREKID then step00);

175

step4A mxMAR2, mxMAR0, ldMAR, decSP, mxMDR1, mxMDR0, ldMDR;


step4B WR;
step4C br (if OBI then step4C);
step4D mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, ldMDR;
step4E WR;
step4F br (if OBI then step4F);
step50 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, mxMDR0, ldMDR;
step51 WR;
step52 br (if OBI then step52);
step53 slBRU;
step54 mxX1, mxY1, add, mxMAR2, ldMAR;
step55 RD;
step56 br (if OBI then step56);
step57 ldDH, incMAR;
step58 RD;
step59 br (if OBI then step59);
step5A ldDL;
step5B mxPC1, mxPC0, ldPC, br step00;

Slika 167 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) Mikroprogram se formira na nain dat pod d) u reenju zadataka 1.2 i 1.7.
) Upravljaka jedinica se realizuje na nain dat pod ) u reenju zadataka 1.2 i 1.7.

176

1.14 ZADATAK
Posmatra se deo raunara iz zadatka 1.13.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa jednom internom magistralom
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
meovitim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i meovitim
kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje upravljakih
signala i to za upravljake signale operacione jedinice ldMAR, incPC i RD, i sve upravljake
signale upravljake jedinice kojima se upravlja mikroprogramski broja.
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.13.
b) Jedna realizacija strukturne eme operacione jedinice sa jednom internom magistralom
je data na slikama 168 i 169. Operaciona jedinica sadri sve programski dostupne registre,
odreen broj pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs
sistemske magistrale.

177

BUS
144444444444444444424444444444444444443

ABUS15..0

RD
WR

DBUS7..0

RD
WR

RDBUS

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


A15..0
DO7..0
DI7..0

OBI

MARout

MDRout

IB15..0

IB15..0

OBI

MAR15..0
ldMAR
incMAR

LD

MAR

INC

MDR7..0

CLK

LD

ldMBR

MDR

CLK

mxMDR 0 mxMDR
0

IB7..0
IB7..0
IB7..0
IB7..0
IB15..0

IB7...0
PCHout

IB15..0
IB7..0

PC15...8

PCout

incPC INC
ldPC LD

SP15..0

ldIR2 LD

IR2

CLK

ldIR3 LD

DEC

SP

IB7...0

CLK

ldDH LD

PSW7..0
PSW CLK

mxPSW 0 mxPSW
0

CLK

IR7..0

CLK

ldDL LD

D15...8

LD

IR3

LD

PSWout
ldPSW

IB7..0

PC CLK

IR15...8
incSP
decSP

CLK

IB7...0

SPout
INC

IR1

IR23..16
PC15...0

IB15..0
IB15..0

ldIR1 LD

formiranje
indikatora

IB15..0

CLK

D7...0

Dout

IB15..0

D15...0
IRBPAPout
IR15..15.IR15..8

IB15..0

Slika 168 Operaciona jedinica (prvi deo)

178

IRJAADIMout
IR15...0

ALUout

IB15..0

ALU15...0
A15...0

ldX LD

ALU

add
and
asr

B15...0

ldY LD

CLK

CLK

IB15..0
Bout

IB15..0
ACCHout

IB7..0

ACC15..8

ACCout

IB15..0

B15..0

ACC15..0
ldACC

LD

ACC CLK

IB15..0

LD
CLK

ldB

IB15..0
IB15..0
IB15..0
IB15..0
IB15..0
IB15..0
IB15..0
IB15..0

DRout

ldDR LD
CLK

DR
DR15..0

ldAR LD
CLK

ARout

CLK
LD

AR
AR15..0

IVTP
IVTP15..0

IVTPout

formiranje BRU

BRout

ldBR LD
CLK

BR
BR15..0

ldXR LD
CLK

XRout

XR
XR15..0

CLK
LD

BRUout

BRU

IL
SL

0
slBRU

BRU15..0

Slika 169 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, adresiranja i duina instrukcija, su dati pod v) u
reenju zadatka 1.13.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 170.
! itanje instrukcije !
step00 PCout, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout, ldIR1;
step04 br (if l1_bezadr then step21);
step05 br (if l1_arlogshpr then step0F);
step06 PCout, ldMAR, incPC;
step07 RD;
step08 br (if OBI then step08);
step09 MDRout, ldIR2, br (if l2_brn then step21);
step0A br (if l2_arlogshpr then step0F);
step0B PCout, ldMAR, incPC;
step0C RD;
step0D br (if OBI then step0D);
step0E MDRout, ldIR3, br (if l3_jmp then step21);
! Formiranje adrese i itanje operanda !
step0F br (case (regdir, regind, brpom, xrpom, bxpom, pcpom, memdir, imm)
then
(regdir, step10), (regind, step11), (brpom, step12), (xrpom, step15),
(bxpom, step18), (pcpom, step1D), (memdir, step20), (imm, step29));
179

! Registarsko direktno adresiranje !


step10 DRout, ldB, br step2A;
! Registarsko indirektno adresiranje !
step11 ARout, ldMAR, br step21;
! Bazno sa pomerajem adresiranje !
step12 BRout, ldX;
step13 IRBPAPout, ldY;
step14 add, ALUout, ldMAR br step21;
! Indeksno sa pomerajem adresiranje !
step15 XRout, ldX;
step16 IRBPAPout, ldY;
step17 add, ALUout, ldMAR br step21;
! Bazno indeksno sa pomerajem adresiranje !
step18 BRout, ldX;
step19 XRout, ldY;
step1A add, ALUout, ldX;
step1B IRBPAPout, ldY;
step1C add, ALUout, ldMAR br step21;
! PC relativno sa pomerajem adresiranje !
step1D PCout, ldX;
step1E IRBPAPout, ldY;
step1F add, ALUout, ldMAR br step21;
! Memorijsko direktno adresiranje !
step20 IRJAADIMout, ldMAR;
! itanje operanda !
step21 br (if STJADR then step2A);
step22 RD;
step23 br (if OBI then step23);
step24 MDRout, ldDH, incMAR;
step25 RD;
step26 br (if OBI then step26);
step27 MDRout, ldDL;
step28 Dout, ldB, br step2A;
! Neposredno adresiranje !
step29 IRJAADIMout, ldB;
! Izvravanje operacije !
step2A br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step2B), (ST, step2C), (ADD, step35), (AND, step38), (ASR, step3B),
(BZ, step3D), (JMP, step41), (JADR, step42), (JSR, step43),
(RTI, step4C), (RTS, step51));
! LD !
step2B Bout, ldACC, br step5B;
! ST !
step2C br (if regdir then step34);
step2D ACCHout, mxMDR, ldMDR;
step2E WR;
step2F br (if OBI then step2F);
step30 ACCout, mxMDR, ldMDR, incMAR;
step31 WR;
step32 br (if OBI then step32);
step33 br step5B;
180

step34 ACCout, ldDR, br step5B;


! ADD !
step35 ACCout, ldX;
step36 Bout, ldY;
step37 add, ALUout, ldACC, br step5B;
! AND !
step38 ACCout, ldX;
step39 Bout, ldY;
step3A and, ALUout, ldACC, br step5B;
! ASR !
step3B Bout, ldX;
step3C asr, ALUout, ldACC, br step5B;
! BZ !
step3D br (if PSWZ then step5B);
step3E PCout, ldX;
step3F IRBPAPout, ldY;
step40 add, ALUout, ldPC, br step5B;
! JMP !
step41 IRJAADIMout, ldPC, br step5B;
! JADR !
step42 MARout, ldPC, br step5B;
! JSR !
step43 SPout, ldMAR, decSP;
step44 PCout, mxMDR, ldMDR;
step45 WR;
step46 br (if OBI then step46);
step47 SPout, ldMAR, decSP;
step48 PCHout, mxMDR, ldMDR;
step49 WR;
step4A br (if OBI then step4A);
step4B IRJAADIMout, ldPC, br step5B;
! RTI !
step4C incSP;
step4D SPout, ldMAR;
step4E RD;
step4F br (if OBI then step4F);
step50 MDRout, ldPSW;
! RTS !
step51 incSP;
step52 SPout, ldMAR;
step53 RD;
step54 br (if OBI then step54);
step55 MDRout, ldDH, incSP;
step56 SPout, ldMAR;
step57 RD;
step58 br (if OBI then step58);
step59 MDRout, ldDL;
step5A Dout, ldPC;
! Opsluivanje prekida !
step5B br (if PREKID then step00);
step5C SPout, ldMAR, decSP;
step5D PCout, mxMDR, ldMDR;

181

step5E WR;
step5F br (if OBI then step5F);
step60 SPout, ldMAR, decSP;
step61 PCHout, mxMDR, ldMDR;
step62 WR;
step63 br (if OBI then step63);
step64 SPout, ldMAR, decSP;
step65 PSWout, mxMDR, ldMDR;
step66 WR;
step67 br (if OBI then step67);
step68 slBRU;
step69 IVTPout, ldX;
step6A BRUout, ldY;
step6B add, ALUout, ldMAR;
step6C RD;
step6D br (if OBI then step6D);
step6E MDRout, ldDH, incMAR;
step6F RD;
step70 br (if OBI then step70);
step71 MDRout, ldDL;
step72 Dout, ldPC, br step00;

Slika 170 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) Mikroprogram se formira na nain dat pod d) u reenju zadataka 1.3 i 1.8.
) Upravljaka jedinica se realizuje na nain dat pod ) u reenju zadataka 1.3 i 1.8.

182

1.15 ZADATAK
Posmatra se deo raunara iz zadatka 1.13.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa dve interne magistrale.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
horizontalnim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i
horizontalnim kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje
upravljakih signala i to za upravljake signale operacione jedinice ldMAR, incPC i Bout2, i
sve upravljake signale upravljake jedinice kojima se upravlja mikroprogramskim brojaem.
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.13.
b) Jedna realizacija strukturne eme operacione jedinice sa dve interne magistrale je data na
slikama 171 i 172. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.

183

BUS
144444444444444444424444444444444444443

ABUS15..0

RD
WR

RD
WR

DBUS7..0

IB115..0

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

A15..0

IB115..0MARou1

RDBUS

OBI

OBI

MDRout2
MDR7..0

MAR15..0

ldMAR
incMAR

LD

MAR

INC

CLK

MDR

LD

ldMBR

CLK

mxMDR 0 mxMDR
0

IB27..0

PCHout2

IB27..0

PC15..8

PCout2

PC15..0

IB115..0
IB115..0

incPC INC
ldPC LD

PC

IB27..0

IB215..0

CLK

SPout1
SP15..0
incSP INC
decSP DEC

SP

LD
CLK

IB215..0
PSWout2

IB27..0

PSW7..0
ldPSW LD

PSW CLK

mxPSW 0 mxPSW
0

formiranje
indikatora

IB115..0

IB27..0
IB27..0

Dout1
D15..0

ldIR1 LD IR1 CLK

IRBPAPout1
IB115..0
IR15..15.IR15..8
IB115..0

IRJAADIMout1
IR15..0

IR23..16
ldIR2 LD IR2 CLK

ldIR3 LD IR3 CLK

IR15...8
ldDH LD

D CLK

IR7..0
ldDL LD

D15..8

Slika 171 Operaciona jedinica (prvi deo)

184

IB27..0

D CLK
D7..0

IB27..0

IB115..0

ALUout1
ALU15..0
ALU

A15...0

ldX

LD

add
and
asr

B15...0

Bout2

CLK

B15..0

IB115..0

IB215..0
IB27..0

ACCout2

IB215..0
IB215..0

ACC15..0
ldACC LD ACC CLK
IB115..0
IVTPout1

IB115..0

IB215..0

ldB

LD
CLK

IB215..0

ACCHout2
ACC15..8

IB215..0

CLK
LD

IVTP

formiranje BRU
CLK
LD

IVTP15..0

BRU

SL
IL

slBRU
0 BRUout2 IB2

BRU15..0

15..0

IB215..0
CLK

DR
ldDR LD
DR15..0

CLK

ldBR LD
BR15..0
IB115..0

BR

CLK

AR
ldAR LD
DRout2
AR15..0

ARout2

IB215..0
IB215..0
IB215..0

CLK

XR
ldXR LD
BRout2
XR15..0

XRout2

IB1_2

IB215..0
IB215..0
IB215..0

IB2_1

IB115..0

IB215..0

Slika 172 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, su dati pod v) u
reenju zadatka 1.13.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 173.

185

! itanje instrukcije !
step00 PCout2, IB2_1, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout2, ldIR1;
step04 br (if l1_bezadr then step25);
step05 br (if l1_arlogshpr then step0F);
step06 PCout2, IB2_1, ldMAR, incPC;
step07 RD;
step08 br (if OBI then step08);
step09 MDRout2, ldIR2, br (if l2_brn then step25);
step0A br (if l2_arlogshpr then step0F);
step0B PCout2, IB2_1, ldMAR, incPC;
step0C RD;
step0D br (if OBI then step0D);
step0E MDRout2, ldIR3, br (if l3_jump then step25);
! Formiranje adrese i itanje operanda !
step0F br (case (regdir, regind, brpom, xrpom, bxpom, pcpom, memdir, imm)
then (regdir, step10), (regind, step11), (brpom, step12), (xrpom, step14),
(bxpom, step16), (pcpom, step19), (memdir, step1C), (imm, step24));
! Registarsko direktno adresiranje !
step10 DRout2, ldB, br step25;
! Registarsko indirektno adresiranje !
step11 ARout2, IB2_1, ldMAR, br step1C;
! Bazno sa pomerajem adresiranje !
step12 IRBPAPout1, ldX;
step13 BRout2, add, ALUout1, ldMAR, br step1C;
! Indeksno sa pomerajem adresiranje !
step14 IRBPAPout1, ldX;
step15 XRout2, add, ALUout1, ldMAR, br step1C;
! Bazno indeksno sa pomerajem adresiranje !
step16 IRBPAPout1, ldX;
step17 BRout2, add, ALUout1, ldX;
step18 XRout2, add, ALUout1, ldMAR, br step1C;
! PC relativno sa pomerajem adresiranje !
step19 IRBPAPout1, ldX;
step1A PCout2, add, ALUout1, ldMAR, br step1C;
! Memorijsko direktno adresiranje !
step1B IRJAADIMout1, ldMAR;
! itanje operanda !
step1C br (if STJADR then step25);
step1D RD;
step1E br (if OBI then step1E);
step1F MDRout2, ldDH, incMAR;
step20 RD;
step21 br (if OBI then step21);
step22 MDRout2, ldDL;
step23 Dout1, IB1_2, ldB, br step25;
! Neposredno adresiranje !
step24 IRJAADIMout1, IB1_2, ldB;

186

! Izvravanje operacije !
step25 br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step26), (ST, step27), (ADD, step30), (AND, step32), (ASR, step34),
(BZ, step36), (JMP, step39), (JADR, step3A), (JSR, step3B),
(RTI, step42), (RTS, step47));
! LD !
step26 Bout2, IB2_1, ldACC, br step51;
! ST !
step27 br (if regdir then step2F);
step28 ACCHout2, mxMDR, ldMDR;
step29 WR;
step2A br (if OBI then step2A);
step2B ACCout2, mxMDR, ldMDR, incMAR;
step2C WR;
step2D br (if OBI then step2D);
step2E br step51;
step2F ACCout2, ldDR, br step51;
! ADD !
step30 ACCout2, IB2_1, ldX;
step31 Bout2, add, ALUout1, ldACC, br step51;
! AND !
step32 ACCout2, IB2_1, ldX;
step33 Bout2, and, ALUout1, ldACC, br step51;
! ASR !
step34 Bout2, IB2_1, ldX;
step35 asr, ALUout1, ldACC, br step51;
! BZ !
step36 br (if PSWZ then step51);
step37 IRBPAPout1, ldX;
step38 PCout2, add, ALUout1, ldPC, br step51;
! JMP !
step39 IRJAADIMout1, ldPC, br step51;
! JADR !
step3A MARout1, ldPC, br step51;
! JSR !
step3B SPout1, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step3C WR;
step3D br (if OBI then step3D);
step3E SPout1, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step3F WR;
step40 br (if OBI then step40);
step41 IRJAADIMout1, ldPC, br step51;
! RTI !
step42 incSP;
step43 SPout1, ldMAR;
step44 RD;
step45 br (if OBI then step45);
step46 MDRout2, ldPSW;
! RTS !
step47 incSP;

187

step48 SPout1, ldMAR;


step49 RD;
step4A br (if OBI then step4A);
step4B MDRout2, ldDH, incSP;
step4C SPout1, ldMAR;
step4D RD;
step4E br (if OBI then step4E);
step4F MDRout2, ldDL;
step50 Dout1, ldPC;
! Opsluivanje prekida !
step51 br (if PREKID then step00);
step52 SPout1, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step53 WR;
step54 br (if OBI then step54);
step55 SPout1, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step56 WR;
step57 br (if OBI then step57);
step58 SPout1, ldMAR, decSP, PSWout2, mxMDR, ldMDR;
step59 WR;
step5A br (if OBI then step5A);
step5B slBRU;
step5C IVTPout1, ldX;
step5D BRUout2, add, ALUout1, ldMAR;
step5E RD;
step5F br (if OBI then step5F);
step60 MDRout2, ldDH, incMAR;
step61 RD;
step62 br (if OBI then step62);
step63 MDRout2, ldDL;
step64 Dou1, ldPC, br step00;

Clika 173 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) Mikroprogram se formira na nain dat pod d) u reenju zadataka 1.4 i 1.5.
) Upravljaka jedinica se realizuje na nain dat pod ) u reenju zadataka 1.4 i 1.5.

188

1.16 ZADATAK
Posmatra se deo raunara iz zadatka 1.13.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa tri interne magistrale.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati sekvencu upravljakih signala po koracima za upravljaku jedinicu oiene
realizacije.
) Nacrtati strukturnu emu upravljake jedinice oiene realizacije i dati izraze za
generisanje upravljakih signala i to za upravljake signale operacione jedinice ldMAR, incPC
i RD, sve upravljake signale upravljake jedinice kojima se upravlja brojaem koraka i tri
signala kojima se odreuje vrednost koja treba da se upie u broja koraka.
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.13.
b) Jedna realizacija strukturne eme operacione jedinice sa tri interne magistrale je data na
slikama 174 i 175. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.

189

BUS
144444444444444444424444444444444444443

ABUS15..0

RD
WR

RD
WR

DBUS7..0

A15..0

RDBUS

WRBUS

FCBUS

INTRFEJS SISTEMSKE MAGISTRALE


DI7..0
DO7..0

OBI

OBI

MDRout1

IB17..0

MDR7..0
LD

ldMBR

MDR

CLK

mxMDR 0 mxMDR
0

IB27..0
MARout3

MAR15...0
ldMAR
incMAR

LD
INC

IB27..0
PCout2

MAR

IB315..0

CLK

IB315..0

PCHout2
PC15..8

IB215..0

Dout3

IB315..0

D15..0

PC15..0

IRJAADIMout3
IR15..0

incPC INC
PC CLK
ldPC LD

IB315..0

SPout3

IB315..0

SP15..0

IB17..0

IB215..0
IB27..0
IB215..0

incSP INC
SP
decSP DEC

LD

IB17..0
PSWout2

ldIR1 LD IR1 CLK


PSW7...0

ldPSW

LD

IB17..0

IR23..16

PSW CLK
ldIR2 LD IR2 CLK ldIR3

IB17..0
IB115..0

IB315..0

mxPSW 0 mxPSW
0

IRBPAPout1
IR15..15.IR15..8

IB17..0

formiranje
indikatora

ldDH LD

IR15..8
D CLK
D15..8

Slika 174 Operaciona jedinica (prvi deo)

190

LD

IR3 CLK
IR7..0

ldDL LD

D CLK
D7..0

ALUout3

IB315..0

ALU15..0
A15...0

IB115..0
IB115..0

ALU

add
and
asr

B15...0

IB215..0

Bout1
B15..0
ACCHout2

IB27..0

ACC15..8

IB215..0

ldB

LD
CLK

IB315..0

ACCout2
ACC15..0
ldACC LD ACC CLK
IB315..0

IB215..0
IVTPout1

IB115..0

IVTP
IVTP15..0

ldDR LD
IB115..0
IB115..0

CLK
LD

DRout1

CLK

DR
DR15..0

ldAR LD
CLK

ARout1

IB315..0

AR
AR15..0
IB315..0

ldBR LD
BRout2

CLK

IB215..0
IB215..0
IB215..0

BR
BR15..0

CLK

XRout2

XR

formiranje BRU

XR15..0
BRUout2

IB1_3

IB115..0

IB2_3

IB2_1

CLK
LD

BRU

IL
SL

0
slBRU

BRU15..0
IB315..0

IB215..0
IB115..0

ldXR LD

IB315..0

IB215..0

Slika 175 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, su dati pod v) u
reenju zadatka 1.13.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 176.

191

! itanje instrukcije !
step00 PCout2, IB2_3, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout1, ldIR1;
step04 br (if l1_bezadr then step21);
step05 br (if l1_arlogshpr then step0F);
step06 PCout2, IB2_3, ldMAR, incPC;
step07 RD;
step08 br (if OBI then step08);
step09 MDRout1, ldIR2, br (if l2_brn then step21);
step0A br (if l2_arlogshpr then step0F);
step0B PCout2, IB2_3, ldMAR, incPC;
step0C RD;
step0D br (if OBI then step0D);
step0E MDRout1, ldIR3, br (if l3_jmp then step21);
! Formiranje adrese i itanje operanda !
step0F br (case (regdir, regind, brpom, xrpom, bxpom, pcpom, memdir, imm)
then
(regdir, step10), (regind, step11), (brpom, step12), (xrpom, step13),
(bxpom, step14), (pcpom, step16), (memdir, step17), (imm, step20));
! Registarsko direktno adresiranje !
step10 DRout1, IB1_3, ldB, br step21;
! Registarsko indirektno adresiranje !
step11 ARout1, IB1_3, ldMAR, br step18;
! Bazno sa pomerajem adresiranje !
step12 IRBPAPout1, BRout2, add, ALUout3, ldMAR, br step18;
! Indeksno sa pomerajem adresiranje !
step13 IRBPAPMout1, XRout2, add, ALUout3, ldMAR, br step18;
! Bazno indeksno sa pomerajem adresiranje !
step14 IRBPAPout1, BRout2, add, ALUout3, ldB;
step15 Bout1, XRout2, add, ALUout3, ldMAR, br step18;
! PC relativno sa pomerajem adresiranje !
step16 IRBPAPout1, PCout2, add, ALUout3, ldMAR, br step18;
! Memorijsko direktno adresiranje !
step17 IRJAADIMout3, ldMAR;
! itanje operanda !
step18 br (if STJADR then step21);
step19 RD;
step1A br (if OBI then step1A);
step1B MDRout1, ldDH, incMAR;
step1C RD;
step1D br (if OBI then step1D);
step1E MDRout1, ldDL;
step1F Dout3, ldB, br step21;
! Neposredno adresiranje !
step20 IRJAADIMout3, ldB;
! Izvravanje operacije !
step21 br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step22), (ST, step23), (ADD, step2C), (AND, step2D), (ASR, step2E),
(BZ, step2F), (JMP, step31), (JADR, step32), (JSR, step33),
(RTI, step3A), (RTS, step3F));
192

! LD !
step22 Bout1, IB1_3, ldACC, br step49;
! ST !
step23 br (if regdir then step2B);
step24 ACCHout2, mxMDR, ldMDR;
step25 WR;
step26 br (if OBI then step26);
step27 ACCout2, mxMDR, ldMDR, incMAR;
step28 WR;
step29 br (if OBI then step29);
step2A br step59;
step2B ACCout2, IB2_3, ldDR, br step49;
! ADD !
step2C ACCout2, Bout1, add, ALUout3, ldACC, br step49;
! AND !
step2D ACCout2, Bout1, and, ALUout3, ldACC, br step49;
! ASR !
step2E Bout1, asr, ALUout3, ldACC, br step49;
! BZ !
step2F br (if PSWZ then step49);
step30 PCout2, IRBPAPout1, add, ALUout3, ldPC, br step49;
! JMP !
step31 IRJAADIMout3, ldPC, br step49;
! JADR !
step32 MARout3, ldPC, br step49;
! JSR !
step33 SPout3, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step34 WR;
step35 br (if OBI then step35);
step36 SPout3, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step37 WR;
step38 br (if OBI then step38);
step39 IRJAADIMout3, ldPC, br step49;
! RTI !
step3A incSP;
step3B SPout3, ldMAR;
step3C RD;
step3D br (if OBI then step3D);
step3E MDRout1, ldPSW;
! RTS !
step3F incSP;
step40 SPout3, ldMAR;
step41 RD;
step42 br (if OBI then step42);
step43 MDRout1, ldDH, incSP;
step44 SPout3, ldMAR;
step45 RD;
step46 br (if OBI then step46);
step47 MDRout1, ldDL;
step48 Dout3, ldPC;
! Opsluivanje prekida !
step49 br (if PREKID then step00);

193

step4A SPout3, ldMAR, decSP, PCout2, mxMDR, ldMDR;


step4B WR;
step4C br (if OBI then step4C);
step4D SPout3, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step4E WR;
step4F br (if OBI then step4F);
step50 SPout3, ldMAR, decSP, PSWout2, mxMDR, ldMDR;
step51 WR;
step52 br (if OBI then step52);
step53 slBRU;
step54 IVTPout1, BRUout2, add, ALUout3, ldMAR;
step55 RD;
step56 br (if OBI then step56);
step57 MDR1out, ldDH, incMAR;
step58 RD;
step59 br (if OBI then step59);
step5A MDR1out, ldDL;
step5B Dou3, ldPC, br step00;

Slika 176 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) Sekvenca upravljakih signala po koracima za upravljaku jedinicu oiene realizacije
se formira na nain dat pod d) u reenju zadataka 1.1 i 1.6.
) Upravljaka jedinica se realizuje na nain dat pod ) u reenju zadataka 1.1 i 1.6.

194

1.17 ZADATAK
Posmatra se deo raunara koji ine memorija i procesor.
Memorija je kapaciteta 216 bajtova. irina memorijske rei je 1 bajt.
Procesor je sa jednoadresnim formatom instrukcija. Podaci su celobrojne veliine bez
znaka duine jedan bajt.
U procesoru postoji registar programskog brojaa PC duine dva bajta, adresni registar
memorije MAR duine dva bajta, prihvatni registar podatka memorije MDR duine jedan
bajt, prihvatni registar instrukcije IR duine etiri bajta, registar akumulatora ACC duine
jedan bajt, pomoni registar podatka B duine jedan bajt, registri opte namene R[0] do R[31]
duine dva bajta, programska statusna re PSW duine jedan bajt koja sadri samo indikator
Z, ukaziva na vrh steka SP duine 2 bajta, registar broja ulaza u tabelu sa adresama prekidnih
rutina BRU duine 2 bajta i ukaziva na tabelu sa adresama prekidnih rutina IVTP duine 2
bajta. Instrukcije su promenljive duine i to jedan, dva, tri ili etiri bajta. Bitovi prvog bajta su
oznaeni sa 31 do 24, drugogo bajta sa 23 do 16, treeg bajta sa 15 do 8 i etvrtog bajta sa 7
do 0. Struktura instrukcija je definisana na nain dat u daljem tekstu.
Prvi bajt instrukcije oznaen sa OC76 sadri polje koda operacije. Kodiranje operacija je
izvreno na takav nain da bitovi:
OC76 predstavljaju jednu od etiri grupe instrukcija, zatim bitovi
OC53 predstavljaju jednu od osam podgrupa instrukcija u svakoj od etiri grupe
instrukcija i na kraju bitovi
OC20 predstavljaju jednu od 8 instrukcija u svakoj od 8 podgrupa svake od etiri grupe
instrukcija.
Kodiranje etiri grupe instrukcija G0 do G3 je dato u tabeli 4.
Tabela 4 Kodiranje etiri grupe instrukcija
OC76 Oznaka Napomena
00
G0
Koristi se
01
G1
Ne koristi se
10
G2
Ne koristi se
11
G3
Ne koristi se

Kodiranje osam podgrupa instrukcija G0_PG0 do G0_PG7 u okviru grupe instrukcija G0 je


dato u tabeli 5.
Tabela 5 Kodiranje osam podgrupa instrukcija iz grupe G0
OC53
000
001
010
011
100
101
110
111

Oznaka
G0_PG0
G0_PG1
G0_PG2
G0_PG3
G0_PG4
G0_PG5
G0_PG6
G0_PG7

Napomena
Ne koristi se
Instrukcija bezuslovnog skoka (OC2=0) i bezadresne instrukcije (OC2=1)
Instrukcije uslovnog skoka
Ne koristi se
instrukcije prenosa
instrukcija bezuslovnog skoka na sraunatu adresu
Aritmetike instrukcije (OC2=0) i logike instrukcije (OC2=1)
Instrukcije pomeranja (OC2=0) i rotiranja (OC2=1)

Kodiranje operacija u okviru od osam podgrupa instrukcija G0_PG0 do G0_PG7 se vri sa


tri najmlaa bita OC20 polja koda operacije.

195

Bezadresne instrukcije su instrukcija povratka iz potprograma (RTS) i instrukcija povratka


iz prekidne rutine (RTI). Ove instrukcije pripadaju grupi 0 (OC7.6=00) i podgrupi 1
(OC5..3=001) i imaju OC2=1, dok se bitovima OC1.0 specificira kod operacije. Na osnovu toga
su za instrukcije RTS i RTI usvojeni kodovi operacija 00001100 i 00001101, respektivno.
Bezadresna je i instrukcija aritmetikog pomeranja udesno za jedno mesto sadraja
akumulatora ACC (ASR). Instrukcije pomeranja pripadaju grupi 0 (OC7.6=00) i podgrupi 7
(OC5..3=111) i imaju OC2=0, dok se bitovima OC1.0 specificira kod operacije. Na osnovu toga
je za instrukciju ASR usvojen kod operacije 00111000. Duina instrukcija je jedan bajt.
Instrukcija uslovnog skoka je instrukcija uslovnog skoka ukoliko je rezultat nula (BZ).
Instrukcije uslovnog skoka pripadaju grupi 0 (OC7.6=00) i podgrupi 2 (OC5..3=010), dok se
bitovima OC2..0 specificira kod operacije. Na osnovu toga je za instrukciju BZ usvojen kod
operacije 00010000. Instrukcija BZ se realizuje kao relativni skok u odnosu na tekuu
vrednost programskog brojaa PC, a pomeraj je 8 bitna celobrojna veliina sa znakom data
drugim bajtom instrukcije. Duina instrukcije je dva bajta.
Instrukcije bezuslovnog skoka su instrukcija bezuslovnog skoka (JMP) i instrukcija skoka
na potprogram (JSR). Ove instrukcije pripadaju grupi 0 (OC7.6=00) i podgrupi 1 (OC5..3=001)
i imaju OC2=0, dok se bitovima OC1.0 specificira kod operacije. Na osnovu toga su za
instrukcije RTS i RTI usvojeni kodovi operacija 00001000 i 00001001, respektivno.
Instrukcije JMP i JSR se realizuju kao apsolutni skokovi, a adresa skoka je data drugim i
treim bajtom instrukcije, pri emu je stariji bajt adrese skoka dat drugim bajtom instrukcije a
mlai bajt adrese skoka treim bajtom instrukcije. Duina instrukcija je tri bajta.
Adresne instrukcije su instrukcija prenosa u akumulator (LD), instrukcija prenosa iz
akumulatora (ST), aritmetika instrukcija sabiranja (ADD), logika instrukcija logiki
proizvod (AND) i instrukcija bezuslovnog skoka na sraunatu adresu (JADR). Instrukcije
prenosa pripadaju grupi 0 (OC7.6=00) i podgrupi 4 (OC5..3=100), dok se bitovima OC2..0
specificira kod operacije. Na osnovu toga su za instrukcije LD i ST usvojeni kodovi operacija
00100000 i 00100001, respektivno. Aritmetike instrukcije pripadaju grupi 0 (OC7.6=00) i
podgrupi 6 (OC5..3=110) i imaju OC2=0, dok se bitovima OC1.0 specificira kod operacije. Na
osnovu toga je za instrukciju ADD usvojen kod operacije 00110000. Logike instrukcije
pripadaju grupi 0 (OC7.6=00) i podgrupi 6 (OC5..3=110) i imaju OC2=1, dok se bitovima
OC1.0 specificira kod operacije. Na osnovu toga je za instrukciju ADD usvojen kod operacije
00110100. Instrukcije bezuslovnog skoka na sraunatu adresu pripada grupi 0 (OC7.6=00) i
podgrupi 5 (OC5..3=101), dok se bitovima OC2..0 specificira kod operacije. Na osnovu toga je
za instrukciju JADR usvojen kod operacije 00101000. Duina instrukcija je dva, tri ili etiri
bajta i zavisi od specificiranog naina adresiranja.
Za adresne instrukcije se bitovima 7, 6 i 5 drugog bajta instrukcije specificira nain
adresiranja i to na sledei nain: 000 - registarsko direktno adresiranje (regdir), 001 registarsko indirektno adresiranje (regind), 010 - memorijsko direktno adresiranje (memdir),
011 - memorijsko indirektno adresiranje (memind), 100 - registarsko indirektno sa pomerajem
adresiranje (regindpom), 101 - bazno indeksno sa pomerajem adresiranje (bxpom), 110 - PC
relativno sa pomerajem adresiranje (pcpom) i 111-neposredno adresiranje (imm).
Kod registarsko direktnog i registarsko indirektnog adresiranja koristi neki od 32 registra
opte namene R[0] i R[31] sa adrese specificire bitovima 4 do 0 drugog bajta instrukcije.
Duina instrukcija je dva bajta.
Kod memorijskog direktnog i memorijskog indirektnog adresiranja trei i etvrti bajt
instrukcije sadre adresu memorijske lokacije, pri emu je stariji bajt adrese dat treim bajtom
a mlai bajt adrese etvrtim bajtom. Kod memorijskog indirektnog adresiranja adresa duine
16 bita zauzima dve susedne memorijske lokacije, pri emu je stariji bajt adrese nalazi na

196

nioj a mlai bajt adrese na vioj lokaciji. Bitovi 4 do 0 drugog bajta instrukcije se ne koriste.
Duina instrukcija je etiri bajta.
Kod registarskog indirektnog sa pomerajem, bazno indeksnog sa pomerajem i PC
relativnog sa pomerajem adresiranja trei i etvrti bajt instrukcije sadre 16 bitni pomeraj koji
je dat kao celobrojna veliina sa znakom, pri emu je stariji bajt pomeraja dat treim bajtom a
mlai bajt pomeraja etvrtim bajtom. Kod registarskog indirektnog sa pomerajem adresiranja
adresa memorijske lokacije se dobija sabiranjem sadraja jednog od 32 registra opte namene
R[0] i R[31] i pomeraja, pri emu se registar opte namene koji se koristi uzima sa adrese
specificirane bitovima 4 do 0 drugog bajta instrukcije. Kod bazno indeksnog sa pomerajem
adresiranja adresa memorijske lokacije se dobija sabiranjem sadraja dva od 32 registra opte
namene R[0] i R[31] i pomeraja, pri emu se registar opte namene koji se koristi kao bazni
registar uzima sa adrese specificirane bitovima 4 do 0 drugog bajta instrukcije, dok se registar
opte namene koji se koristi kao indeksni registar uzima sa prve sledee adrese. Kod PC
relativnog sa pomerajem adresiranja adresa memorijske lokacije se dobija sabiranjem sadraja
programskog brojaa PC i pomeraja, pri emu se bitovi 4 do 0 drugog bajta instrukcije ne
koriste. Duina instrukcija je etiri bajta.
Kod neposrednog adresiranja trei bajt instrukcije sadri 8 bitni podatak, pri emu se bitovi
4 do 0 drugog bajta instrukcije ne koriste. Duina instrukcija je tri bajta.
Stek raste prema niim memorijskim lokacijama, a registar SP ukazuje na prvu slobodnu
memorijsku lokaciju.
Nema provere na greku koda operacije i naina adresiranja i nema odgovarajuih
unutranjih prekida. Od prekida jedino postoje spoljanji prekidi koji dolaze od
ulazno/izlaznih ureaja. Broj linije najvieg prioriteta po kojoj je stigao zahtev za prekid
nalazi se u binarnom obliku u registru BRU i predstavlja broja ulaza u tabelu sa adresama
prekidnih rutina. Adrese su duine 16 bita zauzimaju po dve susedne memorijske lokacije, pri
emu se stariji bajt adrese nalazi na nioj lokaciji a mlai bajt adrese na vioj lokaciji. Poetna
adresa tabele sa adresama prekidnih rutina se nalazi u registru IVTP. U okviru hardverskog
dela opsluivanja zahteva za prekid na stek sa stavljaju samo registri PC i PSW.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa direktnim vezama.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
v) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
g) Napisati sekvencu upravljakih signala po koracima za upravljaku jedinicu oiene
realizacije.
d) Nacrtati strukturnu emu upravljake jedinice oiene realizacije i dati izraze za
generisanje upravljakih signala i to za upravljake signale operacione jedinice ldMAR, incPC
i RD, sve upravljake signale upravljake jedinice kojima se upravlja brojaem koraka i tri
signala kojima se odreuje vrednost koja treba da se upie u broja koraka.
REENjE
a) U procesoru se koriste sledei formati instrukcija:
1. Bezadresne instrukcije (RTS, RTI)
31 30 29 28 27 26 25 24

0 0 0 0 1 1 OC

Bezadresne instrukcije (ASR)


31 30 29 28 27 26 25 24

197

0 0 1 1 1 0 OC

Slika 177 Bezadresne instrukcije


Poljem OC se specificira operacija koja se izvrava.
2. Instrukcije uslovnog skoka (BZ)
23 22 21 20 19 18 17 16

00010

23 22 21 20 19 18 17 16

OC

BP

Slika 178 Instrukcije uslovnog skoka


Poljem OC se specificira operacija koja se izvrava, a poljem BP 8-mo bitni pomeraj kao
celobrojna veliina sa znakom koji se sabira sa PC da bi se dobila adresa skoka.
3. Instrukcije bezuslovnog skoka (JMP, JSR)
31 30 29 28 27 26 25 24

23 22 21 20 19 18 17 16

15 14 13 12 11 10 9 8

0 0 0 0 1 0 OC

JAH
I

JAL
I

Slika 179 Instrukcije bezuslovnog skoka

Poljem OC se specificira operacija koja se izvrava, a poljima JAH i JAL 8 starijih i 8


mlaih bitova 16-to bitne adrese skoka.
4. Adresne instrukcije (LD, ST) sa regdir, regind
23 22 21 20 19 18 17 16

00100

OC

23 22 21 20 19 18 17 16

AM

Adresne instrukcije (ADD) sa regdir, regind


23 22 21 20 19 18 17 16

0 0 1 1 0 0 OC

23 22 21 20 19 18 17 16

AM

Adresne instrukcije (AND) sa regdir, regind


23 22 21 20 19 18 17 16

0 0 1 1 0 1 OC

23 22 21 20 19 18 17 16

AM

Adresne instrukcije (JADR) sa regind


23 22 21 20 19 18 17 16

00101

OC

23 22 21 20 19 18 17 16

AM

Slika 180 Adresne instrukcije sa regdir ili regind


Poljem OC se specificira kod operacije jednoadresne instrukcije, poljem AM registarsko
direktno adresiranje (000) ili registarsko indirektno adresiranje (001) i poljem R jedan od 32
registra opte namene R[0] do R[31].
Napomena: Pretpostavlja sa da se u instrukciji JADR ne koristi registarsko direktno
adresiranje (000).
Adresne instrukcije (LD) sa imm
23 22 21 20 19 18 17 16

00100

OC

23 22 21 20 19 18 17 16

AM

15 14 13 12 11 10 9 8

IM

Adresne instrukcije (ADD) sa imm


23 22 21 20 19 18 17 16

0 0 1 1 0 0 OC

23 22 21 20 19 18 17 16

AM

15 14 13 12 11 10 9 8

IM

Adresne instrukcije (AND) sa imm


23 22 21 20 19 18 17 16

23 22 21 20 19 18 17 16

15 14 13 12 11 10 9 8

198

0 0 1 1 0 1 OC

AM

IM

Slika 181 Adresne instrukcije sa regindpom


Poljem OC se specificira kod operacije jednoadresne instrukcije, poljem AM neposredno
adresiranje (111) i poljem IM 8-mo bitna neposredna veliina.
Napomena: Pretpostavlja sa da se u instrukcijama ST i JADR ne koristi neposredno
adresiranje (111).
6. Adresne instrukcije (LD, ST) sa memdir, memind, regindpom, bxpom, pcpom
23 22 21 20 19 18 17 16

00100

OC

23 22 21 20 19 18 17 16

AM

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

ADAPH

ADAPL

Adresne instrukcije (ADD) sa memdir, memind, regindpom, bxpom, pcpom


23 22 21 20 19 18 17 16

0 0 1 1 0 0 OC

23 22 21 20 19 18 17 16

AM

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

ADAPH

ADAPL

Adresne instrukcije (AND) sa memdir, memind, regindpom, bxpom, pcpom


23 22 21 20 19 18 17 16

0 0 1 1 0 1 OC

23 22 21 20 19 18 17 16

AM

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

ADAPH

ADAPL

Adresne instrukcije (JADR) sa memdir, memind, regindpom, bxpom, pcpom


23 22 21 20 19 18 17 16

00101

OC

23 22 21 20 19 18 17 16

AM

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

ADAPH

ADAPL

Slika 182 Adresne instrukcije sa memdir, memind, regindpom, bxpom ili pcpom
Poljem OC se specificira kod operacije jednoadresne instrukcije. Kada se poljem AM
specificira memorijsko direktno adresiranje (010) ili memorijsko indirektno adresiranje (011),
polje R se ne koristi, a poljima ADAPH i ADAPL se specificira 8 starijih i 8 mlaih bitova 16to bitne adrese. Kada se poljem AM specificira registarsko indirektno sa pomerajem
adresiranje (100), polje R predstavlja adresu jednog od 32 registra opte namene R[0] do
R[31], a polja ADAPH i ADAPL 8 starijih i 8 mlaih bitova 16-to bitnog pomeraja. Kada se
poljem AM specificira bazno indeksno sa pomerajem adresiranje (101), polje R predstavlja
adresu jednog od 32 registra opte namene R[0] do R[31] koji se koristi kao bazni registar,
dok se registar opte namene sa prve sledee adrese koristi kao indeksni registar, a polja
ADAPH i ADAPL predstavljaju 8 starijih i 8 mlaih bitova 16-to bitnog pomeraja. Kada se
poljem AM specificira PC relativno sa pomerajem adresiranje (101), polje R se ne koristi, a
polja ADAPH i ADAPL predstavljaju 8 starijih i 8 mlaih bitova 16-to bitnog pomeraja.
b) Jedna realizacija strukturne eme operacione jedinice sa direktnim vezama je data na
slikama 183 i 184. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.

199

BUS
144444444444444444424444444444444444443

ABUS15..0

RD
WR

RD
WR

DBUS7..0

A15..0

RDBUS

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

MAR15..0

0
1
2 0

mxMDR0
mxMDR1
mxMDR2

SP15..0
ADD15..0

MDR CLK

LD

ldMDR

mxMAR

PC15..0
R15..0
IR15..0
D15..0

OBI

MDR7..0

ldMAR LD
MAR CLK
incMAR INC
mxMAR0
mxMAR1
mxMAR2

OBI

0
1
2 0

mxMDR
1

ACC7..0
PC7..0

PSW7..0
PC15..8

PC15..0
incPC INC
ldPC LD

PC CLK

mxPC0 0
mxPC
mxPC1 1 0 1 2 3
IR23..8
D15..0
MAR15..0
ADD15..0

MDR7..0
ldIR1 LD IR1 CLK

INC
DEC

SP

LD

ldIR2

LD

IR31..24

ldIR3 LD IR3 CLK

CLK

IR2 CLK
IR23..16

MDR7..0

SP15..0
incSP
decSP

MDR7..0

MDR7..0
ldIR4 LD IR4 CLK

IR15..8

IR7..0

PSW7..0
ldPSW LD

PSW CLK

mxPSW 0 mxPSW
0 1
MDR7..0

MDR7..0
ldDH LD

D CLK

MDR7..0
ldDL LD

D15..8

formiranje
indikatora

Slika 183 Operaciona jedinica (prvi deo)

200

D CLK
D7..0

ADD15..0
A15...0

ADD

mxX1 1
mxX
mxX0 0 0 1 2 3
C15..0
PC15..0
R15..0
IVTP15..0

B15...0

mxY1 1
mxY
mxY0 0 0 1 2 3
R15..0
IR23..23.IR23..16
IR15..0
BRU15..0

ALU7..0
ALU

A7...0

ACC7..0

C15..0
add
and
asr

B7...0

ldC LD

B7..0

ADD15..0

ACC7..0

B7..0

ldACC LD ACC CLK


mxACC1
mxACC0

1
0

LD
CLK

B
mxB1
mxB0

mxACC
0

C CLK

ALU7..0
B7...0

1
0

ldB

mxB
0

R7..0
MDR7..0

IR15..8

IR20..16
CLK
IVTP
LD

INC
0

0..0.ACC7..0

mxRA 0 mxRA

IVTP15..0

DI15..0
A4..0

formiranje BRU

WR

wrR
CLK
IL
BRU SL
LD

DO15..0

R15..0

0
slBRU

BRU15..0

Slika 184 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, generiu se
prema izrazima datim na slikama 11, 12 i 13, respektivno.
RTS = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
RTI = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
ASR = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
LD = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
ST = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
ADD = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
AND = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
JADR = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
BZ = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
JMP = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
JSR = IR 31 IR 30 IR 29 IR 28 IR 27 IR 26 IR 25 IR 24
201

STJADR = ST + JADR
Slika 185 Signali operacija
regdir = IR 23 IR 22 IR 21
regind = IR 23 IR 22 IR 21
memdir = IR 23 IR 22 IR 21
memind = IR 23 IR 22 IR 21
regindpom = IR 23 IR 22 IR 21
bxpom = IR 23 IR 22 IR 21
pcpom = IR 23 IR 22 IR 21
imm = IR 23 IR 22 IR 21
Slika 186 Signali naina adresiranja
l1 = RTS + RTI + ASR
l2_brn= BZ
l2_arlogpr = (LD + ST+ ADD + AND) (regdir + regind) + JADR regind
l3_jmp= JMP + JSR
l3_arlogpr = (LD + ADD + AND) imm
Slika 187 Signali duina instrukcija
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 188.
! itanje instrukcije !
step00 ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 ldIR1;
step04 br (if l1 then step2A);
step05 ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 ldIR2, br (if l2_brn then step2A);
step09 br (if l2_arlogpr then step15);
step0A ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D ldIR3, br (if l3_jmp then step2A);
step0E br (if l3_arlogpr then step15);
step0F ldMAR, incPC;
step10 RD;
step11 br (if OBI then step11);
step12 ldIR4, br step15 ;
! Formiranje adrese i itanje operanda !
step15 br (case (regdir, regind, memdir, memind, regindpom, bxpom, pcpom, imm)
then
(regdir, step16), (regind, step17), (memdir, step18), (memind, step19),
(regindpom, step21), (bxpom, step22), (pcpom, step24), (imm, step29));
! Registarsko direktno adresiranje !
step16 ldB, br step2A;

202

! Registarsko indirektno adresiranje !


step17 mxMAR0, ldMAR, br step25;
! Memorijsko direktno adresiranje !
step18 mxMAR1, ldMAR, br step25;
! Memorijsko indirektno adresiranje!
step19 mxMAR1, ldMAR;
step1A RD;
step1B br (if OBI then step1B);
step1C ldDH, incMAR;
step1D RD;
step1E br (if OBI then step1E);
step1F ldDL;
step20 mxMAR1, mxMAR0, ldMAR, br step25;
! Registarsko indirektno sa pomerajem adresiranje !
step21 mxX0, mxY0, mxMAR2, ldMAR, br step25;
! Bazno indeksno sa pomerajem adresiranje !
step22 mxX0, mxY0, ldC;
step23 mxRA, mxMAR2, ldMAR, br step25;
! PC relativno sa pomerajem adresiranje !
step24 mxX1, mxX0, mxY0, mxMAR2, ldMAR;
! itanje operanda !
step25 br (if STJADR then step2A);
step26 RD;
step27 br (if OBI then step27);
step28 mxB0, ldB, br step2A;
! Neposredno adresiranje !
step29 mxB1, ldB;
! Izvravanje operacije !
step2A br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step2B), (ST, step2C), (ADD, step32), (AND, step33), (ASR, step34),
(BZ, step35), (JMP, step37), (JADR, step38), (JSR, step39),
(RTI, step40), (RTS, step45));
! LD !
step2B mxACC0, ldACC, br step4F;
! ST !
step2C br (if regdir then step31);
step2D mxMDR1, ldMDR;
step2E WR;
step2F br (if OBI then step2F);
step30 br step4F;
step31 wrR, br step4F;
! ADD !
step32 add, ldACC, br step4F;
! AND !
step33 and, ldACC, br step4F;
! ASR !
step34 asr, ldACC, br step4F;
! BZ !
step35 br (if PSWZ then step4F);
step36 mxX1, mxX0, mxY1, mxY0, add, mxPC1, ldPC, br step4F;
! JMP !
203

step37 ldPC, br step4F;


! JADR !
step38 mxPC0, ldPC, br step4F;
! JSR !
step39 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR1, mxMDR0, ldMDR;
step3A WR;
step3B br (if OBI then step3B);
step3C mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, ldMDR;
step3D WR;
step3E br (if OBI then step3E);
step3F ldPC, br step4F;
! RTI !
step40 incSP;
step41 mxMAR2, mxMAR0, ldMAR;
step42 RD;
step43 br (if OBI then step43);
step44 ldPSW;
! RTS !
step45 incSP;
step46 mxMAR2, mxMAR0, ldMAR;
step47 RD;
step48 br (if OBI then step48);
step49 ldDH, incSP;
step4A mxMAR2, mxMAR0, ldMAR;
step4B RD;
step4C br (if OBI then step4C);
step4D ldDL;
step4E ldPC, mxPC0, mxPC1;
! Opsluivanje prekida !
step4F br (if PREKID then step00);
step50 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR0, mxMDR1, ldMDR;
step51 WR;
step52 br (if OBI then step52);
step53 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, ldMDR;
step54 WR;
step55 br (if OBI then step55);
step56 mxMAR2, mxMAR0, ldMAR, decSP, mxMDR2, mxMDR0, ldMDR;
step57 WR;
step58 br (if OBI then step58);
step59 slBRU;
step5A mxX1, mxY1, mxMAR2, ldMAR;
step5B RD;
step5C br (if OBI then step5C);
step5D ldDH, incMAR;
step5E RD;
step5F br (if OBI then step5F);
step60 ldDL;
step61 mxPC1, mxPC0, ldPC, br step00;

Slika 188 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka

204

d) Sekvenca upravljakih signala po koracima za upravljaku jedinicu oiene realizacije


se formira na nain dat pod d) u reenju zadataka 1.1 i 1.6.
) Upravljaka jedinica se realizuje na nain dat pod ) u reenju zadataka 1.1 i 1.6.

205

1.18 ZADATAK
Posmatra se deo raunara iz zadatka 1.17.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa jednom internom magistralom.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
vertikalnim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i vertikalnim
kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje upravljakih
signala i to za upravljake signale operacione jedinice ldMAR, incPC i RD, i sve upravljake
signale upravljake jedinice kojima se upravlja mikroprogramski broja.
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.17.
b) Jedna realizacija strukturne eme operacione jedinice sa jednom internom magistralom
je data na slikama 189 i 190. Operaciona jedinica sadri sve programski dostupne registre,
odreen broj pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs
sistemske magistrale.

206

BUS
144444444444444444424444444444444444443

ABUS15..0

RD
WR
IB15..0

RD
WR

DBUS7..0

A15..0

RDBUS

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

OBI

OBI

MARout

MDRout
MAR15..0

ldMAR LD
incMAR INC

MAR

MDR7..0
CLK

IB15..0

MDR

LD

ldMBR

CLK

mxMDR 0 mxMDR
0

IB7..0
IB7..0
IB7..0

IB7..0
PCHout
PC15..8

IB7..0
IB15..0

PCout

PC15...0
incPC INC
ldPC LD

IB15..0
IB15..0

IB15..0
IB7..0

DEC

IR31..24

IR23..16

ldIR3 LD IR3 CLK

ldIR4 LD IR4 CLK

IR15..8

IB7..0

SP

ldDH LD

CLK

PSW7..0
PSW CLK

mxPSW 0 mxPSW
0

formiranje
indikatora

D CLK

IR7..0
ldDL LD

Dout

IB15..0
IB15..0

D15..0

IRJAout
IR23..8

IRBPout
IR23..23.IR23..16

IB15..0
IB7..0
IB15..0

IRIMout
IR15..8

IRADAPout
IR15..0

Slika 189 Operaciona jedinica (prvi deo)

207

D CLK
D7..0

D15..8

LD

PSWout
ldPSW LD

IB7..0
IB15..0

PC CLK

SP15..0
INC

ldIR2 LD IR2 CLK

IB7..0

SPout
incSP
decSP

ldIR1 LD IR1 CLK

ADDout

IB15..0

ADD15...0
A15...0

ldX

LD

ADD

B15...0

ldY

CLK

LD

CLK

IB15..0
ALUout

IB7..0

ALU7...0
A7...0

ldXX

ALU

XX CLK

LD

add
and
asr

B7...0

ldYY

LD

YY CLK

IB7..0
Bout

IB7..0
IB15..0

ACCout
0..0.ACC7..0
ldACC

B7..0

ACC7..0
LD

ACC CLK

ldB LD

CLK

IB7..0
IB15..0
IB4..0
LD

CLK
LD

RA

CLK

IVTPout

IVTP15..0

RA4..0

ldRA

DI15...0

INC
A4...0
0

mxRA
IB15..0
IB15..0

IVTP

WR

formiranje BRU

wrR

DO15...0

mxRA
Rout

CLK
LD

R15..0

BRUout

BRU

IL
SL

0
slBRU

BRU15..0

Slika 190 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, su dati pod v) u
reenju zadatka 1.17.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 191.

208

! itanje instrukcije !
step00 PCout, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout, ldIR1;
step04 br (if l1 then step31);
step05 PCout, ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 MDRout, ldIR2, ldRA, br (if l2_brn then step31);
step09 br (if l2_arlogpr then step15);
step0A PCout, ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D MDRout, ldIR3, br (if l3_jmp then step31);
step0E br (if l3_arlogpr then step15);
step0F PCout, ldMAR, incPC;
step10 RD;
step11 br (if OBI then step11);
step12 MDRout, ldIR4, br step15;
! Formiranje adrese i itanje operanda !
step15 br (case (regdir, regind, memdir, memind, regindpom, bxpom, pcpom, imm)
then
(regdir, step16), (regind, step17), (memdir, step18), (memind, step19),
(regindpom, step21), (bxpom, step24), (pcpom, step29), (imm, step30));
! Registarsko direktno adresiranje !
step16 Rout, ldB, br step31;
! Registarsko indirektno adresiranje !
step17 Rout, ldMAR, br step2C;
! Memorijsko direktno !
step18 IRADAPout, ldMAR, br step2C;
! Memorijsko indirektno adresiranje !
step19 IRADAPout, ldMAR;
step1A RD;
step1B br (if OBI then step1B);
step1C MDRout, ldDH, incMAR;
step1D RD;
step1E br (if OBI then step1E);
step1F MDRout, ldDL;
step20 Dout, ldMAR, br step2C;
! Registarsko indirektno sa pomerajem adresiranje !
step21 Rout, ldX;
step22 IRADAPout, ldY;
step23 ADDout, ldMAR, br step2C;
! Bazno indeksno sa pomerajem adresiranje !
step24 Rout, ldX;
step25 IRADAPout, ldY;
step26 ADDout, ldX;
step27 mxRA, Rout, ldY;
step28 ADDout, ldMAR, br step2C;
! PC relativno sa pomerajem adresiranje !
step29 PCout, ldX;
step2A IRADAPout, ldY;
step2B ADDout, ldMAR;
209

! itanje operanda !
step2C br (if STJADR then step31);
step2D RD;
step2E br (if OBI then step2E);
step2F MDRout, ldB, br step31;
! Neposredno adresiranje !
step30 IRIMout, ldB;
! Izvravanje operacije !
step31 br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step32), (ST, step33), (ADD, step39), (AND, step3C), (ASR, step3F),
(BZ, step41), (JMP, step45), (JADR, step46), (JSR, step47),
(RTI, step50), (RTS, step55));
! LD !
step32 Bout, ldACC, br step5F;
! ST !
step33 br (if regdir then step38);
step34 ACCout, mxMDR, ldMDR;
step35 WR;
step36 br (if OBI then step36);
step37 br step5F;
step38 ACCout, wrR, br step5F;
! ADD !
step39 ACCout, ldXX;
step3A Bout, ldYY;
step3B add, ALUout, ldACC, br step5F;
! AND !
step3C ACCout, ldXX;
step3D Bout, ldYY;
step3E and, ALUout, ldACC, br step5F;
! ASR !
step3F ACCout, ldXX;
step40 asr, ALUout, ldACC, br step5F;
! BZ !
step41 br (if PSWZ then step5F);
step42 PCout, ldX;
step43 IRBPout, ldY;
step44 add, ALUout, ldPC, br step5F;
! JMP !
step45 IRJAout, ldPC, br step5F;
! JADR !
step46 MARout, ldPC, br step5F;
! JSR !
step47 SPout, ldMAR, decSP;
step48 PCout, mxMDR, ldMDR;
step49 WR;
step4A br (if OBI then step4A);
step4B SPout, ldMAR, decSP;
step4C PCHout, mxMDR, ldMDR;
step4D WR;
step4E br (if OBI then step4E);

210

step4F IRJAout, ldPC, br step5F;


! RTI !
step50 incSP;
step51 SPout, ldMAR;
step52 RD;
step53 br (if OBI then step53);
step54 MDRout, ldPSW;
! RTS !
step55 incSP;
step56 SPout, ldMAR;
step57 RD;
step58 br (if OBI then step58);
step59 MDRout, ldDH, incSP;
step5A SPout, ldMAR;
step5B RD;
step5C br (if OBI then step5C);
step5D MDRout, ldDL;
step5E Dout, ldPC;
! Opsluivanje prekida !
step5F br (if PREKID then step00);
step60 SPout, ldMAR, decSP;
step61 PCout, mxMDR, ldMDR;
step62 WR;
step63 br (if OBI then step63);
step64 SPout, ldMAR, decSP;
step65 PCHout, mxMDR, ldMDR;
step66 WR;
step67 br (if OBI then step67);
step68 SPout, ldMAR, decSP;
step69 PSWout, mxMDR, ldMDR;
step6A WR;
step6B br (if OBI then step6B);
step6C slBRU;
step6D IVTPout, ldX;
step6E BRUout, ldY;
step6F add, ALUout, ldMAR;
step70 RD;
step71 br (if OBI then step71);
step72 MDRout, ldDH, incMAR;
step73 RD;
step74 br (if OBI then step74);
step75 MDRout, ldDL;
step76 Dout, ldPC, br step00;

Slika 191 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) Mikroprogram se formira na nain dat pod d) u reenju zadataka 1.2 i 1.7.
) Upravljaka jedinica se realizuje na nain dat pod ) u reenju zadataka 1.2 i 1.7.

211

1.19 ZADATAK
Posmatra se deo raunara iz zadatka 1.17.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa sa dve interne magistrale.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
meovitim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i meovitim
kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje upravljakih
signala i to za upravljake signale operacione jedinice ldMAR, incPC i Bout2, i sve
upravljake signale upravljake jedinice kojima se upravlja mikroprogramskim brojaem.
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.17.
b) Jedna realizacija strukturne eme operacione jedinice sa dve interne magistrale je data na
slikama 192 i 193. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.

212

BUS
144444444444444444424444444444444444443

ABUS15..0

IB115..0

RD
WR

RD
WR

DBUS7..0

A15...0

MARou1
IB115..0

RDBUS

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DO7..0
DI7..0

IB215..0
OBI

OBI

MDRout2
MDR7..0

MAR15..0

ldMAR LD
incMAR INC

MAR

CLK

ldMBR

IB115..0

LD

MDR

IB27..0
CLK

mxMDR 0 mxMDR
0

IB27..0
IB27...0

PCHout2
PC15..8

PCout2

IB215..0

PC15..0
IB115..0
IB115..0

incPC INC
ldPC LD

PC

CLK

SPout1
SP15..0
incSP
decSP

INC
DEC

SP

LD
CLK

IB215..0

PSWout2

IB27..0

PSW7..0
ldPSW LD

PSW CLK

mxPSW 0 mxPSW
0

formiranje
indikatora

IB115..0
IB115..0
IB115..0
IB17..0
IB115..0

IB27..0
IB27..0

Dout1
D15..0
IRBPout1
IR23..23.IR23..16
IRJAout1
IR23..8
IRIMout1
IR15..8
IRADAPout1
IR15..0

ldIR1 LD IR1 CLK

ldIR2 LD IR2 CLK

IR31..24

IR23..16

ldIR3 LD IR3 CLK

ldIR4 LD IR4 CLK

IR15..8
ldDH LD

D CLK
D15..8

Slika 192 Operaciona jedinica (prvi deo)

213

IR7..0
ldDL LD

IB27..0

IB27..0

D CLK
D7..0

IB215..0

IB115..0

ADDout1
ADD15..0
A15...0

ldX LD

ADD

B15...0

IB215..0

IB115..0
ALUout1

IB17..0

ALU7..0

ACC7..0
ldACC LD

A7...0

ALU

add
and
asr

B7...0

IB27..0

ACCout2
0..0.ACC7..0

ACC CLK

IB17..0

IB215..0
Bout2

B7..0
ldB

LD

IB27..0

B CLK
IB27..0
IB215..0

IVTPout1

IB115..0

CLK

formiranje BRU

RA4..0

ldRA

CLK
LD

DI15...0

INC
mxRA

IB215..0

IB215..0

RA

LD

IB115..0

IVTPCLK
IVTP15..0

IB24..0

LD

A4..0

WR

wrR

BRU

BRU15..0

DO15...0
0

mxRA

R15..0

Rout2

IL
SL

0
slBRU

BRUout2

IB215..0
IB215..0

IB1_2

IB215..0
IB2_1

IB115..0

IB215..0

Slika 193 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija su dati pod v) u
reenju zadatka 1.17.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 194.

214

! itanje instrukcije !
step00 PCout2, IB2_1, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout2, ldIR1;
step04 br (if l1 then step2D);
step05 PCout2, IB2_1, ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 MDRout2, ldIR2, ldRA, br (if l2_brn then step2D);
step09 br (if l2_arlogpr then step15);
step0A PCout2, IB2_1, ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D MDRout2, ldIR3, br (if l3_jmp then step2D);
step0E br (if l3_arlogpr then step15);
step0F PCout2, IB2_1, ldMAR, incPC;
step10 RD;
step11 br (if OBI then step11);
step12 MDRout2, ldIR4, br step15;
! Formiranje adrese i itanje operanda !
step15 br (case (regdir, regind, memdir, memind, regindpom, bxpom, pcpom, imm)
then
(regdir, step16), (regind, step17), (memdir, step18), (memind, step19),
(regindpom, step21), (bxpom, step23), (pcpom, step26), (imm, step2C));
! Registarsko direktno adresiranje !
step16 Rout2, ldB, br step2D;
! Registarsko indirektno adresiranje !
step17 Rout2, IB2_1, ldMAR, br step28;
! Memorijsko direktno adresiranje !
step18 IRADAPout1, ldMAR, br step28;
! Memorijsko indirektno adresiranje !
step19 IRADAPout1, ldMAR;
step1A RD;
step1B br (if OBI then step1B);
step1C MDRout2, ldDH, incMAR;
step1D RD;
step1E br (if OBI then step1E);
step1F MDRout2, ldDL;
step20 Dout1, ldMAR, br step28;
! Registarsko indirektno sa pomerajem adresiranje !
step21 IRADAPout1, ldX;
step22 Rout2, ADDout1, ldMAR, br step28;
! Bazno indeksno indirektno sa pomerajem adresiranje !
step23 IRADAPout1, ldX;
step24 Rout2, ADDout1, ldX;
step25 mxRA, Rout2, ADDout1, ldMAR, br step28;
! PC relativno sa pomerajem adresiranje !
step26 IRADAPout1, ldX;
step27 PCout2, ADDout1, ldMAR;
! itanje operanda !
step28 br (if STJADR then step2B);
step29 RD;
step2A br (if OBI then step2A);
215

step2B MDRout2, ldB, br step2D;


! Neposredno adresiranje !
step2C IRIMout1, IB1_2, ldB;
! Izvravanje operacije !
step2D br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step2E), (ST, step2F), (ADD, step35), (AND, step36), (ASR, step37),
(BZ, step38), (JMP, step3B), (JADR, step3C), (JSR, step3D),
(RTI, step44), (RTS, step49));
! LD !
step2E Bout2, IB2_1, ldACC, br step53;
! ST !
step2F br (if regdir then step34);
step30 ACCout2, mxMDR, ldMDR;
step31 WR;
step32 br (if OBI then step32);
step33 br step5E;
step34 ACCout2, wrR, br step53;
! ADD !
step35 Bout2, add, ALUout1, ldACC, br step53;
! AND !
step36 Bout2, and, ALUout1, ldACC, br step53;
! ASR !
step37 asr, ALUout1, ldACC, br step53;
! BZ !
step38 br (if PSWZ then step53);
step39 IRBPout1, ldX;
step3A PCout2, ADDout1, ldPC, br step53;
! JMP !
step3B IRJAout1, ldPC, br step53;
! JADR !
step3C MARout1, ldPC, br step53;
! JSR !
step3D SPout1, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step3E WR;
step3F br (if OBI then step3F);
step40 SPout1, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step41 WR;
step42 br (if OBI then step42);
step43 IRJAout1, ldPC, br step53;
! RTI !
step44 incSP;
step45 SPout1, ldMAR;
step46 RD;
step47 br (if OBI then step47);
step48 MDRout2, ldPSW;
! RTS !
step49 incSP;
step4A SPout1, ldMAR;
step4B RD;
step4C br (if OBI then step4C);
step4D MDRout2, ldDH, incSP;
216

step4E SPout1, ldMAR;


step4F RD;
step50 br (if OBI then step50);
step51 MDRout2, ldDL;
step52 Dout1, ldPC;
! Opsluivanje prekida !
step53 br (if PREKID then step00);
step54 SPout1, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step55 WR;
step56 br (if OBI then step56);
step57 SPout1, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step58 WR;
step59 br (if OBI then step59);
step5A SPout1, ldMAR, decSP, PSWout2, mxMDR, ldMDR;
step5B WR;
step5C br (if OBI then step5C);
step5D slBRU;
step5E IVTPout1, ldX;
step5F BRUout2, add, ALUout1, ldMAR;
step60 RD;
step61 br (if OBI then step61);
step62 MDRout2, ldDH, incMAR;
step63 RD;
step64 br (if OBI then step64);
step65 MDRout2, ldDL;
step66 Dou1, ldPC, br step00;

Slika 194 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
g) Mikroprogram se formira na nain dat pod d) u reenju zadataka 1.3 i 1.8.
d) Upravljaka jedinica se realizuje na nain dat pod ) u reenju zadataka 1.3 i 1.8.

217

1.20 ZADATAK
Posmatra se deo raunara iz zadatka 1.17.
a) Nacrtati formate instrukcija.
b) Nacrtati strukturnu emu operacione jedinice sa tri interne magistrale.
v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina
instrukcija.
g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i
upravljakih koraka za sve faze izvravanja instrukcije.
d) Napisati mikroprogram za upravljaku jedinicu mikroprogramske realizacije i
horizontalnim kodiranjem upravljakih signala operacione jedinice.
) Nacrtati strukturnu emu upravljake jedinice mikroprogramske realizacije i
horizontalnim kodiranjem upravljakih signala operacione jedinice i dati izraze za generisanje
upravljakih signala i to za upravljake signale operacione jedinice ldMAR, incPC i Bout1, i
sve upravljake signale upravljake jedinice kojima se upravlja mikroprogramskim brojaem.
REENjE
a) Formati instrukcija su dati pod a) u reenju zadatka 1.17.
b) Jedna realizacija strukturne eme operacione jedinice sa tri interne magistrale je data na
slikama 195 i 196. Operaciona jedinica sadri sve programski dostupne registre, odreen broj
pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske
magistrale.

218

BUS
144444444444444444424444444444444444443

ABUS15..0

IB215..0
RD
WR

RD
WR

DBUS7..0

A15...0

RDBUS

WRBUS

FCBUS

INTERFEJS SISTEMSKE MAGISTRALE


DI7..0
DO7..0

OBI

OBI

MDRout1

IB17..0

MDR7..0
MDR

LD

ldMBR

CLK

mxMDR 0 mxMDR
0

IB27..0

IB27...0
MARout3

IB315..0

MAR15...0
ldMAR
incMAR
IB27..0
IB215..0

LD

MAR

INC

CLK

IB315..0

PCHout2
PC15..8
PCout2

Dout3
D15..0
PC15..0

IB315..0
IRJAout3
IR23..8

incPC INC
PC CLK
ldPC LD

IB315..0

IRIMout3
IB37..0
IR15..8
IB315..0

SPout3

IB315..0

SP15..0

IB17..0

IB215..0
IB27..0

incSP INC
SP
decSP DEC

LD

IB17..0
PSWout2

PSW7...0

ldPSW LD PSW CLK


0

IB215..0
IB115..0
IB115..0

ldIR2 LD IR2 CLK

IR31..24

IR23..16

IB17..0

mxPSW 0 mxPSW

IB17..0

ldIR1 LD IR1 CLK

ldIR3 LD IR3 CLK ldIR4

IB17..0

formiranje
IRADAPout2
indikatora
IR15..0

ldDH LD

IRADAPout1
IR15..0

IR15..8
D CLK
D15..8

IRBPout1
IR23..23.IR23..16

Slika 195 Operaciona jedinica (prvi deo)

219

LD

IR4 CLK
IR7..0

ldDL LD

D CLK
D7..0

ADDout3

IB315..0

ADD15..0
A15...0

IB115..0

ADD

B15...0

IB215..0
IB215..0

Cout2
C15..0
C

ldC

LD
CLK

IB315..0

ALUout3

IB37..0

ALU7..0
ALU

A7...0

IB17..0

add
and
asr

B7...0

IB27..0

Bout1

IB17..0
ACC7..0
ACCout2
0..0.ACC7..0 ldACC LD ACC CLK

IB27..0

B7..0
incB INC
decB DEC

ldB

LD
CLK

IB37..0

IB215..0
IVTPout1

IB115..0
IB14..0

IVTP
IVTP15..0

IB14..0
RA

LD

ldRA

CLK

mxRA

IB115..0

DI15...0

A4...0

mxRA

WR

wrR

DO15...0

Rout1

R15..0
BRUout2

IB215..0
IB1_3

IB115..0

IB315..0

IB315..0

RA4..0
INC

IB215..0

IB115..0

CLK
LD

CLK
LD

BRU

IL
SL

0
slBRU

BRU15..0
IB315..0

IB215..0

IB2_1

formiranje BRU

IB2_3

IB315..0

IB215..0

Slika 196 Operaciona jedinica (drugi deo)


v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, su dati pod v) u
reenju zadatka 1.17.
g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih
koraka je data na slici 197.

220

! itanje instrukcije !
step00 PCout2, IB2_3, ldMAR, incPC;
step01 RD;
step02 br (if OBI then step02);
step03 MDRout1, ldIR1;
step04 br (if l1 then step2A);
step05 PCout2, IB2_3, ldMAR, incPC;
step06 RD;
step07 br (if OBI then step07);
step08 MDRout1, ldIR2, ldAR, br (if l2_brn then step2A);
step09 br (if l2_arlogpr then step15);
step0A PCout2, IB2_3, ldMAR, incPC;
step0B RD;
step0C br (if OBI then step0C);
step0D MDRout1, ldIR3, br (if l3_jmp then step2A);
step0E br (if l3_arlogpr then step15);
step0F PCout2, IB2_3, ldMAR, incPC;
step10 RD;
step11 br (if OBI then step11);
step12 MDRout1, ldIR4, br step15;
! Formiranje adrese i itanje operanda !
step15
br (case (regdir, regind, memdir, memind, regindpom, bxpom, pcpom, imm)
then
(regdir, step16), (regind, step17), (memdir, step18), (memind, step19),
(regindpom, step21), (bxpom, step22), (pcpom, step24), (imm, step29));
! Registarsko direktno adresiranje !
step16 Rout1, IB1_3, ldB, br step2A;
! Registarsko indirektno adresiranje !
step17 Rout1, IB1_3, ldMAR, br step25;
! Memorijsko direktno adresiranje !
step18 IRADAPout1, IB1_3, ldMAR, br step25;
! Memorijsko indirektno adresiranje !
step19 IRADAPout1, IB1_3, ldMAR;
step1A RD;
step1B br (if OBI then step1B);
step1C MDRout1, ldDH, incMAR;
step1D RD;
step1E br (if OBI then step1E);
step1F MDRout1, ldDL;
step20 Dout3, ldMAR, br step25;
! Registarsko indirektno sa pomerajem adresiranje !
step21 Rout1, IRADAPout2, ADDout3, ldMAR, br step25;
! Bazno indeksno sa pomerajem adresiranje !
step22 Rout1, IRADAPout2, ADDout3, ldC;
step23 mxRA, Rout1, Cout2, ADDout3, ldMAR, br step25;
! PC relativno sa pomerajem adresiranje !
step24 IRADAPout1, PCout2, ADDout3, ldMAR;
! itanje operanda !
step25 br (if STJADR then step2A);
step26 RD;
step27 br (if OBI then step27);
step28 MDRout1, IB1_3, ldB, br step2A;
! Neposredno adresiranje !
step29 IRIMout3, ldB;
221

! Izvravanje operacije !
step2A br (case (LD, ST, ADD, AND, ASR,
BZ, JMP, JADR, JSR,
RTI, RTS)
then
(LD, step2B), (ST, step2C), (ADD, step32), (AND, step33), (ASR, step34),
(BZ, step35), (JMP, step37), (JADR, step38), (JSR, step39),
(RTI, step40), (RTS, step45));
! LD !
step2B Bout1, IB1_3, ldACC, br step4F;
! ST !
step2C br (if regdir then step31);
step2D ACCout2, mxMDR, ldMDR;
step2E WR;
step2F br (if OBI then step2F);
step30 br step4F;
step31 ACCout2, IB2_3, wrR, br step4F;
! ADD !
step32 ACCout2, Bout1, add, ALUout3, ldACC, br step4F;
! AND !
step33 ACCout2, Bout1, and, ALUout3, ldACC, br step4F;
! ASR !
step34 ACCout2, IB2_1, asr, ALUout3, ldACC, br step4F;
! BZ !
step35 br (if PSWZ then step4F);
step36 PCout2, IRBRPOMout1, ADDout3, ldPC, br step4F;
! JMP !
step37 IRJAout3, ldPC, br step4F;
! JADR !
step38 MARout3, ldPC, br step4F;
! JSR !
step39 SPout3, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step3A WR;
step3B br (if OBI then step3B);
step3C SPout3, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step3D WR;
step3E br (if OBI then step3E);
step3F IRJAout3, ldPC, br step4F;
! RTI !
step40 incSP;
step41 SPout3, ldMAR;
step42 RD;
step43 br (if OBI then step43);
step44 MDRout1, ldPSW;
! RTS !
step45 incSP;
step46 SPout3, ldMAR;
step47 RD;
step48 br (if OBI then step48);
step49 MDRout1, ldDH, incSP;
step4A SPout3, ldMAR;
step4B RD;
step4C br (if OBI then step4C);

222

step4D MDRout1, ldDL;


step4E Dout3, ldPC;
! Opsluivanje prekida !
step4F br (if PREKID then step00);
step50 SPout3, ldMAR, decSP, PCout2, mxMDR, ldMDR;
step51 WR;
step52 br (if OBI then step52);
step53 SPout3, ldMAR, decSP, PCHout2, mxMDR, ldMDR;
step54 WR;
step55 br (if OBI then step55);
step56 SPout3, ldMAR, decSP, PSWout2, mxMDR, ldMDR;
step57 WR;
step58 br OBI then step58);
step59 slBRU;
step5A IVTPout1, BRUout2, ADDout3, ldMAR;
step5B RD
step5C br (if OBI then step5C);
step5D MDR1out, ldDH, incMAR;
step5E RD;
step5F br (if OBI then step5F);
step60 MDR1out, ldDL;
step61 Dou3, ldPC, br step00;

Slika 197 Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih


koraka
d) Mikroprogram se formira na nain dat pod d) u reenju zadataka 1.4 i 1.5.
) Upravljaka jedinica se realizuje na nain dat pod ) u reenju zadataka 1.4 i 1.5.

223

2 LITERATURA
1. B. Lazi, Logiko projektovanje raunara, NaukaElektrotehniki fakultet, Beograd,
1994.
2. D. ivkovi, M. Popovi, Impulsna i digitalna elektronika, NaukaElektrotehniki
fakultet, Beograd, 1992.
3. J. Djordjevic, A. Milenkovic, N. Grbanovic, An Integrated Educational Environment
for Teaching Computer Architecture and Organisation, IEEE MICRO, May 2000.pp. 66-74.
4. J. Djordjevic, M. R. Barbacci, B. Hosler, A PMS Level Notation for the Description and
Simulation of Digital Systems, The Computer Journal, Vol. 28, No. 4, pp. 357-365, 1985.
5. S. Miladinovi, J. orevi, A. Milenkovi, Programski sistem za grafiki opis i
simulaciju digitalnih sistema, Zbornik radova ETRAN 1997, Zlatibor, Jugoslavija, Jun 1997.
6. N. Grbanovic, J. Djordjevic, B. Nikoli, The Software Package for an Educational
Computer System, International Journal on Electrical Engineering Education, Vol. 40, No. 4,
Oct 2003, pp. 270-284.
7. J. Djordjevic, A. Milenkovic, I. Todorovic, D. Marinov, CALKAS: A Computer
Architecture Learning and Knowledge Assessment System, IEEE TC Computer Architecture
Newsletter, March 1999.
8. J. orevi, Prirunik iz arhitekture raunara, Elektrotehniki fakultet, Beograd, 1997.
9. J. orevi, Prirunik iz arhitekture i organizacije raunara, Elektrotehniki fakultet,
Beograd, 1997.
10. J. orevi, Arhitektura raunara, Edukacioni raunarski sistem, Arhitektura i
organizacija raunrskog sistema, Elektrotehniki fakultet, Beograd, 2002.
11. J. orevi, N. Grbanovi, B. Nikoli, Z. Radivojevi, Arhitektura raunara,
Edukacioni raunarski sistem, Prirunik za simulaciju sa zadacima, Elektrotehniki fakultet,
Beograd, 2004.
12. J. Djordjevic, B. Nikolic, A. Milenkovic, Flexible Web-based Educational System for
Teaching Computer Architecture and Organization, IEEE, Transactions on Education, Vol.
48, No. 2, 2005.
13. J. Djordjevic, B. Nikolic, M. Mitrovic, A Memory System for Education, Computer
Journal, (to appear)

224

Anda mungkin juga menyukai