RADIVOJEVI,
M. PUNT, N. MILETI
ARHITEKTURA
I
ORGANIZACIJA
RAUNARA
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
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
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
10
OC
00
23 22 21 20 19 18 17 16
OC
BP
01
23 22 21 20 19 18 17 16
15 14 13 12 11 10 9 8
JAH
I
JAL
I
OC
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
11
OC
23 22 21 20 19 18 17 16
AM
M
R
PSR
11
OC
23 22 21 20 19 18 17 16
AM
M
R
PSR
15 14 13 12 11 10 9 8
AP
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
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
ABUS15..0
RD
WR
RD
WR
DBUS7..0
A15..0
RDBUS
WRBUS
FCBUS
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
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
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
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
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
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
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
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;
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
signal uslova
OBI
l1
l2_brn
l2_arlogpr
l3_jmp
signal uslova
l3_arlogpr
STJADR
regdir
PSWZ
PREKID
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
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
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
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
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
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
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
IR31..24
IR23..16
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
27
D CLK
D7..0
Dout
IB15..0
PSW7..0
ldDL LD
D15..8
CLK
PSWout
ldPSW
IB7..0
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
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
cc
ba
014444244443
...
7 814243
... 11 12
...
19
14444244443
signali
uslov
adresa skoka
14444244443 14444444244444443
operacioni deo
upravljaki deo
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
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
stepi
step15
step33
signal
bradr
bropr
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
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
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
36
stepA
step4C
step55
step5A
A
4C
55
5A
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;
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;
39
144424443
144424443
imm
LD
ST
RTS
regdir
regind
...
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
...
...
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
40
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
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
IR31..24
IR23..16
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
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
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
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
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;
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
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
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
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
50
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
stepi
step15
step32
signal
bradr
bropr
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
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
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
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;
56
57
144424443
144424443
imm
LD
ST
RTS
regdir
regind
...
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
...
...
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
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
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
mxPSW 0 mxPSW
0
IB17..0
IB315..0
ldDH LD
IRAPout2
IR15..15.IR15..8
D CLK
D15..8
IR4 CLK
IR7..0
IR15..8
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
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
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
64
cc
ba
01444444444442444444444443
...
51 52
... 55 56
...
63
14243 144424443
signali
uslov
adresa skoka
1444444444442444444444443
1444442444443
operacioni deo
upravljaki deo
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
-
66
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
stepi
step15
step31
signal
bradr
bropr
67
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
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
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
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
madr65
madr66
madr67
madr68
madr69
madr6A
madr6B
RD;
brOBI, madr66;
MDR1out, ldDH, incMAR;
RD;
brOBI, madr69;
MDR1out, ldDL;
Dou3, ldPC, bruncnd, madr00;
144424443
144424443
imm
LD
ST
RTS
regdir
regind
...
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
...
...
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
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
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
00
23 22 21 20 19 18 17 16
OC
BP
01
23 22 21 20 19 18 17 16
15 14 13 12 11 10 9 8
JAH
JAL
OC
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
11
OC
23 22 21 20 19 18 17 16
15 14 13 12 11 10 9 8
R1 A M R2
AP
11
OC
23 22 21 20 19 18 17 16
A M R2
15 14 13 12 11 10 9 8
AP
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
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
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
78
BUS
144444444444444444424444444444444444443
ABUS15...0
RD
WR
RD
WR
DBUS7..0
A15..0
RDBUS
WRBUS
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
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
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
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
82
83
cc
ba
01444444444442444444444443
...
43 44
... 47 48
...
55
14243 144424443
signali
uslov
adresa skoka
1444444444442444444444443
1444442444443
operacioni deo
upravljaki deo
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
-
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
84
cc4447
C
D
stepi
step15
step29
signal
bradr
bropr
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
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
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
stepA
step43
step4A
step4F
A
43
4A
4F
87
88
144424443
144424443
imm
LD
ST
RTS
regdir
regind
...
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
...
...
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
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
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
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
92
D CLK
D7...0
D15...8
CLK
PSWout
ldPSW LD
IB7..0
IB7..0
PC15..0
IB15..0
IB15..0
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
95
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
signal uslova
OBI
l1
l2_brn
l2_arlogshpr
l3_jmp
signal uslova
l3_arlogshpr
STJADR
regdir
PSWZ
PREKID
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
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
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
T76
T77
T78
T79
T7A
T7B
brOBI, val76;
MDRout, ldDH, incMAR;
RD;
brOBI, val79;
MDRout, ldDL;
Dout, ldPC, bruncnd, val00;
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
124
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
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
IR31..24
IR23..16
IRJAout1
IR23..8
IRIMADout1
IR15..0
IR15..8
ldDH LD
D CLK
IR7..0
ldDL LD
D15..8
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
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;
cc
ba
014444244443
...
7 814243
... 11 12
...
19
14444244443
signali
uslov
adresa skoka
14444244443 14444444244444443
operacioni deo
upravljaki deo
108
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
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
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
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
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
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
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
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;
! 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;
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;
114
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
...
...
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
115
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
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
IRBPout1
IB115..0
IR31..24
IR23..16
IB17..0
formiranje
indikatora
ldDH LD
IR23..23.IR23..16
IB215..0
IB17..0
mxPSW 0 mxPSW
IB17..0
IR15..8
D CLK
D15..8
IRAPout2
IR15..15.IR15..8
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
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
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
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
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
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
123
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
stepi
step15
step29
signal
bradr
bropr
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
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
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
stepA
step43
step4A
step4F
A
43
4A
4F
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
! IRJAout3, ldPC;
! MARout3, ldPC;
M37;
brOBI, madr45;
M11, M21, M32, M42, M61, M51;
M37;
brOBI, madr48;
M15, M25, bruncnd, madr59;
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;
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;
! MDR1out, ldDL;
! Dou3, ldPC;
128
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
...
...
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
129
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
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
10
OC
00
OC
39 38 37 36 35 34 33 32
BP
01
OC
39 38 37 36 35 34 33 32
31 30 29 28 27 26 25 24
JAH
I
JAL
I
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
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
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
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
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
IR31..24
IR23..16
SP15..0
incSP
decSP
MDR7..0
MDR7..0
MDR7..0
LD
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
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
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
138
neposredno adresiranje. !
step1A br (if regdir2 then step25);
139
140
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
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
IR31..24
IR23..16
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
IB7..0
IB15..0
IB7..0
IRBPout
IR39..39.IR39..32
D15...0
IRAP2out
IR15..15.IR15..8
IRAP1out
IR31..31.IR31..24
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
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
148
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;
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
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
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
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);
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
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
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
7..0
formiranje
indikatora
7..0
ldDH LD
D CLK
D15..8
160
IB315..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
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
164
! 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;
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
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
0 0 0 0 0 OC
23 22 21 20 19 18 17 16
BP
0 0 0 0 1 OC
15 14 13 12 11 10 9 8
7 6 5 4 3 2 1 0
JAH
JAL
OC
000
OC
001
OC
010
15 14 13 12 11 10 9 8
AP
P
169
OC
011
15 14 13 12 11 10 9 8
AP
P
OC
100
15 14 13 12 11 10 9 8
AP
P
OC
101
15 14 13 12 11 10 9 8
AP
P
OC
110
15 14 13 12 11 10 9 8
7 6 5 4 3 2 1 0
ADH
ADL
OC
111
15 14 13 12 11 10 9 8
7 6 5 4 3 2 1 0
IMH
IML
170
ABUS15...0
RD
WR
RD
WR
DBUS7..0
A15..0
RDBUS
WRBUS
FCBUS
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
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
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
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
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
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
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
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;
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
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
IRBPAPout1
IB115..0
IR15..15.IR15..8
IB115..0
IRJAADIMout1
IR15..0
IR23..16
ldIR2 LD IR2 CLK
IR15...8
ldDH LD
D CLK
IR7..0
ldDL LD
D15..8
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
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
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
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
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
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
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
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
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)
195
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
197
0 0 1 1 1 0 OC
00010
23 22 21 20 19 18 17 16
OC
BP
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
00100
OC
23 22 21 20 19 18 17 16
AM
0 0 1 1 0 0 OC
23 22 21 20 19 18 17 16
AM
0 0 1 1 0 1 OC
23 22 21 20 19 18 17 16
AM
00101
OC
23 22 21 20 19 18 17 16
AM
00100
OC
23 22 21 20 19 18 17 16
AM
15 14 13 12 11 10 9 8
IM
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
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
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
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
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
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
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
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
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
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
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
204
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
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
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
207
D CLK
D7..0
D15..8
LD
PSWout
ldPSW LD
IB7..0
IB15..0
PC CLK
SP15..0
INC
IB7..0
SPout
incSP
decSP
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
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
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
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
IR31..24
IR23..16
IR15..8
ldDH LD
D CLK
D15..8
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
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
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
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
IB215..0
IB115..0
IB115..0
IR31..24
IR23..16
IB17..0
mxPSW 0 mxPSW
IB17..0
IB17..0
formiranje
IRADAPout2
indikatora
IR15..0
ldDH LD
IRADAPout1
IR15..0
IR15..8
D CLK
D15..8
IRBPout1
IR23..23.IR23..16
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
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
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