226
J. ĐORĐEVIĆ, Z. RADIVOJEVIĆ, M. PUNT, N. MILETIĆ ARHITEKTURA I ORGANIZACIJA RAČUNARA ZBIRKA REŠENIH ZADATAKA BEOGRAD, 2013.

AOR2_Zbirka.pdf

Embed Size (px)

Citation preview

  • J. OREVI, Z. RADIVOJEVI, M. PUNT, N. MILETI

    ARHITEKTURA I

    ORGANIZACIJA RAUNARA

    ZBIRKA REENIH ZADATAKA

    BEOGRAD, 2013.

  • 1

    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.

  • 3

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

    SADRAJ ............................................................................................................................................................... 3

    1 PROJEKTOVANJE PROCESORA .......................................................................................................... 5 1.1 ZADATAK................................................................................................................................................ 5 1.2 ZADATAK.............................................................................................................................................. 26 1.3 ZADATAK.............................................................................................................................................. 43 1.4 ZADATAK.............................................................................................................................................. 60 1.5 ZADATAK.............................................................................................................................................. 75 1.6 ZADATAK.............................................................................................................................................. 91 1.7 ZADATAK............................................................................................................................................ 103 1.8 ZADATAK............................................................................................................................................ 117 1.9 ZADATAK............................................................................................................................................ 131 1.10 ZADATAK ....................................................................................................................................... 143 1.11 ZADATAK ....................................................................................................................................... 151 1.12 ZADATAK ....................................................................................................................................... 159 1.13 ZADATAK ....................................................................................................................................... 167 1.14 ZADATAK ....................................................................................................................................... 177 1.15 ZADATAK ....................................................................................................................................... 183 1.16 ZADATAK ....................................................................................................................................... 189 1.17 ZADATAK ....................................................................................................................................... 195 1.18 ZADATAK ....................................................................................................................................... 206 1.19 ZADATAK ....................................................................................................................................... 212 1.20 ZADATAK ....................................................................................................................................... 218

    2 LITERATURA ......................................................................................................................................... 224

  • 4

  • 5

    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

  • 6

    indirektno adresiranje (regind), 010-registarsko indirektno sa postdekrementiranjem adresiranje (postdecr), 011-registarsko indirektno sa preinkrementiranjem adresiranje (preincr), 100-memorijsko direktno adresiranje (memdir), 101-memorijsko indirektno adresiranje (memind), 110-registarsko indirektno sa pomerajem adresiranje (regindpom) i 111-neposredno adresiranje (immed). Adresiranja kod kojih bit 7 ima vrednost 0 koriste neki od registara opte namene R[0] i R[31] specificiran bitovima 4 do 0 drugog bajta instrukcije. Duina instrukcija je dva bajta. Adresiranja kod kojih bit 7 ima vrednost 1 imaju trei ili trei i etvrti bajt instrukcije. Kod memorijskog direktnog i memorijskog indirektnog adresiranja trei i etvrti bajt instrukcije sadre adresu memorijske lokacije, pri emu je stariji bajt adrese dat treim bajtom a mlai bajt adrese etvrtim bajtom. Kod memorijskog indirektnog adresiranja adresa duine 16 bita zauzima dve susedne memorijske lokacije, pri emu je stariji bajt adrese nalazi na nioj a mlai bajt adrese na vioj lokaciji. Bitovi 4 do 0 drugog bajta instrukcije se ne koriste. Duina instrukcija je etiri bajta. Kod registarskog indirektnog sa pomerajem adresiranja trei bajt instrukcije sadri 8 bitni pomeraj koji je dat kao celobrojna veliina sa znakom. Jedan od registara opte namene R[0] do R[31] koji se koristi specificiran je bitovima 4 do 0 drugog bajta instrukcije. Duina instrukcija je tri bajta. Kod neposrednog adresiranja trei i etvrti bajt instrukcije sadre 16 bitni podatak, pri emu je stariji bajt podatka dat treim bajtom a mlai bajt podatka etvrtim bajtom. Bitovi 4 do 0 drugog bajta instrukcije se ne koriste. Duina instrukcija je etiri bajta.

    Nema provere na greku koda operacije i naina adresiranja i nema odgovarajuih unutranjih prekida. Od prekida jedino postoje spoljanji prekidi koji dolaze od ulazno/izlaznih ureaja. Broj linije najvieg prioriteta po kojoj je stigao zahtev za prekid nalazi se u binarnom obliku u registru BRU duine dva bajta i predstavlja broja ulaza u tabelu sa adresama prekidnih rutina. Adrese su duine 16 bita zauzimaju po dve susedne memorijske lokacije, pri emu se stariji bajt adrese nalazi na nioj lokaciji a mlai bajt adrese na vioj lokaciji. Poetna adresa tabele sa adresama prekidnih rutina se nalazi u registru IVTP. U okviru hardverskog dela opsluivanja zahteva za prekid na stek sa stavljaju samo registri PC i PSW.

    Stek raste prema niim memorijskim lokacijama, a registar SP ukazuje na prvu slobodnu memorijsku lokaciju.

    a) Nacrtati formate instrukcija. b) Nacrtati strukturnu emu operacione jedinice sa direktnim vezama. v) Napisati izraze za signale logikih uslova operacija, naina adresiranja i duina

    instrukcija. g) Napisati sekvencu upravljakih signala po koracima sa spajanjem operacionih i

    upravljakih koraka za sve faze izvravanja instrukcije. d) Napisati sekvencu upravljakih signala po koracima za upravljaku jedinicu oiene

    realizacije. ) Nacrtati strukturnu emu upravljake jedinice oiene realizacije i dati izraze za

    generisanje upravljakih signala i to za upravljake signale operacione jedinice ldMAR, incPC i RD, sve upravljake signale upravljake jedinice kojima se upravlja brojaem koraka i tri signala kojima se odreuje vrednost koja treba da se upie u broja koraka. REENjE

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

    1 0 O C

  • 7

    Slika 1 Bezadresne instrukcije Poljem OC se specificira kod operacije koja se izvrava.

    2. Instrukcije uslovnog skoka (BZ) 31 30 29 28 27 26 25 24

    23 22 21 20 19 18 17 16

    0 0 O C

    B P

    Slika 2 Instrukcije uslovnog skoka Poljem OC se specificira kod operacije koja se izvrava, a poljem BP 8-mo bitni pomeraj

    kao celobrojna veliina sa znakom koji se sabira sa PC da bi se dobila adresa skoka. 3. Instrukcije bezuslovnog skoka (JMP, JSR) 31 30 29 28 27 26 25 24

    23 22 21 20 19 18 17 16

    15 14 13 12 11 10 9 8

    0 1 O C

    JAH I

    JAL I

    Slika 3 Instrukcije bezuslovnog skoka Poljem OC se specificira kod operacije koja se izvrava, a poljima JAH i JAL 8 starijih i 8

    mlaih bitova 16-to bitne adrese skoka. 4. Adresne instrukcije (LD, ST, ADD, AND) sa regdir 31 30 29 28 27 26 25 24

    23 22 21 20 19 18 17 16

    1 1 O C

    AM M

    R PSR

    Slika 4 Adresne instrukcije sa regdir Poljem OC se specificira kod operacije jednoadresne instrukcije, poljem AM registarsko

    direktno adresiranje i poljem R jedan od 32 registra opte namene R[0] do R[31]. Napomena: Pretpostavlja sa da se u instrukciji JADR ne koristi registarsko direktno

    adresiranje. Adresne instrukcije (LD, ST, ADD, AND, JADR) sa regind, postdecr, preincr 31 30 29 28 27 26 25 24

    23 22 21 20 19 18 17 16

    1 1 O C

    AM M

    R PSR

    Slika 5 Adresne instrukcije sa regind, postdecr, preincr Poljem OC se specificira kod operacije jednoadresne instrukcije, poljem AM registarsko

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

  • 8

    Adresne instrukcije (LD, ST, ADD, AND, JADR) sa regindpom 31 30 29 28 27 26 25 24

    23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8

    1 1 O C

    AM M

    R PSR

    A P

    Slika 6 Adresne instrukcije sa regindpom Poljem OC se specificira kod operacije jednoadresne instrukcije, poljem AM registarsko

    indirektno sa pomerajem adresiranje, poljem R jedan od 32 registra opte namene R[0] do R[31] i poljem AP 8-mo bitni pomeraj kao celobrojna veliina sa znakom.

    Adresne instrukcije (LD, ADD, AND) sa imm 31 30 29 28 27 26 25 24

    23 22 21 20 19 18 17 16

    15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    1 1 O C AM M

    -

    PSR I MH I ML

    Slika 7 Adresne instrukcije sa imm Poljem OC se specificira kod operacije jednoadresne instrukcije, poljem AM neposredno

    adresiranje i poljima IMH i IML 8 starijih i 8 mlaih bitova 16-bitne neposredne veliine. Napomena: Pretpostavlja sa da se u instrukcijama ST i JADR ne koristi neposredno

    adresiranje. Adresne instrukcije (LD, ST, ADD, AND, JADR) sa memdir, memind

    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    1 1 O C AM M

    -

    PSR A D H A D L

    Slika 8 Adresne instrukcije sa memdir i memind Poljem OC se specificira kod operacije jednoadresne instrukcije, poljem AM memorijsko

    direktno ili memorijsko indirektno adresiranje i poljima ADH i ADL 8 starijih i 8 mlaih bitova 16-to bitne adrese.

    b) Jedna realizacija strukturne eme operacione jedinice sa direktnim vezama je data na slikama 9 i 10. Operaciona jedinica sadri sve programski dostupne registre, odreen broj pomonih registara, aritmetiku/logiku/pomeraku jedinicu ALU i interfejs sistemske magistrale.

    Programski dostupni registri su registar programskog brojaa PC15..0, registar akumulatora ACC15..0, registri opte namene R[0]15..0 do R[31]15..0, programska statusna re PSW7..0 koja sadri samo indikator Z, ukaziva na vrh steka SP15..0 i ukaziva na tabelu sa adresama prekidnih rutina IVTP15..0.

    U programski broja PC15..0 se upisuje nova vrednost u fazi izvravanja instrukcija JMP i JSR (adresa bezuslovnog skoka iz razreda IR23..8 prihvatnog registra instrukcije), u fazi izvravanja instrukcije JADR (sraunata adresa skoka iz registra adrese memorije MAR15..0), u fazi izvravanja instrukcije BZ (sraunata adresa uslovnog skoka ALU15..0 sa izlaza ALU) i u fazi izvravanja instrukcija RTS i RTI (vrednost povratka skinuta sa steka iz prihvatnog registra 16-bitnih veliina D15..0). Ove vrednosti se multipleksiraju kroz multiplekser mxPC. Sadraj programskog brojaa PC15..0 se inkrementira prilikom itanja svakog bajta instrukcije.

    U registar akumulatora ACC15..0, se upisuje u fazi izvravanja instrukcija ADD, AND i ASR (rezultat aritmetike, logike ili pomerake operacije ALU15..0 sa izlaza ALU) i LD (ptihvatni registar operanda B15..0). Ove vrednosti se multipleksiraju kroz multiplekser mxACC.

    Registri opte namene R[0]15..0 do R[31]15..0 su realizovani kao registarski fajl. Adresa registra koji se ita ili u koji se upisuje odreena je razredima IR20..16 prihvatnog registra

  • 9

    instrukcije, a itanje/upis se realizuje vrednostima 0 i 1 signala wrR. U adresirani registar se upisuje u fazi izvravanja instrukcije ST ukoliko je specificirano direktno registarsko adresiranje (sadraj akumulatora ACC15..0) i fazi izvravanja instrukcije LD (sadraja prihvatnog registra operanda B15..0). Ove vrednosti se multipleksiraju kroz multiplekser mxR.

    RDBUS FCBUS

    mxMARmxMAR1mxMAR2 4 5 6 7

    IR15..0R15..0

    PC15..00 1 2 3

    12

    0

    ALU15..0

    mxMAR0

    D15..0

    MAR

    MAR15..0

    CLK

    SP15..0B15..0

    BUS

    mxMDRmxMDR1mxMDR2 4 5 6 70 1 2 3

    12

    0mxMDR0

    MDR

    MDR7..0

    CLKLD

    ACC15..8ACC7..0

    PC7..0 PC15..8PSW7..0

    ABUS15..0 DBUS7..0 WRBUS

    144444444444444444424444444444444444443

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

    SP

    SP15..0

    DECdecSPincSP INC LD

    CLK

    PSW

    PSW7..0LDldPSW CLK

    0 1mxPSWmxPSW 0

    MDR7..0 formiranjeindikatora

    0 1 2 3mxPC

    10

    IR23..8ALU15..0

    D15..0MAR15..0

    PC

    PC15..0

    CLKINC

    LD

    mxPC1mxPC0

    ldPCincPC

    WRRD RD

    WROBIOBI

    LD

    INCincMARldMAR

    ldMDR

    IR1IR31..24

    MDR7..0

    CLKLDldIR1

    IR3IR15..8

    MDR7..0

    CLKLDldIR3

    D

    D15..8

    MDR7..0

    CLKLDldDH

    IR2IR23..16

    MDR7..0

    CLKLDldIR2

    IR4IR7..0

    MDR7..0

    CLKLDldIR4

    D

    D7..0

    MDR7..0

    CLKLDldDL

    INTERFEJS SISTEMSKE MAGISTRALE

    Slika 9 Operaciona jedinica (prvi deo) U programsku statusnu re PSW7..0 se upisuje u fazi izvravanja instrukcija RTI (vrednost

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

  • 10

    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.

    RDI15..0

    R15..0

    DO15..0

    WR wrR

    010

    mxR

    B15..0ACC15..0

    A4..0IR20..16

    mxR

    ALUB15...0A15...0

    ALU15..0

    0

    1mxX

    mxX1mxX0 0 1 2 3 0

    1mxY

    mxY1mxY0 0 1 2 3

    IVTP15..0R15..0 IR15..15.IR15..8 BRU15..0ACC15..0 B15..0

    andaddasr

    PC15..0 IR23..23.IR23..16

    BRU15..0

    BRU

    formiranje BRU

    IVTP

    IVTP15..0

    CLKLD

    0

    1mxBmxB1

    mxB0 0 1 2 3R15..0

    D15..0 IR15..0

    B

    B15..0

    CLKLD ldB

    mxACC

    ACC

    ACC15..0CLKLDldACC INCincB DECdecB

    CLKLD

    ILSL slBRU

    0

    0mxACC00

    ALU15..0

    1

    B15...0

    Slika 10 Operaciona jedinica (drugi deo) U ukaziva na tabelu sa adresama prekidnih rutina IVTP15..0 se upisuje posebnom

    instrukcijom koja u datom procesoru nije realizovana. 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 16-bitnih 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

  • 11

    sa predekrementiranjem adresiranja (prihvatni registar operanda B15..0). Ove vrednosti se multipleksiraju kroz multiplekser mxMAR.

    Pomoni registar podatka memorije MDR7..0 sadri podatak proitan iz memorijske lokacije i podatak za upis u memorijsku lokaciju. U MDR7..0 se upisuje nova vrednost u fazi formiranja adrese operanda prilikom itanja operanda iz memorijske lokacije (proitani sadraj memorijske lokacije DO7..0 iz interfejsa prema sistemskoj magistrali), u fazi izvravanja instrukcije ST (stariji ACC15..8 i mlai ACC7..0 bajt akumulatora ACC15..0), u fazi izvravanja instrukcije JSR i u fazi opsluivanja prekida (stariji PC15..8 i mlai PC7..0 bajt programskog brojaa PC15..0) i u fazi opsluivanja prekida (programska statusna re PSW7..0). Ove vrednosti se multipleksiraju kroz multiplekser mxMDR.

    Prihvatni registar instrukcije IR31..0 slui za prihvatanje od jednog do etiri bajta instrukcije. Realizovan je od etiri posebna registra IR1, IR2, IR3 i IR4 duine jedan bajt u koje se upisuje u fazi itanja instrukcije (pomoni registar podatka memorije MDR7..0). U registar IR1 se uvek upisuje, dok se u registre IR2, IR3 i IR4 upisuje u zavisnosti od toga da li je instrukcija duine dva, tri ili etiri bajta, respektivno.

    Prihvatni registar operanda B15..0 sadri drugi operand specificiran adresnim delom instrukcije (ADD i AND). U registar B15..0 se upisuje u fazi formiranja adrese i itanja operanda adresnih instrukcija (adresirani registar opte namene R15..0 u sluaju registarskog direktnog adresiranja, prihvatni registar 16-bitnih veliina D15..0 u sluaju memorijskih adresiranja i razredi IR15..0 u sluaju neposrednog adresiranja). Ove vrednosti se multipleksiraju kroz multiplekser mxB. Ovaj registar se koristi i u fazi formiranja adrese u sluaju registarskog indirektnog sa preinkrementiranjem adresiranja i registarskog indirektnog sa postdekrementiranjem adresiranja. Tada se, najpre adresirani registar opte namene se prebacuje iz registarskog fajla u registar B15..0, zatim se vri inkrementiranja ili dekrementiranje registra B15..0, i na kraju se registar B15..0 prebacuje u adresirani registar opte namene. U sluaju registarskog indirektnog sa preinkrementiranjem adresiranja adresiranja registar B15..0 se prebacuje i u registar MAR15..0.

    Prihvatni registar 16-bitnih veliina D15..0 slui da se najpre u dva memorijska ciklusa itanja prihvate dva bajta 16-bitnih veliina koji se itaju iz dva susedne memorijske lokacije i da se zatim sadraj registra D15..0 prebaci u odgovarajui 16-razredni regitar procesora. Realizovan je od dva posebna registra DH i DL duine jedan bajt u koje se iz registra MDR7..0 upisuje stariji i mlai bajt, respektivno. Koristi se u fazi formiranja adrese i itanja operanda u sluaju memorijskog indirektnog adresiranja, kada se adresa operanda prebacuje u MAR15..0, zatim u fazi formiranja adrese i itanja operanda u sluaju memorijskih adresiranja, kada se adresa operanda prebacuje u B15..0, i na kraju u fazi izvravanje operacije instrukcije RTI, kada se vrednost skinuta sa steka prebacuje u PC15..0.

    Registar broja ulaza BRU15..0 sadri broj ulaza u tabelu sa adresama prekidnih rutina. Pretpostavlja se da je broj ulaza formiran i da se nalazi u BRU15..0. Kako je adresa prekidne rutine je 16 bita, a irina memorijske lokcadije 8 bita, to adresa zauzima dve susedne memorijske lokacije. Stoga se pomeranjem registra BRU15..0 ulevo za jedno mesto najpre broj ulaza pretvara u pomeraj, zatim se sabiranjem dobijenog pomeraja sa IVTP15..0 dobija adresa memorijske lokacije i na kraju se sa dobijene i prve sledee adrese memorijske lokacije itaju stariji i blai bajt 16-bitne adrese prekidne rutine.

    Aritmetika/logika/pomeraka jedinica ALU se koristi u fazi izvravanja instrukcije ADD kada se sabiraju sadraji registara ACC15..0 i B15..0, instrukcije AND kada se realizuje logika I operacija nada sadrajima registara ACC15..0 i B15..0, i instrukcije ASR, kada se sadraj registra

  • 12

    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 = 2425262728293031 IRIRIRIRIRIRIRIR RTI = 2425262728293031 IRIRIRIRIRIRIRIR ASR = 2425262728293031 IRIRIRIRIRIRIRIR LD = 2425262728293031 IRIRIRIRIRIRIRIR ST = 2425262728293031 IRIRIRIRIRIRIRIR ADD = 2425262728293031 IRIRIRIRIRIRIRIR AND = 2425262728293031 IRIRIRIRIRIRIRIR JADR = 2425262728293031 IRIRIRIRIRIRIRIR BZ = 2425262728293031 IRIRIRIRIRIRIRIR JMP = 2425262728293031 IRIRIRIRIRIRIRIR JSR = 2425262728293031 IRIRIRIRIRIRIRIR 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.

  • 13

    regdir = 212223 IRIRIR regind = 212223 IRIRIR postdecr = 212223 IRIRIR preincr = 212223 IRIRIR memdir = 212223 IRIRIR memind = 212223 IRIRIR regindpom = 212223 IRIRIR imm = 212223 IRIRIR

    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;

  • 14

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

  • 15

    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

  • 16

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

  • 17

    ! 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;

  • 18

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

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

    d) Upravljaki signali operacione jedinice bi mogli da se generiu na osnovu sekvence upravljakih signala po koracima (slika 14). Za svaki upravljaki signal operacione jedinice trebalo bi proi kroz sekvencu upravljakih signala po koracima, traiti korake u kojima se pojavljuje dati signal i izraz za dati signal formirati kao uniju signala dekodovanih stanja brojaa koraka koji odgovaraju koracima u kojima se pojavljuje dati signal.

    Upravljaki signali upravljake jedinice se ne mogu generisati na osnovu sekvence upravljakih signala po koracima (slika 14), jer se u njoj ne pojavljuju upravljaki signali upravljake jedinice, ve samo iskazi za skokove. Zbog toga je potrebno na osnovu sekvence upravljakih signala po koracima formirati sekvencu upravljakih signala za upravljaku jedinicu oiene realizacije. U njoj treba da se pored upravljakih signala operacione jedinice pojave i upravljaki signali upravljake jedinice neophodni za realizaciju bezuslovnih, uslovnih i viestruih uslovnih skokova specificiranih iskazima za skokove. Prilikom njenog formiranja primenjuje se razliiti postupak za upravljake signale operacione jedinice i za upravljake signale upravljake jedinice.

    Za upravljake signale operacione jedinice treba u sekvenci upravljakih signala za upravljaku jedinicu oiene realizacije staviti iskaze za signale onako kako se javljaju u sekvenci upravljakih signala po koracima.

    Za upravljake signale upravljake jedinice treba u sekvenci upravljakih signala po koracima traiti iskaze: br stepA, br (if uslov then stepA) i br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn).

    Umesto iskaza br stepA treba u sekvenci upravljakih signala za upravljaku jedinicu oiene realizacije staviti signal bezuslovnog skoka koji odreuje da se bezuslovno prelazi na korak stepA i signal valA koji odreuje da treba formirati binarnu vrednost A za upis u broja koraka. Simbolika oznaka signala bezuslovnog skoka je bruncnd. Koraci stepi u kojima se bezuslovni skokovi javljaju, koraci stepA na koje se bezuslovno skae, simbolike oznake signala valA i vrednosti A u heksadecimalnom dati su u tabeli na slici 31.

    stepi stepA valA A stepi stepA valA A step12 step15 val35 15 step3B step59 val59 59 step16 step31 val31 31 step3C step59 val59 59

  • 19

    step17 step28 val28 28 step3D step59 val59 59 step1A step28 val28 28 step3E step59 val59 59 step1D step28 val28 28 step40 step59 val59 59 step1E step28 val28 28 step41 step59 val59 59 step26 step28 val28 28 step42 step59 val59 59 step2F step31 val31 31 step49 step59 val59 59 step32 step59 val59 59 step6B step00 val00 00 step3A step59 val59 59

    Slika 15 Koraci stepi, stepA, signali valA i vrednosti A za bezuslovne skokove Umesto iskaza br (if uslov then stepA) treba u sekvenci upravljakih signala za upravljaku

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

    signal uslovnog skoka signal uslova signal uslovnog skoka signal uslova brOBI OBI brl3_arlogpr l3_arlogpr

    brl1 l1 brSTJADR STJADR brl2_brn l2_brn brregdir regdir

    brl2_arlogpr l2_arlogpr brnotPSWZ PSWZ brl3_jmp l3_jmp brnotPREKID PREKID

    Slika 16 Signali uslovnih skokova i signali uslova stepi uslov stepA valA A stepi uslov stepA valA A step02 OBI step02 val02 02 step36 OBI step36 val36 36 step04 l1 step31 val31 31 step39 OBI step39 val2D 39 step07 OBI step07 val07 07 step3F PSWZ step59 val59 59 step08 l2_brn step31 val31 31 step45 OBI step45 val45 45 step09 l2_arlogpr step15 val15 15 step48 OBI step48 val48 48 step0C OBI step0C val0C 0C step4D OBI step4D val4D 4D step0D l3_jmp step31 val31 31 step52 OBI step52 val52 52 step0E l3_arlogpr step15 val15 15 step56 OBI step56 val56 56 step11 OBI step11 val11 11 step59 PREKID step00 val00 00 step21 OBI step21 val21 21 step5C OBI step5C val5C 5C step24 OBI step24 val24 24 step5F OBI step5F val5F 5F step28 STJADR step31 val31 31 step62 OBI step62 val62 62 step2A OBI step2A val2A 2A step66 OBI step66 val66 66 step2D OBI step2D val2D 2D step69 OBI step69 val69 69 step33 regdir step3B val3B 3B

    Slika 17 Koraci stepi, uslovi uslov, koraci stepA, signali valA i vrednosti A za uslovne skokove

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

  • 20

    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 signal step15 bradr step31 bropr

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

    regdir step21 16 regind step25 17

    postdecr step27 18 preincr step29 1B memdir step32 1E memind step34 1F

    regindpom step37 27 imm step41 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 stepA A uslov stepA A uslov stepA A LD step32 32 ASR step3E 3E JSR step43 43 ST step33 33 BZ step3F 3F RTI step4A 4A

    ADD step3C 3C JMP step41 41 RTS step4F 4F AND step3D 3D JADR step42 42

    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.

  • 21

    ! 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;

  • 22

    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;

  • 23

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

    Slika 21 Sekvenca upravljakih signala za upravljaku jedinicu oiene realizacije ) Upravljaka jedinica oiene realizacije se sastoji iz sledeih blokova: blok generisanje

    nove vrednosti brojaa koraka, blok broja koraka, blok dekoder koraka i blok generisanje upravljakih signala (slika 22).

    Blok generisanje nove vrednosti brojaa koraka se sastoji od kombinacionih mrea KMOPR, KMADR i KMBR sa multiplekserom MP i slui za generisanje i selekciju vrednosti koju treba upisati u broja koraka CNT7...0. Potreba za ovim se javlja kada treba odstupiti od sekvencijalnog izvravanja mikrooperacija. Kombinacionom mreom KMOPR generiu se vrednosti (slika 20) za realizaciju viestrukog uslovnog skoka u koraku step31 sekvence upravljakih signala po koracima. U zavisnosti od toga koji od signala LD, ST,, RTS ima vrednost 1 zavisi koja e od vrednosti iz tabele sa slike 20 da se pojavi tada na linijama op7...0. Kombinacionom mreom KMADR generiu se vrednosti (slika 19) za realizaciju viestrukog uslovnog skoka u koraku step15 sekvence upravljakih signala po koracima. U zavisnosti od toga koji od signala regdir, regind, ..., imm ima vrednost 1 zavisi koja e od vrednosti iz tabele sa slike 19 da se pojavi tada na linijama adr7...0. Kombinacionom mreom KMBR generiu se vrednosti za upis u broja koraka CNT7...0 za bezuslovne skokove (slika 31) i uslovne skokove (slika 17) u sekvenci upravljakih signala po koracima. U zavisnosti od toga koji od signala val00, val02, ..., val69 ima vrednost 1 zavisi koja e od vrednosti iz tabela sa slika 31 i 17 tada da se pojavi na linijama br7...0.

    Blok broja koraka sadri broja CNT7...0. Broja CNT7...0 svojom trenutnom vrednou odreuje koji e upravljaki signali da imaju vrednost 1. Broja CNT7...0 moe da radi u sledeim reimima: reim inkrementiranja i reim skoka. U reimu inkrementiranja pri pojavi signala takta vri se uveavanje sadraja brojaa CNT7...0 za jedan ime se obezbeuje sekvencijalno generisanje upravljakih signala iz sekvence upravljakih signala (slika 21).

  • 24

    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.

    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).

    generisanje novevrednosti brojaa

    koraka8

    bradrMP

    S0S1 bropr

    0123

    opr7...0

    LD RTS

    ...

    ST

    KMOPR32 33 4F144424443

    adr7...0

    regd

    ir

    imm

    ...

    regi

    nd

    KMADR16 17 30144424443

    val

    00

    val

    69

    ...

    val

    02

    KMBR00 02 69144424443

    br7...0

    144424443

    signali logikih uslova

    144424443

    signali logikih uslova

    8 8 8

    dekoder korakaDC

    T6B T00

    ...

    ...

    6B 0

    1442443

    generisanjeupravljakih

    signala

    generisanjeupravljakih

    signalaupravljake

    jedinice

    l3_arlogpr

    STJADR

    regdir

    PREKID 144424443

    signal

    i lo

    giki

    h uslo

    va

    generisanjeupravljakih

    signalaoperacione

    jedinice

    108

    108 108

    CNTINC

    LDCLK

    CNT7..0

    broprldinc broja koraka

    bradr

    brcnd8

    bruncnd

    PSWZ

    OBI

    l2_brn

    l1

    l2_arlogpr

    l3_jmp

    val

    69

    ...

    brad

    r

    val

    02

    val

    00

    bro

    prbr

    uncn

    dbr

    cnd

    ...

    ldM

    AR

    incP

    C

    slBR

    U

    ......

    ...

    ...

    144424443

    signal

    i lo

    giki

    h uslo

    va

    Slika 22 Upravljaka jedinica

  • 25

    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 .

  • 26

    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.

  • 27

    RDBUS FCBUS

    MARLD

    INC

    MAR15..0

    CLK

    BUS

    MDR

    MDR7..0

    CLKLDldMBR

    ABUS15..0 DBUS7..0 WRBUS

    144444444444444444424444444444444444443

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

    incMARldMAR

    WRRD

    0 1mxMDRmxMDR 0

    IB7..0

    IB15..0

    RDWR

    OBIOBI

    IB15..0MARout MDRout

    IB7..0

    INTERFEJS SISTEMSKE MAGISTRALE

    IB7..0

    IR1IR31..24

    CLKLDldIR1 IR2IR23..16

    CLKLDldIR2

    PC CLKINC

    LDldPCincPC

    PC15...0

    IB15..0

    PCoutIB15..0

    PCHoutPC15..8

    IB7..0

    SP

    SP15..0

    DECdecSPincSP INC LD

    CLKIB15..0

    SPoutIB15..0

    PSW

    PSW7..0LDldPSW CLK

    0 1mxPSWmxPSW 0

    formiranjeindikatora

    IB7..0

    PSWoutIB7..0

    IB7..0

    IR3IR15..8

    CLKLDldIR3 IR4IR7..0

    CLKLDldIR4

    D

    D15..8

    CLKLDldDH

    IB7..0

    ldDL DD7..0

    CLKLD

    IRBPoutIR23..23.IR23..16

    IB15..0

    IB15..0IRAPout

    IR15..15.IR15..8

    IB15..0

    IB15..0

    IRJAoutIR23..8

    IR15..0IRIMADout

    DoutD15..0

    IB15..0

    Slika 23 Operaciona jedinica (prvi deo)

  • 28

    ALUB15...0A15...0

    ALU15...0

    andaddasr

    IB15..0

    X CLKLDldX Y CLKLDldYIB15..0

    ALUout

    LDldACC B

    B15..0INCincBDECdecB CLK

    LD ldBACC15..0

    IB15..0

    IB15..0

    ACC CLK

    Bout

    ACCoutIB15..0

    ACC15..8ACCHoutIB7..0

    wrR

    IB15..0

    ldRA

    IB4..0

    RA4..0

    RA CLKLD

    RoutIB15..0 BRUoutBRU15..0

    CLKLD SLBRU

    formiranje BRU

    ILslBRU0

    RDI15...0

    R15..0

    DO15...0

    WRA4...0

    IVTP

    IVTP15..0

    CLKLDIVTPout

    IB15..0 IB15..0

    Slika 24 Operaciona jedinica (drugi deo) v) Signali logikih uslova operacija, naina adresiranja i duina instrukcija, su dati pod v) u

    reenju zadatka 1.1. g) Sekvenca upravljakih signala po koracima sa spajanjem operacionih i upravljakih

    koraka je data na slici 25. ! itanje instrukcije ! step00 PCout, ldMAR, incPC; step01 RD; step02 br (if OBI then step02); step03 MDRout, ldIR1; step04 br (if l1 then step33); step05 PCout, ldMAR, incPC;

    step06 RD; step07 br (if OBI then step07); step08 MDRout, ldIR2, ldRA, br (if l2_brn then step33); step09 br (if l2_arlogpr then step15); step0A PCout, ldMAR, incPC; step0B RD; step0C br (if OBI then step0C); step0D MDRout, ldIR3, br (if l3_jmp then step33); step0E br (if l3_arlogpr then step15); step0F PCout, ldMAR, incPC; step10 RD; step11 br (if OBI then step11); step12 MDRout, ldIR4, br step15; ! Formiranje adrese i itanje operanda !

  • 29

    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;

  • 30

    ! 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;

  • 31

    step5F SPout, ldMAR; step60 RD; step61 br (if OBI then step61); step62 MDRout, ldDL; step63 Dout, ldPC;

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

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

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

    v cc ba8

    uslov14444444244444443

    operacioni deo upravljaki deo

    14243

    14444244443

    ... 12 19adresa skoka

    14444244443...7...

    signali14444244443

    110

    Slika 26 Format mikroinstrukcije Poljem v0..7 duine 8 bita mikroinstrukcije odreuju se vrednosti svih upravljakih signala

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

  • 32

    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.

  • 33

    v0...7 kod Kombinacija signala v0...7 kod Kombinacija signala 00 V00 / 1A V1A WR 01 V01 PCout, ldMAR, incPC 1B V1B ACCout, mxMDR, ldMDR, incMAR 02 V02 RD 1C V1C ACCout, wrR 03 V03 MDRout, ldIR1 1D V1D ACCout, ldX 04 V04 MDRout, ldIR2, ldRA 1E V1E Bout, ldY 05 V05 MDRout, ldIR3 1F V1F add, ALUout, ldACC 06 V06 MDRout, ldIR4 20 V20 and, ALUout, ldACC 07 V07 Rout, ldB 21 V21 asr, ALUout, ldACC 08 V08 Rout, ldMAR 22 V22 PCout, ldX 09 V09 Rout, ldMAR, ldB 23 V23 IRBPout, ldY 0A V0A decB 24 V24 add, ALUout, ldPC 0B V0B Bout, wrR 25 V25 IRJAout, ldPC 0C V0C incB 26 V26 MARout, ldPC 0D V0D Bout, ldMAR, wrR 27 V27 SPout, ldMAR 0E V0E IRIMADout, ldMAR 28 V28 SPout, ldMAR, decSP 0F V0F MDRout, ldDH 29 V29 PCout, mxMDR, ldMDR 10 V10 MDRout, ldDH, incMAR 2A V2A PCHout, mxMDR, ldMDR 11 V11 MDRout, ldDL 2B V2B incSP 12 V12 Dout, ldMAR 2C V2C MDRout, ldPSW 13 V13 Rout, ldX 2D V2D MDRout, ldDH, incSP 14 V14 IRAPout, ldY 2E V2E MDRout, ldDL 15 V15 add, ALUout, ldMAR 2F V2F Dout, ldPC 16 V16 Dout, ldB 30 V30 PSWout, mxMDR, ldMDR 17 V17 IRIMADout, ldB 31 V31 slBRU 18 V18 Bout, ldACC 32 V32 IVTPout, ldX 19 V19 ACCout, mxMDR, ldMDR 33 V33 BRUout, ldY

    Slika 27 Vrednosti polja v, simbolike oznake kodova polja v i kombinacije upravljakih signala operacione jedinice

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

    Bezuslovni skok se realizuje u onim koracima sekvence upravljakih signala po koracima (slika 25) u kojima se pojavljuju iskazi tipa

    br stepA. Nain kodiranja signala bezuslovnog skoka bitovima polja cc8...11 mikroinstrukcije i simbolika oznaka signala bezuslovnog skoka dati su u tabeli sa slike 28.

    cc811 signal bezuslovnog skoka 01 bruncnd

    Slika 28 Signal bezuslovnog skoka Uslovni skokovi se realizuju u onim koracima sekvence upravljakih signala po koracima u

    kojima se pojavljuju iskazi tipa br (if uslov then stepA).

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

  • 34

    cc811 signal uslovnog

    skoka signal uslova

    cc811 signal uslovnog

    skoka signal uslova

    02 brOBI OBI 07 brl3_arlogpr l3_arlogpr 03 brl1 l1 08 brSTJADR STJADR 04 brl2_brn l2_brn 09 brregdir regdir 05 brl2_arlogpr l2_arlogpr 0A brnotPSWZ PSWZ 06 brl3_jmp l3_jmp 0B brnotPREKID PREKID

    Slika 29 Signali uslovnih skokova Viestruki uslovni skokovi se realizuju u onim koracima sekvence upravljakih signala po

    koracima u kojima se pojavljuju iskazi tipa br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn).

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

    cc811 stepi signal 0C step15 bradr 0D step33 bropr

    Slika 30 Signali viestrukih uslovnih skokova Vrednost 00 polja cc8...11 i sve ostale vrednosti koje nisu dodeljene signalu bezuslovnog

    skoka, signalima uslovnih skokova i signalima viestrukih uslovnih skokova odreuju da treba prei na sledeu mikroinstrukciju.

    Iz tabela sa slika 28, 29 i 30 se vidi da su za kodiranje signala bezuslovnog skoka, uslovnih skokova i viestrukih uslovnih skokova upravljake jedinice potrebni kodovi od 00h do 0Dh, pa je usvojeno da duina polja cc bude 4 bita.

    Bitovi 12 do 19 pripadaju polju ba1219 mikroinstrukcije i koriste se za specificiranje adrese mikroinstrukcije na koju treba skoiti kod uslovnih i bezuslovnih skokova u sekvenci upravljakih signala po koracima (slika 25). Ovi bitovi sadre vrednost koju treba upisati u mikroprogramski broja u sluaju bezuslovnih skokova i ukoliko signal uslova ima vrednost 1 u sluaju uslovnih skokova. Za kodiranje polja ba1219 usvojeno je 8 bitova, jer je za kompletan mikroprogram dovoljan kapacitet mikroprogramske memorije od 256 rei.

    Mikroprogram se formira tako to se za svaki korak u sekvenci upravljakih signala po koracima (slika 25) formira jedna mikroinstrukcija.

    Kod formiranja mikroinstrukcije bitovi polja v0..7 se postavljaju ili na jednu od binarnih vrednosti V01 do V33 ukoliko se neka od kombinacija upravljakih signala operacione jedinice (slika 27) javlja u datom koraku ili na binarnu vrednost nula V00 ukoliko se ni jedan od signala ne javlja u datom koraku.

    U koracima u kojima se javlja neki od iskaza br stepA, br (if uslov then stepA) i br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)) se bitovi polja cc8...11 i ba1219 kodiraju u zavisnosti od toga koji se od ova tri iskaza javlja u datom koraku, dok se u suprotnom sluaju postavljaju na nule.

    Za iskaz br stepA se za polje cc8...11 uzima kod dodeljen signalu bezuslovnog skoka koji odreuje da se bezuslovno prelazi na korak stepA i za polje ba1219 binarna vrednost A koju treba upisati u mikroprogramski broja. Simbolika oznaka signala bezuslovnog skoka i nain njegovog kodiranja poljem cc8...11 dati su u tabeli tabeli 28. Koraci stepi u kojima se

  • 35

    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 stepA A stepi stepA A stepi stepA A step12 step15 15 step31 step33 33 step49 step64 64 step16 step33 33 step34 step64 64 step4A step64 64 step17 step33 33 step3C step64 64 step4B step64 64 step1A step2A 2A step3D step64 64 step54 step64 64 step1D step2A 2A step40 step64 64 step7B step00 00 step1E step2A 2A step43 step64 64 step26 step2A 2A step45 step64 64

    Slika 31 Koraci stepi, stepA i vrednosti A za bezuslovne skokove Za iskaz br (if uslov then stepA) se za polje cc8...11 uzima kod dodeljen signalu uslovnog

    skoka koji odreuje signal uslov koji treba da ima vrednost 1 da bi se realizovao prelaz na korak stepA i za polje ba1219 binarna vrednost A koju treba upisati u mikroprogramski broja u sluaju da signal uslov ima vrednost 1. Simbolike oznake signala uslovnog skoka, nain njihovog kodiranja poljem cc8...11 i signali uslov za sve iskaze ovog tipa koji se javljaju u sekvenci upravljakih signala po koracima dati su u tabeli sa slike 29. Koraci stepi u kojima se uslovni skokovi javljaju, signali uslova uslov, koraci stepA na koje se uslovno skae i vrednosti A koju treba upisati u mikroprogramski broja u sluaju da signal uslov ima vrednost 1, za sve korake u sekvenci upravljakih signala po koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli sa slike 32

    stepi uslov stepA A stepi uslov stepA A step02 OBI step02 02 step38 OBI step38 38 step04 l1 step33 33 step3B OBI step3B 3B step07 OBI step07 07 step46 PSWZ step64 64 step08 l2_brn step33 33 step4F OBI step4F 4F step09 l2_arlogpr step15 15 step53 OBI step53 53 step0C OBI step0C 0C step58 OBI step58 58 step0D l3_jmp step33 33 step5D OBI step5D 5D step0E l3_arlogpr step0E 0E step61 OBI step61 61 step11 OBI step11 11 step64 PREKID step00 00 step21 OBI step21 21 step68 OBI step68 68 step24 OBI step24 24 step6C OBI step6C 6C step2A STJADR step33 33 step70 OBI step70 70 step2C OBI step2C 2C step76 OBI step76 76 step2F OBI step2F 2F step79 OBI step79 79 step35 regdir step3D 3D

    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

  • 36

    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 stepA A regdir step16 16 regind step17 17

    postdecr step18 18 preincr step1B 1B memdir step1E 1E memind step1F 1F

    regindpom step27 27 imm step32 32

    Slika 33 Signali uslova, koraci na koje se skae i vrednosti za upis u mikroprogramski broja za viestruki uslovni skok u koraku step15

    uslov stepA A uslov stepA A uslov stepA A LD step34 34 ASR step44 44 JSR step4C 4C ST step35 35 BZ step46 46 RTI step55 55

    ADD step3E 3E JMP step4A 4A RTS step5A 5A AND step41 41 JADR step4B 4B

    Slika 34 Signali uslova, koraci na koje se skae i vrednosti za upis u mikroprogramski broja za viestruki uslovni skok u koraku step33

    ! itanje instrukcije ! madr00 V01; ! PCout, ldMAR, incPC; madr01 V02; ! RD; madr02 brOBI, madr02; madr03 V03; ! MDRout, ldIR1; madr04 brl1, madr33; madr05 V01; ! PCout, ldMAR, incPC; madr06 V02; ! RD; madr07 brOBI, madr07; madr08 V04, brl2_brn, madr33; ! MDRout, ldIR2, ldRA; madr09 brl2_arlogpr, madr15; madr0A V01; ! PCout, ldMAR, incPC; madr0B V02; ! RD; madr0C brOBI, madr0C; madr0D V05, brl3_jmp, madr33; ! MDRout, ldIR3; madr0E brl3_arlogpr, madr15; madr0F V01; ! PCout, ldMAR, incPC; madr10 V02; ! RD; madr11 brOBI, madr11; madr12 V06, bruncnd, madr15 ! MDRout, ldIR4;

    ! Formiranje adrese i itanje operanda ! madr15 bradr; ! Registarsko direktno adresiranje! madr16 V07, bruncnd, madr33; ! Rout, ldB; ! Registarsko indirektno adresiranje ! madr17 V08, bruncnd, madr2A; ! Rout, ldMAR; ! Registarsko indirektno sa postdekrementiranjem adresiranje !

    madr18 V09; ! Rout, ldMAR, ldB; madr19 V0A; ! decB; madr1A V0B, bruncnd, madr2A; ! Bout, wrR;

  • 37

    ! Registarsko indirektno sa preinkrementiranjem adresiranje ! madr1B V07; ! Rout, ldB; madr1C V0C; ! incB; madr1D V0D, bruncnd, madr2A; ! Bout, ldMAR, wrR;

    ! Memorijsko direktno adresiranje ! madr1E V0E, bruncnd, madr2A; ! IRIMADout, ldMAR; ! Memorijsko indirektno adresiranje !

    madr1F V0E; ! IRIMADout, ldMAR; madr20 V02; ! RD; madr21 brOBI, madr21; madr22 V10; ! MDRout, ldDH, incMAR; madr23 V02; ! RD; madr24 brOBI, madr24; madr25 V11; ! MDRout, ldDL; madr26 V12, bruncnd, madr2A; ! Dout, ldMAR;

    ! Registarsko indirektno sa pomerajem adresiranje ! madr27 V13; ! Rout, ldX; madr28 V14; ! IRAPout, ldY; madr29 V15; ! add, ALUout, ldMAR;

    ! itanje operanda za sva memorijska adresiranja ! madr2A brSTJADR, madr33; madr2B V02; ! RD; madr2C brOBI, madr2C; madr2D V10; ! MDRout, ldDH, incMAR; madr2E V02; ! RD; madr2F brOBI, madr2F; madr30 V11; ! MDRout, ldDL; madr31 V16, bruncnd, madr33; ! Dout, ldB;

    ! Neposredno adresiranje ! madr32 V17; ! IRIMADout, ldB; ! Izvravanje operacije ! madr33 bropr; ! LD ! madr34 V18, bruncnd, madr64; ! Bout, ldACC; ! ST !

    madr35 brregdir, madr3D; madr36 V19; ! ACCHout, mxMDR, ldMDR; madr37 V1A; ! WR; madr38 brOBI, madr38; madr39 V1B; ! ACCout, mxMDR, ldMDR, incMAR; madr3A V1A; ! WR; madr3B brOBI, madr3B; madr3C bruncnd, madr64; madr3D V1C, bruncnd, madr64; ! ACCout, wrR;

    ! ADD ! madr3E V1D; ! ACCout, ldX; madr3F V1E; ! Bout, ldY; madr40 V1F, bruncnd, madr64; ! add, ALUout, ldACC;

    ! AND ! madr41 V1D; ! ACCout, ldX; madr42 V1E; ! Bout, ldY; madr43 V20, bruncnd, madr64; ! and, ALUout, ldACC;

    ! ASR !

  • 38

    madr44 V1D; ! ACCout, ldX; madr45 V21, bruncnd, madr64; ! asr, ALUout, ldACC;

    ! BZ ! madr46 brnotPSWZ, madr64; madr47 V22; ! PCout, ldX; madr48 V23; ! IRBPout, ldY; madr49 V24, bruncnd, madr64; ! add, ALUout, ldPC;

    ! JMP ! madr4A V25, bruncnd, madr64; ! IRJAout, ldPC; ! JADR ! madr4B V26, bruncnd, madr64; ! MARout, ldPC; ! JSR !

    madr4C V28; ! SPout, ldMAR, decSP; madr4D V29; ! PCout, mxMDR, ldMDR; madr4E V1A; ! WR; madr4F brOBI, madr4F; madr50 V28; ! SPout, ldMAR, decSP; madr51 V2A; ! PCHout, mxMDR, ldMDR; madr52 V1A; ! WR; madr53 brOBI, madr53; madr54 V25, bruncnd, madr64; ! IRJAout, ldPC;

    ! RTI ! madr55 V2B; ! incSP; madr56 V27; ! SPout, ldMAR; madr57 V02; ! RD; madr58 brOBI, madr58; madr59 V2C; ! MDRout, ldPSW;

    ! RTS ! madr5A V2B; ! incSP; madr5B V27; ! SPout, ldMAR; madr5C V02; ! RD; madr5D brOBI, madr5D; madr5E V2D; ! MDRout, ldDH, incSP; madr5F V27; ! SPout, ldMAR; madr60 V02; ! RD; madr61 brOBI, madr61; madr62 V2E; ! MDRout, ldDL; madr63 V2F; ! Dout, ldPC;

    ! Opsluivanje prekida ! madr64 brnotPREKID, madr00; madr65 V28; ! SPout, ldMAR, decSP; madr66 V29; ! PCout, mxMDR, ldMDR; madr67 V1A; ! WR; madr68 brOBI, madr68; madr69 V28; ! SPout, ldMAR, decSP; madr6A V2A; ! PCHout, mxMDR, ldMDR; madr6B V1A; ! WR; madr6C brOBI, madr6C; madr6D V28; ! SPout, ldMAR, decSP; madr6E V30; ! PSWout, mxMDR, ldMDR; madr6F V1A; ! WR; madr70 brOBI, madr70; madr71 V31; ! slBRU;

  • 39

    madr72 V32; ! IVTPout, ldX; madr73 V33; ! BRUout, ldY; madr74 V15; ! add, ALUout, ldMAR; madr75 V02; ! RD; madr76 brOBI, madr76; madr77 V10; ! MDRout, ldDH, incMAR; madr78 V02; ! RD; madr79 brOBI, madr79; madr7A V11; ! MDRout, ldDL; madr7B V2F, bruncnd, madr00; ! Dout, ldPC;

    Slika 35 Mikroprogram za upravljaku jedinicu mikroprogramske realizacije sa vertikalnim kodiranjem signala i jednim tipom mikroinstrukcija

    ) Upravljaka jedinica mikroprogramske realizacije sa vertikalnim kodiranjem signala i jednim tipom mikroinstrukcija se sastoji od sledeih blokova: blok generisanje nove vrednosti mikroprogramskog brojaa, blok mikroprogramski broja, blok mikroprogramska memorija, blok prihvatni registar mikroinstrukcije i blok generisanje upravljakih signala (slika 36). Struktura i opis blokova upravljake jedinice se daju u daljem tekstu.

    Blok generisanje nove vrednosti mikroprogramskog brojaa se sastoji od kombinacionih mrea KMOPR i KMADR sa multiplekserom MP i razreda CW12...19 prihvatnog registra mikroinstrukcije CW0...19 i slui za generisanje i selekciju vrednosti koju treba upisati u mikroprogramski broja mPC7...0. Potreba za ovim se javlja kada treba odstupiti od sekvencijalnog izvravanja mikroprograma. Kombinacionom mreom KMOPR generiu se vrednosti (tabela sa slike 34) za realizaciju viestrukog uslovnog skoka u koraku step33 sekvence upravljakih signala po koracima. U zavisnosti od toga koji od signala LD, , RTS ima vrednost 1 zavisi koja e od vrednosti iz tabele sa slike 34 da se pojavi tada na linijama op7...0. Kombinacionom mreom KMADR generiu se vrednosti (tabela sa slike 33) za realizaciju viestrukog uslovnog skoka u koraku step15 sekvence upravljakih signala po koracima. U zavisnosti od toga koji od signala regdir,..., imm ima vrednost 1 zavisi koja e od vrednosti iz tabele sa slike 33 da se pojavi tada na linijama adr7...0. Razredi CW11...19 prihvatnog registra mikroinstrukcije CW0...19 sadre vrednost za upis u mikroprogramski broja mPC7...0 za bezuslovne skokove (tabela sa slike 31) i uslovne skokove (tabela sa slike 32) u sekvenci upravljakih signala po koracima.

    Blok mikroprogramski broja sadri mikroprogramski broja mPC7...0. Mikroprogramski broja mPC7...0 svojom trenutnom vrednou odreuje adresu mikroprogramske memorije mMEM sa koje treba oitati mikroinstrukciju. Mikroprogramski broja mPC7...0 moe da radi u sledeim reimima: reim inkrementiranja i reim skoka. U reimu inkrementiranja pri pojavi signala takta CLKmPC vri se uveavanje sadraja mikroprogramskog brojaa mPC7...0 za jedan ime se obezbeuje sekvencijalno oitavanje mikroinstrukcija iz mikroprogramske memorije. Ovaj reim rada se obezbeuje vrednou 1 signala inc. U reimu skoka pri pojavi signala takta CLKmPC vri se upis nove vrednosti u mikroprogramski broja mPC7...0 ime se obezbeuje odstupanje od sekvencijalnog oitavanja mikroinstrukcija iz mikroprogramske memorije. Ovaj reim rada se obezbeuje vrednou 1 signala ld.

  • 40

    mPCINC

    LD

    mPC7...0

    broprldinc

    mikroprogramskibroja

    bradrbruncndCLKCLKmPC

    8

    8

    generisanjenove

    vrednostimikroprogramskog

    brojaaCW12...19

    bradrMP

    S0S1 bropr

    0123

    8 88

    CW prihvatniregistar

    mikroinstrukcijeCW19123

    ...

    ...

    20

    mMEM mikroprogramskamemorijaWR0

    generisanjeupravljakih

    signalaoperacione

    jedinice

    generisanjeupravljakih

    signala

    generisanjeupravljakih

    signalaupravljake

    jedinice

    opr7...0

    ...

    KMOPR34 35 5A144424443

    adr7...0

    ...

    KMADR16 17 32144424443

    LD RTSST regd

    ir

    imm

    regi

    nd

    8

    ...7

    CW74

    0

    CW08

    CW11...

    11

    123

    8

    CW8 123

    ...

    ...CW12

    12 19 1

    CLKCWCLKLD

    brcnd

    OBI

    l2_brn

    l1

    l2_arlogpr

    l3_jmp

    l3_arlogpr

    STJADR

    regdir

    PREKID 144424443

    signal

    i lo

    giki

    h uslo

    va

    PSWZ

    brcn

    d

    brad

    r

    bro

    pr

    bruncn

    d

    BR

    Uo

    ut

    PCo

    ut

    ldM

    AR

    . . .

    . . .

    144424443

    signali logikih uslova

    144424443

    signali logikih uslova

    144424443

    signal

    i lo

    giki

    h uslo

    va

    Slika 36 Struktura upravljake jedinice Blok mikroprogramski memorija sadri mikroprogramsku memoriju mMEM, koja slui za

    smetanje mikroprograma. Adresiranje mikroprogramske memorije se realizuje sadrajem mikroprogramskog brojaa mPC7...0.

    Blok prihvatni registar mikroinstrukcije sadri prihvatni registar mikroinstrukcije CW0...19. Prihvatni registar mikroinstrukcije CW0...19 slui za prihvatanje mikroinstrukcije oitane iz mikroprogramske memorije mMEM. Na osnovu sadraja ovog registra generiu se upravljaki signali. Razredi CW0...7 i CW8...11 se koriste u bloku generisanje upravljakih

  • 41

    signala za generisanje upravljakih signala operacione jedinice i upravljake jedinice, respektivno, dok se razredi CW12...19 koriste u bloku generisanje nove vrednosti mikroprogramskog brojaa kao adresa skoka u mikrorogramu u sluaju bezuslovnih i uslovnih skokova.

    Blok generisanje upravljakih signala sadri kombinacione mree koje na osnovu sadraja razreda CW0...7 prihvatnog registra mikroinstrukcije generiu upravljake signale operacione jedinice i na osnovu sadraja razreda CW8...11 prihvatnog registra mikroinstrukcije i signala logikih uslova OBI, l1, ..., PREKID koji dolaze iz operacione jedinice generiu upravljake signale upravljake jedinice.

    Upravljaki signala operacione jedinice se generiu tako to se najpre generiu signali kombinacija upravljakih signala V00 do V33 (tabela sa slike 27) i to:

    7654321000 CWCWCWCWCWCWCWCWV = 7654321001 CWCWCWCWCWCWCWCWV = 7654321002 CWCWCWCWCWCWCWCWV = Potom, se za svaki upravlja