336
JOVAN ĐORĐEVIĆ ARHITEKTURA RAČUNARA EDUKACIONI RAČUNARSKI SISTEM ARHITEKTURA I ORGANIZACIJA RAČUNARSKOG SISTEMA Beograd 2002.

final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

JOVAN ĐORĐEVIĆ

ARHITEKTURA RAČUNARA

EDUKACIONI RAČUNARSKI SISTEM

ARHITEKTURA I ORGANIZACIJA

RAČUNARSKOG SISTEMA

Beograd 2002.

Page 2: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte
Page 3: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

i

SADRŽAJ SADRŽAJ.................................................................................................................................. I

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

2 ARHITEKTURA SISTEMA...........................................................................................7

2.1 PROCESOR....................................................................................................................7 2.1.1 Programski dostupni registri...............................................................................7 2.1.2 Tipovi podataka ..................................................................................................8 2.1.3 Formati instrukcija..............................................................................................9

2.1.3.1 Format troadresnih instrukcija........................................................................9 2.1.3.2 Format dvoadresnih instrukcija ......................................................................9 2.1.3.3 Format jednoadresnih instrukcija .................................................................10 2.1.3.4 Format bezadresnih instrukcija.....................................................................10 2.1.3.5 Format instrukcija skoka ..............................................................................10

2.1.4 Načini adresiranja............................................................................................. 11 2.1.5 Skup instrukcija ................................................................................................ 11

2.1.5.1 Opis instrukcija............................................................................................. 11 2.1.5.1.1 Instrukcije prenosa .................................................................................12 2.1.5.1.2 Aritmetičke instrukcije ...........................................................................13 2.1.5.1.3 Logičke instrukcije .................................................................................13 2.1.5.1.4 Instrukcije pomeranja i rotiranja ............................................................14 2.1.5.1.5 Instrukcije skoka ....................................................................................15 2.1.5.1.6 Instrukcije postavljanja indikatora u PSW.............................................17 2.1.5.1.7 Instrukcija bez dejstva............................................................................17 2.1.5.1.8 Instrukcija zaustavljanja.........................................................................17

2.1.5.2 Kodiranje instrukcija ....................................................................................17 2.1.6 Mehanizam prekida ..........................................................................................21

2.1.6.1 Opsluživanje zahteva za prekid i povratak iz prekidne rutine......................23 2.1.6.1.1 Opsluživanje zahteva za prekid..............................................................23 2.1.6.1.2 Povratak iz prekidne rutine ....................................................................24

2.1.6.2 Prioriteti prekida...........................................................................................24 2.1.6.3 Selektivno maskiranje maskirajućih prekida................................................24 2.1.6.4 Maskiranje svih maskirajućih prekida..........................................................24 2.1.6.5 Prekid posle svake instrukcije ......................................................................25 2.1.6.6 Instrukcija prekida ........................................................................................25 2.1.6.7 Gneždenje prekida ........................................................................................25 2.1.6.8 Prihvatanje zahteva za prekid.......................................................................25

2.2 MEMORIJA..................................................................................................................27 2.3 ULAZNO/IZLAZNI UREĐAJI..........................................................................................27

2.3.1 Registri kontrolera bez direktnog pristupa memoriji .......................................27 2.3.2 Registri kontrolera sa direktnim pristupom memoriji ......................................30

3 MAGISTRALA...............................................................................................................37

Page 4: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

ii

4 PROCESOR ................................................................................................................... 41

4.1 OPERACIONA JEDINICA.............................................................................................. 41 4.1.1 Blok registri ..................................................................................................... 42 4.1.2 Blok operacije .................................................................................................. 50 4.1.3 Blok interfejs.................................................................................................... 57 4.1.4 Blok prekidi ..................................................................................................... 65

4.2 UPRAVLJAČKA JEDINICA............................................................................................ 72 4.2.1 Dijagram toka operacija ................................................................................... 72 4.2.2 Algoritam generisanja upravljačkih signala..................................................... 74 4.2.3 Realizacija upravljačke jedinice ...................................................................... 98

4.2.3.1 Ožičena realizacija ....................................................................................... 98 4.2.3.1.1 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene

realizacije ............................................................................................... 98 4.2.3.1.2 Struktura upravljačke jedinice ..............................................................113

4.2.3.2 Mikroprogramska realizacija ..................................................................... 120 4.2.3.2.1 Mikroprogramska realizacija sa mešovitim formatom mikroinstrukcije... ............................................................................................................. 120

4.2.3.2.1.1 Format mikroinstrukcije ............................................................... 120 4.2.3.2.1.1.1 Operacioni deo mikroinstrukcije ........................................... 120 4.2.3.2.1.1.2 Upravljački deo mikroinstrukcije .......................................... 127

4.2.3.2.1.2 Mikroprogram............................................................................... 128 4.2.3.2.1.3 Struktura upravljačke jedinice ...................................................... 138

4.2.3.2.2 Mikroprogramska realizacija sa vertikalnim formatom mikroinstrukcija . ............................................................................................................. 144

4.2.3.2.2.1 Formati mikroinstrukcija .............................................................. 144 4.2.3.2.2.1.1 Operacione mikroinstrukcije ................................................. 145 4.2.3.2.2.1.2 Upravljačke mikroinstrukcije ................................................ 147

4.2.3.2.2.2 Sekvenca upravljačkih signala po koracima za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija ................................... 149

4.2.3.2.2.3 Mikroprogram............................................................................... 157 4.2.3.2.2.4 Struktura upravljačke jedinice ...................................................... 167

4.2.3.2.3 Mikroprogramska realizacija sa nanoprogramiranjem ........................ 174

5 MEMORIJA................................................................................................................. 185

5.1 OPERACIONA JEDINICA ............................................................................................ 185 5.2 UPRAVLJAČKA JEDINICA .......................................................................................... 188

5.2.1 Dijagram toka operacija ................................................................................. 188 5.2.2 Algoritam generisanja upravljačkih signala................................................... 189 5.2.3 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije.. 192 5.2.4 Struktura upravljačke jedinice ....................................................................... 194

6 ULAZNO/IZLAZNI UREĐAJI.................................................................................. 197

6.1 PERIFERIJA .............................................................................................................. 197 6.1.1 Operaciona jedinica ....................................................................................... 197 6.1.2 Upravljačka jedinica ...................................................................................... 199

6.1.2.1 Dijagram toka operacija ............................................................................. 200 6.1.2.2 Algoritam generisanja upravljačkih signala............................................... 201 6.1.2.3 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije.... .................................................................................................................... 204

Page 5: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

iii

6.1.2.4 Struktura upravljačke jedinice....................................................................206 6.2 KONROLER PERIFERIJE BEZ DIREKTNOG PRISTUPA MEMORIJI....................................208

6.2.1 Operaciona jedinica ........................................................................................208 6.2.1.1 Blok registri ................................................................................................209 6.2.1.2 Blok interfejs ..............................................................................................214

6.2.2 Upravljačka jedinica.......................................................................................220 6.2.2.1 Upravljačka jedinica magistrale .................................................................221

6.2.2.1.1 Dijagram toka operacija .......................................................................221 6.2.2.1.2 Algoritam generisanja upravljačkih signala.........................................222 6.2.2.1.3 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene

realizacije .............................................................................................228 6.2.2.1.4 Struktura upravljačke jedinice..............................................................231

6.2.2.2 Upravljačka jedinica periferije ...................................................................233 6.2.2.2.1 Dijagram toka operacija .......................................................................233 6.2.2.2.2 Algoritam generisanja upravljačkih signala.........................................235 6.2.2.2.3 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene

realizacije .............................................................................................241 6.2.2.2.4 Struktura upravljačke jedinice..............................................................244

6.3 KONTROLER PERIFERIJE SA DIREKTNIM PRISTUPOM MEMORIJI .................................246 6.3.1 Operaciona jedinica ........................................................................................247

6.3.1.1 Blok registri ................................................................................................248 6.3.1.2 Blok interfejs ..............................................................................................254

6.3.2 Upravljačka jedinica.......................................................................................265 6.3.2.1 Upravljačka jedinica magistrale .................................................................267

6.3.2.1.1 Dijagram toka operacija .......................................................................267 6.3.2.1.2 Algoritam generisanja upravljačkih signala.........................................267 6.3.2.1.3 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene

realizacije .............................................................................................273 6.3.2.1.4 Struktura upravljačke jedinice..............................................................276

6.3.2.2 Upravljačka jedinica periferije ...................................................................278 6.3.2.2.1 Dijagram toka operacija .......................................................................278 6.3.2.2.2 Algoritam generisanja upravljačkih signala.........................................280 6.3.2.2.3 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene

realizacije .............................................................................................285 6.3.2.2.4 Struktura upravljačke jedinice..............................................................289

6.3.2.3 Upravljačka jedinica memorije...................................................................291 6.3.2.3.1 Dijagram toka operacija .......................................................................291 6.3.2.3.2 Algoritam generisanja upravljačkih signala.........................................298 6.3.2.3.3 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene

realizacije .............................................................................................319 6.3.2.3.4 Struktura upravljačke jedinice..............................................................325

7 LITERATURA..............................................................................................................329

Page 6: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte
Page 7: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

1

1 KONFIGURACIJA SISTEMA Računarski sistem sadrži procesor CPU, memoriju MEM, ulazno/izlazne uređaje U/I,

uređaj za kontrolu ispravnosti rada sistema FAULT i sistemsku magistralu BUS (slika 1).

Arhitektura procesora od programski dostupnih registara ima registre opšte namene. Tipovi podataka sa kojima se radi su celobrojne 16-bitne veličine sa znakom i bez znaka. Format instrukcija je promenljiv tako da se u zavisnosti od tipa operacije koriste troadresni, dvoadresni, jednoadresni i bezadresni formati instrukcija. Načini adresiranja uključuju registarsko indirektno, registarsko indirektno sa pomerajem, memorijsko direktno, neposredno i registarsko direktno adresiranje, pri čemu se prva četiri načina adresiranja specificiraju eksplicitno određenim poljima instrukcije, dok se registarsko direktno adresiranje implicitno koristi u aritmetičkim instrukcijama, logičkim instrukcijama i instrukcijama pomeranja i rotiranja. Skup instrukcija uključuje instrukcije prenosa, aritmetičke instrukcije, logičke instrukcije, instrukcije pomeranja i rotiranja kao i instrukcije skoka. Prekidi uključuju unutrašnje i spoljašnje prekide sa maskiranjem i prioritiranjem prekida, kontekst procesora se čuva na steku, a adresa prekidne rutine utvrđuje tehnikom vektorisanog mehanizma prekida.

Organizacija procesora je tako odabrana da je čine dve odvojene jedinice i to operaciona jedinica i upravljačka jedinica. Operaciona jedinica se sastoji od blokova registri, izvršavanje operacija, povezivanje magistrale i opsluživanje prekida, međusobno povezanih internom magistralom. Za prikazanu operacionu jedinicu procesora date su četiri moguće realizacije upravljačke jedinice i to: ožičena realizacija, mikroprogramska realizacija sa mešovitim formatom mikroinstrukcija, mikroprogramska realizacija sa vertikalnim formatom mikroinstrukcija i mikroprogramska realizacija sa vertikalnim formatom mikroinstrukcija i nanoprogramiranjem.

Procesor po liniji inm dobija signal nemaskirajućeg zahteva za prekid od uređaja za kontrolu ispravnosti rada sistema FAULT. Procesor po linijama intr1, intr2 i intr3 dobija signale maskirajućih zahteva za prekid od ulazno/izlaznih uređaja U/I, a po linijama inta1, inta2 i inta3 šalje signale dozvole prekida ulazno/izlaznim uređajima U/I. Procesor po liniji hldr dobija signal zahteva korišćenja magistrale od ulazno/izlaznih uređaja U/I, a po liniji hlda šalje signal dozvole korišćenja magistrale ulazno/izlaznim uređajima U/I.

Memorija je kapaciteta 60K 16−bitnih reči.

Ulazno/izlaznih uređaja ima 12 i to 8 sa kontrolerima bez direktnog pristupa memoriji i 4 sa kontrolerima za direktan pristup memoriji. Pošto procesor ima samo tri para linija intr1 i inta1, intr2 i inta2 i intr3 i inta3 po kojima se između procesora i uređaja razmenjuju signali zahteva za prekid i signale dozvole prekida, 12 uređaja je vezano u tri lanca sa po četiri uređaja u lancu.

Page 8: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

2

inta

intahlda

inta

intr

intain intaoutU/I1.1

intrintahldahldr

intr

intain intaoutU/I3.1

hldain

hldr

hldaout

intr

intain intaoutU/I2.1inta

intr

intrinta

DBUS15...0

ABUS15...0

WRBUSFCBUS

RDBUS

CPU

FAULT

intr1

inta1

intr2

inta2

intr3

inta3

hldr

hlda

inm

BUS

14

44

24

44

3

U/I

Slika 1 Konfiguracija sistema

Page 9: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

3

intr

intain intaout

hldain

hldr

intr

intain intaoutinta

intr

intain intaoutU/I3.3

hldain

hldr

hldahldain

hldr

hldaout

intr

intain intaout

U/I3.2

intaU/I2.2

intahlda

intaoutU/I3.4

intr

intain intaoutinta

intr

intain intaoutU/I2.3 U/I2.4

intr

intain intaoutinta

intr

intain intaoutU/I1.3 U/I1.4inta

intr

intain intaoutU/I1.2

MEM

Slika 1 Konfiguracija sistema (nastavak)

Page 10: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

4

Uređaji U/I1.1 do U/I1.4 su sa kontrolerima bez direktnog pristupa memoriji i oni po liniji intr1 procesora šalju signal zaheva za prekid intr. Uređaj koji je uputio zahtev za prekid šalje svoj broj ulaza u tabelu sa adresama prekidnih rutina tek po dobijanju aktivne vrednosti signala dozvole inta. Procesor po liniji inta1 šalje signal dozvole prekida inta prvom uređaju u lancu U/I1.1. Ukoliko je uređaj U/I1.1 uputio zahtev za prekid, onda on po linijama podataka magistrale šalje svoj broj ulaza u tabelu sa adresama prekidnih rutina, a po liniji intaout na ulaz intain uređaja U/I1.2 šalje neaktivnu vrednost signala inta. Ukoliko uređaj U/I1.1 nije uputio zahtev za prekid, onda on samo po liniji intaout na ulaz intain uređaja U/I1.2 šalje aktivnu vrednost signala inta. Svaki sledeći uređaj u lancu se po dobijanju aktivne vrednosti signala inta ponaša na isti način kao i uređaj U/I1.1.

Uređaji U/I2.1 do U/I2.4 su, takođe, sa kontrolerima bez direktnog pristupa memoriji i oni po liniji intr2 šalju signal zaheva za prekid intr. Signal dozvole inta, koji procesor šalje po liniji inta2, se prosleđuje od uređaja U/I2.1 do U/I2.4 na isti način na koji se signal dozvole inta, koji procesor šalje po liniji inta1, prosleđuje od uređaja U/I1.1 do U/I1.4.

Uređaji U/I3.1 do U/I3.4 su sa kontrolerima sa direktnim pristupom memoriji i oni po liniji intr3 šalju signal zaheva za prekid intr. Signal dozvole inta, koji procesor šalje po liniji inta3, se prosleđuje od uređaja U/I3.1 do U/I3.4 na isti način na koji se signal dozvole inta, koji procesor šalje po liniji inta1, prosleđuje od uređaja U/I1.1 do U/I1.4. U ciklusima na magistrali uređaji U/I1.1 do U/I1.4 mogu da budu ne samo sluge već i gazde. Ovi uređaji moraju, u ciklusima na magistrali u kojima su gazde, da od procesora traže dozvolu korišćenja magistrale i da tek po dobijanju dozvole realizuje ciklus. Pošto procesor ima samo par linija hldr i hlda po kojima se između procesora i uređaja razmenjuju signali zahteva hldr i signal dozvole hlda korišćenja magistrale uređaji U/I3.1 do U/I3.4 su vezani u lanac. Ovi uređaji po liniji hldr šalju signal zahteva korišćenja magistrale. Uređaj koji je uputio signal zahteva korišćenja magistrale započinje ciklus na magistrali tek po dobijanju signala dozvole hlda. Procesor po liniji hlda šalje signal dozvole korišćenja magistrale hlda prvom uređaju u lancu U/I3.1. Ukoliko je uređaj U/I3.1 uputio signal zahteva korišćenja magistrale onda on kreće sa realizacijom ciklusa na magistrali, a po liniji hldaout na ulaz hldain uređaja U/I3.2 šalje neaktivnu vrednost signala hlda. Ukoliko uređaj U/I3.1 nije uputio signal zahteva korišćenja magistrale, onda on samo po liniji hldaout na ulaz hldain uređaja U/I3.2 šalje aktivnu vrednost signala hlda. Svaki sledeći uređaj u lancu se ponaša na isti način po dobijanju aktivne vrednosti signala hlda kao i uređaj U/I3.1.

Procesor, memorija i ulazno/izlazni uređaji su povezani asinhronom sistemskom magistralom koju čine adresne linije ABUS15...0, linije podataka DBUS15...0 i upravljačke linije RDBUS, WRBUS i FCBUS. Na magistrali mogu da se realizuju ciklus čitanja, ciklus upisa i ciklus prihvatanja broja ulaza.

Procesor realizuje cikluse čitanja prilikom čitanja instrukcija i podataka iz memorije i prilikom čitanja statusnih informacija i podataka iz registara kontrolera ulazno/izlaznih uređaja. Procesor realizuje cikluse upisa prilikom upisa podataka u memoriju i prilikom upisa upravljačkih informacija i podataka u registare kontrolera ulazno/izlaznih uređaja. Procesor realizuje ciklus prihvatanje broja ulaza u okviru opsluživanja zahteva za prekid kada od kontrolera ulazno/izlaznog uređaja za koji je prihvaćen zahtev za prekid prihvata broj ulaza u tabelu sa adresama prekidnih rutina. Ulazno/izlazni uređaj sa kontrolerom za direktan pristup memoriji realizuje ciklus čitanja sa memorijom prilikom prenosa iz memorije u uređaj. Ulazno/izlazni uređaj sa kontrolerom za direktan pristup memoriji realizuje ciklus upisa sa memorijom prilikom prenosa iz uređaja u memoriju. Ulazno/izlazni uređaj sa kontrolerom za direktan pristup memoriji realizuje ciklus čitanja i upisa sa memorijom prilikom prenosa iz memorije u memoriju.

Page 11: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

5

Uređaj koji započinje neki ciklusa na magistrali naziva se gazda, a uređaj koji reallizuje ciklus sluga. Pri ciklusu čitanja gazda šalje adresu na adresne linije ABUS15...0 i signalom na upravljačkoj liniji RDBUS startuje čitanje u slugi. Po završenom čitanju sluga šalje očitani podatak na linije podataka DBUS15...0 i signalom na upravljačkoj liniji FCBUS gazdi signalizira da je podatak raspoloživ. Pri ciklusu upisa gazda šalje adresu na adresne linije ABUS15...0, podatak na linije podataka DBUS15...0 i signalom na upravljačkoj liniji WRBUS startuje upis u slugi. Po završenom upisu sluga signalom na upravljačkoj liniji FCBUS gazdi signalizira da mu adresa i podatak nisu više potrebni. Pri ciklusu prihvatanje broja ulaza procesor signalom potvrde prekida inta na jednoj od linija inta1, inta2 ili inta3 startuje čitanje sadržaja registra broja ulaza u jednom od ulazno/izlaznih uređaja. Po završenom čitanju uređaj šalje očitani sadržaj na linije podataka DBUS15...0 i signalom na upravljačkoj liniji FCBUS gazdi signalizira da je broj ulaza raspoloživ.

Kako gazde na magistrali mogu da budu procesor i ulazno/izlazni uređaji sa kontrolerom za direktan pristup memoriji, postoji potreba za arbitracijom među njima. Usvojen je pristup kod koga procesor ima ulogu arbitratora. Ulazno/uzlazni uređaj pre realizacije ciklusa na magistrali u kome je gazda signalom hldr traži dozvolu korišćenja magistrale od procesora, a procesor mu signalom hlda daje dozvolu.

Uređaj za kontrolu ispravnosti rada sistema generiše signal nemaskirajućeg prekida inm ukoliko otkrije neku neregularnost.

Page 12: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte
Page 13: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

7

2 ARHITEKTURA SISTEMA U ovoj glavi se razmatra arhitektura računarskog sistema. Pri tome se pod arhitekturom

računarskog sistema podrazumevaju svi oni njegovi elementi koji treba da budu poznati da bi za njega mogao da se napiše asemblerski program koji će se uspešno izvršavati i uvek davati isti rezultat bez obzira na to kako je dati računarski sistem realizovan. U okviru arhitekture računarskog sistema razmatraju se arhitekture procesora, memorije i ulazno/izlaznih uređaja.

2.1 PROCESOR Arhitekturu procesora čine: • programski dostupni registri, • tipovi podataka, • formati instrukcija, • načini adresiranja, • skup instrukcija i • mehanizam prekida.

2.1.1 Programski dostupni registri

Programski dostupni registri procesora su R0 do R15, PC, SP, PSW, IMR i IVTP (slika 2). Svi registri su dužine 16 razreda.

15 0 R0 M registri opšte namene

15 0 R15

15 0 PC programski brojač

15 0 SP ukazivač na vrh steka

15 0 PSW programska statusna reč

15 0 IMR registar maske

15 0 IVTP ukazivač na tabelu adresa prekidnih rutina

Slika 2 Programski dostupni registri

Registri R0 do R15 su registri opšte namene. Svi registri se koriste kao registri podataka i kao adresni registri za registarsko indirektno adresiranje i registarsko indirektno adresiranje sa pomerajem.

Registar PC je standardan programski brojač procesora. Adrese generisane na osnovu vrednosti registra PC su adrese 16-bitnih reči. S obzirom da je dužina registra PC 16 razreda, njime se mogu generisati adrese unutar adresnog prostora od 216 16-bitnih reči.

Registar SP je standardan ukazivač na vrh steka. Stek je organizovan u operativnoj memoriji i raste prema nižim adresama. Registar SP ukazuje na poslednju zauzetu lokaciju na steku. Adrese generisane na osnovu vrednosti registra PC su adrese 16-bitnih reči. S obzirom

Page 14: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

8

da je dužina ovog registra 16 razreda, njime se mogu generisati adrese unutar adresnog prostora od 216 16-bitnih reči.

Registar PSW je standardna programska statusna reč procesora čiji razredi sadrže indikatore statusnog i upravljačkog karaktera (slika 3).

15 14 13 12 11 6 5 4 3 2 1 0 I T P E L1 L0 V C Z N

Slika 3 Struktura registra PSW

Indikatori statusnog karaktera su: • N, koji vrednošću 1 ukazuje da je rezultat izvršene instrukcije negativan, • Z, koji vrednošću 1 ukazuje da je rezultat izvršene instrukcije jednak 0, • C, koji vrednošću 1 ukazuje da u izvršenoj instrukciji sa celobrojnim veličina bez znaka

postoji prenos/pozajmica, • V, koji vrednošću 1 ukazuje da u izvršenoj instrukciji sa celobrojnim veličina sa znakom

postoji prekoračenje i • L1, L0, koji binarnim vrednostima od 00 do 11 određuju nivo prioriteta tekućeg

programa.

Indikatori upravljačkog karaktera su: • E koji vrednošću • 0 ukazuje da je zadat režim rada kada se zahtevi za maskirajuće prekide šalju kao nivo

i • 1 ukazuje da je zadat režim rada kada se zahtevi za maskirajuće prekide šalju kao

impuls, • P koji vrednošću • 0 ukazuje da je zadat režim rada kada su ulazi u tabelu adresa prekidnih rutina za

maskirajuće prekide fiksni i određeni pozicijama linija po kojima kontroleri ulazno/izlaznih uređaja šalju zahteve za prekid i

• 1 ukazuje da je zadat režim rada kada ulazi u tabelu adresa prekidnih rutina za maskirajuće prekide nisu fiksni i određeni su brojevima ulaza koje šalju kontroleri ulazno/izlaznih uređaja,

• T koji vrednošću 1 ukazuje da je zadat režim rada prekid posle svake instrukcije i • I koji vrednošću 1 ukazuje da je zadat režim rada prihvatanje maskirajućih prekida.

Indikatori N, Z, C i V se po pravilima datim posebno za svaku instrukciju ili postavljaju saglasno rezultatu izvršene instrukcije ili se njihove vrednosti ne menjaju (odeljak 2.1.5). Indikatori L1 i L0 se postavljaju na nivo prioriteta prekidne rutine prilikom opsluživanja maskirajućih zahteva za prekid i na nivo prioriteta prekinutog programa prilikom izvršavanja instrukcije povratka iz prekidne rutine (odeljak 2.1.6). Indikatori E, P, T i I se pojedinačno posebnim instrukcijama postavljaju na vrednosti 0 i 1 (odeljak 2.1.5.1.6).

Registar IMR je registar maske maskirajućih prekida (odeljak 2.1.6.3). Od 16 razreda koriste sa samo razredi IR2, IR1 i IR0. Njima se vrši selektivno maskiranje maskirajućih zahteva za prekid koji dolaze po linijama intr3, intr2 i intr1, respektivno.

Registar IVTP je ukazivač na tabelu adresa prekidnih rutina vektorisanog mehanizma prekida (odeljak 2.1.6.1).

2.1.2 Tipovi podataka

Tipovi podataka sa kojima se radi su celobrojne 16-bitne veličine sa znakom i bez znaka. Celobrojne veličine sa znakom su predstavljene u drugom komplementu.

Page 15: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

9

2.1.3 Formati instrukcija

Instrukcije su dužine 16 i 32 bita. Format instrukcije je promenljiv i prilagođen vrsti operacije.

2.1.3.1 Format troadresnih instrukcija

Format ovih instrukcija prikazan je na slici 4. Vrednosti polja OPCOD3 se kreću u opsegu od 00102 do 11012. Operacija specificirana poljem OPCOD3 se izvršava nad registrima opšte namene specificiranim poljima OP1 i OP2, a rezultat se smešta u registar opšte namene specificiran poljem OP3. Vrednostima 00002 do 11112 polja OP1, OP2 i OP3 adresiraju se registri opšte namene procesora R0 do R15.

15 12 11 8 7 4 3 0 OPCOD3 OP3 OP2 OP1

Slika 4 Format troadresnih instrukcija

2.1.3.2 Format dvoadresnih instrukcija

Dvoadresne instrukcije koriste tri formata i to za: • prenos sadržaja između memorije i registara opšte namene procesora, • prenos sadržaja između registara opšte namene procesora i drugih programski dostupnih

registara procesora i • upoređivanje sadržaja.

Prenos sadržaja između memorije i registara opšte namene procesora

Format ovih instrukcija prikazan je na slici 5. Bitovi 15 do 12 prve instrukcijske reči imaju vrednost 11112, bit 11 ima vrednost 0, a polje OPCOD2MR određuje da li se radi o instrukciji LOAD (OPCOD2MR=0) ili STORE (OPCOD2MR=1). Polje OP1 određuje koji se registar opšte namene R0 do R15 koristi kao odredišni operand za instrukciju LOAD, odnosno izvorišni operand za instrukciju STORE. Polja AM2, OP2 i WORD2 specificiraju izvorišni operand za instrukciju LOAD odnosno odredišni operand za instrukciju STORE. Polje AM2 specificira način adresiranja (odeljak 2.1.4). Polje OP2 vrednostima 00002 do 11112 specificira koji se od registara opšte namene R0 do R15 koristi kao adresni registar kod registarskog indirektnog adresiranja i registarskog indirektnog adresiranja sa pomerajem. Ovo polje je neiskorišćeno kod memorijskog direktnog i neposrednog adresiranja. Polje WORD2 je pomeraj kod registarskog indirektnog adresiranja sa pomerajem, memorijska adresa kod memorijskog direktnog adresiranja i podatak kod neposrednog adresiranja. Ovo polje ne postoji u slučaju registarskog indirektnog adresiranja. 15 12 11 10 9 8 7 4 3 0 15 0 1 1 1 1 0 AM2 OP2 OP1 WORD2

OPCOD2MR

Slika 5 Prenos sadržaja između memorije i registara opšte namene procesora

Prenos sadržaja između registara opšte namene procesora i drugih programski dostupnih registara procesora

Format ovih instrukcija prikazan je na slici 6. Bitovi 15 do 12 instrukcijske reči imaju vrednost 11102, a polje OPCOD2RR određuje vrstu prenosa. Jednom grupom vrednosti polja OPCOD2RR se određuje da je izvorišni operand ili jedan od registara opšte namene R0 do R15 ili jedan od registara SP i PSW ili jedan od registara IMR i IVTP, a odredišni operand jedan od registara opšte namene R0 do R15. Tada polje OP1 specificira izvorišni, a polje OP2

Page 16: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

10

odredišni operand. Drugom grupom vrednosti polja OPCOD2RR se određuje da je izvorišni operand jedan od registara opšte namene R0 do R15, a odredišni operand ili jedan od registara opšte namene R0 do R15 ili jedan od registara SP i PSW ili jedan od registara IMR i IVTP. Tada polje OP2 specificira izvorišni, a polje OP1 odredišni operand. Polje OP1 se odnosi na registre opšte namene R0 do R15 i registre procesora SP, PSW, IMR i IVTP, a polje OP2 uvek na registre opšte namene R0 do R15. Registri opšte namene R0 do R15 se adresiraju vrednostima 00002 do 11112 polja OP1 i OP2. Registri SP i IMR se adresiraju vrednošču 00002 a registri PSW i IVTP vrednošći 00012 polja OP1.

15 12 11 8 7 4 3 0 1 1 1 0 OPCOD2RR OP2 OP1

Slika 6 Prenos sadržaja između registara opšte namene procesora i drugih programski dostupnih registara procesora

Upoređivanje sadržaja

Format ovih instrukcija prikazan je na slici 7. Bitovi 15 do 12 instrukcijske reči imaju vrednost 11102, bitovi 11 do 9 imaju vrednost 1112, a polje OPCOD2CMP određuje da li se radi o instrukciji CMP (OPCOD2CMP=0) ili TST (OPCOD2CMP=1). Operacija specificirana poljem OPCOD2CMP se izvršava nad registrima opšte namene procesora R0 do R15 specificiranim poljima OP1 i OP2. Vrednostima 00002 do 11112 polja OP1 i OP2 adresiraju se registri opšte namene R0 do R15.

15 12 11 9 8 7 4 3 0 1 1 1 0 1 1 1 OP2 OP1

OPCOD2CMP

Slika 7 Upoređivanje sadržaja

2.1.3.3 Format jednoadresnih instrukcija

Format ovih instrukcija prikazan je na slici 8. Bitovi 15 do 12 instrukcijske reči imaju vrednost 11112, bit 11 ima vrednost 1, bit 10 ima vrednost 0, a polje OPCOD1 se koristi za kodiranje operacija. Vrednostima 00002 do 11112 polja OP1 se adresira registar opšte namene R0 do R15 nad kojim se izvršava operacija.

15 12 11 10 9 4 3 0 1 1 1 1 1 0 OPCOD1 OP1

Slika 8 Format jednoadresnih instrukcija

2.1.3.4 Format bezadresnih instrukcija

Format ovih instrukcija prikazan je na slici 9. Bitovi 15 do 12 instrukcijske reči imaju vrednost 11112, bit 11 ima vrednost 1, bit 10 ima vrednost 1, a polje OPCOD0 se koristi za kodiranje operacija.

15 12 11 10 9 0 1 1 1 1 1 1 OPCOD0

Slika 9 Format bezadresnih instrukcija

2.1.3.5 Format instrukcija skoka

Instrukcije skoka koriste dva formata i to za: • relativan skok i • indirektan skok.

Page 17: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

11

Relativan skok

Format ovih instrukcija prikazan je na slici 10. Bitovi 15 do 12 instrukcijske reči imaju vrednost 00002, a operacije su kodirane vrednostima polja OPCOD. Polje RELADR se koristi kao pomeraj u komplementu dvojke u odnosu na registar PC pri određivanju adrese skoka.

15 12 11 8 7 0 0 0 0 0 OPCOD RELADR

Slika 10 Relativan skokom

Indirektan skok

Format ovih instrukcija prikazan je na slici 11. Bitovi 15 do 12 instrukcijske reči imaju vrednost 00012, a operacije su kodirane vrednostima polja OPCOD. Polje REGADR se koristi kao adresa registra opšte namene R0 do R15 čiji sadržaj predstavlja adresu skoka.

15 12 11 8 7 4 3 0 0 0 0 1 OPCOD — REGADR

Slika 11 Indirektan skok

2.1.4 Načini adresiranja

Predviđena su četiri načina adresiranja (tabela 1) koji se koriste samo u instrukcijama LOAD i STORE (odeljak 2.1.5.1.1). U svim ostalim instrukcijama operacije se izvršavaju isključivo nad registrima opšte namene.

Tabela 1 Načini adresiranja AM2 način adresiranja dužina instrukcije

00 registarsko indirektno 1 reč 01 registarsko indirektno sa pomerajem 2 reči 10 memorijsko direktno 2 reči 11 neposredno 2 reči

Registarsko indirektno adresiranje je adresiranje kod kojeg se operand nalazi u memoriji na adresi određenoj sadržajem registra opšte namene. Registar opšte namene je specificiran poljem OP2 instrukcije.

Registarsko indirektno adresiranje sa pomerajem je adresiranje kod kojeg se operand nalazi u memoriji na adresi dobijenoj sabiranjem saržaja registra opšte namene i pomeraja. Registar opšte namene je specificiran poljem OP2, a pomeraj poljem WORD2 instrukcije.

Memorijsko direktno adresiranje je adresiranje kod kojeg se operand nalazi u memoriji na adresi određenoj poljem WORD2 instrukcije.

Neposredno adresiranje je adresiranje kod kojeg se operand nalazi u polju WORD2 same instrukcije.

2.1.5 Skup instrukcija

U ovom poglavlju se, najpre, daje opis instrukcija, a zatim tabelarni pregled kodiranja instrukcija.

2.1.5.1 Opis instrukcija

Instrukcije se mogu svrstati u osam grupa i to: • instrukcije prenosa, • aritmetičke instrukcije, • logičke instrukcije,

Page 18: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

12

• instrukcije pomeranja i rotiranja, • instrukcije skoka, • instrukcije postavljanja indikatora u PSW, • instrukcija bez dejstva i • instrukcija zaustavljanja.

2.1.5.1.1 Instrukcije prenosa

Instrukcija LOAD src, dst prenosi sadržaj memorijske lokacije ili neposrednu veličinu src u registar dst. Format instrukcije je dat u odeljku 2.1.3.1. Polje OPCOD2MR ima vrednost 0. Poljima AM2, OP2 i WORD2 se specificira memorijska lokacija ili neposredna veličina kao izvorišni operand src, a poljem OP1 registar opšte namene R0 do R15 kao odredišni operand dst.

Instrukcija STORE dst, src prenosi sadržaj registra src u memorijsku lokaciju dst. Format instrukcije je dat u odeljku 2.1.3.1. Polje OPCOD2MR ima vrednost 1. Poljem OP1 se specificira registar opšte namene R0 do R15 kao izvorišni operand src, a poljima AM2, OP2 i WORD2 memorijska lokacija kao odredišni operand dst.

Instrukcija MVRRL dst, src prenosi sadržaj registra src u registar dst. Format instrukcije je dat u odeljku 2.1.3.1. Polje OPCOD2RR ima vrednost 00002. Poljem OP1 se specificira jedan od registara opšte namene R0 do R15 kao izvorišni operand src, a poljem OP2 jedan od registara opšte namene R0 do R15 kao odredišni operand dst.

Instrukcija MVRRR src, dst prenosi sadržaj registra src u registar dst. Format instrukcije je dat u odeljku 2.1.3.1. Polje OPCOD2RR ima vrednost 00012. Poljem OP2 se specificira jedan od registara opšte namene R0 do R15 kao izvorišni operand src, a poljem OP1 jedan od registara opšte namene R0 do R15 kao odredišni operand dst.

Instrukcija MVRPL dst, src prenosi sadržaj registra src u registar dst. Format instrukcije je dat u odeljku 2.1.3.1. Polje OPCOD2RR ima vrednost 00102. Poljem OP1 se specificira jedan od registara SP i PSW kao izvorišni operand src, a poljem OP2 jedan od registara opšte namene R0 do R15 kao odredišni operand dst.

Instrukcija MVRPR src, dst prenosi sadržaj registra src u registar dst. Format instrukcije je dat u odeljku 2.1.3.1. Polje OPCOD2RR ima vrednost 00112. Poljem OP2 se specificira jedan od registara opšte namene R0 do R15 kao izvorišni operand src, a poljem OP1 jedan od registara SP i PSW kao odredišni operand dst.

Instrukcija MVRIL dst, src prenosi sadržaj registra src u registar dst. Format instrukcije je dat u odeljku 2.1.3.1. Polje OPCOD2RR ima vrednost 01002. Poljem OP1 se specificira jedan od registara IMR i IVTP kao izvorišni operand src, a poljem OP2 jedan od registara opšte namene R0 do R15 kao odredišni operand dst.

Instrukcija MVRIR src, dst prenosi sadržaj registra src u registar dst. Format instrukcije je dat u odeljku 2.1.3.1. Polje OPCOD2RR ima vrednost 01012. Poljem OP2 se specificira jedan od registara opšte namene R0 do R15 kao izvorišni operand src, a poljem OP1 jedan od registara IMR i IVTP kao odredišni operand dst.

Instrukcija PUSH src prenosi sadržaj registra src na stek. Format instrukcije je dat u odeljku 2.1.3.3. Polje OPCOD1 ima vrednost 0000102. Poljem OP1 se specificira jedan od registara opšte namene R0 do R15 kao izvorišni operand src.

Instrukcija POP dst prenosi sadržaj sa steka u registar dst. Format instrukcije je dat u odeljku 2.1.3.3. Polje OPCOD1 ima vrednost 0000112. Poljem OP1 se specificira jedan od registara opšte namene R0 do R15 kao odredišni operand dst.

Page 19: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

13

Instrukcija CLR dst upisuje nule u registar dst. Format instrukcije je dat u odeljku 2.1.3.3. Polje OPCOD1 ima vrednost 0000002. Poljem OP1 se specificira jedan od registara opšte namene R0 do R15 kao odredišni operand dst.

Dejstvo navedenih instrukcija na indikatore u registru PSW je sledeće. Instrukcije LOAD, STORE, MVRRL, MVRRR, MVRPL, MVRPR, MVRIL, MVRIR, PUSH, POP i CLR postavljaju indikatore N i Z na uobičajen način. Indikator N se postavlja na 1 ako je preneseni sadržaj posmatran kao celobrojna veličina sa znakom negativan, inače se briše. Indikator Z se postavlja na 1 ako je preneseni sadržaj nula, inače se briše. Ove instrukcije ne menjaju indikator C a brišu indikator V.

2.1.5.1.2 Aritmetičke instrukcije

Instrukcija ADD dst, src1, src2 smešta rezultat sabiranja registara src1 i src2 u registar dst. Format instrukcije je dat u odeljku 2.1.3.1. Polje OPCOD3 ima vrednost 01002. Poljima OP1 i OP2 se specificiraju dva registara opšte namene R0 do R15 kao izvorišni operandi src1 i src2, a poljem OP3 jedan od registara opšte namene R0 do R15 kao odredišni operand dst.

Instrukcija SUB dst, src1, src2 smešta rezultat oduzimanja src2 − src1 registara src1 i src2 u registar dst. Format instrukcije je dat u odeljku 2.1.3.1. Polje OPCOD3 ima vrednost 01012. Poljima OP1 i OP2 se specificiraju dva registara opšte namene R0 do R15 kao izvorišni operandi src1 i src2, a poljem OP3 jedan od registara opšte namene R0 do R15 kao odredišni operand dst.

Instrukcija CMP src1, src2 postavlja indikatore N, Z, V i C na osnovu rezultata oduzimanja src2 − src1 registara src1 i src2. Format instrukcije je dat u odeljku 2.1.3.1. Poljima OP1 i OP2 se specificiraju dva registara opšte namene R0 do R15 kao izvorišni operandi src1 i src2.

Instrukcija INC srcdst uvećava za jedan sadržaj registra srcdst. Format instrukcije je dat u odeljku 2.1.3.3. Polje OPCOD1 ima vrednost 000100. Poljem srcdst se specificira jedan od registara opšte namene R0 do R15 kao izvorišni i odredišni operand srcdst.

Instrukcija DEC srcdst smanjuje za jedan sadržaj registra srcdst. Format instrukcije je dat u odeljku 2.1.3.3. Polje OPCOD1 ima vrednost 000101. Poljem srcdst se specificira jedan od registara opšte namene R0 do R15 kao izvorišni i odredišni operand srcdst.

Sve instrukcije iz ove grupe utiču na indikatore iz registra PSW na uobičajen način. Indikator N se postavlja na 1 ako je rezultat posmatran kao celobrojna veličina sa znakom negativan, inače se briše. Indikator Z se postavlja na 1 ako je rezultat nula, inače se briše. Kod postavljanja indikatora C izvorišni operandi se posmatraju kao celobrojne veličine bez znaka. Indikator C se postavlja na 1 ako je bilo prenosa iz najstarijeg razreda u instrukcijama ADD i INC, odnosno pozajmice u najstariji razred u instrukcijama SUB, CMP i DEC, inače se briše. Kod postavljanja indikatora V izvorišni operandi se posmatraju kao celobrojne veličine sa znakom. Indikator V se postavlja na 1 ako je došlo do prekoračenja u instrukcijama ADD, SUB, INC i DEC, inače se briše.

2.1.5.1.3 Logičke instrukcije

Instrukcija AND dst, src1, src2 smešta rezultat logičke operacije I primenjene nad bitovima registara src1 i src2 u registar dst. Format instrukcije je dat u odeljku 2.1.3.1. Polje OPCOD3 ima vrednost 10002. Poljima OP1 i OP2 se specificiraju dva registara opšte namene R0 do R15 kao izvorišni operandi src1 i src2, a poljem OP3 jedan od registara opšte namene R0 do R15 kao odredišni operand dst.

Instrukcija OR dst, src1, src2 smešta rezultat logičke operacije ILI primenjene nad bitovima registara src1 i src2 u registar dst. Format instrukcije je dat u odeljku 2.1.3.1. Polje OPCOD3

Page 20: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

14

ima vrednost 10012. Poljima OP1 i OP2 se specificiraju dva registara opšte namene R0 do R15 kao izvorišni operandi src1 i src2, a poljem OP3 jedan od registara opšte namene R0 do R15 kao odredišni operand dst.

Instrukcija XOR dst, src1, src2 smešta rezultat logičke operacije EKSKLUZIVNO ILI primenjene nad bitovima registara src1 i src2 u registar dst. Format instrukcije je dat u odeljku 2.1.3.1. Polje OPCOD3 ima vrednost 10102. Poljima OP1 i OP2 se specificiraju dva registara opšte namene R0 do R15 kao izvorišni operandi src1 i src2, a poljem OP3 jedan od registara opšte namene R0 do R15 kao odredišni operand dst.

Instrukcija TST src1, src2 postavlja indikatore N, Z, V i C na osnovu rezultata logičke operacije I primenjene nad bitovima registara src1 i src2. Format instrukcije je dat u odeljku 2.1.3.1. Poljima OP1 i OP2 se specificiraju dva registara opšte namene R0 do R15 kao izvorišni operandi src1 i src2.

Instrukcija NOT srcdst invertuje pojedinačno bitove registra srcdst. Format instrukcije je dat u odeljku 2.1.3.3. Polje OPCOD1 ima vrednost 000110. Poljem srcdst se specificira jedan od registara opšte namene R0 do R15 kao izvorišni i odredišni operand srcdst.

Sve instrukcije iz ove grupe deluju na isti način na indikatore iz registra PSW kao i instrukcije prenosa. Indikatori N i Z se postavljaju na uobičajen način. Indikator C se ne menja, a indikator V se briše.

2.1.5.1.4 Instrukcije pomeranja i rotiranja

Instrukcija ASR srcdst aritmetički pomera sadržaj registra srcdst za jedan razred udesno. Najstariji razred se ne menja. Najmlađi razred se upisuje u indikator C registra PSW. Format instrukcije je dat u odeljku 2.1.3.3. Polje OPCOD1 ima vrednost 0010002. Poljem srcdst se specificira jedan od registara opšte namene R0 do R15 kao izvorišni i odredišni operand srcdst.

Instrukcija LSR srcdst logički pomera sadržaj registra srcdst za jedan razred udesno. U najstariji razred se upisuje 0. Najmlađi razred se upisuje u indikator C registra PSW. Format instrukcije je dat u odeljku 2.1.3.3. Polje OPCOD1 ima vrednost 0010012. Poljem srcdst se specificira jedan od registara opšte namene R0 do R15 kao izvorišni i odredišni operand srcdst.

Instrukcija ROR srcdst rotira sadržaj registra srcdst za jedan razred udesno. U najstariji razred se upisuje najmlađi razred registra srcdst. Najmlađi razred se upisuje u indikator C registra PSW. Format instrukcije je dat u odeljku 2.1.3.3. Polje OPCOD1 ima vrednost 0010102. Poljem srcdst se specificira jedan od registara opšte namene R0 do R15 kao izvorišni i odredišni operand srcdst.

Instrukcija RORC srcdst rotira sadržaj registra srcdst za jedan razred udesno kroz indikator C registra PSW. U najstariji razred se upisuje indikator C registra PSW. Najmlađi razred se upisuje u indikator C registra PSW. Format instrukcije je dat u odeljku 2.1.3.3. Polje OPCOD1 ima vrednost 0010112. Poljem srcdst se specificira jedan od registara opšte namene R0 do R15 kao izvorišni i odredišni operand srcdst.

Instrukcija SL srcdst pomera sadržaj registra srcdst za jedan razred ulevo. U najmlađi razred se upisuje 0. Najstariji razred se upisuje u indikator C registra PSW. Format instrukcije je dat u odeljku 2.1.3.3. Polje OPCOD1 ima vrednost 0011002. Poljem srcdst se specificira jedan od registara opšte namene R0 do R15 kao izvorišni i odredišni operand srcdst.

Instrukcija ROL srcdst rotira sadržaj registra srcdst za jedan razred ulevo. U najmlađi razred se upisuje najstariji razred registra srcdst. Najstariji razred se upisuje u indikator C

Page 21: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

15

registra PSW. Format instrukcije je dat u odeljku 2.1.3.3. Polje OPCOD1 ima vrednost 0011102. Poljem srcdst se specificira jedan od registara opšte namene R0 do R15 kao izvorišni i odredišni operand srcdst.

Instrukcija ROLC srcdst rotira sadržaj registra srcdst za jedan razred ulevo kroz indikator C registra PSW. U najmlađi razred se upisuje indikator C registra PSW. Najstariji razred se upisuje u indikator C registra PSW. Format instrukcije je dat u odeljku 2.1.3.3. Polje OPCOD1 ima vrednost 0011112. Poljem srcdst se specificira jedan od registara opšte namene R0 do R15 kao izvorišni i odredišni operand srcdst.

Sve instrukcije iz ove grupe deluju na isti način na indikatore iz registra PSW. Indikatori N i Z se postavljaju na uobičajen način. Indikator C se postavlja kao što je opisano za svaku instrukciju posebno, a indikator V se briše.

Izvršavanje instrukcija pomeranja i rotiranja prikazano je na slici 12. ASR

0

ROR

RORC

SL

ROL

ROLC

0

LSR

C

C

C

C

C

C

C

15 14 1 0

15 14 1 0

15 14 1 0

15 14 1 0

15 14 1 0

15 14 1 0

15 14 1 0

Slika 12 Instrukcije pomeranja i rotiranja

2.1.5.1.5 Instrukcije skoka

Instrukcije skoka se svrstavaju u četiri grupe i to: • instrukcije uslovnog skoka, • instrukcije bezuslovnog skoka, • instrukcije skoka na potprogram i povratka iz potprograma i • instrukcija povratka iz prekidne rutine.

Instrukcije uslovnog skoka

Instrukcije uslovnog skoka BEQL disp, BNEQ disp, BGRT disp, BGRE disp, BLSS disp, BLEQ disp, BGRTU disp, BGREU disp, BLSSU disp, BLEQU disp, BNEG disp, BNNG disp, BOVF disp i BNVF disp realizuju relativni skok sa pomerajem disp u odnosu na registar PC ukoliko je uslov specificiran kodom operacije ispunjen. Format ovih instrukcija je dat u odeljku 2.1.3.5. Poljem OPCOD se kodiraju pojedine instrukcije i istovremeno uslovi za skok prema tabeli 2. Poljem RELADR se predstavlja pomeraj disp kao celobrojna veličina sa znakom. Ispunjenje uslova se utvrđuje na osnovu stanja indikatora N, Z, C i V registra PSW.

Ove instrukcija ne utiče na indikatore N, Z, C i V registra PSW.

Page 22: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

16

Tabela 2 Instrukcije uslovnog skoka

instrukcija kod operacije značenje uslov BEQL 0000 skok na jednako Z = 1 BNEQ 0001 skok na nejednako Z = 0 BGRT 0010 skok na veće nego (sa znakom) (N ⊕ V) ∨ Z = 0 BGRE 0011 skok na veće nego ili jednako (sa znakom) N ⊕ V = 0 BLSS 0100 skok na manje nego (sa znakom) (N ⊕ V) = 1 BLEQ 0101 skok na manje nego ili jednako (sa znakom) (N ⊕ V) ∨ Z = 1

BGRTU 0110 skok na veće nego (bez znaka) C ∨ Z = 0 BGREU 0111 skok na veće nego ili jednako (bez znaka) C = 0 BLSSU 1000 skok na manje nego (bez znaka) C = 1 BLEQU 1001 skok na manje nego ili jednako (bez znaka) C ∨ Z = 1 BNEG 1010 skok na N = 1 N = 1 BNNG 1011 skok na N = 0 N = 0 BOVF 1100 skok na V = 1 V = 1 BNVF 1101 skok na V = 0 V = 0

Instrukcije bezuslovnog skoka

Instrukcija bezuslovnog skoka JMP disp realizuje relativni skok sa pomerajem disp u odnosu na registar PC. Format ove instrukcije je dat u odeljku 2.1.3.5. Polje OPCOD ima vrednost 11002. Poljem RELADR se predstavlja pomeraj disp kao celobrojna veličina sa znakom.

Instrukcija bezuslovnog skoka JMPRIND (reg) realizuje indirektan skok na osnovu sadržaja registra reg. Format ove instrukcije je dat u odeljku 2.1.3.5. Polje OPCOD ima vrednost 11002. Poljem REGADR se kao registar reg specificira jedan od registara opšte namene R0 do R15.

Instrukcija INT pre programskim putem realizuje prekid i skok na odgovarajuću prekidnu rutinu. Format ove instrukcije je dat u odeljku 2.1.3.5. Polje OPCOD ima vrednost 11012. Poljem RELADR se predstavlja broj ulaza u tabelu adresa prekidnih rutina pre kao celobrojna veličina bez znaka.

Ove instrukcije ne utiču na indikatore N, Z, C i V registra PSW.

Instrukcije skoka na potprogram i povratka iz potprograma

Instrukcija JSR disp realizuje relativni skok na potprogram sa pomerajem disp u odnosu na registar PC uz čuvanje vrednosti registra PC na steku. Format ove instrukcije je dat u odeljku 2.1.3.5. Polje OPCOD ima vrednost 11102. Poljem RELADR se predstavlja pomeraj disp kao celobrojna veličina sa znakom.

Instrukcija RTS realizuje povratak iz potprograma uz restauraciju vrednosti registra PC sa steka. Format ove instrukcije je dat u odeljku 2.1.3.4. Polje OPCOD0 ima vrednost 00000000002.

Ove instrukcije ne utiču na indikatore N, Z, C i V iz registra PSW.

Instrukcija povratka iz prekidne rutine

Instrukcijom RTI se realizuje povratak iz prekidne rutine uz restauraciju vrednosti registara PSW i PC sa steka. Format ove instrukcije je dat u odeljku 2.1.3.4. Polje OPCOD0 ima vrednost 00000000012.

Ova instrukcija ne utiče na indikatore N, Z, C i V registra PSW.

Page 23: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

17

2.1.5.1.6 Instrukcije postavljanja indikatora u PSW

Instrukcija INTD postavlja nulu u razred I registra PSW. Format instrukcije je dat u odeljku 2.1.3.4. Polje OPCOD0 ima vrednost 00000010002.

Instrukcija INTE postavlja jedinicu u razred I registra PSW. Format instrukcije je dat u odeljku 2.1.3.4. Polje OPCOD0 ima vrednost 00000010012.

Instrukcija TRPD postavlja nulu u razred T registra PSW. Format instrukcije je dat u odeljku 2.1.3.4. Polje OPCOD0 ima vrednost 00000010102.

Instrukcija TRPE postavlja jedinicu u razred T registra PSW. Format instrukcije je dat u odeljku 2.1.3.4. Polje OPCOD0 ima vrednost 00000010112.

Instrukcija VARD postavlja nulu u razred P registra PSW. Format instrukcije je dat u odeljku 2.1.3.4. Polje OPCOD0 ima vrednost 00000011002.

Instrukcija VARE postavlja jedinicu u razred P registra PSW. Format instrukcije je dat u odeljku 2.1.3.4. Polje OPCOD0 ima vrednost 00000011012.

Instrukcija EDGD postavlja nulu u razred E registra PSW. Format instrukcije je dat u odeljku 2.1.3.4. Polje OPCOD0 ima vrednost 00000011102.

Instrukcija EDGE postavlja jedinicu u razred E registra PSW. Format instrukcije je dat u odeljku 2.1.3.4. Polje OPCOD0 ima vrednost 00000011112.

Ove instrukcije ne utiču na indikatore N, Z, C i V registra PSW.

2.1.5.1.7 Instrukcija bez dejstva

Instrukcija NOP ne proizvodi nikakvo dejstvo. Format ove instrukcije je dat u odeljku 2.1.3.4. Polje OPCOD0 ima vrednost 11111111112.

Ova instrukcija ne utiče na indikatore N, Z, C i V registra PSW.

2.1.5.1.8 Instrukcija zaustavljanja

Instrukcija HALT zaustavlja izvršavanje instrukcija. Format ove instrukcije je dat u odeljku 2.1.3.4. Polje OPCOD0 ima vrednost 11111111102.

Ova instrukcija ne utiče na indikatore N, Z, C i V registra PSW.

2.1.5.2 Kodiranje instrukcija

Kodiranje troadresnih instrukcija ADD, SUB, AND, OR i XOR poljem OPCOD3 je dato u tabeli 3. Kodovi 00002, 00102 i 00112 se koriste za kodiranje instrukcija uslovnog skoka sa relativnim skokom (tabela 4), instrukcija bezuslovnog skoka sa relativnim skokom (tabela 5) i instrukcija bezuslovnog skoka sa indirektnim skokom (tabela 6), respektivno. Kod 11102 se koristi za kodiranje instrukcija prenosa sadržaja između registara opšte namene i drugih programski dostupnih registara (tabela 7) i instrukcija za upoređivanje sadržaja (tabela 8). Kod 11112 se koristi za kodiranje instrukcija prenosa sadržaja između memorije i registara opšte namene (tabela 9), jednoadresnih instrukcija (tabela 10) i bezadresnih instrukcija (tabela 11). Kodovi 00012, 01102, 01112, 10112, 11002 i 11012 nisu iskorišćeni.

Page 24: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

18

Tabela 3 Kodiranje troadresnih instrukcija

OPCOD3 15 14 13 12 0 0 0 0 instrukcije uslovnog skoka sa relativnim skokom 0 0 0 1 — 0 0 1 0 instrukcije bezuslovnog skoka sa relativnim skokom 0 0 1 1 instrukcije bezuslovnog skoka sa indirektnim skokom 0 1 0 0 ADD 0 1 0 1 SUB 0 1 1 0 — 0 1 1 1 — 1 0 0 0 AND 1 0 0 1 OR 1 0 1 0 XOR 1 0 1 1 — 1 1 0 0 — 1 1 0 1 —

1 1 1 0 • instrukcije prenosa sadržaja između registara opšte namene i drugih programski dostupnih

registara i • instrukcije upoređivanja sadržaja

1 1 1 1 • instrukcije prenosa sadržaja između memorije i registara opšte namene, • jednoadresne instrukcije i • bezadresne instrukcije

Kodiranje instrukcija uslovnog skoka sa relativnim skokom poljem OPCOD je dato u tabeli 4.

Tabela 4 Kodiranje instrukcija uslovnog skoka sa relativnim skokom

OPCOD 15 14 13 12 11 10 9 8 0 0 0 0 0 0 0 0 BEQL 0 0 0 0 0 0 0 1 BNEQ 0 0 0 0 0 0 1 0 BGRT 0 0 0 0 0 0 1 1 BGRE 0 0 0 0 0 1 0 0 BLSS 0 0 0 0 0 1 0 1 BLEQ 0 0 0 0 0 1 1 0 BGRTU 0 0 0 0 0 1 1 1 BGREU 0 0 0 0 1 0 0 0 BLSSU 0 0 0 0 1 0 0 1 BLEQU 0 0 0 0 1 0 1 0 BNEG 0 0 0 0 1 0 1 1 BNNG 0 0 0 0 1 1 0 0 BOVF 0 0 0 0 1 1 0 1 BNVF 0 0 0 0 1 1 1 0 — 0 0 0 0 1 1 1 1 —

Kodiranje instrukcija bezuslovnog skoka sa relativnim skokom poljem OPCOD je dato u tabeli 5.

Page 25: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

19

Tabela 5 Kodiranje instrukcija bezuslovnog skoka sa relativnim skokom

OPCOD 15 14 13 12 11 10 9 8 0 0 1 0 0 0 0 0 — 0 0 1 0 0 0 0 1 — 0 0 1 0 0 0 1 0 — 0 0 1 0 0 0 1 1 — 0 0 1 0 0 1 0 0 — 0 0 1 0 0 1 0 1 — 0 0 1 0 0 1 1 0 — 0 0 1 0 0 1 1 1 — 0 0 1 0 1 0 0 0 — 0 0 1 0 1 0 0 1 — 0 0 1 0 1 0 1 0 — 0 0 1 0 1 0 1 1 — 0 0 1 0 1 1 0 0 JMP 0 0 1 0 1 1 0 1 INT 0 0 1 0 1 1 1 0 JSR 0 0 1 0 1 1 1 1 —

Kodiranje instrukcija bezuslovnog skoka sa indirektnim skokom poljem OPCOD je dato u tabeli 6.

Tabela 6 Kodiranje instrukcija bezuslovnog skoka sa indirektnim skokom

OPCOD 15 14 13 12 11 10 9 8 0 0 1 1 0 0 0 0 — 0 0 1 1 0 0 0 1 — 0 0 1 1 0 0 1 0 — 0 0 1 1 0 0 1 1 — 0 0 1 1 0 1 0 0 — 0 0 1 1 0 1 0 1 — 0 0 1 1 0 1 1 0 — 0 0 1 1 0 1 1 1 — 0 0 1 1 1 0 0 0 — 0 0 1 1 1 0 0 1 — 0 0 1 1 1 0 1 0 — 0 0 1 1 1 0 1 1 — 0 0 1 1 1 1 0 0 JMPRIND 0 0 1 1 1 1 0 1 — 0 0 1 1 1 1 1 0 — 0 0 1 1 1 1 1 1 —

Kodiranje instrukcija prenosa sadržaja između registara opšte namene i drugih programski dostupnih registara poljem OPCOD2RR je dato u tabeli 7. Kodovi 11102 i 11112 se koriste za kodiranje instrukcija za upoređivanje sadržaja.

Page 26: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

20

Tabela 7 Kodiranje instrukcija za prenos sadržaja između registara opšte namene i drugih programski dostupnih registara procesora

OPCOD2RR 15 14 13 12 11 10 9 8 1 1 1 0 0 0 0 0 MVRRL 1 1 1 0 0 0 0 1 MVRRR 1 1 1 0 0 0 1 0 MVRPL 1 1 1 0 0 0 1 1 MVRPR 1 1 1 0 0 1 0 0 MVRIL 1 1 1 0 0 1 0 1 MVRIR 1 1 1 0 0 1 1 0 — 1 1 1 0 0 1 1 1 — 1 1 1 0 1 0 0 0 — 1 1 1 0 1 0 0 1 — 1 1 1 0 1 0 1 0 — 1 1 1 0 1 0 1 1 — 1 1 1 0 1 1 0 0 — 1 1 1 0 1 1 0 1 — 1 1 1 0 1 1 1 0 instrukcije upoređivanja sadržaja 1 1 1 0 1 1 1 1 instrukcije upoređivanja sadržaja

Kodiranje instrukcija za upoređivanje sadržaja je dato u tabeli 8.

Tabela 8 Kodiranje instrukcija za upoređivanje sadržaja

OPCOD2CMP

15 14 13 12 11 10 9 8 1 1 1 0 1 1 1 0 CMP 1 1 1 0 1 1 1 1 TST

Kodiranje instrukcija za prenos sadržaja između memorije i registara opšte namene poljem OPCOD2MR je dato u tabeli 9.

Tabela 9 Kodiranje instrukcija za prenos sadržaja između memorije i registara opšte namene

OPCOD2MR

15 14 13 12 11 10 1 1 1 1 0 0 LOAD 1 1 1 1 0 1 STORE

Kodiranje jednoadresnih instrukcija poljem OPCOD1 je dato u tabeli 10.

Page 27: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

21

Tabela 10 Kodiranje jednoadresnih instrukcija

OPCOD1 15 14 13 12 11 10 9 8 7 6 5 4 1 1 1 1 1 0 0 0 0 0 0 0 CLR 1 1 1 1 1 0 0 0 0 0 0 1 — 1 1 1 1 1 0 0 0 0 0 1 0 PUSH 1 1 1 1 1 0 0 0 0 0 1 1 POP 1 1 1 1 1 0 0 0 0 1 0 0 INC 1 1 1 1 1 0 0 0 0 1 0 1 DEC 1 1 1 1 1 0 0 0 0 1 1 0 NOT 1 1 1 1 1 0 0 0 0 1 1 1 — 1 1 1 1 1 0 0 0 1 0 0 0 ASR 1 1 1 1 1 0 0 0 1 0 0 1 LSR 1 1 1 1 1 0 0 0 1 0 1 0 ROR 1 1 1 1 1 0 0 0 1 0 1 1 RORC 1 1 1 1 1 0 0 0 1 1 0 0 SL 1 1 1 1 1 0 0 0 1 1 0 1 — 1 1 1 1 1 0 0 0 1 1 1 0 ROL 1 1 1 1 1 0 0 0 1 1 1 1 ROLC 1 1 1 1 1 0 0 1 * * * * — 1 1 1 1 1 0 1 0 * * * * — 1 1 1 1 1 0 1 1 * * * * —

Kodiranje bezadresnih instrukcija poljem OPCOD0 je dato u tabeli 11.

Tabela 11 Kodiranje bezadresnih instrukcija

OPCOD0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 RTS 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 RTI 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 — 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 — 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 — 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 — 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 — 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 — 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 INTD 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 1 INTE 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 TRPD 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 TRPE 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 VARD 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 VARE 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 EDGD 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 EDGE 1 1 1 1 1 1 * * * * * * * * * * — 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 HALT 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 NOP

2.1.6 Mehanizam prekida

Mehanizam prekida kod procesora omogućuje prekid u izvršavanju glavnog programa i skok na novi program koji se obično naziva prekidna rutina. Poslednja instrukcija u prekidnoj rutini je instrukcija RTI. Ona omogućuje povratak u glavni program. Izvršavanje glavnog programa se produžava sa onog mesta gde je bilo prekinuto. Može se uzeti da zahtev za prekid stiže u toku izvršavanja neke od instrukcija. Zbog toga se mehanizam prekida obično

Page 28: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

22

tako realizuje da se instrukcija u toku čijeg je izvršavanja stigao zahtev za prekid, najpre, izvrši do kraja, pa se tek onda prihvata zahtev za prekid i skače na prvu instrukciju prekidne rutine.

Efekti mehanizma prekida i instrukcije RTI na izvršavanje glavnog programa i prekidne rutine su prikazani na slici 13. Uzeto je da u toku izvršavanja instrukcije glavnog programa sa adrese 1237 stiže zahtev za prekid. Ova instrukcija se se najpre izvrši do kraja. Potom procesor produžava sa izvršavanjem instrukcija sa adrese 2100 na kojoj se nalazi prva instrukcija prekidne rutine umesto sa adrese 1238 na kojoj se nalazi prva sledeća instrukcija glavnog programa. Instrukcijom RTI sa adrese 2122 se obezbeđuje da procesor kao sledeću izvršava instrukciju glavnog programa sa adrese 1238. To je instrukcija glavnog programa koja bi se normalno i izvršavala posle instrukcije sa adrese 1237 da u toku njenog izvršavanja nije stigao zahtev za prekid.

glavni program prekidna rutina M

1234 — 2100 — 1235 — 2101 — 1236 — 2102 — 1237 — M — 1238 — 2121 — 1239 — 2122 RTI 1240 — 1241 — 1242 —

M

Slika 13 Prekid i povratak iz prekidne rutine

Aktivnosti u procesoru kojima se prekida izvršavanje glavnog programa i skače na prekidnu rutinu nazivaju se opsluživanje zahteva za prekid, a aktivnosti kojima se obezbeđuje povratak iz prekidne rutine u glavni program i produžavanje izvršavanja glavnog programa sa mesta i pod uslovima koji su bili pre skoka na prekidnu rutinu nazivaju se povratak iz prekidne rutine.

Zahteve za prekid mogu da generišu: kontroleri ulazno/izlaznih uređaja da bi procesoru signalizirali spremnost za prenos podataka (maskirajući prekidi),

uređaji računara koji kontrolišu ispravnost napona napajanja, transfera na magistrali, rada memorije itd. (nemaskirajući prekidi),

procesor, kao rezultat otkrivene nekorektnosti u izvršavanju tekuće instrukcije (nelegalan kod operacije, neposredno adresiranje specificirano za odredišni operand itd.),

procesor, ako je zadat takav režim rada procesora, kroz postavljanje bita T u programskoj statusnoj reči PSW, da se posle svake instrukcije skače na određenu prekidnu rutinu i

procesor kao rezultat izvršavanja instrukcije prekida INT. Prekidi pod i se nazivaju spoljašnji, a pod , i unutrašnji. U procesoru koji se razmatra predviđeni su sledeći zahtevi za prekid:

tri spoljašnja maskirajuća, jedan spoljašnji nemaskirajući, dva unutrašnja u slučaju da se čita instrukcija sa nepostojećim kodom operacije ili da se koristi neposredno adresiranje za odredišni operand,

jedan unutrašnji pri zadatom režimu rada procesora prekid posle svake instrukcije i

Page 29: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

23

jedan unutrašnji kao rezultat izvršavanja instrukcije prekida INT.

2.1.6.1 Opsluživanje zahteva za prekid i povratak iz prekidne rutine

Opsluživanje zahteva za prekid se realizuje delom hardverski i delom softverski, a povratak iz prekidne rutine softverski. Hardverska realizacija dela opsluživanja zahteva za prekid znači da se izvršavanje instrukcije u kojoj se javlja neki zahtev za prekid produžava za onoliko koraka koliko je potrebno da se taj deo realizuje. Softverska realizacija opsluživanja dela zahteva za prekid i povratka iz prekidne rutine se realizuju izvršavanjem odgovarajućih instrukcija procesora.

2.1.6.1.1 Opsluživanje zahteva za prekid

Opsluživanje zahteva za prekid se sastoji iz: • čuvanja konteksta procesora i • utvrđivanja adrese prekidne rutine.

Kontekst razmatranog procesora čine programski brojač PC, prograska statusna reč PSW i registri opšte namene R0 do R15. Kontekst procesora se čuva na steku i to:

• registar PC da bi se po povratku iz prekidne rutine u glavni program omogućilo procesoru izvršavanje glavnog programa od instrukcije na kojoj se stalo i

• registri PSW i R0 do R15 da bi se u procesoru obezbedilo isto stanje koje bi bilo da nije bilo prekida i skoka na prekidnu rutinu.

Registri PC i PSW se čuvaju hardverski, a registri R0 do R15 softverski sa nekoliko instrukcija na početku prekidne rutine.

Utvrđivanje adrese prekidne rutine se realizuje na osnovu sadržaja tabele adresa prekidnih rutina (IV tabela) i broja ulaza u IV tabelu. Stoga se u memoriji, počev od adrese na koju ukazuje sadržaj registra procesora IVTP (Interrupt Vector Table Pointer), nalazi se IV tabela sa adresama prekidnih rutina za sve vrste prekida. Broj ulaza u IV tabelu se dobija na više načina i to:

• procesoru ga šalje kontroler ulazno/izlazbog uređaja za prekide iz tačke , ako ulazi u IV tabelu za maskirajuće prekide nisu fiksni (razred P registra PSW je nula),

• predstavlja fiksnu vrednost za prekide iz tačke , ako su ulazi u IV tabelu za maskirajuće prekide fiksni (razred P registra PSW je jedinica) i generiše ga sam procesor,

• predstavlja fiksnu vrednost za prekide iz tačaka , i i generiše ga sam procesor i • specificiran je adresnim delom instrukcije INT za prekid iz tačke .

Memorijska adresa na kojoj se nalazi adresa prekidne rutine dobija se sabiranjem broja ulaza u IV tabelu sa sadržajem registra IVTP. Sa ove adrese se čita sadržaj i upisuje u registar PC. Utvrđivanje adrese prekidne rutine se realizuje hardverski.

U okviru opsluživanja zahteva za prekid hardverski se još: • brišu razredi I i T registra PSW kod prekida svih vrsta i • upisuje u razrede L1 i L0 registra PSW nivo prioriteta prekidne rutine na koju se skače u

slučaju maskirajućeg prekida.

Brisanjem razreda I registra PSW se obezbeđuje da procesor po ulasku u prekidnu rutinu ne reaguje na maskirajuće prekide, a brisanjem razreda T registra PSW se obezbeđuje da procesor po ulasku u prekidnu rutinu ne izvršava prekidnu rutinu u režimu prekid posle svake instrukcije. Time se omogućava obavljanje određenih aktivnosti na početku svake prekidne rutine. Posle toga moguće je u samoj prekidnoj rutini instrukcijom INTE dozvoliti maskirajuće prekide, a instrukcijom TRPE zadati režim rada prekid posle svake instrukcije.

Page 30: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

24

Upisivanjem u rezrede L1 i L0 registra PSW nivoa prioriteta prekidne rutine na koju se skače u slučaju maskirajućeg prekida obezbeđuje se da se u slučaju maskirajućih zahteva za prekid pristiglih u toku izvršavanja prekidne rutine prihvate samo oni koji su višeg nivoa prioriteta od nivoa prioriteta prekidne rutine.

Na osnovu izloženog se vidi da opsluživanje zahteva za prekid počinje na kraju izvršavanja svake instrukcije ispitivanjem da li je u toku njenog izvršavanja stigao zahtev za prekid. U slučaju da jeste izvršavanje tekuće instrukcije se produžava za određeni broj koraka u okviru kojih se:

• stavljaju na stek sadržaji registara PC i PSW, • brišu razredi I i T registra PSW kod prekida svih vrsta, • upisuje u razrede L1 i L0 registra PSW nivo prioriteta prekidne rutine na koju se skače

za slučaj maskirajućih prekida i • upisuje u PC početna adresa prekidne rutine.

Na početku prekidne rutine registri opšte namene čije se vrednosti menjaju u prekidnoj rutini se posebnim instrukcijama stavljaju na stek.

2.1.6.1.2 Povratak iz prekidne rutine

Povratak iz prekidne rutine se realizuje tako što se, najpre, posebnim instrukcijama pri kraju prekidne rutine restauriraju vrednostima sa steka sadržaji onih registara opšte namene čije su vrednosti sačuvane na steku na početku prekidne rutine, a potom izvrši instrukcija RTI. Ovom instrukcijom se sa steka restauriraju registri PSW i PC. Od tog trenutka nastavlja se izvršavanje prekinutog glavnog programa od instrukcije koja bi se izvršavala i sa kontekstom procesora koji bi bio, da nije bilo skoka na prekidnu rutinu.

2.1.6.2 Prioriteti prekida

U slučajevima kada se generiše više prekida istovremeno, prekidi se opslužuju po redosledu opadajućih prioriteta. Tako, na primer, za ranije pobrojane prekide taj redosled je sledeći: najviši je , zatim , , i na kraju .

Prekidi pod koji dolaze od kontrolera periferija (spoljašnji maskirajući prekidi) mogu se javiti istovremeno pa se i oni opslužuju po redosledu opadajućih prioriteta. Pošto svaka periferija ima posebnu liniju u procesoru za slanje svog zahteva za prekid prekida, na osnovu pozicije linije se određuje prioritet datog zahteva za prekid.

2.1.6.3 Selektivno maskiranje maskirajućih prekida

Za maskirajuće prekide postoji u procesoru poseban registar IMR koji se naziva registar maske. Od 16 razreda ovog registra koristi se samo tri. Svakoj liniji po kojoj mogu da se šalju zahtevi za prekid od periferija pridružen je poseban razred registra maske. Zahtev za prekid koji stiže po određenoj liniji u procesoru će biti opslužen jedino ukoliko se u odgovarajućem razredu registra maske nalazi vrednost 1. Instrukcijom MVRIR se u registar maske IMR upisuje odgovarajuća vrednost. Time se programskim putem selektivno dozvoljava ili zabranjuje opsluživanje maskirajućih prekida.

2.1.6.4 Maskiranje svih maskirajućih prekida

Maskirajući zahtevi za prekid, bez obzira na to da li su selektivno maskirani sadržajem registra maske ili ne, mogu se svi maskirati bitom maske I u registru PSW. Instrukcijama INTE i INTD u ovaj razred registra PSW upisuju se vrednosti 1 ili 0, respektivno. Time se programski putem dozvoljava ili zabranjuje opsluživanje maskirajućih prekida koji nisu selektivno maskirani sadržajem registra maske IMR.

Page 31: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

25

2.1.6.5 Prekid posle svake instrukcije

Postoji mogućnost da se zada takav režim rada procesora da se posle svake izvršene instrukcije skače na određenu prekidnu rutinu. Ovakav režim rada procesora se naziva prekid posle svake instrukcije. U njemu se procesor nalazi ukoliko je u razredu T registra PSW vrednost 1. Instrukcijama TRPE i TRPD u ovaj razred registra PSW upisuju se vrednosti 1 ili 0, respektivno. Time se programskim putem dozvoljava ili ne režim rada procesora prekid posle svake instrukcije.

2.1.6.6 Instrukcija prekida

U skupu instrukcija postoji instrukcija INT kojom se može programskim putem izazvati prekid i skok na željenu prekidnu rutinu. Prekidna rutina na koju treba skočiti određuje se adresnim delom ove instrukcije koji sadrži broj ulaza u tabelu adresa prekidnih rutina. Izvršavanje ove instrukcije realizuje sve ono što je nabrojano u okviru hardverskog dela opsluživanja zahteva za prekid, s tim što je broj ulaza u tabeli adresa prekidnih rutina dat samom instrukcijom.

2.1.6.7 Gneždenje prekida

Kada procesor izvršava prekidnu rutinu može stići novi zahtev za prekid. Na ovaj zahtev za prekid može se reagovati na sledeće načine:

• prekida se izvršavanje tekuće prekidne rutine i skače na novu prekidnu rutinu ili • ne prekida se izvršavanje prekidne rutine, već se zahtev za prekid prihvata tek po

povratku u glavni program. Procesor reaguje na oba načina u zavisnosti od situacije u kojoj se nalazi. Ta situacija zavisi od čitavog niza elemenata kao što su:

• ima više tipova zahteva za prekid, • kod ulaska u bilo koju prekidnu rutinu brišu se razredi I i T u registru PSW, • programskim putem se može, upisivanjem vrednosti 0 ili 1 u razrede I i T, odrediti kada

će se reagovati na maskirajuće prekide i prekidati program posle svake instrukcije, a kada ne i

• maskirajući prekidi su uređeni po prioritetima.

Kao ilustracija tih situacija može se uzeti pojednostavljen primer da u procesor stižu samo maskirajući zahtevi za prekid koji nisu ni selektivno maskirani registrom maske IMR, ni svi zajedno razredom I u registru PSW. Maskirajući zahtevi za prekid imaju prioritete. Pored toga, kada se uđe u prekidnu rutinu po nekom maskirajućem prekidu, u procesoru se u razredima L1 i L0 registra PSW čuva nivo prioriteta te prekidne rutine. Kada stigne neki novi zahtev za prekid, a procesor se već nalazi u prekidnoj rutini, procesor će:

• prihvatiti novi zahtev za prekid, ako je on višeg prioriteta nego nivo prioriteta tekuće prekidne rutine ili

• ignorisati novi zahtev za prekid, ako je on nižeg ili istog nivoa prioriteta kao i nivo prioriteta tekuće prekidne rutine.

Prekidanje izvršavanja tekuće prekidne rutine i skok na novu prekidnu rutinu naziva se gneždenje prekida.

2.1.6.8 Prihvatanje zahteva za prekid

Zahtev za prekid može da bude opslužen i time skok na prekidnu rutinu realizovan ili na kraju instrukcije u toku čijeg izvršavanja je generisan ili kasnije, na kraju neke od sledećih instrukcija. Kada će određeni zahtev za prekid biti opslužen zavisi od više faktora, kao što su: da li je reč o spoljašnjem ili unutrašnjem prekidu, da li su maskirajući prekidi maskirani, i to

Page 32: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

26

ili selektivno ili svi, da li je stigao samo jedan ili više zahteva za prekid, itd. Stoga za svaku vrstu zahteva za prekid određeni uslovi treba da budu ispunjeni da bi se prešlo na njegovo opsluživanje. Prelazak na opsluživanje određenog zahteva za prekid naziva se prihvatanje zahteva za prekid.

U slučaju da u toku izvršavanja neke instrukcije stigne više zahteva za prekid redosled njihovog prihvatanja definisan je međusobnim prioritetima različitih vrsta prekida. Najviši prioritet ima prekid izazvan izvršavanjem instrukcije prekida INT ( ), pa redom slede dva unutrašnja procesorska prekida pri pojavi nepostojećeg koda operacije i korišćenju neposrednog adresiranja za odredišni operand ( ), spoljašnji nemaskirajući prekid ( ), tri spoljašnja maskirajuća prekida ( ) i prekid posle svake instrukcije ( ) koji ima najniži prioritet. Detaljnije objašnjenje prihvatanja pojedinih tipova zahteva za prekid je dato u daljem tekstu.

Unutrašnji procesorski kao rezultat izvršavanja instrukcije prekida INT: Ovaj zahtev za prekid se bezuslovno prihvata na kraju faze izvršenja instrukcije INT. Broj ulaza u IV tabelu je dat adresnim delom instrukcije INT i može imati vrednosti od 0 do 255.

Unutrašnji procesorski prekidi pri čitanju instrukcije sa nepostojećim kodom operacije ili korišćenju neposrednog adresiranja za odredišni operand: Zahtevi za ove prekide prihvataju se ako ne postoji zahtev višeg prioriteta. Brojevi ulaza u IV tabelu za ove prekide su fiksirani i iznose 3 i 2 respektivno.

Spoljašnji nemaskirajući prekid: Uređaj računara koji kontroliše ispravnost rada delova računara postavlja zahtev za nemaskirajući prekid preko posebne linije. Zahtev će biti prihvaćen ako ne postoji zahtev višeg prioriteta. Broj ulaza u IV tabelu za nemaskirajući prekid je fiksiran i iznosi 1.

Spoljašnji maskirajući prekidi: Zahteve za maskirajućim prekidima postavljaju ulazno/izlazni uređaji preko posebnih linija. Najveći prioritet, u slučaju simultanog pristizanja više od jednog zahteva, ima prekid sa najvećim rednim brojem linije. Da bi zahtev za maskirajući prekid bio prihvaćen potrebno je da bude ispunjen svaki od sledećih uslova:

• da je odgovarajući bit u registru maske IMR postavljen, • da je razred I u registru PSW postavljen, • da je nivo prioriteta ulazno/izlaznog uređaja koji je uputio zahtev za prekid veći od

nivoa prioriteta tekućeg programa i • da ne postoje zahtevi za prekid druge vrste višeg prioriteta.

Ako je razred P registra PSW jednak jedan pa ulazi u IV tabelu nisu fiksni, tada procesor dobija broj ulaza u IV tabelu od kontrolera ulazno/izlaznog uređaja. Procesor o prihvatanju zahteva za prekid obaveštava kontroler aktiviranjem odgovarajuće linije potvrde. Kontroler tada šalje broj ulaza u IV tabelu koji procesor koristi za određivanje adrese prekidne rutine. Ako je razred P registra PSW jednak nula pa su ulazi u IV tabelu fiksni, brojeve ulaza generiše sam procesor. To su vrednosti od 5 do 7 u zavisnosti od rednog broja linije najvišeg prioroteta po kojoj je stigao zahtev za prekid koji se prihvata. Po čuvanju sadržaja registra PSW na steku, procesor u rezrede L1 i L0 registra PSW upisuje nivo prioriteta prekidne rutine na koju se skače.

Unutrašnji procesorski prekid posle svake instrukcije: Zahtev za ovaj prekid se javlja posle izvršenja svake pojedine procesorske instrukcije pod uslovom da je postavljen bit T registra PSW. Zahtev se prihvata ukoliko ne postoje zahtevi višeg prioriteta. Broj ulaza u IV tabelu je fiksiran i iznosi 0.

Page 33: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

27

2.2 MEMORIJA Arhitekturu memorije čine 16-bitne programski dostupne memorijske lokacije kapaciteta

60K reči, koje zauzimaju opseg od 0 do EFFFh memorijskog adresnog prostora. Iz memorijskih lokacija se čita jedino instrukcijom LOAD (odeljak 2.1.5.1.1), a u memorijske lokacije se upisuje jedino instrukcijom STORE (odeljak 2.1.5.1.1). Adresa memorijske lokacije se dobija registarskim indirektnim adresiranjem, registarskim indirektnim adresiranjem sa pomerajem i memorijskim direktnim adresiranjem (odeljak 2.1.4).

2.3 ULAZNO/IZLAZNI UREĐAJI Arhitekturu ulazno/izlaznih uređaja čine 16-bitni programski dostupni registri kontrolera

ulazno/izlaznih uređaja kapaciteta 4K reči, koji zauzimaju opseg od F000h do FFFFh memorijskog adresnog prostora. Iz registara kontrolera se čita jedino instrukcijom LOAD (odeljak 2.1.5.1.1), a u registre kontrolera se upisuje jedino instrukcijom STORE (odeljak 2.1.5.1.1). Adresa registra kontrolera se dobija registarskim indirektnim adresiranjem, registarskim indirektnim adresiranjem sa pomerajem i memorijskim direktnim adresiranjem (odeljak 2.1.4).

Adresiranje pojedinih registara kontrolera ulazno/izlaznog uređaja se obezbeđuje preko tri komponente koje formiraju adrese registara (slika 14): adresiranje ulazno-izlaznog adresnog prostora (UIP), adresiranje uređaja u ulazno-izlaznom adresnom prostoru (UIU) i adresiranje registara unutar adresiranog uređaja (UIUR).

15 12 11 6 5 0 UIP UIU UIUR

Slika 14 Formiranje adrese registara kontrolera periferije

Usvojeno je da je za ulazno-izlazni adresni prostor rezervisano najviših 212 adresa te je sadrzaj polja UIP jednak 1111. Ova vrednost polja UIP je ista za sve ulazno-izlazne uređaje i njihove registre. Polje UIU je širine 6 bita, što omogućava adresiranje do 26 ulazno-izlaznih uređaja. Ova vrednost se postavlja mikroprekidačima pri povezivanju ulazno-izlaznog uređaja na sistem. Poljem UIUR se adresira do 26 registara unutar ulazno-izlaznog uređaja. Ovakav format adresiranja registara ulazno-izlaznih uređaja je usvojen za sve uređaje.

U ovom odeljku se razmatraju programski dostupni registri kontrolera bez direktnog pristupa memoriji i kontrolera sa direktnim pristupom memoriji.

2.3.1 Registri kontrolera bez direktnog pristupa memoriji

Programski dostupni registri kontrolera su DR, CR, SR i IER (slika 15). 15 0

DR registar podatka 15 0

CR upravljački registar 15 0

SR statusni registar 15 0

IER registar broja ulaza

Slika 15 Programski dostupni registri kontrolera bez direktnog pristupa memoriji

Registar DR je registar podatka širine 16 bita. Ovaj registar se koristi kao prihvatni registar za podatke koje razmenjuju kontroler i procesor. Slanje podatka u izlazni uređaj se realizuje programskim putem izvršavanjem instrukcija koje upisuju podatak u registar DR. Unos

Page 34: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

28

podatka iz ulaznog uređaja se realizuje programskim putem izvršavanjem instrukcija koje čitaju podatak iz registra DR.

Registar CR je upravljački registar širine 16 bita od kojih se koriste samo najmlađa 4 bita. Ovaj registar se koristi da se programskim putem upisivanjem odgovarajućih vrednosti kontroler startuje i zadaje režima rada i da se kontroler zaustavlja. Bitovi upravljačkog registra su:

• CR0 koji vrednošću • 0 ukazuje da je zadat režim rada sa izlaznim uređajem i • 1 ukazuje da je zadat režim rada sa ulaznim uređajem,

• CR1 koji vrednošću • 0 ukazuje da zadat režim rada bez generisanjem prekida i • 1 ukazuje da zadat režim rada sa generisanjem prekida,

• CR2 koji vrednošću • 0 ukazuje da je kontroler zaustavljen i • 1 ukazuje da je kontroler startovan i

• CR3 koji vrednošću • 0 ukazuje da je zadat režim rada sa generisanjem zahteva za prekid kao impuls i • 1 ukazuje da je zadat režim rada sa generisanjem zahteva za prekid kao nivo.

Bit CR0 se prilikom startovanja kontrolera postavlja na neaktivnu vrednost da bi se zadao režim rada sa izlaznim uređajem i na aktivnu vrednost da bi se zadao režim rada sa ulaznim uređajem. Kada se zada režim rada sa izlaznim uređajem programskim putem se podatak, najpre, prenosi iz memorije u registar DR kontrolera, a, potom, kontroler prenosi podatak iz registra DR u izlazni uređaj. Kada se zada režim rada sa ulaznim uređajem kontroler, najpre, prenosi podatak iz ulaznog uređaja u registar DR, a, potom, se podatak prenosi programskim utem iz registra DR u memoriju.

Bit CR1 se prilikom startovanja kontrolera postavlja na neaktivnu vrednost da bi se zadao režim rada bez generisanja prekida i na aktivnu vrednost da bi se zadao režim rada sa generisanjem prekida. Režim rada bez generisanja prekida se zadaje u slučaju organizacije ulaza/izlaza sa ispitivanjem bita SR0 statusnog registra kontrolera. Režim rada sa generisanjem prekida se zadaje u slučaju organizacije ulaza/izlaza sa prekidom. Kada prilikom ulaza ili izlaza registar DR postane raspoloživ, na šta ukazuje aktivna vrednost bita SR0 statusnog registra kontrolera, prekid se ne generiše ukoliko je bit CR1 neaktivan i generiše ukoliko je bit CR1 aktivan.

Bit CR2 se programskim putem postavlja na aktivnu vrednost da bi se startovao kontroler i na neaktivnu vrednost da bi se zaustavio kontroler. Kontroler koji je startovan za režim rada sa ulaznim uređajem prenosi podatke iz uređaja u registar DR, a kontroler koji je startovan za režim rada sa izlaznim uređajem prenosi podatke iz registra DR u uređaj. Kontroler koji je zaustavljen prekida prenos podataka. Bit CR2 se često referiše kao bit start.

Bit CR3 se prilikom startovanja kontrolera postavlja na neaktivnu vrednost da bi se zadao režim rada sa generisanja prekida kao impuls i na aktivnu vrednost da bi se zadao režim rada sa generisanjem prekida kao nivo. Vrednost ovog bita ima smisla jedino ukoliko je prilikom startovanja kontrolera postavljanjem bita CR1 na aktivnu vrednos zadat režim rada sa generisanjem prekica.

Usvojeno je da se u upravljački registar CR programskim putem može upisivati nova vrednost i time startovati kontroler i zadati režim rada jedino ukoliko kontroler nije startovan, na šta ukazuje neaktivna vrednost bita CR2. Pokušaj upisa nove vrednosti u upravljački

Page 35: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

29

registar kada je kontroler startovan, na šta ukazuje aktivna vrednost bita CR2, se ignoriše i kontroler produžava da radi u već zadatom režimu rada. Međutim, ovakav pokušaj se registruje postavljanjem na aktivnu vrednost bita SR1 statusnog registar kontrolera SR. Ovo pravilo je uvedeno da bi se izbegla mogućnost da se u toku rada kontrolera upisom nove vrednosti u upravljački registar promeni zadati režim rada i time naruši rad kontrolera. Promena režima rada već startovanog kontrolera zahteva da se, najpre, upisom u upravljački registar vrednosti koja na poziciji bita CR2 ima neaktivnu vrednost, zaustavi kontroler, pa se tek onda, upisom u upravljački registar vrednosti koja na poziciji bita CR2 ima aktivnu vrednost, kontroler startuje u nekom novom režimu rada.

Registar SR je statusni registar širine 16 bita od kojih se koriste samo najmlađa 3 bita. Ovaj registar se koristi da se programskim putem čitanjem njegovog sadržaja dobijaju informacije o stanju u kome se nalazi kontroler. Bitovi statusnog registra su:

• SR0 koji vrednošću • 0 ukazuje da registar DR nije raspoloživ i • 1 ukazuje da je registar DR raspoloživ,

• SR1 koji vrednošću • 0 ukazuje da nije bilo pokušaja startovanja već startovanog kontrolera i • 1 ukazuje da je bilo pokušaja startovanja već startovanog kontrolera i

• SR2 koji vrednošću • 0 ukazuje da je bilo čitanja iz ili upisa u registar DR samo kada je bio raspoloživ i • 1 ukazuje da je bilo pokušaja čitanja iz ili upisa u registar DR kada nije bio raspoloživ.

Bit SR0 se postavlja na aktivnu i neaktivnu vrednost po određenim pravilima u zavisnosti od toga da li je prilikom startovanja kontrolera zadat režim sa ulaznim ili izlaznim uređajem. Bit SR0 se često referiše kao bit spremnost.

Ukoliko je prilikom starovanja kontrolera u bit CR0 upisana neaktivna vrednost, čime je zadat režim rada sa izlaznim uređajem, kontroler postavlja bit SR0 na aktivnu vrednost koja služi kao indikacija da je registar DR raspoloživ da se programskim putem u njega upiše podatak. Prilikom upisa podatka u registar DR kontroler postavlja bit SR0 na neaktivnu vrednost koja služi kao indikacija da registar DR više nije raspoloživ da se programskim putem u njega upiše novi podatak. Kontroler po završetku prenosa podatka iz registra DR u izlazni uređaj postavlja bit SR0 na aktivnu vrednost koja služi kao indikacija da je registar DR ponovo raspoloživ da se programskim putem u njega upiše podatak.

Ukoliko je prilikom starovanja kontrolera u bit CR0 upisana aktivna vrednost, čime je zadat režim rada sa ulaznim uređajem, kontroler postavlja bit SR0 na neaktivnu vrednost koja služi kao indikacija da registar DR nije raspoloživ da se programskim putem iz njega čita podatak. Kontroler po završetku prenosa podatka iz ulaznog uređaja u registar DR postavlja bit SR0 na aktivnu vrednost koja služi kao indikacija da je registar DR raspoloživ da se programskim putem iz njega čita podatak. Prilikom čitanja podatka iz registar DR kontroler postavlja bit SR0 na neaktivnu vrednost koja služi kao indikacija da registar DR više nije raspoloživ da se programskim putem iz njega čita podatak. Kontroler po završetku prenosa sledećeg podatka iz ulaznog uređaja u registar DR postavlja bit SR0 na aktivnu vrednost koja služi kao indikacija da je registar DR ponovo raspoloživ da se programskim putem iz njega čita podatak..

Bit SR1 se postavlja na aktivnu vrednost samo u slučaju pokušaja startovanja već startovanog kontrolera. Bit SR1 se postavlja na neaktivnu vrednost prilikom regularnog startovanja kontrolera.

Page 36: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

30

Bit SR2 se postavlja na aktivnu vrednost samo u slučaju pokušaja čitanja iz ili upisa u registar DR kada registar nije raspoloživ. U slučaju čitanja iz registra DR kada registar nije raspoloživ, na šta ukazuje neaktivna vrednost bita SR0, čitaće se već očitani podatak, jer kontroler još uvek nije preneo novi podatak iz ulaznog uređaja u registar DR. U slučaju upisa u registar DR kada registar nije raspoloživ, na šta ukazuje neaktivna vrednost bita SR0, upisivaće se novi podatak iako kontroler još uvek nije preneo prethodni podatak iz registra DR u izlazni uređaj. Čitanje iz ili upis u registar DR kada registar nije raspoloživ se ne sprečava, već se samo registruje postavljanjem bita SR2 na aktivnu vrednost. Bit SR2 se postavlja na neaktivnu vrednost prilikom regularnog startovanja kontrolera.

Registar IER je registar broja ulaza u tabelu sa adresama prekidnih rutina širine 16 bita od kojih se koristi samo najmlađih 8 bitova, jer je usvojeno da tabela ima 256 ulaza. Ovaj registar se koristi da se programskim putem prilikom inicijalizacije kontrolera upiše broj ulaza dodeljen datom kontroleru.

U tabeli 12 su date relativne adrese svih programski dostupnih registara kontrolera bez direktnog pristupa memoriji, kao i pregled dozvoljenih operacija nad registrima.

Tabela 12 Relativne adrese registara kontrolera bez direktnog pristupa memoriji Registar Relativna adresa (UIUR) dozvoljeno čitanje dozvoljen upis

CR 0 da da SR 1 da ne IER 2 da da DR 3 da da

2.3.2 Registri kontrolera sa direktnim pristupom memoriji

Programski dostupni registri kontrolera su CR, SR, IER, WCR, AR1 i AR2 (slika 16). 15 0

CR upravljački registar 15 0

SR statusni registar 15 0

IER registar broja ulaza 15 0

WCR registar broja reči 15 0

AR1 izvorišni adresni registar 15 0

AR2 odredišni adresni registar

Slika 16 Programski dostupni registri kontrolera sa direktnim pristupom memoriji

Registar CR je upravljački registar širine 16 bita od kojih se koristi samo najmlađih 8 bita. Ovaj registar se koristi da se programskim putem upisivanjem odgovarajućih vrednosti kontroler startuje i zadaje režima rada i da se kontroler zaustavlja. Bitovi upravljačkog registra su:

• CR0 koji vrednošću • 0 ukazuje da je zadat režim prenosa memorija - izlazni uređaj i • 1 ukazuje da je zadat režim prenosa ulazni uređaj - memorija,

• CR1 koji vrednošću • 0 ukazuje da zadat režim rada bez generisanjem prekida i • 1 ukazuje da zadat režim rada sa generisanjem prekida,

• CR2 koji vrednošću

Page 37: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

31

• 0 ukazuje da je kontroler zaustavljen i • 1 ukazuje da je kontroler startovan i

• CR3 koji vrednošću • 0 ukazuje da je zadat režim rada sa generisanjem zahteva za prekid kao impuls i • 1 ukazuje da je zadat režim rada sa generisanjem zahteva za prekid kao nivo,

• CR4 koji vrednošću • 0 ukazuje da je saglasno bitu CR0 zadat režim prenosa memorija−izlazni uređaj ili

ulazni uređaj−memorija i • 1 ukazuje da je zadat režim prenosa memorija-memorija,

• CR5 koji vrednošću • 0 ukazuje da je zadat režim rada sa prenosom jednog podatka i • 1 ukazuje da je zadat režim rada sa prenosom bloka podataka,

• CR6 koji vrednošću • 0 ukazuje da je zadat režim rada sa prenosom prema rastućim adresama i • 1 ukazuje da je zadat režim rada sa prenosom prema opadajućim adresama i

• CR7 koji vrednošću • 0 ukazuje da je zadat režim rada sa pojedinačnim prenosom i • 1 ukazuje da je zadat režim rada sa paketsskim prenosom.

Bit CR0 se prilikom startovanja kontrolera i zadavanja režima rada postavlja na neaktivnu vrednost da bi se zadao režim prenosa memorija−izlazni uređaj i na aktivnu vrednost da bi se zadao režim prenosa ulazni uređaj−memorija. Vrednost bita CR0 je bitna jedino ukoliko je prilikom startovanja kontrolera i zadavanja režima rada bit CR4 postavljen na neaktivnu vrednost. Kada se zada režim prenosa memorija−izlazni uređaj kontroler samostaslno prenosi podatke iz memorije u izlazni uređaj, a kada se zada režim prenosa ulazni uređaj–memorija kontroler samostalno prenosi podatke iz ulaznog uređaja u memoriju.

Bit CR1 se prilikom startovanja kontrolera i zadavanja režima postavlja na neaktivnu vrednost da bi se zadao režim rada bez generisanja prekida i na aktivnu vrednost da bi se zadao režim rada sa generisanjem prekida. Režim rada bez generisanja prekida se zadaje u slučaju organizacije prenosa podataka sa ispitivanjem bita SR0 statusnog registra kontrolera. Režim rada sa generisanjem prekida se zadaje u slučaju organizacije prenosa podataka sa prekidom. Kada se obavi kompletan prenos podataka bit SR0 statusnog registra kontrolera se postavlja na aktivnu vrednost. Tom priliko se prekid ne generiše ukoliko je bit CR1 neaktivan i generiše ukoliko je bit CR1 aktivan.

Bit CR2 se programskim putem postavlja na aktivnu vrednost da bi se startovao kontroler i na neaktivnu vrednost da bi se zaustavio kontroler. Kontroler koji je startovan na osnovu bitova CR4 i CR0 prenosi podatke iz memorije u izlazni uređaj, iz ulaznog uređaja u memoriju ili iz memorije u memoriju. Kontroler koji je zaustavljen prekida prenos podataka. Bit CR2 se često referiše kao bit start.

Bit CR3 se prilikom startovanja kontrolera postavlja na neaktivnu vrednost da bi se zadao režim rada sa generisanja prekida kao impuls i na aktivnu vrednost da bi se zadao režim rada sa generisanjem prekida kao nivo. Vrednost ovog bita ima smisla jedino ukoliko je prilikom startovanja kontrolera postavljanjem bita CR1 na aktivnu vrednos zadat režim rada sa generisanjem prekida.

Bit CR4 se prilikom startovanja kontrolera postavlja na neaktivnu vrednost da bi se uz neaktivnu vrednost bita CR0 zadao režim prenosa memorija–izlazni uređaj i uz aktivnu vrednost bita CR0 zadao režim prenosa ulazni uređaj–memorija. Bit CR4 se prilikom

Page 38: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

32

startovanja kontrolera postavlja na neaktivnu vrednost da bi se zadao režim prenosa memorija–memorija. Vrednost bita CR0 nije bitna ukoliko je bit CR4 prilikom postavljen na aktivnu vrednost.

Bit CR5 se prilikom startovanja kontrolera postavlja na neaktivnu vrednost da bi se zadao režim rada sa prenosom jednog podatka i na aktivnu vrednost da bi se zadao režim rada sa prenosom bloka podataka. Bit CR5 je bitan jedino ukoliko je bitovima CR4 i CR0 zadat režim prenosa memorija–izlazni uređaj ili bitom CR4 zadat režim prenosa memorija–memorija. Ako je bit CR5 neaktivan tada se isti podatak pročitan iz memorije sa adrese određene sadržajem registra AR1 prenosi u izlazni uređaj ili niz susednih memorijskih lokacija počev od memorijske lokacije čija je adresa određena sadržajem registra AR2 onoliko puta kolika je veličina bloka podataka određena sadržajem registraWCR. U slučaju ovakvog režima rada sadržaj registar AR1 se prilikom prenosa ne menja, dok se sadržaja registar AR2 u slučaju prenosa memorija–memorija u zavisnosti od vrednosti bita CR6 inkrementira ili dekrementira. Ako je bit CR5 aktivan tada se podaci pročitani iz niza susednih memorijskih lokacija počev od memorijske lokacije čija je adresa određena sadržajem registra AR1 prenose u izlazni uređaj ili niz susednih memorijskih lokacija počev od memorijske lokacije čija je adresa određena sadržajem registra AR2 onoliko puta kolika je veličina bloka podataka određena sadržajem registraWCR. U slučaju ovakvog režima rada sadržaj registar AR1 se u zavisnosti od vrednosti bita CR6 inkrementira ili dekrementira, dok se sadržaja registar AR2 u slučaju prenosa memorija–memorija u zavisnosti od vrednosti bita CR6 inkrementira ili dekrementira. Bit CR5 nije bitan ukoliko je bitovima CR4 i CR0 zadat režim prenosa ulazni uređaj–memorija. U slučaju ovakvog režima rada sadržaj registra AR2 se u zavisnosti od vrednosti bita CR6 inkrementira ili dekrementira.

Bit CR6 se prilikom startovanja kontrolera postavlja na neaktivnu vrednost da bi se zadao režim rada sa prenosom iz i/ili u rastuće memorijske lokacije. U slučaju ovakvog režima rada se saglasno vrednostima bitova CR0, CR4 i CR5 prilikom prenosa vrši inkrementiranje sadržaja registara AR1 i/ili AR2. Bit CR6 se prilikom startovanja kontrolera postavlja na aktivnu vrednost da bi se zadao režim rada sa prenosom iz i/ili u opadajuće memorijske lokacije. U slučaju ovakvog režima rada se saglasno vrednostima bitova CR0, CR4 i CR5 prilikom prenosa vrši dekrementiranje sadržaja registra AR1 i/ili AR2.

Bit CR7 se prilikom startovanja kontrolera postavlja na neaktivnu vrednost da bi se zadao režim rada sa pojedinačnim prenosom i na aktivnu vrednost da bi se zadao režim rada sa paketskim prenosom. Režim rada sa pojedinačnim prenosom se normalno koristi prilikom rada sa sporim ulazno/izlaznim uređajima. U ovom slučaju kontroler za svaki podatak traži magistralu od procesora, po dobijanju magistrale prenosi jedan podatak i potom vraća magistralu procesoru. Režim rada sa paketskim prenosom se normalno koristi prilikom rada sa brzim ulazno/izlaznim uređajima. U ovom slučaju kontroler traži magistralu od procesora samo jedanput pre prenosa bloka podataka, po dobijanju magistrale prenosi ceo blok podataka i na kraju prenosa celog bloka podataka vraća magistralu procesoru.

Usvojeno je da se u upravljački registar CR programskim putem može upisivati nova vrednost i time startovati kontroler i zadati režim rada jedino ukoliko kontroler nije startovan, na šta ukazuje neaktivna vrednost bita CR2. Pokušaj upisa nove vrednosti u upravljački registar kada je kontroler startovan, na šta ukazuje aktivna vrednost bita CR2, se ignoriše i kontroler produžava da radi u već zadatom režimu rada. Međutim, ovakav pokušaj se registruje postavljanjem na aktivnu vrednost bita SR1 statusnog registar kontrolera SR. Ovo pravilo je uvedeno da bi se izbegla mogućnost da se u toku rada kontrolera upisom nove vrednosti u upravljački registar promeni zadati režim rada i time naruši rad kontrolera. Promena režima rada već startovanog kontrolera zahteva da se, najpre, upisom u upravljački

Page 39: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

33

registar vrednosti koja na poziciji bita CR2 ima neaktivnu vrednost, zaustavi kontroler, pa se tek onda, upisom u upravljački registar vrednosti koja na poziciji bita CR2 ima aktivnu vrednost, kontroler startuje u nekom novom režimu rada.

Registar SR je statusni registar širine 16 bita od kojih se koriste samo bitovi SR0, SR1, SR3, SR4 i SR5. Ovaj registar se koristi da se programskim putem čitanjem njegovog sadržaja dobijaju informacije o stanju u kome se nalazi kontroler. Bitovi statusnog registra su:

• SR0 koji vrednošću • 0 ukazuje da prenos podataka nije obavljen i • 1 ukazuje da je prenos podataka nije obavljen,

• SR1 koji vrednošću • 0 ukazuje da nije bilo pokušaja startovanja već startovanog kontrolera i • 1 ukazuje da je bilo pokušaja startovanja već startovanog kontrolera i

• SR3 koji vrednošću • 0 ukazuje da nije došlo do nelegalnog pristupa registru WCR i • 1 ukazuje da je došlo do nelegalnog pristupa registru WCR

• SR4 koji vrednošću • 0 ukazuje da nije došlo do nelegalnog pristupa registru AR1 i • 1 ukazuje da je došlo do nelegalnog pristupa registru AR1

• SR5 koji vrednošću • 0 ukazuje da nije došlo do nelegalnog pristupa registru AR2 i • 1 ukazuje da je došlo do nelegalnog pristupa registru AR2

Bit SR0 se postavlja na neaktivnu vrednost prilikom regularnog startovanja kontrolera i na aktivnu vrednost kada kontroler obavi kompletan prenos podataka. Bit SR0 se često referiše kao bit spremnost.

Bit SR1 se postavlja na neaktivnu vrednost prilikom regularnog startovanja kontrolera i na aktivnu vrednost samo u slučaju pokušaja startovanja već startovanog kontrolera.

Bit SR3 postavlja na neaktivnu vrednost prilikom regularnog startovanja kontrolera i na aktivnu vrednost prilikom neregularnog pristupa registru WCR. Neregularan pristup registru WCR se javlja u dvema situacijama. Prva situacija je čitanje sadržaja registra WCR. Druga situacija je upis u registar WCR a da kontroler nije obavio kompletan prenos podataka na šta ukazuje neaktivna vrednost bita SR0. Nekorektan pristup registru WCR se ne sprečava, ali se ovakav pristup registruje postavljanjem na aktivnu vrednost bita SR3.

Bit SR4 postavlja na neaktivnu vrednost prilikom regularnog startovanja kontrolera i na aktivnu vrednost prilikom neregularnog pristupa registru AR1. Neregularan pristup registru AR1 se javlja prilikom upisa u registar AR1 a da kontroler nije obavio kompletan prenos podataka na šta ukazuje neaktivna vrednost bita SR0. Nekorektan pristup registru AR1 se ne sprečava, ali se ovakav pristup registruje postavljanjem na aktivnu vrednost bita SR4.

Bit SR5 postavlja na neaktivnu vrednost prilikom regularnog startovanja kontrolera i na aktivnu vrednost prilikom neregularnog pristupa registru AR2. Neregularan pristup registru AR2 se javlja prilikom upisa u registar AR2 a da kontroler nije obavio kompletan prenos podataka na šta ukazuje neaktivna vrednost bita SR0. Nekorektan pristup registru AR2 se ne sprečava, ali se ovakav pristup registruje postavljanjem na aktivnu vrednost bita SR5.

Registar IER je registar broja ulaza u tabelu sa adresama prekidnih rutina širine 16 bita od kojih se koristi samo najmlađih 8 bitova, jer je usvojeno da tabela ima 256 ulaza. Ovaj registar se koristi da se programskim putem prilikom inicijalizacije kontrolera upiše broj ulaza dodeljen datom kontroleru.

Page 40: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

34

Registar WCR je registar broja reči koje treba preneti širine 16 bita. Pre startovanja i zadavanja režima rada kontrolera potrebno je u okviru inicijalizacije kontrolera upisati u registar WCR sadržaj koji predstavlja veličinu bloka podataka koji treba preneti. Prilikom prenosa svakog podatka kontroler između ostalog dekrementira sadržaj registra WCR. Sadržaj nula registra WCR je indikacija da je obavljen kompletan prenos bloka podataka što se registruje postavljanjem bita SR0 na aktivnu vrednost.

Registar AR1 je izvorišni adresni registar širine 16 bita koji se koristi za adresiranje izvorišnog podatka u memoriji u režimima prenosa memorija–izlazni uređaj i memorija–memorija. Registar AR1 se ne koristi u režimu prenosa ulazni uređaj–memorija. Pre startovanja i zadavanja režima rada kontrolera za režim prenosa memorija–izlazni uređaj ili memorija–memorija potrebno je u okviru inicijalizacije kontrolera upisati u registar AR1 početnu adresu memorije odakle treba krenuti sa očitavanjem podataka. Sadržaj registra AR1 se po prenosu jednog podatka ne menja ukoliko je bit CR5 neaktivan. Time se jedan isti podatak sa memorijske lokacije čija je adresa određena sadržajem registra AR1 prenosi u izlazni uređaja ili u niz susednih memorijskih lokacija počev od lokacije čija je adresa određena sadržajem registra AR2 onoliko puta koliko je to određeno sadržajem registra WCR. Sadržaj registra AR1 se po prenosu jednog podatka menja ukoliko je bit CR5 aktivan i to inkrementira ukoliko je bit CR6 neaktivan i dekrementira ukoliko je bit CR6 aktivan. Time se blok podataka počev od memorijske lokacije čija je adresa određena sadržajem registra AR1 prenosi u izlazni uređaj ili u niz susednih memorijskih lokacija počev od lokacije čija je adresa određena sadržajem registra AR2 onoliko puta koliko je to određeno sadržajem registra WCR. Pri tome se prenos realizuje prema rastućim memorijskim lokacijama ukoliko je bit CR6 neaktivan i prema opadajućim memorijskim lokacijama ukoliko je bit CR6 aktivan. Usvojeno je da se programskim putem ne može da čita sadržaj registra AR1.

Registar AR2 je odredišni adresni registar širine 16 bita koji se koristi za adresiranje odredišnih memorijskih lokacija u režimima prenosa ulazni uređaj–memorija i memorija–memorija. Registar AR2 se ne koristi u režimu prenosa memorija–izlazni uređaj. Pre startovanja i zadavanja režima rada kontrolera za režim prenosa ulazni uređaj–memorija ili memorija–memorija potrebno je u okviru inicijalizacije kontrolera upisati u registar AR2 početnu adresu memorije odakle treba krenuti sa upisivanjem podataka. Sadržaj registra AR2 se po prenosu jednog podatka ažurira i to inkrementira ukoliko je bit CR6 neaktivan i dekrementira ukoliko je bit CR6 aktivan. Time se blok podataka iz ulaznog uređaja ili počev od memorijske lokacije čija je adresa određena sadržajem registra AR1 prenosi u niz susednih memorijskih lokacija počev od lokacije čija je adresa određena sadržajem registra AR2 onoliko puta koliko je to određeno sadržajem registra WCR. Pri tome se prenos realizuje prema rastućim memorijskim lokacijama ukoliko je bit CR6 neaktivan i prema opadajućim memorijskim lokacijama ukoliko je bit CR6 aktivan. Usvojeno je da se programskim putem ne može da čita sadržaj registra AR2.

U tabeli 13 su date relativne adrese svih programski dostupnih registara kontrolera sa direktnim pristupom memoriji, kao i pregled dozvoljenih operacija nad registrima.

Page 41: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

35

Tabela 13 Relativne adrese registara kontrolera sa direktnim pristupom memoriji Registar Relativna adresa (UIUR) dozvoljeno čitanje dozvoljen upis

CR 0 da da SR 1 da ne IER 2 da da

WCR 4 da da AR1 5 ne da AR2 6 ne da

Page 42: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte
Page 43: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

37

3 MAGISTRALA U ovoj glavi se razmatra organizacija sistemske magistrale BUS. Najpre se daje struktura

magistrale, zatim arbitracija na magistrali i na kraju ciklusi na magistrali.

Sistemska magistrala je asinhrona magisrala, koja služi za povezivanje modula računarskog sistema i to procesora CPU, memorije MEM i ulazno/izlaznih uređaja U/I. Preko magistrale se prenose sadržaji između registara procesora, memorijskih lokacija i registara uređaja. Ceo tok prenosa nekog sadržaja između dva modula naziva se ciklus na magistrali. Modul koji započinje ciklus na magistrali naziva se gazda (master), a modul sa kojim gazda realizuje ciklus naziva se sluga (slave). Gazda može da bude procesor i uređaji sa direktnim pristupom memoriji. Sluga može da bude memorija i uređaji bez i sa direktnim pristupom memoriji. Procesor čita sadržaje memorijskih lokacija i upisuje sadržaje u memorijske lokacije prilikom čitanja instrukcija i operanada i upisa rezultata kao sastavnog dela izvršavanja instrukcija kojima se vrše određena računanja. Pored toga procesor čita sadržaje registara uređaja i upisuje sadržaje u registre uređaja prilikom izvršavanja instrukcija kojima se dobija status uređaja, vrši inicijalizacija uređaja, zadaje režim rada i vrši startovanje i zaustavljanje uređaja i vrši prenos podataka između procesora i uređaja i obratno. Na kraju procesor prihvata brojeve ulaza u tabelu sa adresama prekidnih rutina iz registara uređaja u okviru opsluživanja zahteva za prekid. Uređaji sa direktnim pristupom memoriji čitaju čitaju sadržaje memorijskih lokacija i upisuju sadržaje u memorijske lokacije u okviru prenosa podataka iz memorije u izlazni uređaj, iz ulaznog uređaja u memoriju i iz memorije u memoriju.

Na magistrali mogu da se realizuju tri tipa ciklusa između gazde i sluge i to ciklus čitanja, ciklus upisa i ciklus prihvatanja broja ulaza. Za njihovu realizaciju koriste se tri grupe linija i to adresne linije ABUS15...0, linija podataka DBUS15...0 i upravljačke linije RDBUS, WRBUS i FCBUS. Po adresnim linijama ABUS15...0 gazda šalje slugi adresu memorijske lokacije ili registra uređaja sa koje treba očitati sadržaj kod ciklusa čitanja ili na kojoj treba upisati sadržaj kod ciklusa upisa. Po linijama podataka DBUS15...0 sluga šalje gazdi očitani sadržaj u slučaju ciklusa čitanja, gazda šalje slugi sadržaj koji treba upisati u slučaju ciklusa upisa i uređaj kao sluga šalje procesoru kao gazdi broj ulaza u tabelu sa adresama prekidnih rutina u slučaju ciklusa prihvatanje broja ulaza. Po upravljačkoj liniji RDBUS gazda šalje signal kojim u slugi startuje ciklus čitanja. Po upravljačkoj liniji WRBUS gazda šalje signal kojim u slugi startuje ciklus upisa. Po posebnim linijama inta1, inta2 i inta3 kojima su povezani procesor i uređaji i koje ne pripadaju magistrali procesor kao gazda šalje signal kojim u uređaju kao slugi startuje ciklus prihvatanje broja ulaza. Po upravljačkoj liniji FCBUS sluga u slučaju sva tri ciklusa šalje signal gazdi kao indikaciju da je on svoj deo ciklusa obavio. U slučaju ciklusa čitanje i prihvatanje broja ulaza to je i indikacija da se na linijama podataka DBUS15...0 nalazi sadržaj koji gazda treba da upiše u svoj prihvatni registar.

Gazde na magistrali modu da budu procesor i uređaji sa direktnim pristupom memoriji. Kako je dozvoljeno da u jednom trenutku ili procesor ili jedan od uređaja bude gazda magistrale, potrebno je pre svakog ciklusa na magistrali realizovati arbitraciju pristupa magistrali između procesora i uređaja. Arbitracija je tako izvedena da procesor ima funkciju arbitratora i da je magistrala normalno u posedu procesora. S toga uređaj svaki put kada kao gazda treba da započne ciklus čitanja ili upisa na magistrali najpre od procesora traži dozvolu korišćenja magistrale.

Page 44: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

38

Uređaj traži od procesora dozvolu korišćenja magistrale postavljanjem signala hldr na aktivnu vrednost. Ovde se mogu javiti dve situacije. Prva situacija se javlja ako procesor nije već započeo ciklus na magistrali. Tada je magistrala slobodna i procesor može odmah uređaju dozvoliti da kao gazda započne svoj ciklus. Procesor daje dozvolu uređaju postavljanjem signala hlda na aktivnu vrednost. Druga situacija se javlja ako je procesor već započeo ciklus na magistrali. Tada magistrala nije slobodna i procesor najpre završava započeti ciklus na magistrali pa tek onda daje uređaju dozvolu da kao gazda započne svoj ciklus. Procesor daje dozvolu uređaju postavljanjem signala hlda na aktivnu vrednost.

Kada je procesor dao magistralu uređaju mogu se javiti dve situacije. Prva situacija se javlja ako u toku ciklusa na magistrali u kojoj je uređaj gazda procesor nema potrebu da koristi magistralu. U ovoj situaciji uređaj produžava sa svojim ciklusom. Završetak svog ciklusa uređaj signalizira procesoru postavljanjem signala hldr na neaktivnu vrednost. Tada procesor postavlja signal dozvole hlda na neaktivnu vrednost. Ovim je magistrala vraćena procesoru. Druga situacija se javlja ako u toku ciklusa na magistrali u kojoj je uređaj gazda procesor ima potrebu da koristi magistralu. I u ovoj situaciji uređaj produžava sa svojim ciklusom, pri čemu procesor ne sme da sapočne svoj ciklus već mora da čeka. Završetak svog ciklusa uređaj signalizira procesoru postavljanjem signala hldr na neaktivnu vrednost. Tada procesor postavlja signal dozvole hlda na neaktivnu vrednost. Ovim je magistrala vraćena procesoru. S toga procesor sada može da krene sa realizacijom svog ciklusa na magistrali.

Svi moduli su povezani na adresne linije, linije podatak i upravljačke linije magistrale preko bafera sa tri stanja. Pri tome na linije magistrale odgovarajuće sadržaje mogu preko bafera sa tri stanja da propuštaju samo modul koji je trenutno gazda i modul koji kao sluga sa njim realizuje ciklus na magistrali. Svi ostali uređaji svoje bafere sa tri stanja drže u stanju visoke impedanse i ne opterećuju linije magistrale.

Vremenski oblici signala ABUS15...0, DBUS15...0, RDBUS i FCBUS koje na magistrali razmenjuju gazda i sluga prilikom realizacije ciklusa čitanja dati su na slici 17. Na slici je prikazan i interni signal gazde read. Pretpostavljeno je da gazda postavlja ovaj signal na aktivnu vrednost da bi inicirao ciklus čitanja, drži ga na aktivnoj vrednosti sve vreme dok čeka da dobije magistralu i dok realizuje ciklus na magistrali i postavlja na neaktivnu vrednost po završetku ciklusa na magistrali. Uz vremenske oblike signala na magistrali dat je i signal takta gazde CLK. Signali su dati za vremenski period ti u kome posmatrani modul kao gazda sa nekim modulom kao slugom realizuje ciklus čitanja. Van datog koraka signali su osenčeni jer su tada neka druga dva modula gazda i sluga i vrednosti signala na magistrali nisu poznate.

CLKABUSDBUS

RDBUSFCBUS

read

ti

LL

L LLLLL

LLLLL

Slika 17 Vremenski oblici signala za ciklus čitanja

Stanje visoke impendanse, kada su svi baferi sa tri stanja magistrale zatvoreni, označeno je simbolički linijom po sredini između vrednosti logičke jedinice i nule. Po dobijanju magistrale gazda započinje ciklus čitanja tako što otvara bafere sa tri stanja preko kojih šalje signale adrese na adresne linije magistrale ABUS15...0 i neaktivnu vrednost signala na liniju magistrale RDBUS. Na sledeći signal takta gazda postavlja signal RDBUS na aktivnu

Page 45: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

39

vrednost. Pretpostavljeno je da je za dekodovanje sadržaja sa adresnih linija magistrale ABUS15...0 slugama dovoljno vreme od jedne periode signala takta gazde. Zbog toga se javlja vremenski pomak od jedne periode signala takta gazde između trenutaka kada se na magistralu šalju adresa i aktivna vrednost upravljačkog signala RDBUS. Time je u slugi koji je sadržaj sa adresnih linija ABUS15...0 prepoznao kao svoju adresu startovan ciklus čitanja, pa on otvara bafer sa tri stanja preko koga šalje neaktivnu vrednost na liniju magistrale FCBUS. Za čitanje sadržaja na strani sluge potrebno je neodređeno vreme koje se u opštem slučaju razlikuje od sluge do sluge. Zato je uzeto da gazda ostaje u stanju čekanja sve dok sluga ne završi sa čitanjem. Po završenom čitanju sluga istovremeno otvara bafere sa tri stanja preko kojih šalje signale očitanog sadržaja na linije podataka magistrale DBUS15...0 i šalje aktivnu vrednost signala na liniju magistrale FCBUS. Po detektovanju aktivne vrednosti signala FCBUS gazda upisuje sadržaj sa linija podataka magistrale DBUS15...0 u svoj prihvatni registar i postavljanjem signala RDBUS na neaktivnu vrednost šalje indikaciju slugi da mu podaci na linijama podataka magistrale DBUS15...0 više nisu potrebni. Zbog toga sluga zatvara bafere sa tri stanja preko kojih šalje signale očitanog sadržaja na linije podataka magistrale DBUS15...0 i šalje neaktivnu vrednost signala na liniju magistrale FCBUS. Posle toga sluga zatvara i bafer sa tri stanja preko koga šalje signal na liniju magistrale FCBUS. Po pojavljivanj neaktivne vrednosti signala magistrale FCBUS gazda završava ciklus čitanja time što zatvara svoje bafere sa tri stanja preko kojih propušta signale adrese na adresne linije magistrale ABUS15...0 i šalje signal na liniju magistrale RDBUS.

Vremenski oblici signala ABUS15...0, DBUS15...0, RDBUS i FCBUS koje na magistrali razmenjuju gazda i sluga prilikom realizacije ciklusa upisa dati su na slici 18. Na slici je prikazan i interni signal gazde write. Pretpostavljeno je da gazda postavlja ovaj signal na aktivnu vrednost da bi inicirao ciklus upisa, drži ga na aktivnoj vrednosti sve vreme dok čeka da dobije magistralu i dok realizuje ciklus na magistrali i postavlja na neaktivnu vrednost po završetku ciklusa na magistrali. Uz vremenske oblike signala na magistrali dat je i signal takta gazde CLK. Signali su dati za vremenski period ti u kome posmatrani modul kao gazda sa nekim modulom kao slugom realizuje ciklus upisa. Van datog koraka signali su osenčeni jer su tada neka druga dva modula gazda i sluga i vrednosti signala na magistrali nisu poznate.

CLKABUSDBUS

WRBUSFCBUS

write

ti

LL

L LLL

LLLLL

LL

Slika 18 Vremenski oblici signala za ciklus upisa

Po dobijanju magistrale gazda započinje ciklus upisa tako što otvara bafere sa tri stanja preko kojih šalje signale adrese na adresne linije magistrale ABUS15...0, signale podatka na linije podataka magistrale DBUS15...0 i neaktivnu vrednost signala na liniju magistrale RDBUS. Na sledeći signal takta gazda postavlja signal WRBUS na aktivnu vrednost. Pretpostavljeno je da je za dekodovanje sadržaja sa adresnih linija magistrale ABUS15...0 slugama dovoljno vreme od jedne periode signala takta gazde. Zbog toga se javlja vremenski pomak od jedne periode signala takta gazde između trenutaka kada se na magistralu šalju adresa i aktivna vrednost upravljačkog signala WRBUS. Time je u slugi koji je sadržaj sa adresnih linija ABUS15...0 prepoznao kao svoju adresu startovan ciklus upisa, pa on otvara bafer sa tri stanja preko koga šalje neaktivnu vrednost na liniju magistrale FCBUS. Za upis sadržaja na strani sluge potrebno je neodređeno vreme koje se u opštem slučaju razlikuje od

Page 46: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

40

sluge do sluge. Zato je uzeto da gazda ostaje u stanju čekanja sve dok sluga ne završi sa upisom. Po završenom upisu sluga šalje aktivnu vrednost signala na liniju magistrale FCBUS. Po detektovanju aktivne vrednosti signala FCBUS gazda postavljanjem signala RDBUS na neaktivnu vrednost šalje indikaciju slugi da će adresa sa adresnih linija magistrale ABUS15...0 i sadržaj sa linija podataka DBUS15...0 da budu uklonjeni. Sluga postavljanjem signala na liniju magistrale FCBUS na neaktivnu vrednost potvrđuje gazdi da mu sadržaji sa adresanih linija magistrale ABUS15...0 i linija podataka DBUS15...0 nisu više potrebni. Posle toga sluga zatvara i bafer sa tri stanja preko koga šalje signal na liniju magistrale FCBUS. Po pojavljivanj neaktivne vrednosti signala magistrale FCBUS gazda završava ciklus upisa time što zatvara svoje bafere sa tri stanja preko kojih propušta signale adrese na adresne linije magistrale ABUS15...0, signale podatka na linije podataka magistrale DBUS15...0 i šalje signal na liniju magistrale RDBUS.

Vremenski oblici signala DBUS15...0 i FCBUS, koje na magistrali razmenjuju procesor kao gazda i uređaj kao sluga, i signala inta1, inta2 ili inta3, koje po posebnim linijama koje ne pripadaju magistrali procesor šalje uređajima, prilikom realizacije ciklusa prihvaranje broja ulaza dati su na slici 19. Na slici je prikazan i interni signal gazde intack. Pretpostavljeno je da procesor postavlja ovaj signal na aktivnu vrednost da bi inicirao ciklus prihvatanje broja ulaza, drži ga na aktivnoj vrednosti sve vreme dok čeka da dobije magistralu i dok realizuje ciklus na magistrali i postavlja na neaktivnu vrednost po završetku ciklusa na magistrali. Uz vremenske oblike signala na magistrali dat je i signal takta procesora CLK. Signali su dati za vremenski period ti u kome procesor kao gazda sa nekim uređajom kao slugom realizuje ciklus prihvaranje broja ulaza. Van datog koraka signali su osenčeni jer su tada neka druga dva modula gazda i sluga i vrednosti signala na magistrali nisu poznate.

CLKDBUS

intaFCBUS

read LL

LL

LLLL

L

ti

L

L

L

Slika 19 Vremenski oblici signala za ciklus prihvatanje broja ulaza

Po dobijanju magistrale procesor započinje ciklus prihvatanje broja ulaza tako što odmah postavlja jedan od signala inta1, inta2 ili inta3 na aktivnu vrednost. Time je u uređaju koji je dobio aktivnu vrednost signala inta1, inta2 ili inta3 startovan ciklus prihvatanje broja ulaza, pa on otvara bafer sa tri stanja preko koga šalje neaktivnu vrednost na liniju magistrale FCBUS. Uređaj reaguje na aktivnu vrednost signala inta1, inta2 ili inta3 tako što otvara bafere sa tri stanja preko kojih šalje signale očitanog sadržaja registra broja ulaza na linije podataka magistrale DBUS15...0 i šalje aktivnu vrednost signala na liniju magistrale FCBUS. Po detektovanju aktivne vrednosti signala FCBUS gazda upisuje sadržaj sa linija podataka magistrale DBUS15...0 u svoj prihvatni registar i postavljanjem signala inta1, inta2 ili inta3 na neaktivnu vrednost šalje indikaciju uređaju da mu podaci na linijama podataka magistrale DBUS15...0 više nisu potrebni. Zbog toga uređaj zatvara bafere sa tri stanja preko kojih šalje signale očitanog sadržaja registra broja ulaza na linije podataka magistrale DBUS15...0 i šalje neaktivnu vrednost signala na liniju magistrale FCBUS. Posle toga uređaj zatvara i bafer sa tri stanja preko koga šalje signal na liniju magistrale FCBUS.

Page 47: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

41

4 PROCESOR U ovoj glavi se daje organizacija procesora CPU koji se sastoji iz operacione jedinice

oper_jed i upravljačke jedinice uprav_jed (slika 20).

WRBUSRDBUS

FCBUS

DBUS15...0

ABUS15...0

BUS

14

44

24

44

3

CPU

uprav_jed

oper_jed

registri interfejs

operacije prekidi

bus

hldr

inta1inta2inta3

intr1intr2intr3

hlda

inm1

44

44

24

44

43

FAULT

M15...0 U/I

Slika 20 Organizacija procesora CPU

Operaciona jedinica oper_jed je kompozicija kombinacionih i sekvencijalnih prekidačkih mreža koje služe za pamćenje binarnih reči, izvršavanje mikrooperacija i generisanje signala logičkih uslova upravljačke jedinice uprav_jed. Upravljačka jedinica uprav_jed je kompozicija kombinacionih i sekvencijalnih prekidačkih mreža koje služe za generisanje upravljačkih signala operacione jedinice oper_jed na osnovu algoritama operacija i signala logičkih uslova.

Struktura i opis operacione i upravljačke jedinice se daju u daljem tekstu.

4.1 OPERACIONA JEDINICA Operaciona jedinica oper_jed (slika 20) se sastoji od sledećih blokova: • blok registri, • blok operacije, • blok interfejs i

Page 48: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

42

• blok prekidi. Ovi blokovi su međusobno povezani internom magistralom bus koja sadrži 16 linija M15...0.

Blok registri (slike 21, 22, 23, 24 i 25) služi za realizaciju programskog brojača, prihvatnog registra instrukcije, ukazivača na vrh steka, registara ošte namene i programske statusne reči. Blok operacije (slike 26, 27, 28 i 29) služi za realizaciju aritmetičkih, logičkih, pomeračkih i mešovitih mikrooperacija. Blok interfejs (slike 30 i 31) služi za arbitraciju procesora i ulazno/izlaznih uređaja U/I sa kontrolerima za direktan pristup memoriji pri korišćenju magistrale BUS i realizaciju ciklusa na magistrali BUS kada je procesor gazda. Blok prekidi (slike 32, 33, 34, 35 i 36) služi za prihvatanje prekida i generisanje broja ulaza u tabelu sa adresama prekidnih rutina.

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

4.1.1 Blok registri

Blok registri sadrži registre PC, IRH, IRL, SP, kombinacionu mrežu KM1, flip-flop halt (slika 21), registre R0 do R15, dekoder DC, multiplekser MP1 (slika 22), registar PSW, multiplekser MP2 i kombinacionu mrežu KM2 (slike 23, 24 i 25).

Registar PC15...0 je programski brojač (slika 21). Registri IRH15...0 i IRL15...0 formiraju prihvatni registar instrukcije, pri čemu se za instrukcije dužine 32 bita koriste oba registra, a za instrukcije dužine 16 bita samo registar IRH15...0. Registar SP15...0 je ukazivač na vrh steka.

Paralelan upis i čitanje registara PC15...0, IRH15...0 i IRL15...0 se realizuje na identičan način za sva tri registra. Upis sadržaja sa interne magistrale M15...0 bus u registar PC15...0 se obavlja na signal takta ukoliko je aktivan signal PCin. Izlazi registra PC15...0 su vezani na internu magistralu M15...0 preko bafera sa tri stanja, pa se njegovo paralelno čitanje i propuštanje sadržaja na linije M15...0 obavlja aktivnom vrednošću signala PCout. Za registre IRH15...0 i IRL15...0 odgovarajući signali za paralelan upis i čitanje su IRHin, IRHout, IRLin i IRLout.

Paralelan upis i čitanje registra SP15...0 se realizuju na sličan način kao i za registre PC15...0, IRH15...0 i IRL15...0. Odgovarajući signali za paralelan upis i paralelno čitanje su SPIMin i SPIMout. Signali SPIMin i SPIMout su unija signala SPin i SPREGin, odnosno SPout i SPREGout. Paralelan upis i čitanje registra SP15...0 se normalno realizuju signalima SPin i SPout, respektivno. Samo kod izvršavanja instrukcije MVRPR upis se realizuje signalom SPREGin, a kod izvršavanja instrukcije MVRPL čitanje se realizuje signalom SPREGout. Instrukcija MVRPR služi za upus sadržaja jednog od 16 registara opšte namene R015...0 do R1515...0 u registre procesora SP15...0 i PSW15...0. Prilikom upisa u registar SP15...0 mora da je aktivan signal PRREGin i da se u razredima IRH3 do IRH0 prihvatnog registra instrukcije nalazi vrednost nula koja predstavlja adresu registra SP15...0. Instrukcija MVRPL služi za upis sadržaja registara procesora SP15...0 i PSW15...0 u jedan od 16 registara opšte namene R015...0 do R1515...0. Prilikom čitanja sadržaja redistra SP15...0 mora da je aktivan signal PRREGout i da se u razredima IRH3 do IRH0 prihvatnog registra instrukcije nalazi vrednost nula koja predstavlja adresu registra SP15...0.

Kombinaciona mreža KM1 na osnovu sadržaja registra IRH15...0 generiše signale operacija, načina adresiranja i dužine instrukcije.

Signali operacija su LOAD, STORE, …, ROLC, BEQL, …, NOP i HALT i njihove oznake odgovaraju mnemonicima odgovarajućih instrukcija (odeljak 2.1.5). Operacije se kodiraju saglasno objašnjenjima iz odeljka 2.1.5.2. Signali LOAD i STORE (tabela 9) se realizuju prema izrazima

LOAD = IRH15*IRH14*IRH13*IRH12*IRH11*IRH10 itd.,

Page 49: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

43

16

SP15…0LDMR

mr16

16 SP15...0

CLK CLK

16

16

LOADSTORE

ROLCBEQL

NOPHALT

ldst32 14

44

44

44

24

44

44

44

31

42

43

operacije

regindrindpommemdirnepsrd

M

M

uprav_jed

IRH15

IRH0

M

IRHin

16

IRH15…0LDMR

mr16

16 IRH15...0

uprav_jed

IRHoutuprav_jed

CLK CLK16

IRLin

16

IRL15…0LDMR

mr16

16 IRL15...0

uprav_jedCLK CLK

16

IRLoutuprav_jed

SPIMin

PRREGoutSPout

SPREGout

uprav_jeduprav_jed

SPIMout

PRREGin

SPin

uprav_jed SPREGin

IRH3IRH2IRH1IRH0

uprav_jed

S

CLK

Q

QRdmr

halt

CLK

sthalt

0 R

uprav_jed uprav_jed

PCin

16

PC15…0LDMR

mr16

16 PC15...0

uprav_jed

PCoutuprav_jed

CLK CLK16

M15…0

bus

16

KM1

Slika 21 Blok registri (prvi deo)

signali ADD, SUB, AND, OR i XOR (tabela 3) prema izrazima ADD = IRH15*IRH14*IRH13*IRH12 itd.,

Page 50: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

44

signali CMP i TST (tabela 8) prema izrazima CMP = IRH15*IRH14*IRH13*IRH12*IRH11*IRH10*IRH9*IRH8 itd.,

signali CLR, PUSH, POP, INC, DEC, NOT, ASR, LSR, ROR, RORC, SL, ROL i ROLC (tabela 10) prema izrazima

CLR = IRH15*IRH14*IRH13*IRH12*IRH11*IRH10* IRH9*IRH8*IRH7*IRH6*IRH5*IRH4 itd.,

signali MVRRL, MVRRR, MVRPL, MVRPR, MVRIL i MVRIR (tabela 7) prema izrazima

MVRRL = IRH15*IRH14*IRH13*IRH12*IRH11*IRH10*IRH9*IRH8 itd., signali BEQL, BNEQ, BGRT, BGRE, BLSS, BLEQ, BGRTU, BGREU, BLSSU, BLEQU, BNEG, BNNG, BOVF i BNVF (tabela 4) prema izrazima

BEQL = IRH15*IRH14*IRH13*IRH12*IRH11*IRH10*IRH9*IRH8 itd., signali JMP, INT i JSR (tabela 5) prema izrazima

JMP = IRH15*IRH14*IRH13*IRH12*IRH11*IRH10*IRH9*IRH8 itd., signal JMPRIND (tabela 6) prema izrazu

JMPRIND = IRH15*IRH14*IRH13*IRH12*IRH11*IRH10*IRH9* IRH8 i signali RTS, RTI, INTD, INTE, TRPD, TRPE, VARD, VARE, EDGD, EDGE, NOP i HALT (tabela 11) prema izrazima

RTS = IRH15*IRH14*IRH13*IRH12*IRH11*IRH10* IRH9*IRH8*IRH7*IRH6*IRH5*IRH4*IRH3*IRH2*IRH1*IRH0 itd.

Signali operacija LOAD, STORE, …, ROLC, BEQL, …, EDGE, NOP i HALT se koriste u upravljačkoj jedinici uprav_jed kao signali logičkih uslova za realizaciju odgovarajućih operacija, a signali LOAD, STORE, …, ROLC i u bloku operacije.

Signali načina adresiranja su regind za registarsko indirektno adresiranje, rindpom za registarsko indirektno adresiranje sa pomerajem, memdir za memorijsko direktno adresiranje i nepsrd za neposredno adresiranje. Načini adresiranja se kodiraju saglasno objašnjenjima iz odeljka 2.1.4 Signali regind, rindpom, memdir i nepsrd (tabela 1) se realizuju prema izrazima

regind = IRH9*IRH8 itd. Ovi signali se koriste u upravljačkoj jedinici uprav_jed kao signali logičkih uslova za realizaciju odgovarajućih načina adresiranja.

Signal dužine instrukcije je ldst32. Aktivna vrednost ovog signala je indikacija da je instrukcija dužine 32 bita, dok je u suprotnom slučaju njena dužina 16 bita. Dužina instrukcije se kodira saglasno objašnjenjima iz odeljaka 2.1.3.2 i 2.1.4. Signal ldst32 se realizuje prema izrazu

ldst32 = IRH15*IRH14*IRH13*IRH12*IRH11*(IRH9 + IRH8). Signal dužine instrukcije ldst32 se koristi u upravljačkoj jedinici uprav_jed kao signal logičkog uslova za realizaciju čitanja instrukcije odgovarajuće dužine.

Flip-flop halt svojom aktivnom vrednošću ukazuje da je instrukcija HALT izvršena. Ovaj flip-flop se postavlja aktivnom vrednošću signala sthalt. Aktivna vrednost signala halt se koristi u upravljačkoj jedinici uprav_jed da se zaustavi izvršavanje instrukcija.

Registri R015...0 do R1515...0 su registri opšte namene (slika 22). Upis sadržaja sa interne magistrale M15...0 u jedan od registara R015...0 do R1515...0 se realizuje na signal takta pri aktivnoj vrednosti signala REGin. Čitanje sadržaja jednog od registara R015...0 do R1515...0 i njegovo slanje preko bafera sa tri stanja na internu magistralu M15...0 se realizuje pri aktivnoj vrednosti signala REGout. Selekcija jednog od registara R015...0 do R1515...0 za upis ili čitanje se realizuje aktivnom vrednošću jednog od signala reg0 do reg15. Signali reg0 do reg15 se

Page 51: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

45

formiraju na izlazima dekodera DC i to na osnovu vrednosti koje se na njegove ulaze dovode sa izlaza mulripleksera MP1. Na izlazima multipleksera se pojavljuju vrednosti IRH3 do IRH0, IRH7 do IRH4 ili IRH11 do IRH8 i njihova selekcija se realizuje aktivnom vrednošću samo jednog od signala regsel1, regsel2 i regsel3, respektivno. Ovakav način selekcije jednog od registara R015...0 do R1515...0 je posledica usvojenog formata instrukcije koji predviđa da adresa registra može da bude određena poljima OP1, OP2 ili OP3 instrukcije (odeljak 2.1.3). Zbog toga se pri aktivnoj vrednosti signala REGin dobija aktivna vrednost jednog od signala R0in do R15in i upis sadržaja sa interne magistrale M15...0 realizuje u jedan od registara R015...0 do R1515...0, dok se pri aktivnoj vrednosti signala REGout dobija aktivna vrednost jednog od signala R0out do R15out i čitanje sadržaja jednog od registara R015...0 do R1515...0 i njegovo slanje preko bafera sa tri stanja na internu magistralu M15...0.

IRH0IRH4IRH8

i

7

DC

0

0123

0123

MP1

S0 S1

0123

MP1

S0 S1

0123

MP1

S0 S1

0123

MP1

S0 S1

IRH1IRH5IRH9

IRH2IRH6

IRH10

IRH3IRH7

IRH11

reg0

regi

reg15

M

REGin REGout

uprav_jed14444444444244444444443

Riin

Riout

CLK

R0in

R0out

CLK

R15in

R15out

CLK

M

regsel2regsel1 regsel3

Ri15…0LD

CLK

16

16 Ri15...0

MRmr

R015…0LD

CLK

16

16 R015...0

MR

mr

R1515…0LD

CLK

16

16 R1515...0

MRmr

M

M

busM15...0

16

16

16

16

16

Slika 22 Blok registri (drugi deo)

Page 52: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

46

Flip-flopovi PSWN, PSWZ, PSWC, PSWV, PSWL0, PSWL1, PSWE, PSWP, PSWT i PSWI formiraju razrede 0, 1, 2, 3, 4, 5, 12, 13, 14 i 15 programske statusne reči PSW15...0, dok razredi 6 do 12 nisu realizovani (slike 23, 24 i 25). Značenje ovih razreda je dato u odeljku 2.1.1. U registar PSW15...0 se može upisivati na dva načina i to ili u sve razrede istovremeno ili u grupe od jednog ili nekoliko razreda.

Upis u sve rezrede istovremeno se realizuje na signal takta tako što se na internu magistralu M15...0 postavi sadržaj koji treba upisati i generiše aktivna vrednost signala PSWIMin. Signal PSWIMin je unija signala PSWin i PSWREGin. Upis u registar PSW15...0 se normalno realizuje signalom PSWin. Samo kod izvršavanja instrukcije MVRPR upis se realizuje signalom PSWREGin. Instrukcija MVRPR služi za upis sadržaja jednog od 16 registara opšte namene R015...0 do R1515...0 u jedan od registara procesora SP15...0 i PSW15...0. Prilikom upisa u registar PSW15...0 mora da je aktivan signal PRREGin i da se u razredima IRH3 do IRH0 prihvatnog registra instrukcije nalazi vrednost jedan koja predstavlja adresu registra PSW15...0.

Upis u grupu od jednog ili nekoliko razreda registra PSW15...0 se neznatno razlikuje za pojedine grupe razreda.

Upis u razrede PSWN, PSWZ, PSWC i PSWV (slika 23) se realizuje onda kada na osnovu rezultata izvršene operacije treba ažurirati ove indikatore. Vrednosti IN, IZ, IC i IV se upisuju na signal takta generisanjem aktivna vrednost signala ldpsw.

Upis u razrede PSWL1 i PSWL0 (slika 24) se realizuje prilikom opsluživanja maskirajućih prekida. Vrednosti prl1 i prl0 se upisuju na signal takta generisanjem aktivne vrednosti signala ldpswl.

Upis u razrede PSWI, PSWT, PSWP i PSWE (slika 25) se realizuje posebnim instrukcijama (odeljak 2.1.5.1.6). Aktivna vrednost se upisuje generisanjem aktivne vrednosti signala stpswi, stpswt, stpswp ili stpswe, a neaktivna vrednost generisanjem aktivne vrednost signala clpswi, clpswt, clpswp ili clpswe.

Selekcija vrednosti za upis u registar PSW15...0 se realizuje na isti način za sve razrede. Za realizaciju razreda registra PSW15...0 koriste se D flip-flopovi. Na ulaze flip-flopova se dovode izlazi multipleksera MP2. Multiplekserima se upravlja pomoću signala PSWIMin, ldpsw, ldpswl, stpswi, stpswt, stpswp, stpswe, clpswi, clpswt, clpswp i clpswe, od kojih u datom trenutku samo jedan može da bude aktivan. Na onim multiplekserima gde je neki od ovih signala aktivan, obezbeđuje se selekcija sadržaja sa ulaza 1, 2 ili 3 multipleksera. Na svim ostalim multiplekserima obezbeđuje se selekcija sadržaja sa ulaza 0, što predstavlja trenutnu vrednost datog razreda. Time se, s obzirom da se koriste D flip-flopovi i da je signal takta stalno prisutan, pri pojavi signala takta potvrđuje vrednosti datog razreda.

Čitanje sadržaja registra PSW15...0 i njegovo slanje preko bafera sa tri stanja na internu magistralu M15...0 se obavlja aktivnom vrednošću signala PSWIMout. Signal PSWIMout je unija signala PSWout i PSWREGout. Čitanje sadržaja registra PSW15...0 se normalno realizuje signalom PSWout. Samo kod izvršavanja instrukcije MVRPL čitanje se realizuje signalom PSWREGout. Instrukcija MVRPL služi za upis sadržaja jednog od registara procesora SP15...0 i PSW15...0 u jedan od registara opšte namene R015...0 do R1515...0. Prilikom čitanja sadržaja registra PSW15...0 mora da je aktivan signal PRREGout i da se u razredima IRH3 do IRH0 prihvatnog registra instrukcije nalazi vrednost jedan koja predstavlja adresu registra PSW15...0.

Na osnovu sadržaja razreda PSWN, PSWZ, PSWC i PSWV registra PSW15...0 kombinaciona mreža KM2 generiše aktivne vrednosti signala rezultata operacija (slika 23)

Page 53: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

47

D

CLK

Q

QRd

mr

PSWV

bus

D

CLK

Q

QRd

mr

PSWZ

D

CLK

Q

QRd

mr

PSWN

M3

bus

M2

M1

bus

M0

bus

0123

MP2

S0 S1

0123

MP2

S0 S1

0123

MP2

S0 S1

0123

MP2

S0 S1

CLK

CLK

CLK

IV

ldpsw

IC

oper

acije

IZ

IN

PSWIMin

PRREGoutPSWout

PSWREGout

uprav_jeduprav_jed

PSWIMout

PRREGin

PSWin

uprav_jed PSWREGin

IRH3IRH2IRH1IRH0

uprav_jed

14

44

44

44

44

44

44

44

44

44

42

44

44

44

44

44

44

44

44

44

44

3

uprav_jed

MKM2

PSWNPSWZPSWCPSWV

eqlneq

nvf 14

24

3

uprav_jedM

D

CLK

Q

QRd

mr

PSWC

CLK

Slika 23 Blok registri (treći deo)

Page 54: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

48

D

CLK

Q

QRd

mr

PSWL1

D

CLK

Q

QRd

mr

PSWL0

bus

M5

bus

M4

0123

MP2

S0 S1

0123

MP2

S0 S1

CLK

CLK

prl1

ldpsw

prl0

prek

idi

14

44

44

42

44

44

44

3

uprav_jed prekidi

prekidi

PSWIMin PSWIMout

Slika 24 Blok registri (četvrti deo)

eql — ako je rezultat nula, neq — ako je rezultat različit od nule, grt — ako je rezultat veći od nule u aritmetici sa znakom, gre — ako je rezultat veći od nule ili jednak nuli u aritmetici sa znakom, lss — ako je rezultat manji od nule u aritmetici sa znakom, leq — ako je rezultat manji od nule ili jednak nuli u aritmetici sa znakom, grtu — ako je rezultat veći od nule u aritmetici bez znaka, greu — ako je rezultat veći od nule ili jednak nuli u aritmetici bez znaka, lssu — ako je rezultat manji od nule u aritmetici bez znaka, lequ — ako je rezultat manji od nule ili jednak nuli u aritmetici bez znaka, neg — ako je razred PSWN aktivan, nng — ako razred PSWN nije aktivan, ovf — ako je razred PSWV aktivan i nvf — ako razred PSWV nije aktivan.

Ovi signali pokazuju kakav je rezultat poslednje instrukcije koja je modifikovala razrede PSWN, PSWZ, PSWC i PSWV i realizuju se prema izrazima:

eql = PSWZ, neq = PSWZ, grt = ((PSWN ⊕ PSWV) + PSWZ) ,

gre = (PSWN ⊕ PSWV) , lss = PSWN ⊕ PSWV, leq = (PSWN ⊕ PSWV) + PSWZ, grtu = PSWC+PSWZ, greu = PSWC,

Page 55: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

49

D

CLK

Q

QRd

mr

PSWI

D

CLK

Q

QRd

mr

PSWT

bus

D

CLK

Q

QRd

mr

PSWP

D

CLK

Q

QRd

mr

PSWE

M15prekidi

M14

M13

bus

M12

bus

0123

MP2

S0 S1

0123

MP2

S0 S1

0123

MP2

S0 S1

0123

MP2

S0 S1

CLK

CLK

CLK

CLK

1

0

1

PSWIMin PSWIMout

14

44

44

44

44

44

44

44

44

44

42

44

44

44

44

44

44

44

44

44

44

3

10

0

1

0

ldpswt

ldpswi

clpswt

clpswi

ldpswp

clpswp

ldpswe

clpswe

upra

v_je

d

prekidi

prekidi

prekidi

Slika 25 Blok registri (peti deo)

lssu = PSWC, lequ = PSWC + PSWZ, neg = PSWN, nng = PSWN, ovf = PSWV i nvf = PSWV.

Page 56: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

50

Ovi signali i signal PSWP se koriste u upravljačkoj jedinici uprav_jed kao signali logičkih uslova za realizaciju instrukcija uslovnih skokova.

4.1.2 Blok operacije

Blok operacije sadrži registre X15...0 i Y15...0 (slika 26) i kombinacione mreže ALUSHIFT (slike 27, 28 i 29) i KM.

Registri X15...0 i Y15...0 služi za prihvatanje operanada nad kojima će se izvršiti neka mikrooperacija u kombinacionoj mreži ALUSHIFT (slika 26). Izlazi registara X15...0 i Y15...0 su povezani direktno na ulaze A i B kombinacione mreže ALUSHIFT. U registre X15...0 i Y15...0 se upisuje sadržaj sa interne magistrale M15...0 generisanjem aktivnih vrednosti signala Xin ili Yin, respektivno. Sadržaj registra X15...0 ili Y15...0 se preko bafera sa tri stanja šalje na internu magistralu M15...0 generisanjem aktivne vrednosti signala Xout ili Yout, respektivno.

Kombinaciona mreža ALUSHIFT realizacije aritmetičke, logičke, pomeračke i mešovite mikrooperacija (slike 27, 28 i 29). Mikrooperacije se realizuju nad sadržajima registara X15...0 i Y15...0. Mikrooperacija koju treba izvršiti specificira se upravljačkim signalima trans, add, sub, …, signext. Rezultat mikrooperacije se dobija na linijama F15...0, a u slučaju aritmetičkih mikrooperacija prenos se dobija na liniji C16. Četiri grupe mikrooperacija se realizuju u četiri posebna dela koji daju četiri grupe signala rezultata i to:

• aritmetički deo koji daje signale FART15 do FART0 za aritmetičke mikrooperacije, • logički deo koji daje signale FLOG15 do FLOG0 za logičke mikrooperacije, • pomerački deo koji daje signale FSHF15 do FSHF0 za pomeračke mikrooperacije i • mešoviti deo koji daje signale FZONE15 do FZONE0 za mešovite mikrooperacije.

Na osnovu signala mikrooperacija trans, add, sub, …, signext, od kojih samo jedan može u nekom trenutku da bude aktivan, formiraju se signali rezultata F15...0. Signali F15...0 se vode direktno u kombinacionu mrežu KM. Pored toga signali F15...0 se pri aktivnoj vrednosti signala ALUSHIFTout propuštaju preko bafera sa tri stanja na linije M15...0 interne magistrale.

Aritmetički deo (slika 28) služi za realizaciju mikrooperacija • propuštanje sadržaja registra X15...0 (signal trans aktivan), • sabiranje sadržaja registara X15...0 i Y15...0 (signal add aktivan), • oduzimanje sadržaja registara Y15...0 od registra X15...0 (signal sub aktivan), • sabiranje vrednosti jedan sa sadržajem registra X15...0 (signal inc aktivan) i • oduzimanje vrednosti jedan od sadržaja registra X15...0 (signal dec aktivan).

Svih pet mikrooperacija se realizuju pomoću paralelnog sabirača ADD i odgovarajućuh logičkih elemenata. Na ulaze A15...0 sabirača direktno se vodi sadržaj registra X15...0. Na ulaze B15...0 sabirača se selektuju

• vrednost nula za mikrooperaciju propuštanje sadržaja registra X15...0 (signal trans aktivan),

• direktna vrednost Y15...0 sadržaja registra Y15...0 za mikrooperaciju sabiranja (signal add aktivan),

• komplementarna vrednost Y15...0 sadržaja registra Y15...0 za mikrooperaciju oduzimanja (signal sub aktivan),

• sve nule za mikrooperaciju inkrementiranja (signal inc aktivan) i • sve jedinice za mikrooperaciju dekrementiranja (signal dec aktivan).

Page 57: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

51

ALUSHIFT

trans

PSWC

A B

registri

F15…0C16

16

X15…0LD

mr16

16 X15...0

Xout

CLK

16

16

MR

CLKXin

uprav_jed

busM15...0

16

Y15…0LD

mr16

16 Y15...0

Yout

CLK

16

MR

CLKYin

uprav_jed1616

addsubincdecand

orxornot

slrol

rolcasrlsrror

rorczeroones

zeroextsignext

14

44

44

44

44

44

44

44

44

24

44

44

44

44

44

44

44

44

3

upra

v_je

d

M

ALUSHIFTout

KM

X15X0 Y15

LOADSTORE

MVRRL

ROLC

IN IZ IC IV

PSWC

regi

stri

14

42

44

3

registri1442443

16

16 16 16

16uprav_jed

C16 F15…0

Slika 26 Blok operacije (prvi deo)

Na ulaz C0 sabirača se pomoću odgovarajućih logičkih elemenata selektuju • vrednost nula za mikrooperacije propuštanje sadržaja registra X15...0 (signal trans

aktivan), sabiranja (signal add aktivan) i dekrementiranja (signal dec aktivan) i

Page 58: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

52

• vrednost jedan za mikrooperacije oduzimanja (signal sub aktivan) i inkrementiranja (signal inc aktivan).

Mikrooperacija koja treba da se izvrši se određuje aktivnom vrednošću samo jednog od signala trans, add, sub, inc i dec, a rezultat i prenos se formiraju na linijama FART15...0 i C16.

aritmetičkideo

FARTi

FART0

FART15

M

logičkideo

FLOGi

FLOG0

FLOG15

M

pomeračkideo

FSHFi

FSHF0

FSHF15

M

mešovitideo

FZONEi

FZONE0

FZONE15

M

M

M

M

M

1616

1616

16

16

M

M

M

M

M

M

M

M

MC16

Fi

F15

F0

M

M

14

44

44

44

44

44

44

44

44

44

44

42

44

44

44

44

44

44

44

44

44

44

44

3

upra

v_je

d

subincdec

trans

add

andor

xornot

zeroones

zeroextsignext

X15…0Y15…0

rolrolc

rorlsrasr

sl

rorc

1616

Slika 27 Blok operacije (drugi deo)

Logički deo (slika 28) služi za realizaciju mikrooperacija • logička funkcija I nad sadržajima registara X15...0 i Y15...0 (signal and aktivan),

Page 59: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

53

FLOG15X15

Y15

FLOGiXi

Yi

FLOG0X0

Y0

M

M

M

M

M

M

LL

X15…0

B0

B15

A15…0

C16

FART15…0

C16

Y0

ADD

C0incsub

Y15

16

Yi

subdecadddec

Bi

LL

LL

L

14

24

3

uprav_jed

12

3uprav_jed

L

andor

xornot

14

24

3

uprav_jed

Slika 28 Blok operacije (treći deo)

Page 60: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

54

• logička funkcija ILI nad sadržajima registara X15...0 i Y15...0 (signal or aktivan), • logička funkcija ekskluzivno ILI nad sadržajima registara X15...0 i Y15...0 (signal xor

aktivan) i • logička funkcija komplementiranja sadržaja registra X15...0 (signal not aktivan). Sve četiri mikrooperacije se realizuju pomoću odgovarajućih logičkih elemenata posebno

za svaki od 16 razreda. Mikrooperacija koja treba da se izvrši se određuje aktivnom vrednošću samo jednog od signala and, or, xor i not, koji se koriste za selekciju rezultata jedne od četiri mikrooperacije, a rezultat se formira na linijama FLOG15...0.

Pomerački deo (slika 29) služi za realizaciju mikrooperacija • pomeranje ulevo za jedno mesto sadržaja registra X15...0 (signal sl aktivan), • rotiranje ulevo za jedno mesto sadržaja registra X15...0 (signal rol aktivan), • rotiranje ulevo kroz razred PSWC za jedno mesto sadržaja registra X15...0 (signal rolc

aktivan), • aritmetičko pomeranje udesno za jedno mesto sadržaja registra X15...0 (signal asr

aktivan), • logičko pomeranje udesno za jedno mesto sadržaja registra X15...0 (signal lsr aktivan), • rotiranje udesno za jedno mesto sadržaja registra X15...0 (signal ror aktivan) i • rotiranje udesno kroz razred PSWC za jedno mesto sadržaja registra X15...0 (signal rorc

aktivan). U slučaju tri mikrooperacije pomeranja i rotiranja ulevo aktivnom vrednošću samo jednog od signala sl, rol ili rolc se pomoću odgovarajućih logičkih elemenata na linijama FSHF15...1 i FSHF0 selektuje sadržaj sa linija X14...0 i IL, respektivno. Pri tome se aktivnom vrednošću samo jednog od signala sl, rol ili rolc na liniji IL selektuje 0, X15 ili PSWC, respektivno. U slučaju četiri mikrooperacije pomeranja i rotiranja udesno aktivnom vrednošću samo jednog od signala asr, lsr, ror ili rorc se pomoću odgovarajućih logičkih elemenata na linijama FSHF15 i FSHF14...0 selektuje sadržaj sa linija IR i X15...1, respektivno. Pri tome se aktivnom vrednošću samo jednog od signala asr, lsr, ror ili rorc na liniji IR selektuje X15, 0, X0 ili PSWC, respektivno.

Mešoviti deo (slika 29) služi za realizaciju mikrooperacija • formiranje rezultata sve nule (signal zero aktivan), • formiranje rezultata sve jedinice (signal ones aktivan), • proširivanje nulama osmobitne celobrojne vrednosti predstavljene sa donjih osam

bitova registra X15...0 na 16-bitnu vrednost rezultata (signal zeroext aktivan) i • proširivanje znakom osmobitne celobrojne vrednosti predstavljene sa donjih osam

bitova registra X15...0 na 16-bitnu vrednost rezultata (signal signext aktivan). U slučaju mikrooperacija formiranje rezultata sve nule i formiranje rezultata sve jedinice aktivnom vrednošću jednog od signala zero ili ones se pomoću odgovarajućih logičkih elemenata na linijama FZONE15...0 selektuju sve nule ili sve jedinice, respektivno. U slučaju mikrooperacija proširivanje nulama ili proširivanje znakom aktivnom vrednošću jednog od signala zeroext ili signext se pomoću odgovarajućih logičkih elemenata na linijama FZONE7...0 selektuje X7...0, a na linijama FZONE15...8 ili nule ili X7, respektivno.

Kombnaciona mreža KM generiše signale IN, IZ, IC i IV koji se upisuju u razrede PSWN, PSWZ, PSWC i PSWV registra PSW15...0 (slika 23). Ovi signali se formiraju na osnovu signala

• operacija LOAD, STORE, …, ROLC iz bloka registri, • operanada X15, X0 i Y15 iz registara X15...0 i Y15...0, • rezultata F15...0 i prenosa C16 iz ALUSHIFT i

Page 61: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

55

• razreda PSWC registra PSW15...0.

uprav_jed

M

zero

0

ones

1

zeroext

0

signext

X7

FZONE8

FZONE15

M

12

3

M

0

1

X7

X7

FZONE7

0

1

X0

X0

FZONE0

FSHF15X14

FSHFiXi−1

Xi+1

M

X1 FSHF0

IR

registri

0

X0

X15

PSWC

IL

0

X15

PSWCregistri1

44

24

43

uprav_jed

shleft

shrightasrlsrror

rorc

slrol

rolc

M

MM

M

M

M

M

Slika 29 Blok operacije (četvrti deo)

Page 62: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

56

i to prema pravilima postavljanja indikatora N, Z, C i V definisanim za svaku instrukciju posebno (odeljak 2.1.5). Instrukcije LOAD, STORE, …, ROLC postavljaju indikatore N, Z, C i V, dok instrukcije BEQL, …, EDGE, NOP, HALT ne postavljaju. Za instrukcije koje postavljaju indikatore N, Z, C i V formiraju se vrednosti signala IN, IZ, IC i IV na način prikazan u tabeli 14. U prvoj koloni tabele dati su mnemonici instrukcija. U ostalim kolonama tabele daju se pravila generisanja signala IN, IZ, IC i IV za svaku instrukciju posebno. Iz tabele se dobijaju sledeći izrazi za signale IN, IZ, IC i IV:

IN = F15 IZ = F15*F14*...*F0 IC = (LOAD + STORE + MVRRL + MVRRR + MVRPL + MVRPR + MVRIL +

MVRIR + PUSH + POP + CLR + AND + OR + XOR + TST + NOT)*PSWC + (INC + ADD)*C16 + (DEC + SUB + CMP)*C16 + (ASR + LSR + ROR + RORC)*X0 + (SL + ROL + ROLC)*X15 i

IV = ADD*(X15*Y15*F15 + X15*Y15*F15) + SUB*(X15*Y15*F15 + X15*Y15*F15) + INC*(X15*F15) + DEC*(X15*F15).

Za instrukcije koje postavljaju ove indikatore generiše se signal ldpsw kojim se upisuju vrednosti signala IN, IZ, IC i IV u razrede PSWN, PSWZ, PSWC i PSWV registra PSW15...0 (slika 23). Za instrukcije koje ne postavljaju ove indikatore ne generiše se signal ldpsw, pa se time ne menjaju vrednosti ovih razreda.

Tabela 14 Generisanje signala IN, IZ, IC i IV

Instrukcija IN IZ IC IV LOAD STORE MVRRL MVRRR MVRPL MVRPR MVRIL MVRIR PUSH POP CLR

F15

F15*F14*...*F0

PSWC

0

INC ADD

F15 F15

F15*F14*...*F0 F15*F14*...*F0

C16 C16

X15*F15 X15*Y15*F15 + X15*Y15*F15

DEC SUB CMP

F15

F15*F14*...*F0

C16

X15*F15 X15*Y15*F15 + X15*Y15*F15 X15*Y15*F15 + X15*Y15*F15

AND OR XOR TST NOT

F15

F15*F14*...*F0

PSWC

0

ASR LSR ROR RORC

F15

F15*F14*...*F0

X0

0

SL ROL ROLC

F15

F15*F14*...*F0

X15

0

Page 63: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

57

4.1.3 Blok interfejs

Blok interfejs sadrži registre MAR15...0 i MDR15...0 sa multiplekserom MP, kombinacione i sekvencijalne mreže za arbitraciju pri korišćenju magistrale BUS (slika 30) i kombinacione i sekvencijalne mreže za realizaciju ciklusa na magistrali BUS kada je procesor gazda (slika 31).

MARin

16

MAR15…0LD

16

16 MAR15...0

uprav_jed

DBUS15…0

OEwriteOWread

16

01MPS0

1616

MDR15…0LDMR

mr16

16 MDR15...0

OEwrite

MARoutuprav_jed

MDRoutuprav_jed

CLK CLK

CLK CLK

16

MDRin

ldMDR

uprav_jed

16ABUS15…0

BUS

BUS

16

16

M15…0

bus

16

16

1616 16

16 16 16

readwrite

intackuprav_jeduprav_jeduprav_jed

enFFC

FHOLDD

CLK

Q

Q

hldr

CLK

U/I

Rd

mr

FHOLD

hldr

CLK

S

CLK

Q

QRd

mr

hlda

hldaU/I

run

enrwi

readuprav_jed OEread

OEwritewriteuprav_jed

uprav_jed

R

MRmr

Slika 30 Blok interfejs (prvi deo)

Registar MAR15…0 je 16-razredni adresni registar, čiji se sadržaj normalno koristi pri realizaciji ciklusa čitanja ili upisa na magistrali BUS (slika 30). Adresa se iz nekog od

Page 64: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

58

blokova operacione jedinice oper_jed po linijama M15…0 interne magistrale bus vodi na ulaze registra MAR15…0 i u njega upisuje generisanjem aktivne vrednosti signala MARin. Pri realizaciji ciklusa čitanja ili upisa formiraju se aktivne vrednosti signala OEread i ORwrite, respektivno, čime se sadržaj registra MAR15…0 propušta kroz bafere sa tri stanja na adresne linije ABUS15…0 magistrale BUS. Pored toga, sadržaj registra MAR15…0 se, generisanjem aktivne vrednosti signala MARout, propušta kroz bafere sa tri stanja na linije M15…0 interne magistrale bus i vodi na ulaze registara blokova operacione jedinice oper_jed.

Registar MDR15…0 je 16-razredni registar podatka, čiji se sadržaj normalno koristi pri realizaciji ciklusa čitanja, upisa ili prihvatanja broja ulaza na magistrali BUS. Generisanjem aktivne vrednosti jednog od signala MDRin i ldMDR u registar MDR15…0 se upisuje sadržaj sa izlaza multipleksera MP. Pri realizaciji ciklusa čitanja ili prihvatanja broja ulaza generišu se neaktivna vrednost signala MDRin i aktivna vrednost signala ldMDR, čime se sadržaj sa linija podataka DBUS15…0 magistrale BUS propušta kroz multiplekser MP i upisuje u registar DR15…0. Pri realizaciji ciklusa upisa generiše se aktivna vrednosti signala MDRin i neaktivna vrednost signala ldMDR, čime se sadržaj sa linija M15…0 interne magistrale bus propušta kroz multiplekser MP i upisuje u registar MDR15…0. Po završetku ciklusa čitanja ili prihvatanja broja ulaza sadržaj registra MDR15…0 se, generisanjem aktivne vrednosti signala MDRout, propušta kroz bafere sa tri stanja na linije M15…0 interne magistrale bus. Pri ciklusu upisa, sadržaj registra MDR15…0 se, generisanjem aktivne vrednosti signala OEwrite, propušta kroz bafere sa tri stanja na linije podataka DBUS15…0 magistrale BUS.

Multiplekser MP se sastoji od 16 multipleksera sa dva ulaza. Na ulaze 0 i 1 multipleksera MP dovodi se sadržaj sa linijama M15…0 interne magistrale bus i sadržaj sa linija podataka DBUS15…0 magistrale BUS, respektivno. Selektovanje sadržaja se obavlja signalom MDRin.

Kombinacione i sekvencijalne mreže za arbitraciju pri korišćenju magistrale BUS na osnovu signal read,write i intack iz upravljačke jedinice uprav_jed procesora CPU i hldr iz uređaja U/I sa kontrolerom za direktan pristup memoriji formiraju signale enrwi i hlda. Aktivan vrednost signala enrwi predstavlja indikaciju da procesor može da realizuje neki od svojih ciklusa na magistrali, a aktivna vrednost signala hlda da to može da učini kontroler.

Procesor, kada se nađe u koraku u kome treba da realizuje ciklus čitanja, upisa ili prihvatanja broja ulaza na magistrali, generiše aktivnu vrednost jednog od signala read, write ili intack. Procesor ostaje u datom koraku i drži aktivnu vrednost datog signala sve dok se ne obavi kompletan ciklus na magistrali. Aktivna vrednost signala enrwi je indikacija da magistrala nije dodeljena kontroleru i da procesor može da krene sa realizacijom ciklusa na magistrali. Aktivne vrednosti signala OEread i OEwrite se koriste u ciklusima čitanja i upisa, respektivno, za otvaranje bafera sa tri stanja i slanje odgovarajućih sadržaja na adresne linije ABUS15...0, linije podatka DBUS15...0 i upravljačke linije RDBUS i WRBUS magistrale. Neaktivna vrednost signala enrwi je indikacija da je magistrala dodeljena kontroleru i da procesor ne može da krene sa realizacijom nekog od svojih ciklusa na magistrali.

Kontroler, kada se nađe u koraku u kome treba da realizuje ciklus čitanja ili upisa, upućuje procesoru zahtev korišćenja magistrale postavljanjem signala hldr na aktivnu vrednost. Kontroler drži aktivnu vrednost ovog signala sve vreme dok čeka da dobije dozvolu korišćenja magistrale i dok realizuje neki od svojih ciklusa na magistrali. Aktivna vrednost jednog od signala read, write ili intack je indikacija da procesor trenutno realizuje neki od svojih ciklusa na magistralu, pa zato procesor drži neaktivnu vrednost signala hlda i time ne daje kontroleru dozvolu korišćenja magistrale. Neaktivne vrednosti signala read, write ili intack su indikacija da procesor nema potrebu da realizuje neki od svojih ciklusa na magistrali, pa zato procesor daje kontroleru dozvolu korišćenja magistrale postavljanjem

Page 65: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

59

signala hlda na aktivnu vrednost. Po završetku ciklusa na magistrali kontroler ukida zahtev postavljanjem signala hldr na neaktivnu vrednost, na šta procesor ukida dozvolu postavljanjem signala hlda na neaktivnu vrednost.

Signal hldr dolazi od kontrolera asinhrono u odnosu na signal takta procesora. Stoga se on najpre na signal takta procesora upisuje u flip-flop FHOLD, pa se tek signal FHOLD koristi za formiranje signala hlda, enrwi, OEread i OEwrite. Postavljanje flip-flopa FHOLD na aktivnu vrednost je samo indikacija da postoji zahtev korišćenja magistrale od strane kontrolera. Dozvola korišćenja magistrale je data kontroleru od strane procesora tek kada se flip-flop hlda postavi na aktivnu vrednost. Koliko brzo će se to desiti po postavljanju flip-flopa FHOLD na aktivnu vrednost zavisi od vrednosti signala run. Ukoliko je signal run aktivan, na sledeći signal takta flip-flop hlda se postavlja na aktivnu vrenost i formira neaktivna vrednost signala enrwi. Ukoliko je signal run neaktivan, to znači da je neki od ciklusa procesora na magistrali u toku i da je neki od signala read, write ili intack aktivan, pa nema postavljanja flip-flopa hlda na aktivnu vrednost. Zbog toga je signal hlda neaktivan, a signal enrwi aktivan.

Po završetku ciklusa procesora na magistrali generiše se aktivna vrednost signala enFFC (slika 31) trajanja jedna perioda signala takta, pa se formira aktivna vrednost signala run trajanja jedna perioda signala takta. Na osnovu aktivne vrednosti signala run, flip-flop hlda se na sledeći signal takta postavlja na aktivnu vrednost i formira neaktivna vrednost signala enrwi. Takođe, na osnovu aktivne vrednosti signala run, upravljačka jedinica uprav_jed napušta korak u kome je bila dok je trajao ciklus procesora na magistrali. Time se ukida aktivna vrednost odgovarajućeg signala read, write ili intack , čime se obezbeđuje da signal run ostaje aktivan.

Aktivna vrednost signala run će ostati sve dok procesor ponovo ne dođe u neki od svojih koraka u kome treba da realizuje neki od svoja tri moguća ciklusa na magistrali. Tada se javlja aktivna vrednost jednog od signala read, write ili intack, pa signal run postaje neaktivan.

Kontroler po završetku ciklusa na magistrali ukida aktivnu vrednost signala hldr. Na prvi signal takta flip-flop FHOLD se postavlja na neaktivnu vrednost, čime signal enrwi postaje aktivan. Na sledeći signal takta flip-flop hlda se postavlja na neaktivnu vrednost, čime se kontroleru ukida dozvola korišćenja magistrale.

Procesor i kontroler se mogu naći u pet različitih situacija vezano za korišćenje magistrale.

Situacija 1. Procesor je na signal takta prešao u korak u kome treba da realizuje jedan od svoja tri ciklusa na magistrali, zbog čega je jedan od signala read, write ili intack postao aktivan. Sve vreme dok je procesor u datom koraku i realizuje odgovarajući ciklus na magistrali kontroler ne šalje zahtev za korišćenje magistrale i drži neaktivnu vrednost signala hldr.

Zbog neaktivne vrednosti signala hldr u flip-flopovima FHOLD i hlda su sve vreme neaktivne vrednosi, pa je sve vreme signal enrwi aktivan a signal hlda neaktivan. Zbog aktivne vrednosti signala enrwi procesor odmah prelazi na realizaciju odgovarajućeg ciklusa na magistrali (slika 31). Ako se pri tome radi o ciklusu čitanja ili upisa, pa su aktivni signali read ili write, formira se i aktivna vrednost signala OEread ili OEwrite, respektivno. Za vreme trajanja ciklusa na magistrali jedan od signala read, write ili intack je aktivan a signal enFFC neaktivan, pa je tada signal run neaktivan. Po završetku ciklusa procesora na magistrali generiše se aktivna vrednost signala enFFC trajanja jedna perioda signala takta, pa se formira aktivna vrednost signala run trajanja jedna perioda signala takta. Na osnovu aktivne vrednosti signala run, upravljačka jedinica uprav_jed napušta korak u kome je bila

Page 66: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

60

dok je trajao ciklus procesora na magistrali. Time se ukida aktivna vrednost odgovarajućeg signala read, write ili intack, pa ukoliko se radilo o ciklusu čitanja ili upisa, signal OEread ili OEwrite postaje neaktivan, respektivno.

Situacija 2. Procesor je na signal takta prešao u korak u kome treba da realizuje jedan od svoja tri ciklusa na magistrali, zbog čega je jedan od signala read, write ili intack postao aktivan. Prvih nekoliko signala takta dok je procesor u datom koraku i realizuje odgovarajući ciklus na magistrali kontroler ne šalje zahtev za korišćenje magistrale i drži neaktivnu vrednost signala hldr. Međutim, nešto kasnije dok ciklus procesora na magistrali još uvek traje, kontroler šalje zahtev korišćenja magistrale postavljanjem signala hldr na aktivnu vrednost. Pošto je neki od ciklusa procesora na magistrali u toku, procesor, najpre, završava ovaj ciklus pa tek onda daje dozvolu kontroleru postavljanjem signala hlda na aktivnu vrednost.

Na početku je neaktivna vrednost signala hldr i neaktivne vrednosi u flip-flopovima FHOLD i hlda, pa je tada signal enrwi aktivan a signal hlda neaktivan. Zbog aktivne vrednosti signala enrwi procesor odmah prelazi na realizaciju odgovarajućeg ciklusa na magistrali (slika 31). Ako se pri tome radi o ciklusu čitanja ili upisa, pa su aktivni signali read ili write, formira se i aktivna vrednost signala OEread ili OEwrite, respektivno. Za vreme trajanja ciklusa na magistrali jedan od signala read, write ili intack je aktivan a signal enFFC neaktivan, pa je tada signal run neaktivan. Kada u toku trajanja ciklusa procesora na magistrali signal hldr postane aktivan, na sledeći takta flip-flop FHOLD se postavlja na aktivnu vrednost. Međutim, s obzirom da je tada signal run neaktivan, nema postavljanja flip-flopa hlda. Zbog toga vrednosti signala enrwi, hlda, OEread i OEwrite ostaju nepromenjene. Aktivnom vrednošću signala enrwi se obezbeđuje da procesor produži sa realizacijom započetog ciklusa na magistrali, a neaktivnom vrednošću signala hlda kontroleru se ne dozvoljava da započne neki od svojih ciklusa na magistrali. Dozvola korišćenja magistrale se daje kontroleru tek pošto procesor kompletira ciklus na magistrali. Po završetku ciklusa procesora na magistrali generiše se aktivna vrednost signala enFFC trajanja jedna perioda signala takta, pa se formira aktivna vrednost signala run trajanja jedna perioda signala takta. Na osnovu aktivne vrednosti signala run, flip-flop hlda se na sledeći signal takta postavlja na aktivnu vrednost i formira neaktivna vrednost signala enrwi. Takođe, na osnovu aktivne vrednosti signala run, upravljačka jedinica uprav_jed napušta korak u kome je bila dok je trajao ciklus procesora na magistrali. Time se ukida aktivna vrednost odgovarajućeg signala read, write ili intack, pa signal run ostaje aktivan. Ako je procesor završio ciklus čitanja ili upisa signal OEread i OEwrite postaje neaktivan. Aktivnom vrednošću signala hlda dozvola korišćenja magistrale je data kontroleru, a neaktivnom vrednošću signala enrwi procesor se sprečava da eventualno ponovo započne neki od svojih ciklusa na magistrali.

Situacija 3. Kontroler šalje zahtev korišćenja magistrale postavljanjem signala hldr na aktivnu vrednost, procesor mu daje dozvolu postavljanjem signal hlda na aktivnu vrednost, kontroler realizuje neki od svojih ciklusa na magistrali i pri tome drži aktivnu vrednost signala hldr sve vreme dok ne obavi ciklus na magistrali, po obavljenom ciklusu kontroler ukida zahtev postavljanjem signala hldr na neaktivnu vrednost i na kraju procesor mu ukida dozvolu postavljanjem signal hlda na neaktivnu vrednost. Sve to vreme signali read, write i intack su neaktivni jer procesor nije došao u neki od koraka u kojima treba da realizuje neki od svojih ciklusa na magistrali.

Na početku su neaktivne vrednosti signala read, write, intack i hldr. Zbog neaktivnih vrednosti signala read, write i intack, signal run je aktivan sve vreme, a signali OEread i

Page 67: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

61

OEwrite neaktivni. Zbog neaktive vrednosti signala hldr u flip-flopovima FHOLD i hlda su neaktivne vrednosti. Zato je na početku signal hlda je neaktivan, a signal enrwi je aktivan. Kada signal hldr postane aktivan, na prvi signal takta upisuje se aktivna vrednost u flip-flop FHOLD, a na drugi signal takta, s obzirom da je signal run aktivan, i u flip-flop hlda. Time signal hlda postaje aktivan, a signal enrwi neaktivan. Aktivnom vrednošću signala hlda dozvola korišćenja magistrale je data kontroleru, a neaktivnom vrednošću signala enrwi procesor se sprečava da eventualno započne neki od svojih ciklusa na magistrali. Kontroler, pošto je dobio dozvolu korišćenja magistrale, realizuje neki od svojih ciklusa na magistrali. Po završetku ciklusa na magistrali kontroler postavlja signal hldr na neaktivnu vrednost. Na prvi signal takta upisuje se neaktivna vrednost u flip-flop FHOLD, čime signal enrwi postaje ponovo aktivan. Na drugi signal takta upisuje se neaktivna vrednost u flip-flop hlda, čime signal hlda postaje neaktivan. Time se procesor, pošto je kontroler obavio ciklus na magistrali, vraća u početno stanje u kome je signal enrwi aktivan, a signal hlda neaktivan.

Situacija 4. Kontroler šalje zahtev korišćenje magistrale postavljanjem signala hldr na aktivnu vrednost, procesor mu daje dozvolu postavljanjem signal hlda na aktivnu vrednost, kontroler realizuje neki od svojih ciklusa na magistrali i pri tome drži aktivnu vrednost signala hldr sve vreme dok ne obavi ciklus na magistrali, po obavljenom ciklusu kontroler ukida zahtev postavljanjem signala hldr na neaktivnu vrednost i na kraju procesor mu ukida dozvolu postavljanjem signal hlda na neaktivnu vrednost. U početku su sva tri signala read, write i intack neaktivni, što znači da procesor nije došao u neki od svojih koraka u kojima treba da realizuje neki od svojih ciklusa na magistrali. Međutim, nešto kasnije, kada je dozvola korišćenje magistrale već data kontroleru i kada je njegov ciklus na magistrali u toku, procesor dolazi u neki od svojih koraka u kojima treba da realizuje neki od svojih ciklusa na magistrali, pa jedan od signala read, write ili intack postaje aktivan. Pošto je neki od ciklusa kontrolera na magistrali u toku, procesor, najpre, dozvoljava kontroleru da završi započeti ciklus pa tek onda kreće sa realizacijom svog ciklusa.

Na početku su neaktivne vrednosti signala read, write, intack i hldr. Zbog neaktivnih vrednosti signala read, write i intack, signal run je aktivan sve vreme, a signali OEread i OEwrite neaktivni. Zbog neaktive vrednosti signala hldr u flip-flopovima FHOLD i hlda su neaktivne vrednosti. Zato je na početku signal hlda je neaktivan, a signal enrwi je aktivan. Kada signal hldr postane aktivan, na prvi signal takta upisuje se aktivna vrednost u flip-flop FHOLD, a na drugi signal takta, s obzirom da je signal run aktivan, i u flip-flop hlda. Time signal hlda postaje aktivan, a signal enrwi neaktivan. Aktivnom vrednošću signala hlda dozvola korišćenja magistrale je data kontroleru, a neaktivnom vrednošću signala enrwi procesor se sprečava da eventualno započne neki od svojih ciklusa na magistrali. Kontroler, pošto je dobio dozvolu korišćenja magistrale, kreće sa realizacijom nekog od svojih ciklusa na magistrali. Ako u toku trajanja ciklusa kontrolera na magistrali procesor pređe u neki od koraka u kome treba da realizuje neki od svojih ciklusa na magistrali jedan od signala read, write ili intack postaje aktivan. Međutim, to ne izaziva promenu vrednosti signal hlda i enrwi, pa signal hlda i dalje ostaje aktivan, a signal enrwi neaktivan. Aktivnom vrednošću signala hlda se obezbeđuje da kontroler produži sa realizacijom započetog ciklusa na magistrali, a neaktivnom vrednošću signala enrwi procesoru se ne dozvoljava da započne neki od svojih ciklusa na magistrali. Ovakvo stanje traje sve dok kontroler ne ukine zahtev postavljanjem signala hldr na neaktivnu vrednost. Na prvi signal takta upisuje se neaktivna vrednost u flip-flop FHOLD, pa time signal enrwi postaje aktivan. Tada su aktivni i signali OEread ili OEwrite ako su aktivni signali read ili write, respektivno. Na sledeći signal takta signal hlda postaje neaktivan. Aktivnom vrednošću signala enrwi dozvola korišćenja

Page 68: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

62

magistrale je data procesoru, a neaktivnom vrednošću signala hlda kontroler se sprečava da eventualno ponovo započne neki od svojih ciklusa na magistrali.

Situacija 5. Procesor i kontroler istovremeno zahtevaju korišćenje magistrale. To se dešava kada na isti signal takta i jedan od signala read, write ili intack postaje aktivan, jer je procesor prešao na korak u kome treba da realizuje neki od svojih ciklusa na magistrali, i flip-flop FHOLD postaje aktivan, jer kontroler aktivnom vrednošću signala hldr traži dozvolu korišćenja magistrale. Ciklus na magistrali najpre realizuje procesor, a kontroler za to vreme i dalje drži aktivnu vrednost signala hldr. Po završetku ciklusa procesora na magistrali ukida se aktivna vrednost jednog od signala read, write ili intack i dozvola korišćenja magistrale daje kontroleru. Po završetku ciklusa kontrolera na magistrali ukida sa aktivna vrednost signala hldr.

Na početku su neaktivne vrednosti signala read, write, intack i hldr. Zbog neaktivnih vrednosti signala read, write i intack, signal run je aktivan, a signali OEread i OEwrite neaktivni. Zbog neaktive vrednosti signala hldr u flip-flopovima FHOLD i hlda su neaktivne vrednosti. Zato je na početku signal enrwi aktivan, a signal hlda neaktivan. Na neki signal takta procesor prelazi u korak u kome treba da realizuje neki od svojih ciklusa na magistrali. Na taj signal takta jedan od signala read, write i intack postaje aktivan, pa se tada formira i neaktivna vrednost signala run. Na isti signal takta u flip-flop FHOLD se upisuje aktivna vrednost, jer se u međuvremenu pojavila aktivna vrednost signala hldr. Posle ovog signala takta ostaje aktivna vrednost signala enrwi i neaktivna vrednost signala hlda. Aktivnom vrednošću signala enrwi se dozvola korišćenja magistrale daje procesoru, a neaktivnom vrednošću signala hlda kontroler se sprečava da eventualno započne neki od svojih ciklusa na magistrali. Dozvola korišćenja magistrale se daje kontroleru tek pošto procesor kompletira ciklus na magistrali. Po završetku ciklusa procesora na magistrali generiše se aktivna vrednost signala enFFC trajanja jedna perioda signala takta, pa se formira aktivna vrednost signala run trajanja jedna perioda signala takta. Na osnovu aktivne vrednosti signala run, flip-flop hlda se na sledeći signal takta postavlja na aktivnu vrednost i formira neaktivna vrednost signala enrwi. Takođe, na osnovu aktivne vrednosti signala run, upravljačka jedinica uprav_jed napušta korak u kome je bila dok je trajao ciklus procesora na magistrali. Time se ukida aktivna vrednost odgovarajućeg signala read, write ili intack, pa signal run ostaje aktivan. Ako je procesor završio ciklus čitanja ili upisa signal OEread ili OEwrite postaje neaktivan, respektivno. Aktivnom vrednošću signala hlda dozvola korišćenja magistrale je data kontroleru, a neaktivnom vrednošću signala enrwi procesor se sprečava da eventualno ponovo započne neki od svojih ciklusa na magistrali. Kontroler, pošto je dobio dozvolu korišćenja magistrale, realizuje neko od svojih ciklusa na magistrali. Po završetku ciklusa na magistrali kontroler postavlja signal hldr na neaktivnu vrednost. Na prvi signal takta upisuje se neaktivna vrednost u flip-flop FHOLD, čime signal enrwi postaje ponovo aktivan. Na drugi signal takta upisuje se neaktivna vrednost u flip-flop hlda, čime signal hlda postaje neaktivan. Time se procesor, pošto je kontroler obavio ciklus na magistrali, vraća u početno stanje u kome je signal enrwi aktivan, a signal hlda neaktivan.

Kombinacione i sekvencijalne mreže za realizaciju ciklusa na magistrali u kojima je procesor gazda formiraju signale RDBUS i WRBUS magistrale BUS, signal inta bloka prekidi i signale ldMDR i enFFC (slika 31). Ovi signali se formiraju na osnovu signala read, write i intack, koje generiše upravljačka jedinica uprav_jed, i signala FCBUS, koji dolazi sa magistrale.

Page 69: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

63

read

CLK CLK

S

R

CLK

Q

QRd

mr

DrdbusS

R

CLK

Qrdbus

Rd

mr

rdbus

RDBUS

OEreadBUS

strdbus

DrdbusQ

uprav_jed

enrwi

FFCD

CLK

Q

Q

CLK

Rd

mr

enFFC

ldMDR

FFCCLK

D

CLK

Q

QRd

mr

DFFC

DFFC

readuprav_jed

intackuprav_jed

write

CLKCLK

S

R

CLK

Q

QRd

mr

S

R

CLK

Qwrbus

Rd

mr

WRBUSBUS

OEwrite

stwrbus Dwrbus

DwrbusQ

uprav_jed

intack

CLKCLK

S

R

CLK

Q

QRd

mr

S

R

CLK

Qintast

Rd

mr

intaprekidi

stinta Dintast

DintastQ

uprav_jed

FCBUSfcBUS

Slika 31 Blok interfejs (drugi deo)

Da bi procesor kao gazda započeo realizaciju ciklusa čitanja na magistrali mora da budu aktivne vrednosti signala read i enrwi. Pri aktivnim vrednostima ovih signala procesor kao gazda prvo izbacuje adresu na adresne linije ABUS15...0 magistrale i potom, generisanjem aktivne vrednosti upravljačkog signala RDBUS magistrale, startuje u slugi, koji može da bude memorija ili kontroler nekog od ulazno/izlaznih uređaja, čitanje adresirane memorijske

Page 70: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

64

lokacije ili adresiranog registra kontrolera. Sluga po završenom čitanju izbacuje sadržaj na linije podataka DBUS15...0 magistrale i formira aktivnu vrednost upravljačkog signala FCBUS magistrale. Posle toga procesor kao gazda upisuje sadržaj sa linija podataka magistrale u registar podatka i postavlja signal RDBUS na neaktivnu vrednost. Na kraju sluga uklanja podatak sa linija podataka magistrale i postavlja signal FCBUS na neaktivnu vrednost.

Da bi procesor kao gazda započeo realizaciju upisa na magistrali mora da budu aktivne vrednosti signala write i enrwi. Pri aktivnim vrednostima ovih signala procesor kao gazda prvo izbacuje adresu na adresne linije ABUS15...0 i podatak na linije podataka DBUS15...0 magistrale i potom, generisanjem aktivne vrednosti upravljačkog signala WRBUS magistrale, startuje u slugi, koji može da bude memorija ili kontroler nekog od ulazno/izlaznih uređaja, upis u adresiranu memorijsku lokaciju ili adresirani registar kontrolera. Sluga po završenom upisu formira aktivnu vrednost upravljačkog signala FCBUS magistrale. Posle toga procesor kao gazda uklanja adresu i podatak sa adresnih linija i linija podatak magistrale i postavlja signal WRBUS na neaktivnu vrednost. Na kraju sluga postavlja signal FCBUS na neaktivnu vrednost.

Da bi procesor kao gazda započeo realizaciju ciklusa prihvatanja broja ulaza na magistrali mora da budu aktivne vrednosti signala intack i enrwi. Pri aktivnim vrednostima ovih signala procesor kao gazda, generisanjem aktivne vrednosti signala inta, startuje u slugi, koji može da bude kontroler nekog od ulazno/izlaznih uređaja, čitanje registra broja ulaza kontrolera. Sluga po završenom čitanju izbacuje sadržaj na linije podataka DBUS15...0 magistrale i formira aktivnu vrednost upravljačkog signala FCBUS magistrale. Posle toga procesor kao gazda upisuje sadržaj sa linija podataka magistrale u registar podatka i postavlja signal inta na neaktivnu vrednost. Na kraju sluga uklanja podatak sa linija podataka magistrale i postavlja signal FCBUS na neaktivnu vrednost.

Aktivna vrednost signala read je indikacija da je upravljačka jedinica uprav_jed u koraku u kome treba da se realizuje ciklus čitanja. Aktivna vrednost signala enrwi je indikacija da je dozvola koriščenja magistrale u posedu procesora i da ciklus čitanja može da se realizuje (slika 31). Na signal takta od koga su signali read i enrwi postali istovremeno aktivni, formira sa aktivna vrednost signala OEread (slika 30). Signalom OEread se pušta na adresne linije magistrale ABUS15...0 sadržaj adresnog registra procesora MAR15...0 i na upravljačku liniju magistrale RDBUS neaktivna vrednost signala rdbus. Aktivne vrednosti signala enrwi, read i Drdbus daju aktivnu vrednost signala strdbus. Zbog toga se na sledeći signal takta flip-flop rdbus postavlja na aktivnu vrednost, pa i signal RDBUS postaje aktivan. Time se ostvaruje zahtevani vremenski pomak od jedne periode signala takta između trenutka pojavljivanja adrese na adresnim linijama ABUS15...0 magistrale i aktivne vrednosti signala na upravljačkoj liniji RDBUS magistrale. Na sledeći signal takta flip-flop Drdbus postaje aktivan, pa se formira neaktivna vrednost signala strdbus.

Sledeća promena se dešava kada sluga postavljanjem signala na upravljačkoj liniji magistrale FCBUS na aktivnu vrednost pošalje indikaciju procesoru kao gazdi da je čitanje obavljeno i da se podatak nalazi na linijama podataka DBUS15...0 magistrale. Na sledeća dva signala takta, najpre se flip-flop FFC postavlja na aktivnu vrednost, a zatim flip-flop rdbus na neaktivnu i flip-flop DFFC na aktivnu vrednost. Postavljanjem signala rdbus na neaktivnu vrednost i signal RDBUS postaje neaktivnan. Signalima read, FFC i DFFC se u slučaju ciklusa čitanja pri prelasku signala FFC sa neaktivne na aktivnu vrednost formira aktivna vrednost signala ldMDR trajanja jedna perioda signala takta. Ovim signalom se obezbeđuje upisivanje očitanog sadržaja sa linija podataka magistrale u registar podatka procesora MDR15...0 (slika 30).

Page 71: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

65

Na postavljanje signala RDBUS na neaktivnu vrednost reaguje sluga postavljanjem linija podataka DBUS15...0 u stanje visoke impedanse i signala FCBUS na neaktivnu vrednost. Na sledeća dva signala takta, najpre se flip-flop FFC, a zatim i flip-flop DFFC postavlja na neaktivnu vrednost. Signalima enrwi, FFC i DFFC se pri prelasku signala FFC sa aktivne na neaktivnu vrednost formira aktivna vrednost signala enFFC trajanja jedna perioda signala takta. Aktivnom vrednošću signala enFFC se na signal takta upisuje neaktivna vrednost u flip-flop Drdbud. Pored toga, pri aktivnoj vrednosti signala enFFC signal run postaje aktivan, čime se upravljačkoj jedinici uprav_jed omogućuje prelazak na sledeći korak (slika 30). U njemu se signal read postavlja na neaktivnu vrednost, što izaziva formiranje neaktivnih vrednosti signala OEread i prelazak adresnih linija ABUS15...0 i upravljačke linije RDBUS u stanje visoke impedanse.

Realizacija ciklusa upisa na strani procesora kao gazdi je veoma slična sa realizacijom ciklusa čitanja. Razlika je u tome što upravljačka jedinica uprav_jed generiše signal write umesto signala read, pa se umesto signala OEread formira signal OEwrite (slika 30). Time se sadržaji adresnog registra MAR15..0 i registra podatka MDR15..0 procesora puštaju na adresne linije ABUS15...0 i linije podataka DBUS15...0 magistrale, respekivno. Pored toga, umesto upravljačkog signala RDBUS magistrale formira se upravljački signala WRBUS magistrale.

Realizacija ciklusa prihvatanja broja ulaza na strani procesora kao gazdi je veoma slična sa realizacijom ciklusa čitanja. Razlika je u tome što upravljačka jedinica uprav_jed generiše signal intack umesto signala read. Za adresiranje registra broja ulaza nekog od kontrolera kao sluge ne koriste se adresne linije magistrale i neki upravljački signal magistrale. Umesto toga se od signala takta na koji su signali intack i enrwi postali istovremeno aktivni, formira aktivna vrednost signala inta. Ovaj signal se dalje preko bloka prekidi po posebnim linijama inta1, inta2 i inta3 vodi direktno u svaki od kontrolera (slika 35).

Sledeća promena se dešava kada kontroler kao sluga postavljanjem signala na upravljačkoj liniji magistrale FCBUS na aktivnu vrednost pošalje indikaciju procesoru kao gazdi da je čitanje registra broja ulaza obavljeno i da se broj ulaza nalazi na linijama podataka DBUS15...0 magistrale. Na sledeća dva signala takta, najpre se flip-flop FFC postavlja na aktivnu vrednost, a zatim flip-flop intast na neaktivnu i flip-flop DFFC na aktivnu vrednost. Postavljanjem signala intast na neaktivnu vrednost i signal inta postaje neaktivan. Signalima intack, FFC i DFFC se u slučaju prihvatanja broja ulaza pri prelasku signala FFC sa neaktivne na aktivnu vrednost formira aktivna vrednost signala ldMDR trajanja jedna perioda signala takta. Ovim signalom se obezbeđuje upisivanje očitanog sadržaja sa linija podataka magistrale u registar podataka procesora MDR15...0 (slika 30).

Na postavljanje signala inta na neaktivnu vrednost reaguje kontroler kao sluga postavljanjem linija podataka DBUS15...0 u stanje visoke impedanse i signala FCBUS na neaktivnu vrednost. Na sledeća dva signala takta, najpre se flip-flop FFC, a zatim i flip-flop DFFC postavlja na neaktivnu vrednost. Signalima enrwi, FFC i DFFC se pri prelasku signala FFC sa aktivne na neaktivnu vrednost formira aktivna vrednost signala enFFC trajanja jedna perioda signala takta. Aktivnom vrednošću signala enFFC se na signal takta upisuje neaktivna vrednost u flip-flop Drdbud. Pored toga, pri aktivnoj vrednosti signala enFFC signal run postaje aktivan, čime se upravljačkoj jedinici uprav_jed omogućuje prelazak na sledeći korak. U njemu se signal intack postavlja na neaktivnu vrednost.

4.1.4 Blok prekidi

Blok prekidi sadrži logički I element i kombinacione i sekvencijalne mreže za prihvatanje unutrašnjih prekida (slike 32 i 33), prihvatanje spoljašnjih nemaskirajućih i maskirajućih

Page 72: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

66

prekida (slike 32, 34 i 35) i formiranje broja ulaza za unutrašnje i spoljašnje nemaskirajuće i maskirajuće prekide (slike 32 i 36).

Logički ILI element služi za formiranje signala prekida prekid (slika 32). Ovaj signal ima aktivnu vrednost ukoliko je aktivan barem jedan od signala prekida. To može da bude neki od signala unutrašnjih prekida i to PRINS za prekid zbog izvršavanja instrukcije prekida INT, PRCOD za prekid usled čitanja instrukcije sa nepostojećim kodom operacije i PRADR za prekid pri čitanju instrukcije sa neposrednim adresiranjem za odredišni operand, zatim signal spoljašnjeg prekida PRINM zbog generisanja nemaskirajućeg prekida, potom signal spoljašnjeg prekida prirr zbog prisustva nekog od maskirajućih prekida i na kraju signal unutrašnjeg prekida PSWT usled prekida zbog zadatog režim rada procesora prekid posle svake instrukcije.

maskirajući prekidi

14

42

44

3

regi

stri

intaPSWI

PSWL1PSWL0

prl1prl0

nemaskirajućiprekidi

unutrašnjiprekidi

prirr

PSWT

PRINMPRADRPRCODPRINS

14

44

24

44

31

42

43

IRH15

IRH0

M

regi

stri

upra

v_je

d

FAULTinm

interfejs

M15...0

bus

inta1 inta2 inta3intr1 intr2 intr3

broj ulaza

irm1 irm2 irm3

16

registri

16

16

PRINM

PRADRPRCODPRINS

prekid

U/I

14444444444244444444443

Slika 32 Blok prekidi (prvi deo)

Kombinacione i sekvencijalne mreže za prihvatanje unutrašnjih zahteva za prekid (slike 32 i 33) se sastoje od flip-flopova PRINS, PRCOD i PRADR i kombinacione mreže KM.

Flip-flop PRINS pamti unutrašnji zahtev za prekid izazvan izvršavanjem instrukcije prekida INT. Ovaj flip-flop se postavlja na aktivnu vrednost signalom stprins po očitavanju instrukcije sa kodom operacije instrukcije INT i na neaktivnu vrednost signalom clprins u okviru opsluživanja ovog zahteva za prekid.

Page 73: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

67

S

R

CLK

Q

QRd

mr

PRCODuprav_jedKM

grop

CLK

S

R

CLK

Q

QRd

mr

stprins

clprins

PRINS

14

24

3

CLK

uprav_jed

uprav_jed

S

R

CLK

Q

QRd

mr

stpradr

clpradr

PRADR

14

24

3

CLK

uprav_jed

uprav_jed

ldprcod

clprcod

12

3uprav_jed

IRH0

IRH15

M

12

3registri

Slika 33 Blok prekidi (drugi deo)

Flip-flop PRCOD pamti unutrašnji zahtev za prekid zbog čitanja instrukcije sa nepostojećim kodom operacije. Kombinaciona mreža KM formira aktivnu ili neaktivnu vrednost signala grop u zavisnosti od toga da li je po očitavanju instrukcije otkriven ili nije otkriven nepostojeći kod operacije. Pri aktivnoj vrednosti signala ldprcod upisuje se vrednost signala grop u flip-flop PRCOD. Ovaj flip-flop se postavlja na neaktivnu vrednost signalom clprcod u okviru opsluživanja ovog zahteva za prekid.

Flip-flop PRADR pamti unutrašnji zahtev za prekid zbog korišćenja neposrednog adresiranja za odredišni operand. Flip-flop PRADR se postavlja na aktivnu vrednost signalom stpradr koji se generiše ukoliko je po očitavanju instrukcije otkriveno korišćenja neposrednog adresiranja za odredišni operand. Ovaj flip-flop se postavlja na neaktivnu vrednost signalom clpradr u okviru opsluživanja ovog zahteva za prekid.

Signali PRINS, PRCOD i PRADR se koriste u upravljačkoj jedinici upra_jed kao signali logičkih uslova prilikom opsluživanja prekida.

Kombinacione i sekvencijalne mreže za prihvatanje spoljašnjih nemaskirajućih i maskirajućih prekida (slika 32) se sastoje od flip-flopova PINM, PRINM, PINTR1, PINTR2, PINTR3, PRIRR1, PRIRR2 i PRIRR3, multipleksera MP1, MP2 i MP3 (slika 34), registra maske IMR15...0, kodera prioriteta CD, komparatora CMP, dekodera DC i logičkih elemenata (slika 35).

Flip-flopovi PINM i PRINM služe za prihvatanje spoljašnjeg nemaskirajućeg zahteva za prekid inm. Zahtev za prekid inm dolazi od uređaja FAULT kao impuls i pamti se u flip-flopu PINM na prvi signal takta. Kasnije se pri aktivnoj vrednosti signala ldprcod prenosi u flip-flop PRINM. Ovo se dešava samo jednom u toku izvršavanja jedne instrukcije. Flip-flopovi PINM i PRINM se postavljaju na neaktivnu vrednost aktivnom vrednošću signala clinm u okviru opsluživanja ovog zahteva za prekid.

Page 74: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

68

S

R

CLK

Q

QRd

mr

clirr

S

R

CLK

Q

QRd

mr

S

R

CLK

Q

QRd

mr

PSWL1

registri

intr1

PSWL0

PSWL1PSWL0

PSWL1PSWL0

U/I

intr2U/I

intr3U/I

0

1

MP3

S0

PSWE

0

1

MP2

S0

PSWE

0

1

MP1

S0

PSWE

PINTR3

PINTR2

PINTR1

12

31

23

12

3

registri

registri

regi

stri

regi

stri

regi

stri

CLK

CLK

CLK

uprav_ jed

inmFAULT S

R

CLK

Q

QRd

mr

clinm

ldprcoduprav_ jed

uprav_ jed

CLK

PINM

SINTR3

SINTR2

SINTR1

S

R

CLK

Q

QRd

mr

PRIRR3

S

R

CLK

Q

QRd

mr

S

R

CLK

Q

QRd

mr

PRIRR2

PRIRR1

CLK

CLK

CLK

S

R

CLK

Q

QRd

mr

PRINMuprav_jed

CLK

intr3

intr2

intr1

Slika 34 Blok prekidi (treći deo)

Flip-flopovi PINTR1, PINTR2, PINTR3, PRIRR1, PRIRR2 i PRIRR3 i multiplekseri MP1, MP2 i MP3 služe za prihvatanje spoljašnjih maskirajućih zahteva za prekid intr1, intr2 i intr3. Zahtevi za prekid intr1, intr2 i intr3 dolaze od ulazno/izlaznih uređaja U/I kao nivo ili impuls. Način njihovog prihvatanje na strani procesora određen je razredom PSWE programskog statusnog registra PSW15…0. Aktivna i neaktivna vrednost razreda PSWE određuju da li

Page 75: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

69

maskirajući zahtevi za prekid dolaze kao impuls i nivo, respektivno. Kada maskirajući zahtevi za prekid po linijama intr1, intr2 i intr3 dolaze kao impulsi, pamte se u flip-flopovima za prihvatanje prekida PINTR1, PINTR2 i PINTR3, respektivno. U obradi prekida koriste se sadržaji flip-flopova PINTR1, PINTR2 i PINTR3. Kada maskirajući zahtevi za prekid dolaze po linijama intr1, intr2 i intr3 kao nivo, onda nema potrebe da se oni pamte u flip-flopovima. U obradi prekida koriste se direktno sadržaji na linijama intr1, intr2 i intr3. Kroz dvoulazne multipleksere MP1, MP2 i MP3 propuštaju se vrednosti signala intr1, intr2 i intr3 ukoliko zahtevi za prekid dolaze kao nivo i vrednosti signala PINTR1, PINTR2 i PINTR3 ukoliko zahtevi za prekid dolaze kao impuls. Selekcija vrednosti signala intr1, intr2 i intr3 ili vrednosti signala PINTR1, PINTR2 i PINTR3 kroz multipleksere MP1, MP2 i MP3 ostvaruje se neaktivnom i aktivnom vrednošću razreda PSWE registra PSW15...0, respektivno. Generisanjem aktivne vrednosti signala ldprcod vrednosti signala SINTR1, SINTR2 i SINTR3 sa izlaza multipleksera MP1, MP2 i MP3 se upisuju u flip-flopove PRIRR1, PRIRR2 i PRIRR3, respektivno. Ovo se dešava samo jednom u toku izvršavanja jedne instrukcije. Kada se u okviru opsluživanja zahteva za prekid prihvati neki od maskirajućih zahteva za prekid odgovarajući flip-flop PRIRR1, PRIRR2 i PRIRR3 se postavlja na neaktivnu vrednost. Ukoliko su zahtevi za prekid bili poslati kao impuls i odgovarajući flip-flop PINTR1, PINTR2 i PINTR3 se postavlja na neaktivnu vrednost. Ukoliko su zahtevi za prekid bili poslati kao nivo, ulazno/izlazni uređaj, koji po jednoj od linija inta1, inta2 i inta3 dobije signal potvrde od procesora, po odgovarajućoj liniji intr1, intr2 i intr3 ukida svoj zahtev za prekid. Postavljanje odgovarajućeg para flip-flopova PRIRR1 i PINTR1, PRIRR2 i PINTR2 i PRIRR3 i PINTR3 na neaktivnu vrednost se realizuje tako što se u okviru opsluživanja spoljašnjeg maskirajućeg zahteva za prekid generiše aktivna vrednost signala clPRIRR. S obzirom da signali PSWISL1 i PSWISL0 daju binarnu vrednost jedne od linija intr1, intr2 i intr3 po kojoj je prihvaćeni zahtev za prekid stigao, ovi signali se koriste da selektuju odgovarajući par flip-flopova PRIRR1 i PINTR1, PRIRR2 i PINTR2 i PRIRR3 i PINTR3 koji se signalom clirr postavlja na neaktivnu vrednost.

Registar maske IMR15…0, koder CD, komparator CMP, dekoder DC i logički elementi služe za formiranje signala maskirajućih prekida prirr i signala potvrda inta1, inta2 i inta3 (slika 35).

Registar maske IMR15…0 služi za pojedinačno maskiranje spoljašnjih maskirajućih zahteva za prekid intr1, intr2 i intr3. Zahtevima za prekid intr1, intr2 i intr3 odgovaraju razredi IMR1, IMR2 i IMR3 registra maske IMR15…0, dok se preostali razredi ne koriste. Upis sadržaja sa linija M15…0 interne magistrale u registar IMR15…0 se obavlja ukoliko je aktivan signal IMRIMin. Upis u registar IMR15…0 se realizuje samo kod izvršavanja instrukcije MVRIR. Instrukcija MVRIR služi za upis sadržaja jednog od 16 registara opšte namene R015...0 do R1515...0 u jedan od registara procesora IMR15…0 i IVTP15…0. Prilikom upisa u registar IMR15…0 mora da je aktivan signal INTREGin i da se u razredima IRH3 do IRH0 prihvatnog registra instrukcije nalazi vrednost nula, koja predstavlja adresu registra IMR15…0. Čitanje sadržaja registra IMR15...0 i njegovo slanje preko bafera sa tri stanja na internu magistralu M15...0 se obavlja aktivnom vrednošću signala IMRIMout. Čitanje sadržaja registra IMR15...0 se realizuje samo kod izvršavanja instrukcije MVRPL. Instrukcija MVRPL služi za upis sadržaja jednog od registara procesora IMR15…0 i IVTP15…0 u jedan od registara opšte namene R015...0 do R1515...0. Prilikom čitanja sadržaja registra IMR15…0 mora da je aktivan signal INTREGout i da se u razredima IRH3 do IRH0 prihvatnog registra instrukcije nalazi vrednost nula, koja predstavlja adresu registra IMR15…0.

Page 76: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

70

interfejs

3210

CD10

0123

DC

E

01

a0a1

CMP

A>B

b0b1

irm3irm2irm1

imrprirr

prl0prl1

inta1inta2inta3

12

3

PSWL0PSWL1

prirruprav_jed accprirr

PRIRR3

PRIRR2

PRIRR1IMR1IMR2IMR3

PSWIre

gist

ri

14

42

44

3

regi

stri

inta

IMRIMin

16

IMR15…0LD

mr16

16 IMR15...0

CLK

1616

IMRIMout

MR

CLK

16M15...0

bus

IRH1IRH0

INTREGin

INTREGout

upra

v_je

d 12

3

IRH3IRH2

12

3

U/I

Slika 35 Blok prekidi (četvrti deo)

Signal maskirajućeg prekida prirr ima aktivnu vrednost ukoliko signali imrprirr, accprirr i PSWI imaju aktivne vrednosti. Signal imrprirr ima aktivnu vrednost ukoliko je aktivna vrednost barem jednog od signala irm1, irm2 ili irm3. Ovo će se desiti ukoliko se barem u jednom od flip-flopova PRIRR1, PRIRR2 i PRIRR3 (slika 34) nalazi aktivna vrednost i ukoliko je u odgovarajućem razredu IMR1, IMR2 i IMR3 registra maske IMR15...0 takođe aktivna vrednost. Signal accprirr na izlazu komparatora CMP ima aktivnu vrednost ukoliko je prioritet pristiglog spoljašnjeg maskirajućeg zahteva za prekid najvišeg prioriteta koji nije maskiran viši od prioriteta tekućeg programa. Prioritet pristiglog spoljašnjeg maskirajućeg zahteva za prekid najvišeg prioriteta koji nije maskiran određen je signalima prl1 i prl0 na izlazu kodera prioriteta CD, dok je prioritet tekućeg programa određenog signalima PSWL1 i PSWL0 registra PSW15...0 (slika 24). Signal PSWI dolazi sa izlaza odgovarajućeg razreda registra PSW15...0 i njegovom aktivnom i neaktivnom vrednošću se dozvoljavaju i maskiraju svi maskirajući prekidi (slika 25).

Signali potvrda inta1, inta2 i inta3 šalju se ulazno/izlaznim uređajima U/I u slučaju kada je signal PSWP aktivan. Signal PSWP dolazi sa izlaza odgovarajućeg razreda registra PSW15...0

Page 77: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

71

i njegovom aktivnom i neaktivnom vrednošću se zadaju režimi rada sa promenljivim i fiksnim ulazima u tabelu sa adresama prekidnih rutina za spoljašnje maskirajuće prekide koji dolaze od ulazno/izlaznih uređaja (slika 25). Slanje jednog od signala potvrde inta1, inta2 i inta3 odgovarajućem ulazno/izlaznom uređaju U/I je indikacija da je zahtev za prekid prihvaćen i da sada ulazno/izlazni uređaj treba da pošalje svoj broj ulaza u tabelu sa adresama prekidnih rutina. Signali potvrde inta1, inta2 i inta3 se formiraju na izlazima dekodera DC pri pojavi aktivne vrednisti signala inta. Signal inta se pojavljuje onda kada je procesor u okviru opsluživanja prekida došao u stanje kada treba da dobije od ulazno/izlaznog uređaja broj ulaza u tabelu sa adresama prekidnih rutina i kada je blok interfejs spreman da ga prihvati sa linija podataka sistemske magistrale. Signal inta se prosleđuje kao jedan od signala inta1, inta2 i inta3 ulazno/izlaznom uređaju najvišeg prioriteta koji je uputio zahtev za prekid a on nije maskiran registrom maske. Selekcija ulazno/izlaznog uređaja kojem se prosleđuje signal potvrde inta je određena vrednostima signala prl1 i prl0 sa ulaza dekodera DC.

Kombinacione i sekvencijalne mreže za formiranje broja ulaza za unutrašnje i spoljašnje nemaskirajuće i maskirajuće prekide (slike 32) se sastoje od registra IVTP i kodera CD1 i CD2 (slike 32 i 36).

IVTPIMinIVTP15…0LD

IVTPIMout

upra

v_je

d

16

mr16

16 IVTP15...0

CLK

16

MR

CLK

16M15...0

bus

16

1616

BRUNMSKout

BRUMASKout

3210

CD2 10

irm1irm2irm3

INTREGin

INTREGout

14

24

3

IVTPREGout

IVTPout

IRH1

IRH0

IRH3IRH2

regi

stri

14

24

3

16

14

24

3

BRUMASK15…0

162

0 15...3

11

0

13

16

14

24

3

BRUNMSK15…0

163210

CD1

PSWTPRINMPRADRPRCOD

registri

10

2

0

0 1315…3

10

Slika 36 Blok prekidi (peti deo)

Registar IVTP15...0 je ukazivač na tabelu sa adresama prekidnih rutina i sadrži početnu adresu tabele. Upis sadržaja sa linija M15..0 interne magistrale u registar IVTP15...0 se obavlja ukoliko je aktivan signal IVTPIMin. Upis u registar IVTP15...0 se realizuje samo kod izvršavanja instrukcije MVRIR. Instrukcija MVRIR služi za upis sadržaja jednog od 16 registara opšte namene R015...0 do R1515...0 u jedan od registara IMR15...0 i IVTP15...0. Prilikom upisa u registar IVTP15...0 mora da je aktivan signal INTREGin i da se u razredima IRH3 do IRH0 prihvatnog registra instrukcije nalazi vrednost nula koja predstavlja adresu registra IVTP15...0. Čitanje sadržaja registra IVTP15...0 i njegovo slanje preko bafera sa tri stanja na

Page 78: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

72

internu magistralu M15...0 se obavlja aktivnom vrednošću signala IVTPIMout. Signal IVTPIMout je unija signala IVTPout i IVTPREGout. Čitanje sadržaja registra IVTP15...0 se normalno realizuje signalom IVTPout. Samo kod izvršavanja instrukcije MVRIL čitanje sadržaja registra IVTP15...0 se realizuje signalom IVTPREGout. Instrukcija MVRIL služi za upis sadržaja jednog od registara IMR15...0 i IVTP15...0 u jedan od 16 registara opšte namene R015...0 do R1515...0. Tada prilikom čitanja sadržaja registra IVTP15...0 mora da je aktivan signal INTREGout i da se u razredima IRH3 do IRH0 prihvatnog registra instrukcije nalazi vrednost nula koja predstavlja adresu registra IVTP15...0.

Koder CD1 služi za formiranje broja ulaza u tabelu sa adresama prekidnih rutina za unutrašnje prekide i spoljašnji nemaskirajući prekid. Ovi prekidi su određeni signalima na izlazima flip-flopova PSWT za unutrašnji prekid usled zadatog režima rada prekid posle svake instrukcije, PRINM za spoljašnji nemaskirajući prekid, PRADR za unutrašnji prekid zbog korišćenja neposrednog adresiranja za odredišni operand i PRCOD za unutrašnji prekid zbog čitanja instrukcije sa nepostojećim kodom operacije. Signali sa izlaza flip-flopova PSWT, PRINM, PRADR i PRCOD dovedeni su na ulaze 0 do 3 kodera prioriteta CD1 po rastućim prioritetima. Na izlazu kodera dobija se broj zahteva za prekid najvišeg prioriteta binarno kodiran. Ova dvobitna vrednost se preko bafera sa tri stanja pušta na internu magistralu M15…0 aktivnom vrednošću signala BRUNMSKout kao dva najniža bita broja ulaza. Bitovi 2 do 15 broja ulaza imaju vrednost 0 i puštaju se preko bafera sa tri stanja na internu magistralu M15…0 aktivnom vrednošću signala BRUNMSKout. Ovim se dobijaju brojevi ulaza od 0 do 3.

Koder CD2 služi za formiranje broja ulaza u tabelu sa adresama prekidnih rutina za spoljašnje maskirajuće prekide intr1, intr2 i intr3 u slučaju kada su ulazi za ove prekide fiksni što je određeno neaktivnom vrednošću razreda PSWP registra PSW15...0. Signali spoljašnjih maskirajućih prekida intr1, intr2 i intr3 posle eventualnog maskiranja razredima IMR1, IMR2 i IMR3 registra maske IMR15...0 pojavljuju se kao signali irm1, irm2 i irm3 (slike 34 i35). Ovi signali se vode na ulaze 1, 2 i 3 kodera prioriteta CD2 po rastućim prioritetima. Na izlazu kodera dobija se broj zahteva za prekid najvišeg prioriteta binarno kodiran. Ova dvobitna vrednost se preko bafera sa tri stanja pušta na internu magistralu M15…0 aktivnom vrednošću signala BRUMASKout kao dva najniža bita broja ulaza. Bit 2, koji ima vrednost 1 i bitovi 3 do 15, koji imaju vrednost 0, puštaju se preko bafera sa tri stanja na internu magistralu M15…0 aktivnom vrednošću signala BRUMASKout. Ovim se dobijaju brojevi ulaza od 5 do 7.

4.2 UPRAVLJAČKA JEDINICA U ovom odeljku se daju dijagram toka operacija, algoritam generisanja upravljačkih

signala i realizacija upravljačke jedinice.

4.2.1 Dijagram toka operacija

Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 37). U operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim blokovima se nalaze opisi logičkih uslova koji definišu grananja algoritma.

U početnom koraku dijagram toka operacija vrši se provera da li je procesor zaustavljen ili ne. Ako je procesor zaustavljen ostaje se u početnom koraku i čeka startovanje procesora. Ako procesor nije zaustavljen prelazi se na korake u kojima se realizuje faza čitanje instrukcije.

Page 79: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

73

Da li je procesorzaustavljen ?

0

1

Čitanje prve reči instrukcije

Čitanje druge reči instrukcije

Da li je dužinainstrukcije dve reči ?

0

1

Da li je kod operacijenepostojeći ?

1

0

Izvršavanje operacija

Da li se radi o instrukcijiSTORE sa neposrednim

adresiranjem ?0

1

Da li se radi o instrukcijikoja ne reaguje na

prekid ?1

0

Da li postoji zahtev zaprekid ?

0

1

Podešavanje vrednostiprogramskog brojača

Čuvanje konteksta procesora

Utvrđivanje adrese prekidnerutine

Slika 37 Dijagram toka operacija

U okviru faze čitanje instrukcije najpre se čita prva reč instrukcije. Potom se, ukoliko je dužina instrukcije dve reči, čita i druga reč instrukcije. Na kraju ove faze se vrši provera da li je očitana instrukcija sa nepostojećim kodom operacije. Ukoliko nije prelazi se na fazu izvršavanje operacija, a ukoliko jeste na fazu opsluživanje prekida.

U okviru faze izvršavanje operacija se najpre vrši provera koda operacije i potom prelazi na korake koji odgovaraju specificiranoj operaciji. Postoji osam grupa operacija. Prva grupa operacija odgovara instrukcijama prenosa. U okviru ovih operacija se instrukcijama LOAD i STORE ostvaruju prenosi iz različitih izvorišta u registre opšte namene procesora i obrnuto, dok se ostalim instrukcijama ostvaruju prenosi iz različitih programski dostupnih registara procesora, kao što su ukazivač na vrh steka, registar maske itd., u registe opšte namene procesora i obrnuto. Druga grupa operacija odgovara aritmetičkim insrtrukcijama. Njima se realizuju aritmetičke operacije sabiranje, odizimanje itd. nad sadržajima registara opšte namene. Treća grupa operacija odgovara logičkim instrukcijama. Njima se realizuju logičke operacije I, ILI itd. nad sadržajima registara opšte namene. Četvrta grupa operacija odgovara instrukcijama pomeranja i rotiranja. Njima se realizuju operacije aritmetičkog i logičkog pomeranja, rotiranja itd. ulevo i udesno nad sadržajem registra opšte namene. Peta grupa operacija odgovara instrukcijama skoka. Njima se realizuju bezuslovni i uslovni skok u

Page 80: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

74

programu, skok na potprogram itd. Šesta grupa operacija odgovara instrukcijama postavljanja indikatora u PSW. Njima se postavljanjem određenih bitova programske statusne reči procesora PSW na aktivne i neaktivne vrednosti zadaju odgovarajući režimi rada procesora. Sedma grupa operacija odgovara instruciji bez dejstva. Njome se ne proizvodi nikakvo dejstvo. Osma grupa operacija odgovara instruciji zaustavljanja. Njome se zaustavlja procesor.

U okviru faze izvršavanje operacije instrukcija LOAD i STORE se, saglasno specificiranom načinu adresiranja, dolazi do adrese operanda. Za instrukciju STORE nije dozvoljeno da se kao odredište specificira neposredna veličina, pa se, ukoliko se to desi, odmah prelazi na fazu opsluživanje prekida. Za sve ostale instrukcije nema specificiranja načina adresiranja za operande, jer su registri opšte namene implicitna izvorišta i odredišta operanada.

Posle faze izvršavanje operacije u opštem slučaju treba da se pređe na fazu opsluživanje prekida ukoliko je u toku faze čitanje instrukcije i faze izvršavanje operacije stigao neki zahtev za prekid. U tom slučaju se kaže da instrukcija reaguje na prekid. U slučaju razmatranog procesora najveći broj instrukcija reaguje na prekid. Međutim, određen broj instrukcija ne reaguje na prekid. Zbog toga se po završetku faze izvršavanje operacije za instrukcije koje ne reaguju na prekid prelazi na početni korak i time kreće sa fazom čitanje instrukcije sledeće instrukcije. Za instrukcije koje reaguju na prekid vrši se provera da li postoji zahtev za prekid. Ukoliko ne postoji zahtev za prekid prelazi se na početni korak i time kreće sa fazom čitanje instrukcije sledeće instrukcije. Ukoliko postoji zahtev za prekid izvršavanje tekuće instrukcije se produžava tako što se prelazi na fazu opsluživanje prekida.

U okviru faze opsluživanje prekida, najpre, se vrši podešavanje vrednosti programskog brojača. Time se postiže da za prekide zbog nelegalnog koda operacije i nelegalnog načina adresiranja programski brojač sadrži adresu prve reči instrukcije u toku čijeg izvršavanja se pojavio neki od ova dva prekida. Za sve ostale prekide programski brojač sadrži adresu prve reči prve sledeće instrukcije koja bi se izvršavala da u toku izvršavanja instrukcije nije bilo nekog od ovih prekida. Posle toga se u okviru čuvanja konteksta procesora na stek stavljaju programski brojač i programska statusna reč. Na kraju se utvrđuja adresa prekidne rutine. U okviru toga se, najpre, dobija broj ulaza u tabelu sa adresama prekidnih rutina. Potom se, na osnovu broja ulaza i vrednosti ukazivača na tabelu sa adresama prekidnih rutina, dobija adresa memorijske lokacije sa koje se čita adresa prekidne rutine i upisuje u programski brojač. Time je izvršavanje instrukcije koja reaguje na prekid za slučaj kada postoji zahtev za prekid završeno, pa se prelazi na početni korak i time kreće sa fazom čitanje prve instrukcije prekidne rutine.

4.2.2 Algoritam generisanja upravljačkih signala

Algoritam generisanja upravljačkih signala je formiran na osnovu dijagrama toka operacija (slika 37) i dat u obliku sekvence upravljačkih signala po koracima (tabela 15).

U sekvenci upravljačkih signala po koracima se koriste iskazi za signale i skokove. Iskazi za signale su oblika

signali. Ovaj iskaz sadrži spisak upravljačkih signala blokova operacione jedinice oper_jed i određuje koji se signali bezuslovno generišu. Iskazi za skokove su oblika

br stepA, br (if uslov then stepA) i br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn).

Page 81: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

75

Prvi iskaz sadrži korak stepA na koji treba bezuslovno preći i u daljem tekstu se referiše kao bezuslovni skok. Drugi iskaz sadrži signal uslov i korak stepA i određuje korak stepA na koji treba preći ukoliko signal uslov ima aktivnu vrednost i u daljem tekstu se referiše kao uslovni skok. Treći iskaz sadrži signale uslov1, ..., uslovn i korake stepA1, ..., stepAn i određuje na koji od koraka stepA1, ..., stepAn treba preći u zavisnosti od toga koji od signala uslov1, ..., uslovn ima aktivnu vrednost i u daljem tekstu se referiše kao višestruki uslovni skok.

Tabela 15 Sekvenca upravljačkih signala po koracima ! Sekvenca upravljačkih signala po koracima ima tri celine koje odgovaraju fazama čitanje instrukcije, izvršavanje operacije i opsluživanje prekida. Faza čitanje instrukcije se realizuje u koracima step00 do step09 koji su zajednički za sve instrukcije. Faza izvršavanje operacije se realizuje u koracima step0A do stepC2 i koraku stepF0, pri čemu postoje posebni koraci za svaku instrukciju. Tako, na primer, za instrukciju LOAD to su koraci step0A do step16, za instrukciju STORE koraci step17 do step23 itd. Faza opsluživanje prekida se realizuje u koracima stepC3 do stepE5. !

! U koracima se normalno ostaje jedna perioda signala takta. U koraku step00 se ostaje jedna perioda signala takta ukoliko procesor nije zaustavljen i više perioda signala takta ukoliko je zaustavljen. U koracima u kojima se realizuju ciklusi na magistrali ostaje se onoliko perioda signala takta koliko je neophodno da se dati ciklus realizuje. To važi za korake step01, step04 itd. u kojima se generisanjem aktivne vrednosti signala read u bloku interfejs inicira realizacija ciklusa čitanja, korake step1F, step39 itd. u kojima se generisanjem aktivne vrednosti signala write u bloku interfejs inicira realizacija ciklusa upisa i korak stepDB u kome se generisanjem aktivne vrednosti signala intack u bloku interfejs inicira realizacija ciklusa prihvatanje broja ulaza. !

! Čitanje instrukcije !

! Kroz korake step00, step01, step02 i step03 se prolazi sekvencijalno. Iz koraka step03 se prelazi na step07 ukoliko je signal ldst32 bloka registri aktivan i na step04 ukoliko je neaktivan. Signalom PCout se sadržaj registra PC15..0 bloka registri pušta na linije M15...0 interne magistrale bus. Signalima MARin i Xin se sadržaj M15...0 upisuje u registre MAR15...0 bloka interfejs i X15...0 bloka operacije, respektivno. Signalom read bloka interfejs se startuje ciklus čitanja na sistemskoj magistrali BUS. Signalima MDRout i IRHin sadržaj registra MDR15...0 bloka interfejs se pušta na linije M15...0 i upisuje u registar IRH15...0 bloka registri, respektivno. Time je očitana prva reč instrukcije i smeštena u registar IRH15...0. Signalom inc bloka operacije se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaja registra X15...0 uvećan za jedan, a signalom ALUSHIFTout se dati sadržaja pušta na linije M15...0. Signalima PCin, MARin i Xin se sadržaj M15...0 upisuje u registre PC15..0, MAR15..0 i X15..0, respektivno. Time je posle čitanja prve reči instrukcije realizovano inkrementiranje vrednosti programskog brojača PC. U registru PC15..0 se nalazi adresa prve reči sledeće instrukcije, ukoliko je dužina tekuće instrukcije jedna reč, i adresa druge reči tekuće instrukcije, ukoliko je dužina tekuće instrukcije dve reči. Ova vrednost je upisana i u registre MAR15..0 i X15..0, a koristiće se ukoliko je dužina instrukcije dve reči. !

step00 PCout, MARin, Xin; step01 read; step02 MDRout, IRHin; step03 inc, ALUSHIFTout, PCin, MARin, Xin,

br (if ldst32 then step07); ! U korak step04 se dolazi iz step03 ukoliko je dužina instrukcije dve reči, na šta ukazuje aktivna vrednost signala ldst32. Kroz korake step04, step05 i step06 se prolazi sekvencijalno. U registru MAR15..0 se već nalazi adresa druge reči instrukcije, pa se signalima read, MDRout i IRLin ona čita i smešta u registar IRL15..0 bloka registri. U registru X15..0 se već nalazi adresa druge reči instrukcije, pa se signalima inc, ALUSHIFTout i PCin realizuje inkrementiranje vrednosti programskog brojača PC. Time se u registru PC15..0 nalazi adresa prve reči sledeće instrukcije.

step04 read; step05 MDRout, IRLin; step06 inc, ALUSHIFTout, PCin;

Page 82: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

76

! U korak step07 se dolazi iz step03 ukoliko je dužina instrukcije jedna reči, na šta ukazuje neaktivna vrednost signala ldst32 i step06 ukoliko je dužina instrukcije dve reči. Kroz korake step07 i step08 se prolazi sekvencijalno. Signalom ldprcod se u flip-flop PRCOD bloka prekidi upisuje neaktivna ili aktivna vrednost u zavisnosti od toga da li ne postoji ili postoji greška u kodu operacije. Pored toga signalom ldprcod flip-flopovi PRIRR3, PRIRR2, PRIRR1 i PRINM bloka registri se postavljaju na odgovarajuće vrednosti u zavisnosti od toga da li se do tog trenutka pojavio neki od spoljašnjih maskirajućih prekida ili spoljašnji nemaskirajući prekid. Iz koraka step08 se prelazi na stepC3 ukoliko je signal PRCOD bloka registri aktivan i na step09 ukoliko je neaktivan. !

step07 ldprcod; step08 br (if PRCOD then stepC3);

! Izvršavanje operacije !

! U korak step09 se dolazi iz step08 ukoliko ne postoji greška u kodu operacije, na šta ukazuje neaktivna vrednost signala PRCOD. U koraku step09 se realizuje višestruki uslovni skok na jedan od koraka step0A, step17, ..., stepF0 u zavisnosti od toga koji od signala operacija LOAD, STORE, ..., HALT ima aktivnu vrednost. !

step09 br (case (LOAD, STORE, MVRRL, MVRRR, MVRPL, MVRPR, MVRIL, MVRIR, PUSH, POP, CLR, ADD, SUB, CMP, INC, DEC, AND,OR, XOR, TST, NOT, ASR, LSR, ROR, RORC, SL, ROL, ROLC, BEQL, BNEQ, BGRT, BGRE, BLSS, BLEQ, BGRTU, BGREU, (BLSSU, BLEQU, BNEG, BNNG, BOVF, BNVF, JMP, INT, (JSR, RTS, RTI, JMPRIND, INTD, INTE, TRPD, TRPE, VARD, VARE, EDGD, EDGE, NOP, HALT) then (LOAD, step0A), (STORE, step17), (MVRRL, step24), (MVRRR, step27), (MVRPL, step2A), (MVRPR, step2D), (MVRIL, step30), (MVRIR, step33), (PUSH, step36), (POP, step3C), (CLR, step42), (ADD, step44), (SUB, step48), (CMP, step4C), (INC, step50), (DEC, step53), (AND, step56), (OR, step5A), (XOR, step5E), (TST, step62), (NOT, step66), (ASR, step69), (LSR, step6C), (ROR, step6F), (RORC, step72), (SL, step75), (ROL, step78), (ROLC, step7B), (BEQL, step7E), (BNEQ, step80), (BGRT, step82), (BGRE, step84), (BLSS, step86), (BLEQ, step88), (BGRTU, step8A), (BGREU, step8C), (BLSSU, step8E), (BLEQU, step90), (BNEG, step92), (BNNG, step94), (BOVF, step96), (BNVF, step98), (JMP, step9A), (INT, stepA1), (JSR, stepA2), (RTS, stepA7), (RTI, stepAC), (JMPRIND, stepB4) (INTD, stepB6), (INTE, stepB7), (TRPD, stepB9), (TRPE, stepBB), (VARD, stepBD), (VARE, stepBE), (EDGD, stepBF), (EDGE, stepC0), (NOP, stepC1), (HALT, stepF0));

! LOAD ! ! U korak step0A se dolazi iz step09 ukoliko je signal operacije LOAD aktivan. Koraci step0A do step16 pripadaju izvršavanju operacije instrukcije LOAD. U koraku step0A se realizuje višestruki uslovni skok na jedan od koraka step0B, step0C, step0F ili step13 u zavisnosti od toga koji od signala adresiranja regind, rindpom, memdir, nepsrd bloka registri ima aktivnu vrednost. !

step0A br (case (regind, rindpom, memdir, nepsrd) then (regind, step0B), (rindpom, step0C), (memdir, step0F), (nepsrd, step13));

! Registarsko indirektno adresiranje za izvorišni operand ! ! U korak step0B se dolazi iz step0A ukoliko je signal za registarsko indirektno adresiranje regind aktivan. Iz koraka step0B se bezuslovno prelazi na step10. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Signalom MARin se sadržaj M15...0 upisuje u registar MAR15...0. Time se u registru MAR15...0 nalazi adresa operanda za slučaj registarskog indirektnog adresiranja. !

step0B REGout, regsel2, MARin, br step10;

Page 83: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

77

! Registarski indirektno adresiranje sa pomerajem za izvorišni operand ! ! U korak step0C se dolazi iz step0A ukoliko je signal za registarsko indirektno adresiranje sa pomerajem rindpom aktivan. Kroz korake step0C, step0D i step0E se prolazi sekvencijalno. Iz koraka step0E se bezuslovno prelazi na step10. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom IRLout sadržaj registra IRL15...0 bloka registri se pušta na linije M15...0, a signalom Yin upisuje u registar Y15...0 bloka operacije. Time se u registrima X15...0 i Y15...0 nalaze sadržaj jednog od registara opšte namene i pomeraj, respektivno. Signalom add se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija suma sadržaja registara X15...0 i Y15...0, signalom ALUSHIFTout se dati sadržaj pušta na linije M15...0 i signalom MARin upisuje u registar MAR15...0 bloka interfejs. Time se u registru MAR15...0 nalazi adresa operanda za slučaj registarskog indirektnog adresiranja sa pomerajem. !

step0C REGout, regsel2, Xin; step0D IRLout, Yin; step0E add, ALUSHIFTout, MARin,

br step10; ! Memorijsko direktno adresiranje za izvorišni operand ! ! U korak step0F se dolazi iz step0A ukoliko je signal za memorijsko direktno adresiranje memdir aktivan. Kroz korake step0F, step10, step11 i step12 se prolazi sekvencijalno. Iz koraka step12 se bezuslovno prelazi na step15. Signalom IRLout se sadržaj registra IRL15...0 bloka registri pušta na linije M15...0 i signalom MARin upisuje u registar MAR15...0 bloka interfejs. Time se u registru MAR15...0 nalazi adresa operanda za slučaj memorijskog direktnog adresiranja. U korak step10 se dolazi ne samo iz koraka step0F, već i iz koraka step0B i step0E. Signalom read bloka interfejs se startuje ciklus čitanja na sistemskoj magistrali BUS. Signalom MDRout se sadržaj registra MDR1515...0 bloka interfejs pušta na linije M15...0, a signalima REGin i Xin upisuje u jedan od registara opšte namene R015...0 do R1515...0 bloka registri i registar X15...0 bloka operacije, respektivno. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom trans se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0. Ovaj sadržaj se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije LOAD za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step0F IRLout, MARin; step10 read; step11 MDRout, REGin, regsel1, Xin; step12 trans, ldpsw,

br step15; ! Neposredno adresiranje za izvorišni operand ! ! U korak step13 se dolazi iz step0A ukoliko je signal za neposredno adresiranje nepsrd aktivan. Kroz korake step13 i step14 se prolazi sekvencijalno. Signalom IRLout se sadržaj registra IRL1515...0 bloka registri pušta na linije M15...0, a signalima REGin i Xin upisuje u jedan od registara opšte namene R015...0 do R1515...0 bloka registri i registar X15...0 bloka operacije, respektivno. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom trans se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0. Ovaj sadržaj se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije LOAD za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step13 IRLout, REGin, regsel1, Xin; step14 trans, ldpsw;

! Provera da li je u toku izvršavanja instrukcije LOAD stigao zahtev za prekid ! ! U korak step15 se dolazi iz step14 i step12 i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step16 ukoliko je neaktivan. !

Page 84: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

78

step15 br (if prekid then stepC3); ! U korak step16 se dolazi iz step15 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

step16 br step00; ! STORE ! ! U korak step17 se dolazi iz step09 ukoliko je signal operacije STORE aktivan. Koraci step17 do step23 pripadaju izvršavanju operacije instrukcije STORE. U koraku step17 se realizuje višestruki uslovni skok na jedan od koraka step18, step19, step1C ili step21 u zavisnosti od toga koji od signala regind, rindpom, memdir, nepsrd bloka registri ima aktivnu vrednost. !

step17 br (case (regind, rindpom, memdir, nepsrd) then (regind, step18), (rindpom, step19), (memdir, step1C), (nepsrd, step21));

! Registarsko indirektno adresiranje za odredišni operand ! ! U korak step18 se dolazi iz step17 ukoliko je signal za registarsko indirektno adresiranje regind aktivan. Iz koraka step18 se bezuslovno prelazi na step1D. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Signalom MARin se sadržaj M15...0 upisuje u registar MAR15...0, bloka interfejs. Time se u registru MAR15...0 nalazi adresa operanda za slučaj registarskog indirektnog adresiranja. !

step18 REGout, regsel2, MARin, br step1D;

! Registarki indirektno adresiranje sa pomerajem za odredišni operand ! ! U korak step19 se dolazi iz step17 ukoliko je signal za registarsko indirektno adresiranje sa pomerajem rindpom aktivan. Kroz korake step19, step1A i step1B se prolazi sekvencijalno. Iz koraka step1B se bezuslovno prelazi na step1D. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom IRLout se sadržaj registra IRL15...0 bloka registri pušta na linije M15...0 i signalom Yin upisuje u registar Y15...0. bloka operacije. Time se u registrima X15...0 i Y15...0 nalaze sadržaj jednog od registar opšte namene i pomeraj, respektivno. Signalom add se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija suma sadržaja registara X15...0 i Y15...0, signalom ALUSHIFTout se dati sadržaj pušta na linije M15...0 i signalom MARin upisuje u registar MAR15...0 bloka interfejs. Time se u registru MAR15...0 nalazi adresa operanda za slučaj registarskog indirektnog adresiranja sa pomerajem. !

step19 REGout, regsel2, Xin; step1A IRLout, Yin; step1B add, ALUSHIFTout, MARin,

br step1D; ! Memorijsko direktno adresiranje za odredišni operand ! ! U korak step1C se dolazi iz step17 ukoliko je signal za memorijsko direktno adresiranje memdir aktivan. Kroz korake step1C, step1D, step1E, step1F, i step20 se prolazi sekvencijalno. Iz koraka step20 se bezuslovno prelazi na korak step22. Signalom IRLout se sadržaj registra IRL15...0 bloka registri pušta na linije M15...0 i signalom MARin upisuje u registar MAR15...0 bloka interfejs. Time se u registru MAR15...0 nalazi adresa operanda za slučaj memorijskog direktnog adresiranja. U korak step1D se dolazi ne samo iz step1C, već i iz step18 i step1B. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalima MDRin i Xin se sadržaj M15...0 upisuje u registre MDR15...0 bloka interfejs i X15...0 bloka operacije, respektivno. Time se u registru MDR15...0 nalazi operand za memorijsko direktno adresiranje, registarsko indirektno adresiranje i registarsko indirektno adresiranje sa pomerajem. Pored toga operand se nalazi i u registru X15...0. Signalom trans se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0. Ovaj sadržaj se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije LOAD za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u

Page 85: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

79

razrede PSWN, PSWZ, PSWC i PSWV bloka registri. Signalom write bloka interfejs se startuje ciklus upisa na sistemskoj magistrali BUS. !

step1C IRLout, MARin; step1D REGout, regsel1, MDRin, Xin; step1E trans, ldpsw; step1F write; step20 br step22;

! Neposredno adresiranje za odredišni operand ! ! U korak step21 se dolazi iz koraka step17 ukoliko je signal za neposredno adresiranje nepsrd aktivan i bezuslovno prelazi na korak stepC3. Neposredno adresiranje za odredišni operand nije dozvoljeno, pa ovo predstavlja grešku u načinu adresiranja. Zbog toga se signalom stpradr flip-flop PRADR bloka prekidi postavlja na aktivnu vrednost. !

step21 stpradr, br stepC3;

! Provera da li je u toku izvršavanja instrukcije STORE stigao zahtev za prekid ! ! U korak step22 se dolazi iz step20 i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i na step23 ukoliko je neaktivan. !

step22 br (if prekid then stepC3); ! U korak step23 se dolazi iz step22 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

step23 br step00; ! MVRRL ! ! U korak step24 se dolazi iz step09 ukoliko je signal operacije MVRRL aktivan. Kroz korake step24 i step25 se prolazi sekvencijalno. U koraku step25 se vrši provera da li je u toku izvršavanja instrukcije MVRRL stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step26 ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom trans se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije MVRRL za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step24 REGout, regsel1, Xin; step25 trans, ALUSHIFTout, REGin, regsel2, ldpsw,

br (if prekid then stepC3); ! U korak step26 se dolazi iz step25 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

step26 br step00; ! MVRRR ! ! U korak step27 se dolazi iz step09 ukoliko je signal operacije MVRRR aktivan. Kroz korake step27 i step28 se prolazi sekvencijalno. U koraku step28 se vrši provera da li je u toku izvršavanja instrukcije MVRRR stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step26 ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom trans se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka

Page 86: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

80

operacije koristi zajedno sa signalom operacije MVRRR za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step27 REGout, regsel2, Xin; step28 trans, ALUSHIFTout, REGin, regsel1, ldpsw, br (if prekid then stepC3);

! U korak step26 se dolazi iz step25 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step29 br step00;

! MVRPL ! ! U korak step2A se dolazi iz step09 ukoliko je signal operacije MVRPL aktivan. Kroz korake step2A i step2B se prolazi sekvencijalno. U koraku step2B se vrši provera da li je u toku izvršavanja instrukcije MVRPL stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step2C ukoliko je neaktivan. Signalom PRREGout se sadržaj jednog od registara procesora SP15...0 ili PSW15...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom trans se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0 bloka registri. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije MVRPL za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step2A PRREGout, Xin; step2B trans, ALUSHIFTout, REGin, regsel2, ldpsw,

br (if prekid then stepC3); ! U korak step2C se dolazi iz step2B ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

step2C br step00; ! MVRPR ! ! U korak step2D se dolazi iz step09 ukoliko je signal operacije MVRPR aktivan. Kroz korake step2D i step2E se prolazi sekvencijalno. U koraku step2E se vrši provera da li je u toku izvršavanja instrukcije MVRPR stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step2F ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom trans se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom PRREGin upisuje u jedan od registara procesora SP15...0 ili PSW15...0 bloka registri. Selekcija jednog od registara se realizuje razredima IRH3...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije MVRPR za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step2D REGout, regsel2, Xin; step2E trans, ALUSHIFTout, PRREGin, ldpsw;

br (if prekid then stepC3); ! U korak step2F se dolazi iz step2E ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

step2F br step00; ! MVRIL ! ! U korak step30 se dolazi iz step09 ukoliko je signal operacije MVRIL aktivan. Kroz korake step30 i step31 se prolazi sekvencijalno. U koraku step31 se vrši provera da li je u toku izvršavanja instrukcije MVRIL stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step32 ukoliko je neaktivan. Signalom INTREGout se sadržaj jednog od registara procesora IMR15...0 ili IVTP15...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se

Page 87: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

81

realizuje razredima IRH3...0. Signalom Xin bloka operacije se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom trans se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0 bloka registri. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije MVRIL za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step30 INTREGout, Xin; step31 trans, ALUSHIFTout, REGin, regsel2, ldpsw,

br (if prekid then stepC3); ! U korak step32 se dolazi iz step31 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

step32 br step00; ! MVRIR ! ! U korak step33 se dolazi iz step09 ukoliko je signal operacije MVRIR aktivan. Kroz korake step33 i step34 se prolazi sekvencijalno. U koraku step34 se vrši provera da li je u toku izvršavanja instrukcije MVRIR stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step35 ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom trans se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom INTREGin upisuje u jedan od registara procesora IMR15...0 ili IVTP15...0 bloka registri. Selekcija jednog od registara se realizuje razredima IRH3...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije MVRIR za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step33 REGout, regsel2, Xin; step34 trans, ALUSHIFTout, INTREGin, ldpsw,

br (if prekid then stepC3); ! U korak step35 se dolazi iz step34 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

step35 br step00; ! PUSH ! ! U korak step36 se dolazi iz step09 ukoliko je signal operacije PUSH aktivan. Kroz korake step36 i step3A se prolazi sekvencijalno. U koraku step3A se vrši provera da li je u toku izvršavanja instrukcije PUSH stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step3B ukoliko je neaktivan. Signalom SPout se sadržaj registra SP15...0 bloka registri pušta na linije M15...0 interne magistrale bus i signalom Xin upisuje u registar X15...0 bloka operacije. Signalom dec se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 umanjen za jedan. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalima SPin i MARin upisuje u registre SP15...0 i MAR15...0 bloka interfejs, respektivno. Time se u registrima SP15...0 i MAR15...0 nalazi adresa prve slobodne lokacije na vrhu steka. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalima MDRin i Xin se sadržaj M15...0 upisuje u registre MDR15...0 bloka interfejs i X15...0, respektivno. Time se u registrima MDR15...0 i X15...0 nalazi sadržaj koji treba staviti na vrh steka. Signalom write bloka interfejs se startuje ciklus upisa na sistemskoj magistrali BUS. Signalom trans se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0. koji se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije PUSH za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

Page 88: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

82

step36 SPout, Xin; step37 dec, ALUSHIFTout, SPin, MARin; step38 REGout, regsel1, MDRin, Xin; step39 write; step3A trans, ldpsw,

br (if prekid stepC3); ! U korak step3B se dolazi iz step3A ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

step3B br step00; ! POP ! ! U korak step3C se dolazi iz step09 ukoliko je signal operacije POP aktivan. Kroz korake step3C i step40 se prolazi sekvencijalno. U koraku step40 se vrši provera da li je u toku izvršavanja instrukcije POP stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step41 ukoliko je neaktivan. Signalom SPout se sadržaj registra SP15...0 bloka registri pušta na linije M15...0 interne magistrale bus i signalima MARin i Xin upisuje u registre MAR15...0 bloka operacije i X15...0 bloka operacije, respektivno. Time se u registrima MAR15...0 i X15...0 nalazi adresa lokacije na vrhu steka sa koje treba očitati sadržaj. Signalom inc se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 uvećan za jedan. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0 i signalom SPin upisuje u registar SP15...0. Time se u registru SP15...0 nalazi ažurirana adresa lokacije na vrhu steka. Signalom read bloka interfejs se startuje ciklus čitanja na sistemskoj magistrali BUS. Signalom MDRout se sadržaj registra MDR1515...0 bloka interfejs pušta na linije M15...0, a signalima REGin i Xin upisuje u jedan od registara opšte namene R015...0 do R1515...0 bloka registri i registar X15...0 bloka operacije, respektivno. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom trans se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0. Ovaj sadržaj se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije POP za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step3C SPout, MARin, Xin; step3D inc, ALUSHIFTout, SPin; step3E read; step3F MDRout, REGin, regsel1, Xin; step40 trans, ldpsw,

br (if prekid then stepC3); ! U korak step41 se dolazi iz step40 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

step41 br step00; ! CLR ! ! U korak step42 se dolazi iz step09 ukoliko je signal operacije CLR aktivan. U koraku step42 se vrši provera da li je u toku izvršavanja instrukcije CLR stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step43 ukoliko je neaktivan. Signalom zero se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobijaju sve nule. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0 interne magistrale bus, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0 bloka registri. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije CLR za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step42 zero, ALUSHIFTout, REGin, regsel1, ldpsw, br (if prekid then stepC3);

! U korak step43 se dolazi iz step42 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step43 br step00;

Page 89: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

83

! ADD ! ! U korak step44 se dolazi iz step09 ukoliko je signal operacije ADD aktivan. Kroz korake step44, step45 i step46 se prolazi sekvencijalno. U koraku step46 se vrši provera da li je u toku izvršavanja instrukcije ADD stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step47 ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 pušta na linije M15...0. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Signalom Yin se sadržaj M15...0 upisuje u registar Y15...0 bloka operacije. Time se u registrima X15...0 i Y15...0 nalaze dva operanda. Signalom add se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija suma sadržaja registara X15...0 i Y15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH11...8 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel3. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije ADD za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step44 REGout, regsel1, Xin; step45 REGout, regsel2, Yin; step46 add, ALUSHIFTout, REGin, regsel3, ldpsw,

br (if prekid then stepC3); ! U korak step47 se dolazi iz step46 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

step47 br step00;

! SUB ! ! U korak step48 se dolazi iz koraka step09 ukoliko je signal operacije SUB aktivan. Kroz korake step48, step49 i step4A se prolazi sekvencijalno. U koraku step4A se vrši provera da li je u toku izvršavanja instrukcije SUB stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step4B ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 pušta na linije M15...0. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Yin se sadržaj M15...0 upisuje u registar Y15...0 bloka operacije. Time se u registrima X15...0 i Y15...0 nalaze dva operanda. Signalom sub se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija razlika sadržaja registara X15...0 i Y15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH11...8 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel3. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije SUB za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step48 REGout, regsel2, Xin; step49 REGout, regsel1, Yin; step4A sub, ALUSHIFTout, REGin, regsel3, ldpsw, br (if prekid then stepC3);

! U korak step4B se dolazi iz step4A ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step4B br step00;

Page 90: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

84

! CMP ! ! U korak step4C se dolazi iz step09 ukoliko je signal operacije CMP aktivan. Kroz korake step4C, step4D i step4E se prolazi sekvencijalno. U koraku step4E se vrši provera da li je u toku izvršavanja instrukcije CMP stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step4F ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 pušta na linije M15...0. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Yin se sadržaj M15...0 upisuje u registar Y15...0 bloka operacije. Time se u registrima X15...0 i Y15...0 nalaze dva operanda. Signalom sub se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija razlika sadržaja registara X15...0 i Y15...0 koja se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije CMP za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step4C REGout, regsel2, Xin; step4D REGout, regsel1, Yin; step4E sub, ldpsw,

br (if prekid then stepC3); ! U korak step4F se dolazi iz step4E ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

step4F br step00; ! INC ! ! U korak step50 se dolazi iz step09 ukoliko je signal operacije INC aktivan. Kroz korake step50 i step51 se prolazi sekvencijalno. U koraku step51 se vrši provera da li je u toku izvršavanja instrukcije INC stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step52 ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Time se u registru X15...0 nalazi operand. Signalom inc se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 uvećan za jedan. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije INC za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step50 REGout, regsel1, Xin; step51 inc, ALUSHIFTout, REGin, regsel1, ldpsw, br (if prekid then stepC3);

! U korak step52 se dolazi iz step51 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step52 br step00;

! DEC ! ! U korak step53 se dolazi iz step09 ukoliko je signal operacije DEC aktivan. Kroz korake step53 i step54 se prolazi sekvencijalno. U koraku step54 se vrši provera da li je u toku izvršavanja instrukcije DEC stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step55 ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Time se u registru X15...0 nalazi operand. Signalom dec se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 umanjen za jedan. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte

Page 91: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

85

namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije DEC za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri.

step53 REGout, regsel1, Xin; step54 dec, ALUSHIFTout, REGin, regsel1, ldpsw, br (if prekid then stepC3);

! U korak step55 se dolazi iz step54 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step55 br step00;

! AND ! ! U korak step56 se dolazi iz step09 ukoliko je signal operacije AND aktivan. Kroz korake step56, step57 i step58 se prolazi sekvencijalno. U koraku step58 se vrši provera da li je u toku izvršavanja instrukcije AND stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step59 ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 pušta na linije M15...0. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Signalom Yin se sadržaj M15...0 upisuje u registar Y15...0 bloka operacije. Time se u registrima X15...0 i Y15...0 nalaze dva operanda. Signalom and se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija vrednost koja predstavlja rezultat logičke I operacije sadržaja registara X15...0 i Y15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH11...8 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel3. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije AND za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step56 REGout, regsel1, Xin; step57 REGout, regsel2, Yin; step58 and, ALUSHIFTout, REGin, regsel3, ldpsw, br (if prekid then stepC3);

! U korak step59 se dolazi iz step58 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step59 br step00;

! OR ! ! U korak step5A se dolazi iz step09 ukoliko je signal operacije OR aktivan. Kroz korake step5A, step5B i step5C se prolazi sekvencijalno. U koraku step5C se vrši provera da li je u toku izvršavanja instrukcije OR stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step5D ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 pušta na linije M15...0. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Signalom Yin se sadržaj M15...0 upisuje u registar Y15...0 bloka operacije. Time se u registrima X15...0 i Y15...0 nalaze dva operanda. Signalom or se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija vrednost koja predstavlja rezultat logičke ILI operacije sadržaja registara X15...0 i Y15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH11...8 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel3. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije OR

Page 92: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

86

za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step5A REGout, regsel1, Xin; step5B REGout, regsel2, Yin; step5C or, ALUSHIFTout, REGin, regsel3, ldpsw, br (if prekid then stepC3);

! U korak step5D se dolazi iz step5C ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step5D br step00;

! XOR ! ! U korak step5E se dolazi iz step09 ukoliko je signal operacije XOR aktivan. Kroz korake step5E, step5F i step60 se prolazi sekvencijalno. U koraku step60 se vrši provera da li je u toku izvršavanja instrukcije XOR stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step61 ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 pušta na linije M15...0. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Signalom Yin se sadržaj M15...0 upisuje u registar Y15...0 bloka operacije. Time se u registrima X15...0 i Y15...0 nalaze dva operanda. Signalom xor se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija vrednost koja predstavlja rezultat logičke ekskluzivno ILI operacije sadržaja registara X15...0 i Y15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH11...8 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel3. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije XOR za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step5E REGout, regsel1, Xin; step5F REGout, regsel2, Yin; step60 xor, ALUSHIFTout, REGin, regsel3, ldpsw, br (if prekid then stepC3);

! U korak step61 se dolazi iz step60 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step61 br step00;

! TST ! ! U korak step62 se dolazi iz step09 ukoliko je signal operacije TST aktivan. Kroz korake step62, step63 i step64 se prolazi sekvencijalno. U koraku step64 se vrši provera da li je u toku izvršavanja instrukcije TST stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step65 ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 pušta na linije M15...0. Selekcija jednog od registara se realizuje razredima IRH7...4 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel2. Signalom Yin se sadržaj M15...0 upisuje u registar Y15...0 bloka operacije. Time se u registrima X15...0 i Y15...0 nalaze dva operanda. Signalom and se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija vrednost koja predstavlja rezultat logičke I operacije sadržaja registara X15...0 i Y15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije TST za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step62 REGout, regsel1, Xin; step63 REGout, regsel2, Yin; step64 and, ldpsw,

Page 93: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

87

br (if prekid then stepC3); ! U korak step65 se dolazi iz step64 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

step65 br step00; ! NOT ! ! U korak step66 se dolazi iz step09 ukoliko je signal operacije NOT aktivan. Kroz korake step66 i step67 se prolazi sekvencijalno. U koraku step67 se vrši provera da li je u toku izvršavanja instrukcije NOT stigao zahtev za prekid i prelazi na stepC35 ukoliko je signal prekid bloka prekidi aktivan i step68 ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Time se u registru X15...0 nalazi operand. Signalom not se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija invertovani sadržaj registra X15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije NOT za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step66 REGout, regsel1, Xin; step67 not, ALUSHIFTout, REGin, regsel1, ldpsw, br (if prekid then stepC3);

! U korak step68 se dolazi iz step67 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step68 br step00;

! ASR ! ! U korak step69 se dolazi iz step09 ukoliko je signal operacije ASR aktivan. Kroz korake step69 i step6A se prolazi sekvencijalno. U koraku step6A se vrši provera da li je u toku izvršavanja instrukcije ASR stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step6B ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom asr se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 aritmetički pomeren za jedno mesto udesno. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije ASR za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step69 REGout, regsel1, Xin; step6A asr, ALUSHIFTout, REGin, regsel1, ldpsw, br (if prekid then stepC3);

! U korak step6B se dolazi iz step6A ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step6B br step00;

! LSR ! ! U korak step6C se dolazi iz step09 ukoliko je signal operacije LSR aktivan. Kroz korake step6C i step6D se prolazi sekvencijalno. U koraku step6D se vrši provera da li je u toku izvršavanja instrukcije LSR stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step6E ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom lsr se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 logički pomeren

Page 94: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

88

za jedno mesto udesno. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije LSR za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri.

step6C REGout, regsel1, Xin; step6D lsr, ALUSHIFTout, REGin, regsel1, ldpsw, br (if prekid then stepC3);

! U korak step6E se dolazi iz step6D ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step6E br step00;

! ROR ! ! U korak step6F se dolazi iz step09 ukoliko je signal operacije ROR aktivan. Kroz korake step6F i step70 se prolazi sekvencijalno. U koraku step70 se vrši provera da li je u toku izvršavanja instrukcije ROR stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step68 ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom ror se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 rotiran za jedno mesto udesno. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije ROR za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step6F REGout, regsel1, Xin; step70 ror, ALUSHIFTout, REGin, regsel1, ldpsw, br (if prekid then stepC3);

! U korak step71 se dolazi iz step70 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step71 br step00;

! RORC ! ! U korak step72 se dolazi iz step09 ukoliko je signal operacije RORC aktivan. Kroz korake step72 i step73 se prolazi sekvencijalno. U koraku step73 se vrši provera da li je u toku izvršavanja instrukcije RORC stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step74 ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom rorc se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 i razreda PSWC bloka registri rotiran za jedno mesto udesno. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije RORC za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step72 REGout, regsel1, Xin; step73 rorc, ALUSHIFTout, REGin, regsel1, ldpsw, br (if prekid then stepC3);

! U korak step74 se dolazi iz step73 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step74 br step00;

Page 95: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

89

! SL ! ! U korak step75 se dolazi iz step09 ukoliko je signal operacije SL aktivan. Kroz korake step75 i step76 se prolazi sekvencijalno. U koraku step76 se vrši provera da li je u toku izvršavanja instrukcije SL stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step77 ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom lsr se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 aritmetički i logički pomeren za jedno mesto ulevo. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije SL za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri.

step75 REGout, regsel1, Xin; step76 sl, ALUSHIFTout, REGin, regsel1, ldpsw,

br (if prekid then stepC3); ! U korak step77 se dolazi iz step76 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

step77 br step00; ! ROL ! ! U korak step78 se dolazi iz step09 ukoliko je signal operacije ROL aktivan. Kroz korake step78 i step79 se prolazi sekvencijalno. U koraku step79 se vrši provera da li je u toku izvršavanja instrukcije ROL stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step7A ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom rol se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 rotiran za jedno mesto ulevo. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije ROL za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step78 REGout, regsel1, Xin; step79 rol, ALUSHIFTout, REGin, regsel1, ldpsw, br (if prekid then stepC3);

! U korak step7A se dolazi iz step79 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step7A br step00;

! ROLC ! ! U korak step7B se dolazi iz step09 ukoliko je signal operacije ROLC aktivan. Kroz korake step7B i step7C se prolazi sekvencijalno. U koraku step7C se vrši provera da li je u toku izvršavanja instrukcije ROLC stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step7D ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom Xin se sadržaj M15...0 upisuje u registar X15...0 bloka operacije. Signalom rolc se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 i razreda PSWC bloka registri rotiran za jedno mesto ulevo. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom REGin upisuje u jedan od registara opšte namene R015...0 do R1515...0. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se

Page 96: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

90

propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se u kombinacionoj mreži KM bloka operacije koristi zajedno sa signalom operacije ROLC za formiranje signala IN, IZ, IC i IV. Ovi signali se signalom ldpsw propuštaju kroz multiplekser MP2 i upisuju u razrede PSWN, PSWZ, PSWC i PSWV bloka registri. !

step7B REGout, regsel1, Xin; step7C rolc, ALUSHIFTout, REGin, regsel1, ldpsw,

br (if prekid then stepC3); ! U korak step7D se dolazi iz step7C ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

step7D br step00; ! BEQL ! ! U korak step7E se dolazi iz step09 ukoliko je signal operacije BEQL aktivan i prelazi na step9A ukoliko je signal eql bloka registri aktivan i step7F ukoliko je neaktivan. !

step7E br (if eql then step9A); ! U korak step7F se dolazi iz step7E ukoliko je signal eql neaktivan i bezuslovno prelazi na step00. !

step7F br step9E; ! BNEQ ! ! U korak step80 se dolazi iz step09 ukoliko je signal operacije BNEQ aktivan i prelazi na step9A ukoliko je signal neq bloka registri aktivan i step81 ukoliko je neaktivan. !

step80 br (if neq then step9A); ! U korak step81 se dolazi iz step80 ukoliko je signal neq neaktivan i bezuslovno prelazi na step00. !

step81 br step9E; ! BGRT ! ! U korak step82 se dolazi iz step09 ukoliko je signal operacije BGRT aktivan i prelazi na step9A ukoliko je signal grt bloka registri aktivan i step83 ukoliko je neaktivan. !

step82 br (if grt then step9A); ! U korak step83 se dolazi iz step82 ukoliko je signal grt neaktivan i bezuslovno prelazi na step00. !

step83 br step9E; ! BGRE ! ! U korak step84 se dolazi iz step09 ukoliko je signal operacije BGRE aktivan i prelazi na step9A ukoliko je signal gre bloka registri aktivan i step85 ukoliko je neaktivan. !

step84 br (if gre then step9A); ! U korak step85 se dolazi iz step84 ukoliko je signal gre neaktivan i bezuslovno prelazi na step00. !

step85 br step9E; ! BLSS ! ! U korak step86 se dolazi iz step09 ukoliko je signal operacije BLSS aktivan i prelazi na step9A ukoliko je signal lss bloka registri aktivan i step87 ukoliko je neaktivan. !

step86 br (if lss then step9A); ! U korak step87 se dolazi iz step86 ukoliko je signal lss neaktivan i bezuslovno prelazi na step00. !

step87 br step9E; ! BLEQ ! ! U korak step88 se dolazi iz step09 ukoliko je signal operacije BLEQ aktivan i prelazi na step9A ukoliko je signal leq bloka registri aktivan i step89 ukoliko je neaktivan. !

step88 br (if leq then step9A); ! U korak step89 se dolazi iz step88 ukoliko je signal gre neaktivan i bezuslovno prelazi na step00. !

step89 br step9E; ! BGRTU ! ! U korak step8A se dolazi iz step09 ukoliko je signal operacije BGRTU aktivan i prelazi na step9A ukoliko je signal grtu bloka registri aktivan i step8B ukoliko je neaktivan. !

step8A br (if grtu then step9A); ! U korak step8B se dolazi iz step8A ukoliko je signal grtu neaktivan i bezuslovno prelazi na step00. !

step8B br step9E; ! BGREU ! ! U korak step8C se dolazi iz step09 ukoliko je signal operacije BGREU aktivan i prelazi na step9A ukoliko je signal greu bloka registri aktivan i step8D ukoliko je neaktivan. !

Page 97: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

91

step8C br (if greu then step9A); ! U korak step8D se dolazi iz step8C ukoliko je signal greu neaktivan i bezuslovno prelazi na step00. !

step8D br step9E; ! BLSSU ! ! U korak step8E se dolazi iz step09 ukoliko je signal operacije BLSSU aktivan i prelazi na step9A ukoliko je signal lssu bloka registri aktivan i step8F ukoliko je neaktivan. !

step8E br (if lssu then step9A); ! U korak step8F se dolazi iz step8E ukoliko je signal lssu neaktivan i bezuslovno prelazi na step00. !

step8F br step9E; ! BLEQU ! ! U korak step90 se dolazi iz step09 ukoliko je signal operacije BLEQU aktivan i prelazi na step9A ukoliko je signal lequ bloka registri aktivan i step91 ukoliko je neaktivan. !

step90 br (if lequ then step9A); ! U korak step91 se dolazi iz step90 ukoliko je signal lequ neaktivan i bezuslovno prelazi na step00. !

step91 br step9E; ! BNEG ! ! U korak step92 se dolazi iz step09 ukoliko je signal operacije BNEG aktivan i prelazi na step9A ukoliko je signal neg bloka registri aktivan i step93 ukoliko je neaktivan. !

step92 br (if neg then step9A); ! U korak step93 se dolazi iz step92 ukoliko je signal neg neaktivan i bezuslovno prelazi na step00. !

step93 br step9E; ! BNNG ! ! U korak step94 se dolazi iz step09 ukoliko je signal operacije BNNG aktivan i prelazi na step9A ukoliko je signal nng bloka registri aktivan i step95 ukoliko je neaktivan. !

step94 br (if nng then step9A); ! U korak step95 se dolazi iz step94 ukoliko je signal nng neaktivan i bezuslovno prelazi na step00. !

step95 br step9E; ! BOVF ! ! U korak step96 se dolazi iz step09 ukoliko je signal operacije BOVF aktivan i prelazi na step9A ukoliko je signal ovf bloka registri aktivan i step97 ukoliko je neaktivan. !

step96 br (if ovf then step9A); ! U korak step97 se dolazi iz step96 ukoliko je signal ovf neaktivan i bezuslovno prelazi na step00. !

step97 br step9E; ! BNVF ! ! U korak step98 se dolazi iz step09 ukoliko je signal operacije BNVF aktivan i prelazi na step9A ukoliko je signal nvf bloka registri aktivan i step99 ukoliko je neaktivan. !

step98 br (if nvf then step9A); ! U korak step99 se dolazi iz step98 ukoliko je signal nvf neaktivan i bezuslovno prelazi na step00. !

step99 br step9E; ! JMP ! ! U korak step9A se dolazi iz step09 ukoliko je signal operacije JMP aktivan i bezuslovni skok treba realizovati, zatim iz step7E, step80, ..., step98 koji pripadaju instrukcijama BEQL, BNEQ, ..., BNVF, respektivno, ukoliko je odgovarajući signal rezultata operacije eql, neq, ..., nvf aktivan i uslovni skok treba realizovati, i na kraju iz stepA6 koji pripada instrukciji JSR da bi se skok na potprogram realizovao. Kroz korake step9A do step9E se prolazi sekvencijalno.U koraku step9E se vrši provera da li je u toku izvršavanja odgovarajuće instrukcije JMP, BEQL, BNEQ, ..., BNVF, JSR stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i step9F ukoliko je neaktivan. Signalom IRHout se sadržaj registra IRH15...0 bloka registri pušta na linije M15...0 interne magistrale bus, a signalom Xin upisuje u registar X15...0 bloka operacije. Za datu operaciju su potrebni samo razredi X7...0 koji predstavljaju 8-bitni pomeraj. Signalom signext se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X7...0 proširen znakom. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom Yin upisuje u registar Y15...0 bloka operacije. Signalom PCout se sadržaj registra PC15...0 bloka registri pušta na linije M15...0, a signalom Xin upisuje u registar X15...0. Time se u registrima X15...0 i Y15...0

Page 98: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

92

nalaze tekuća vrednost programskog brojača PC i 16-bitni pomeraj. Signalom add se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija suma sadržaja registara X15...0 i Y15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom PCin upisuje u registar PC15...0.

step9A IRHout, Xin; step9B signext, ALUSHIFTout, Yin; step9C PCout, Xin; step9D add, ALUSHIFTout, PCin; step9E br (if prekid then stepC3);

! U korak step9F se dolazi iz step9E ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! step9F br step00;

! INT ! ! U korak stepA1 se dolazi iz step09 ukoliko je signal operacije INT aktivan i bezuslovno prelazi na stepC3. Signalom stprins se flip-flop PRINS bloka prekidi postavlja na aktivnu vrednost. !

stepA1 stprins, br stepC3;

! JSR ! ! U korak stepA2 se dolazi iz step09 ukoliko je signal operacije JSR aktivan. Kroz korake stepA2 do stepA6 se prolazi sekvencijalno. U ovim koracima se na stek stavlja tekuća vrednost programskog brojača PC. Signalom SPout se sadržaj registra SP15...0 bloka registri pušta na linije M15...0 interne magistrale bus i signalom Xin upisuje u registar X15...0 bloka operacije. Signalom dec se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 umanjen za jedan. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalima SPin i MARin upisuje u registre SP15...0 i MAR15...0 bloka interfejs, respektivno. Time se u registrima SP15...0 i MAR15...0 nalazi adresa prve slobodne lokacije na vrhu steka. Signalom PCout se sadržaj registra PC15...0 bloka registri pušta na linije M15...0, a signalom MDRin upisuje u registar MDR15...0 bloka interfejs. Time se u registru MDR15...0 nalazi sadržaj koji treba staviti na vrh steka. Signalom write bloka interfejs se startuje ciklus upisa na sistemskoj magistrali BUS. U koraku stepA6 se bezuslovno prelazi na step9A. !

stepA2 SPout, Xin; stepA3 dec, ALUSHIFTout, SPin, MARin; stepA4 PCout, MDRin; stepA5 write; stepA6 br step9A;

! RTS ! ! U korak stepA7 se dolazi iz step09 ukoliko je signal operacije RTS aktivan. Kroz korake stepA7 i stepAA se prolazi sekvencijalno. U ovim koracima se sa steka skida vrednost i upisuje u programski brojač PC. Signalom SPout se sadržaj registra SP15...0 bloka registri pušta na linije M15...0 interne magistrale bus i signalima MARin i Xin upisuje u registre MAR15...0 bloka operacije i X15...0 bloka operacije, respektivno. Time se u registrima MAR15...0 i X15...0 nalazi adresa lokacije na vrhu steka sa koje treba očitati sadržaj. Signalom inc se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 uvećan za jedan. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0 i signalom SPin upisuje u registar SP15...0. Time se u registru SP15...0 nalazi ažurirana adresa lokacije na vrhu steka. Signalom read bloka interfejs se startuje ciklus čitanja na sistemskoj magistrali BUS. Signalom MDRout se sadržaj registra MDR1515...0 bloka interfejs pušta na linije M15...0, a signalom PCin upisuje u registar PC15...0. U koraku stepAA se vrši provera da li je u toku izvršavanja instrukcije RTS stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i stepAB ukoliko je neaktivan. !

stepA7 SPout, MARin, Xin; stepA8 inc, ALUSHIFTout, SPin; stepA9 read; stepAA MDRout, PCin,

br (if prekid then stepC3);

Page 99: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

93

! U korak stepAB se dolazi iz stepAA ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! stepAB br step00;

! RTI ! ! U korak stepAC se dolazi iz step09 ukoliko je signal operacije RTI aktivan. Kroz korake stepAC do stepB3 se prolazi sekvencijalno. U koracima stepAC do stepAF se sa steka skida vrednost i upisuju u programsku statusnu reč PSW. Signalom SPout se sadržaj registra SP15...0 bloka registri pušta na linije M15...0 interne magistrale bus i signalima MARin i Xin upisuje u registre MAR15...0 bloka operacije i X15...0 bloka operacije, respektivno. Time se u registrima MAR15...0 i X15...0 nalazi adresa lokacije na vrhu steka sa koje treba očitati sadržaj. Signalom inc se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 uvećan za jedan. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0 i signalom SPin upisuje u registar SP15...0. Time se u registru SP15...0 nalazi ažurirana adresa lokacije na vrhu steka. Signalom read bloka interfejs se startuje ciklus čitanja na sistemskoj magistrali BUS. Signalom MDRout se sadržaj registra MDR1515...0 bloka interfejs pušta na linije M15...0, a signalom PCin upisuje u registar PC15...0. !

stepAC SPout, MARin, Xin; stepAD inc, ALUSHIFTout, SPin; stepAE read; stepAF MDRout, PSWin;

! U koracima stepB0 do stepB3 se sa steka skida vrednost i upisuju u programski brojač PC. Signalom SPout se sadržaj registra SP15...0 bloka registri pušta na linije M15...0 i signalima MARin i Xin upisuje u registre MAR15...0 i X15...0, respektivno. Time se u registrima MAR15...0 i X15...0 nalazi adresa lokacije na vrhu steka sa koje treba očitati sadržaj. Signalom inc se na izlazima F15...0 kombinacione mreže ALUSHIFT dobija sadržaj registra X15...0 uvećan za jedan. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0 i signalom SPin upisuje u registar SP15...0. Time se u registru SP15...0 nalazi ažurirana adresa lokacije na vrhu steka. Signalom read se startuje ciklus čitanja na sistemskoj magistrali BUS. Signalom MDRout se sadržaj registra MDR1515...0 pušta na linije M15...0, a signalom PCin upisuje u registar PC15...0. U koraku stepB3 se bezuslovno prelazi na step00. !

stepB0 SPout, MARin, Xin; stepB1 inc, ALUSHIFTout, SPin; stepB2 read; stepB3 MDRout, PCin,

br step00; ! JMPRIND ! ! U korak stepB4 se dolazi iz step09 ukoliko je signal operacije JMPRIND aktivan. U koraku stepB4 se vrši provera da li je u toku izvršavanja instrukcije JMPRIND stigao zahtev za prekid i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i stepB5 ukoliko je neaktivan. Signalom REGout se sadržaj jednog od registara opšte namene R015...0 do R1515...0 bloka registri pušta na linije M15...0 interne magistrale bus. Selekcija jednog od registara se realizuje razredima IRH3...0 koji se propuštaju kroz multiplekser MP1 bloka registri signalom regsel1. Signalom PCin se sadržaj M15...0 upisuje u registar PC15...0 bloka registri. !

stepB4 REGout, regsel1, PCin, br (if (prekid then stepC3);

! U korak stepB5 se dolazi iz stepB4 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. ! stepB5 br step00;

! INTD ! ! U korak stepB6 se dolazi iz step09 ukoliko je signal operacije INTD aktivan i prelazi na step00. Signalom clpswi se razred PSWI bloka registri postavlja na neaktivnu vrednost. !

stepB6 clpswi, br step00;

! INTE ! ! U korak stepB7 se dolazi iz step09 ukoliko je signal operacije INTE aktivan i prelazi na step00. Signalom stpswi se razred PSWI bloka registri postavlja na aktivnu vrednost. !

Page 100: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

94

stepB7 stpswi, br step00;

! TRPD ! ! U korak stepB9 se dolazi iz step09 ukoliko je signal operacije TRPD aktivan i prelazi na step00. Signalom clpswt se razred PSWT bloka registri postavlja na neaktivnu vrednost. !

stepB9 clpswt, br step00;

! TRPE ! ! U korak stepBB se dolazi iz step09 ukoliko je signal operacije TRPE aktivan i prelazi na step00. Signalom stpswt se razred PSWT bloka registri postavlja na aktivnu vrednost. !

stepBB stpswt, br step00;

! VARD ! ! U korak stepBD se dolazi iz step09 ukoliko je signal operacije VARD aktivan i prelazi na step00. Signalom clpswp se razred PSWP bloka registri postavlja na neaktivnu vrednost. !

stepBD clpswp, br step00;

! VARE ! ! U korak stepBE se dolazi iz step09 ukoliko je signal operacije VARE aktivan i prelazi na step00. Signalom stpswp se razred PSWP bloka registri postavlja na aktivnu vrednost. !

stepBE stpswp, br step00;

! EDGD ! ! U korak stepBF se dolazi iz step09 ukoliko je signal operacije EDGD aktivan i prelazi na step00. Signalom stpswe se razred PSWE bloka registri postavlja na neaktivnu vrednost. !

stepBF stpswe, br step00;

! EDGE ! ! U korak stepC0 se dolazi iz step09 ukoliko je signal operacije EDGE aktivan i prelazi na step00. Signalom stpswe se razred PSWE bloka registri postavlja na aktivnu vrednost. !

stepC0 stpswe, br step00;

! NOP ! ! U korak stepC1 se dolazi iz step09 ukoliko je signal operacije NOP aktivan i prelazi na stepC3 ukoliko je signal prekid bloka prekidi aktivan i na stepC2 ukoliko je neaktivan. !

stepC1 br (if prekid then stepC3); ! U korak stepC2 se dolazi iz step58 ukoliko je signal prekid neaktivan i bezuslovno prelazi na step00. !

stepC2 br step00;

! Opsluživanje prekida !

! U korak stepC3 se dolazi koraka step08 ukoliko je signal PRCOD aktivan, koraka step21 ukoliko je signal PRADR postavljen na aktivnu vrednost i koraka step15, step22, ..., stepC1 ukoliko se u njima proverom utvrdi da je signal prekid aktivan. ! ! Ažuriranje vrednosti programskog brojača PC u slučaju prekida zbog greške u kodu operacije ili greške u načinu adresiranja da bi PC ukazivao na instrukciju u kojoj se javio jedan od ova dva prekida. Za ostale prekide PC ukazuje na prvu sledeću instrukciju. ! ! Ažuriranje sadržaja registra PC15..0 se realizuje u koracima stepC3 do stepC8. U koraku stepC3 se vrši provera da li je signal PRADR bloka registri aktivan ili neaktivan i prelazi na korak stepC6 ili stepC4, respektivno. U koraku stepC4 se vrši provera da li je signal PRCOD bloka registri aktivan ili neaktivan i prelazi na korak stepC6 ili stepC5, respektivno. !

stepC3 br (if PRADR then stepC6); ! stepC4 br (if PRCOD then stepC6); stepC5 br stepC9;

Page 101: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

95

! U korak stepC6 se dolazi iz stepC3 ukoliko je signal PRADR aktivan i stepC4 ukoliko je signal PRCOD aktivan. U ovom slučaju postoji potreba za ažuriranjem programskog brojača PC, koje se realizuje dekrementiranjem sadržaja registra PC15...0 bloka registri jedanput ili dvaput. U koracima stepC6 i stepC7 se jedanput dekrementira sadržaj registra PC15...0. Signalom PCout se sadržaj registra PC15...0 bloka registri pušta na linije M15...0 interne magistrale bus i signalom Xin upisuje u registar X15...0 bloka operacije. Signalom dec se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 umanjen za jedan. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalima PCin i Xin upisuje u registre PC15...0 i X15...0, respektivno. Time se u registrima PC15...0 i X15...0 nalazi jedanput dekrementiran sadržaj registra PC15...0. U koraku stepC7 se vrši provera da li je signal ldst32 bloka registri neaktivan ili aktivan i prelazi na korak stepC9 ili stepC8, respektivno. !

stepC6 PCout, Xin; stepC7 dec, ALUSHIFTout, PCin, Xin,

br (if ldst32 then stepC9); ! U korak stepC8 se dolazi iz stepC7 ukoliko je signal ldst32 bloka registri aktivan da bi se sadržaj registra PC15...0 još jedanput dekrementirao. Signalom dec se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 umanjen za jedan. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0 interne magistrale bus, a signalom PCin upisuje u regisar PC15...0 bloka registri. Time se u registru PC15...0 nalazi dvaput dekrementiran sadržaj registra PC15...0. !

stepC8 dec, ALUSHIFTout, PCin; ! U korak stepC9 se dolazi iz stepC5 ukoliko su signali PRADR i PRCOD neaktivni i nije bilo potrebno ažurirati vrednost programskog brojača PC, koraka stepC7 ukoliko je bilo ažuriranja za jednu reč i koraka stepC8 ukoliko je bilo ažuriranja za dve reči. ! ! Čuvanje konteksta procesora ! ! Kontekst procesora se čuva u koracima stepC9 do stepD0. U koracima stepC9 do stepCC se na stek stavlja programski brojač PC. Signalom SPout se sadržaj registra SP15...0 bloka registri pušta na linije M15...0 interne magistrale bus i signalom Xin upisuje u registar X15...0 bloka operacije. Signalom dec se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 umanjen za jedan. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalima SPin i MARin upisuje u registre SP15...0 i MAR15...0 bloka interfejs, respektivno. Time se u registrima SP15...0 i MAR15...0 nalazi adresa prve slobodne lokacije na vrhu steka. Signalom PCout se sadržaj registra PC15...0 bloka registri pušta na linije M15...0, a signalom MDRin upisuje u registar MDR15...0 bloka interfejs. Time se u registru MDR15...0 nalazi sadržaj koji treba staviti na vrh steka. Signalom write bloka interfejs se startuje ciklus upisa na sistemskoj magistrali BUS. !

stepC9 SPout, Xin; stepCA dec, ALUSHIFTout, SPin, MARin; stepCB PCout, MDRin; stepCC write;

! U koracima stepCD do stepD0 se na stek stavlja programska statusna reč PSW. Signalom SPout se sadržaj registra SP15...0 bloka registri pušta na linije M15...0 interne magistrale bus i signalom Xin upisuje u registar X15...0 bloka operacije. Signalom dec se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X15...0 umanjen za jedan. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalima SPin i MARin upisuje u registre SP15...0 i MAR15...0 bloka interfejs, respektivno. Time se u registrima SP15...0 i MAR15...0 nalazi adresa prve slobodne lokacije na vrhu steka. Signalom PSWout se sadržaj registra PSW15...0 bloka registri pušta na linije M15...0, a signalom MDRin upisuje u registar MDR15...0 bloka interfejs. Time se u registru MDR15...0 nalazi sadržaj koji treba staviti na vrh steka. Signalom write bloka interfejs se startuje ciklus upisa na sistemskoj magistrali BUS. !

stepCD SPout, Xin; stepCE dec, ALUSHIFTout, SPin, MARin; stepCF PSWout, MDRin; stepD0 write;

Page 102: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

96

! Utvrđivanje adrese prekidne rutine ! ! U korak stepD1 se dolazi iz stepD0. U koracima stepD1 do stepE0 se utvrđuje broj ulaza u tabelu sa adresama prekidnih rutina, a u koracima stepE1 do stepE5 se određuje adrese prekidne rutine i upisuje u programski brojač PC. ! ! U koracima stepD1 do stepD5 se po opadajućim prioritetima utvrđuje zahtev za prekid najvišeg prioriteta i prelazi na odgovarajući korak radi utvrđivanja broja ulaza u tabelu sa adresama prekidnih rutina. U koraku stepD1 se vrši provera da li je signal PRINS bloka registri aktivan ili neaktivan i prelazi na korak stepDF ili stepD2, respektivno. U koraku stepD2 se vrši provera da li je signal PRCOD bloka registri aktivan ili neaktivan i prelazi na korak stepD9 ili stepD3, respektivno. U koraku stepD3 se vrši provera da li je signal PRADR bloka registri aktivan ili neaktivan i prelazi na korak stepD8 ili stepD4, respektivno. U koraku stepD4 se vrši provera da li je signal PRINM bloka registri aktivan ili neaktivan i prelazi na korak stepD7 ili stepD5, respektivno. U koraku stepD5 se vrši provera da li je signal prirr bloka registri aktivan ili neaktivan i prelazi na korak stepDA ili stepD6, respektivno. !

stepD1 br (if PRINS then stepDF); ! unutrašnji prekid — instrukcija INT ! stepD2 br (if PRCOD then stepD9); !unutrašnji prekid — nelegalan kod operacije ! stepD3 br (if PRADR then stepD8); !unutrašnji prekid — nelegalan način adresiranja ! stepD4 br (if PRINM then stepD7); ! spoljašnji nemaskirajući prekid ! stepD5 br (if prirr then stepDA); ! spoljašnji maskirajući prekid !

! Prekid posle svake instrukcije ! ! U korak stepD6 se dolazi iz stepD5 ukoliko su signali prirr, PRINM, PRADR, PRCOD i PRINS neaktivni. To se dešava ukoliko je prekid zbog zadatog režima rada prekid posle svake instrukcije prekid najvišeg prioriteta. Signalom BRUNMSKout se sadržaj na linijama BRUNMSK15...0 bloka prekidi pušta na linije M15...0 interne magistrale bus i signalom Yin upisuje u registar Y15...0 bloka operacije. Iz koraka stepD6 se bezuslovno prelazi na korak stepE1. !

stepD6 BRUNMSKout, Yin, br stepE1;

! Spoljašnji nemaskirajući prekid ! ! U korak stepD7 se dolazi iz stepD4 ukoliko je signal PRINM aktivan, a signali PRADR, PRCOD i PRINS neaktivni. To se dešava ukoliko je prekid zbog spoljašnjeg nemaskirajućeg prekida prekid najvišeg prioriteta. Signalom BRUNMSKout se sadržaj na linijama BRUNMSK15...0 bloka prekidi pušta na linije M15...0 interne magistrale bus i signalom Yin upisuje u registar Y15...0 bloka operacije. Signalom clinm se u flip-flopove PRINM i PINM bloka prekidi upisuje neaktivna vrednost. Iz koraka stepD6 se bezuslovno prelazi na korak stepE1. !

stepD7 BRUNMSKout, Yin, clinm, br stepE1;

! Unutrašnji prekid — nelegalan način adresiranja ! ! U korak stepD8 se dolazi iz stepD3 ukoliko je signal PRADR aktivan, a signali PRCOD i PRINS neaktivni. To se dešava ukoliko je prekid zbog nelegalnom načina adresiranja prekid najvišeg prioriteta. Signalom BRUNMSKout se sadržaj na linijama BRUNMSK15...0 bloka prekidi pušta na linije M15...0 interne magistrale bus i signalom Yin upisuje u registar Y15...0 bloka operacije. Signalom clpradr se u flip-flop PRADR bloka prekidi upisuje neaktivna vrednost. Iz koraka stepD8 se bezuslovno prelazi na korak stepE1. !

stepD8 BRUNMSKout, Yin, clpradr, br stepE1;

! Unutrašnji prekid — nelegalan kod operacije ! ! U korak stepD9 se dolazi iz stepD2 ukoliko je signal PRCOD aktivan, a signal PRINS neaktivan. To se dešava ukoliko je prekid zbog nelegalnom koda operacije prekid najvišeg prioriteta. Signalom BRUNMSKout se sadržaj na linijama BRUNMSK15...0 bloka prekidi pušta na linije M15...0 interne magistrale bus i signalom Yin upisuje u registar Y15...0 bloka operacije. Signalom clprcod se u flip-flop PRCOD bloka prekidi upisuje neaktivna vrednost. Iz koraka stepD8 se bezuslovno prelazi na korak stepE1. !

stepD9 BRUNMSKout, Yin, clprcod, br stepE1;

Page 103: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

97

! Spoljašnji maskirajući prekid ! ! U korak stepDA se dolazi iz stepD5 ukoliko je signal prirr aktivan, a signali PRINM, PRADR, PRCOD i PRINS neaktivni. To se dešava ukoliko je spoljašnji maskirajući prekid prekid najvišeg prioriteta. Signalom ldpswl se kroz multiplekser MP2 propuštaju signali prl1 i prl0 bloka prekidi i upisuju u razrede PSWL1 i PSWL0 bloka registri, respektivno. Time je u razrede PSWL1 i PSWL0 upisan nivo prioriteta prekidne rutine na koju treba skočiti. Iz koraka stepDA se u zavisnosti od toga da li je signal PSWP blok registri neaktivan ili aktivan prelazi na stepDE ili stepDB, respektivno. !

stepDA ldpswl, br (if PSWP then stepDE);

! U korak stepDB se dolazi iz stepDA ukoliko je signal PSWP aktivan. To se dešava ukoliko je zadat režim rada procesora u kome broj ulaz u tabelu sa adresama prekidnih rutina šalje kontroler periferije ulazno/izlaznog uređaja. Signalom intack bloka interfejs se startuje ciklus prihvatanje broja ulaza na sistemskoj magistrali BUS. Na osnovu toga se formira signal inta bloka interfejs koji na izlazima dekodera DC bloka prekidi daje aktivnu vrednost jednog od signala potvrde inta1, inta2 ili inta3. Signalom MDRout se sadržaj registra MDR15...0 bloka interfejs pušta na linije M15...0 interne magistrale bus, a signalom Xin upisuje u registar X15...0 bloka operacije. Broj ulaza je dobijen kao 8-bitna vrednost pa su važeći samo razredi X7...0. Signalom zeroext se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X7...0 proširen nulama. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom Yin upisuje u registar Y15...0 bloka operacije. Signalom clirr se, u zavisnosti od toga da li su u razredima PSWL1 i PSWL0 vrednosti 11, 10 ili 01, upisuju neaktivne vrednosti u par flip-flopova PRIRR3 i PINTR3, PRIRR2 i PINTR2 ili PRIRR1 i PINTR1 bloka prekidi, respektivno. Iz koraka stepD6 se bezuslovno prelazi na korak stepE1. !

stepDB intack; stepDC MDRout, Xin; stepDD zeroext, ALUSHIFTout, Yin, clirr,

br stepE1; ! U korak stepDE se dolazi iz stepDA ukoliko je signal PSWP neaktivan. To se dešava ukoliko je zadat režim rada procesora u kome broj ulaza u tabelu sa adresama prekidnih rutina generiše procesor. Signalom BRUMASKout se sadržaj na linijama BRUMASK15...0 bloka prekidi pušta na linije M15...0 interne magistrale bus i signalom Yin upisuje u registar Y15...0 bloka operacije. Signalom clirr se, u zavisnosti od toga da li su u razredima PSWL1 i PSWL0 vrednosti 11, 10 ili 01, upisuju neaktivne vrednosti u par flip-flopova PRIRR3 i PINTR3, PRIRR2 i PINTR2 ili PRIRR1 i PINTR1 bloka prekidi, respektivno. Iz koraka stepD6 se bezuslovno prelazi na korak stepE1. !

stepDE BRUMASKout, Yin, clirr, br stepE1;

! Unutrašnji prekid — instrukcija INT ! ! U korak stepDF se dolazi iz stepD1 ukoliko je signal PRINS aktivan. To se dešava ukoliko je prekid izazvan instrukcijom prekida INT. To je prekid najvišeg prioriteta. Signalom IRHout se sadržaj registra IRH15...0 bloka registri pušta na linije M15...0 interne magistrale bus, a signalom Xin upisuje u registar X15...0 bloka operacije. Za datu operaciju su potrebni samo razredi X7...0 koji predstavljaju 8-bitni broj ulaza. Signalom zeroext se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka operacije dobija sadržaj registra X7...0 proširen nulama. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom Yin upisuje u registar Y15...0 bloka operacije. Signalom clprins se u flip-flop PRINS bloka prekidi upisuje neaktivna vrednost. !

stepDF IRHout, Xin; stepE0 zeroext, ALUSHIFTout, Yin, clprins;

! Određivanje adrese prekidne rutine i upis u programski brojač PC ! ! U korak stepE1 se dolazi iz stepD6, stepD7, stepD8, stepD9, stepDD, stepDE i stepE0. U registru Y15...0 bloka operacije se nalazi broj ulaza u tabelu sa adresama prekidnih rutina. Određivanje adrese prekidne rutine i upis u programski brojač PC se realizuje u koracima stepE1 do stepE5. Signalom IVTPout se sadržaj registra IVTP15...0 bloka prekidi pušta na linije M15...0 interne magistrale bus, a signalom Xin upisuje u registar X15...0 bloka operacije. Time se u registru X15...0 nalazi početna adresa tabele sa adresama prekidnih rutina. Signalom add se na izlazima F15...0 kombinacione mreže ALUSHIFT bloka

Page 104: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

98

operacije dobija suma sadržaja registara X15...0 i Y15...0. Sadržaj sa izlaza F15...0 kombinacione mreže ALUSHIFT se signalom ALUSHIFTout pušta na linije M15...0, a signalom MARin upisuje u registar MAR15...0 bloka interfejs. U registru MAR15...0 se nalazi adresa memorijske lokacije na kojoj se nalazi adresa prekidne rutine. Signalom read bloka interfejs se startuje ciklus čitanja na sistemskoj magistrali BUS. Signalom MDRout se sadržaj registra MDR15...0 bloka interfejs pušta na linije M15...0, a signalom PCin upisuje u registar PC15...0 bloka registri. Time se u registru PC15...0 nalazi adresa prve instrukcije prekidne rutine. Signalima clpswi i clpswt se kroz multiplekser MP2 propuštaju neaktivne vrednosti i upisuju u razrede PSWI i PSWT bloka registri. Time se u prekidnu rutinu ulazi sa režimom rada u kome su maskirani svi maskirajući prekidi i u kome nema prekida posle svake instrukcije. Iz koraka stepE5 se bezuslovno prelazi na step00. !

stepE1 IVTPout, Xin; stepE2 add, ALUSHIFTout, MARin; stepE3 read; stepE4 MDRout, PCin; stepE5 clpswi, clpswt,

br step00; ! HALT ! ! U korak stepF0 se dolazi iz step09 ukoliko je signal operacije HALT aktivan i bezuslovno prelazi na step00. Signalom sthalt se flip-flop halt bloka registri postavlja na aktivnu vrednost i zaustavlja rad. !

stepF0 sthalt, br step00;

4.2.3 Realizacija upravljačke jedinice

U ovom odeljku su prikazana dva načina realizacije upravljačke jedinice i to ožičena realizacija i mikroprogramska realizacija.

4.2.3.1 Ožičena realizacija

U ovom odeljku se razmatraju sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije i struktura upravljačke jedinice.

4.2.3.1.1 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije

Upravljačka jedinica generiše dve vrste upravljačkih signala i to: • upravljačke signale blokova operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed.

Upravljački signali blokova operacione jedinice oper_jed se koriste u blokovima operacione jedinice oper_jed radi izvršavanja mikrooperacija. Upravljački signali upravljačke jedinice uprav_jed se koriste u upravljačkoj jedinici uprav_jed radi inkrementiranja brojača koraka ili upisa nove vrednosti u brojač koraka.

Upravljački signali blokova operacione jedinice oper_jed se mogu generisati na osnovu sekvence upravljačkih signala po koracima (tabela 15). Za svaki upravljački signal blokova operacione jedinice oper_jed treba krenuti kroz sekvencu upravljačkih signala po koracima i tražiti korake sa iskazima za signale u kojima se pojavljuje dati signal. Za svaki takav korak treba uzeti signal dekodovanog stanja brojača koraka i formirati njihovu uniju.

Upravljački signali upravljačke jedinice uprav_jed se ne mogu formirati na osnovu sekvence upravljačkih signala po koracima (tabela 15), jer se u njoj ne pojavljuju upravljački signali upravljačke jedinice uprav_jed, već samo iskazi za skok. Zbog toga je potrebno na osnovu sekvence upravljačkih signala po koracima, najpre, formirati sekvencu upravljačkih signala za upravljačku jedinicu ožičene realizacije. Prilikom njenog formiranja primenjuje se različiti postupak za upravljačke signale blokova operacione jedinice oper_jed i za upravljačke signale upravljačke jedinice uprav_jed.

Page 105: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

99

Za upravljačke signale blokova operacione jedinice oper_jed treba staviti iskaze za signale onako kako se javljaju u sekvenci upravljačkih signala po koracima.

Za upravljačke signale upravljačke jedinice uprav_jed treba u sekvenci upravljačkih signala po koracima tražiti iskaze:

• br stepA, • br (if uslov then stepA) i • br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn).

Umesto iskaza br stepA

treba staviti • signal bezuslovnog skoka koji određuje da se bezuslovno prelazi na korak stepA i • signal valA koji određuje da treba formirati binarnu vrednost A koraka stepA koju treba

upisati u brojač koraka. Simbolička oznaka signala bezuslovnog skoka za sve iskaze ovog tipa koji se javljaju u sekvenci upravljačkih signala po koracima je brbezusl. Koraci stepA, simboličke oznake signala valA i vrednosti A za sve korake ovog tipa koji se javljaju u sekvenci upravljačkih signala po koracima dati su u tabeli 16.

Tabela 16 Koraci stepA, signali valA i vrednosti A za bezuslovne skokove stepA valA A step00 val00 00 step10 val10 10 step15 val15 15 step1D val1D 1D step22 val22 22 step9A val9A 9A step9E val9E 9E stepC3 valC3 C3 stepC9 valC9 C9 stepE1 valE1 E1

Umesto iskaza br (if uslov then stepA)

treba staviti • signal uslovnog skoka koji određuje signal uslov koji treba da bude aktivan da bi se

realizovao prelaz na korak stepA i • signal valA koji određuje da treba formirati binarnu vrednost A koraka stepA koju treba

upisati u brojač koraka u slučaju da je signal uslov aktivan. Simboličke oznake signala uslovnih skokova i signala uslova za sve iskaze ovog tipa koji se javljaju u sekvenci upravljačkih signala po koracima dati su u tabeli 17. Koraci stepA, simboličke oznake signala valA i vrednosti A za sve korake ovog tipa koji se javljaju u sekvenci upravljačkih signala po koracima dati su u tabeli 18.

Umesto iskaza br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)

treba staviti • signal višestrukog uslovnog skoka koji određuje signale uslov1, uslov2,..., uslovn od

kojih jedan treba da bude aktivan da bi se realizovao prelazak na jedan od koraka stepA1, stepA2, ..., stepAn.

Page 106: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

100

Tabela 17 Signali uslovnih skokova i signali uslova signal uslovnog skoka signal uslova

brnotldst32 ldst32 brprekid prekid brprirr prirr

brprinm PRINM brprcod PRCOD brpradr PRADR brprins PRINS breql eql brneq neq brgrt grt brgre gre brlss lss brleq leq

brgrtu grtu brgreu greu brlssu lssu brlequ lequ brneg neg brnng nng brovf ovf brnvf nvf

brnotpswp PSWP

Tabela 18 Koraci stepA, signali valA i vrednosti A za uslovne skokove stepA valA A step07 val07 07 step9A val9A 9A step9E val9E 9E stepC3 valC3 C3 stepC6 valC6 C6 stepC9 valC9 C9 stepD7 valD7 D7 stepD8 valD8 D8 stepD9 valD9 D9 stepDA valDA DA stepDE valDE DE stepDF valDF DF

Simboličke oznake signala višestrukog uslovnog skoka za sve korake ovog tipa koji se javljaju u sekvenci upravljačkih signala po koracima date su u tabeli 19. Vrednosti koje treba upisati u brojač koraka i signali uslova koji određuju koju od tih vrednosti treba upisati u brojač koraka za tri iskaza ovog tipa koji se javljaju u koracima step09, step0A i step17 u sekvenci upravljačkih signala po koracima dati su u tabelama 20, 21 i 22.

Tabela 19 Signali višestrukih uslovnih skokova korak signal višestrukog uslovnog skoka step09 brop step0A bradrld step17 bradrst

Page 107: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

101

Tabela 20 Signali uslova i vrednosti za upis u brojač koraka za višestruki uslovni skok u koraku step09

signal uslova vrednost signal uslova vrednost LOAD 0A BNEQ 80 STORE 17 BGRT 82 MVRRL 24 BGRE 84 MVRRR 27 BLSS 86 MVRPL 2A BLEQ 88 MVRPR 2D BGRTU 8A MVRIL 30 BGREU 8C MVRIR 33 BLSSU 8E PUSH 36 BLEQU 90 POP 3C BNEG 92 CLR 42 BNNG 94 ADD 44 BOVF 96 SUB 48 BNVF 98 CMP 4C JMP 9A INC 50 INT A1 DEC 53 JSR A2 AND 56 RTS A7 OR 5A RTI AC

XOR 5E JMPRIND B4 TST 62 INTD B6 NOT 66 INTE B7 ASR 69 TRPD B9 LSR 6C TRPE BB ROR 6F VARD BD

RORC 72 VARE BE SL 75 EDGD BF

ROL 78 EDGE C0 ROLC 7B NOP C1 BEQL 7E HALT F0

Tabela 21 Signali uslova i vrednosti za upis u brojač koraka za višestruki uslovni skok u koraku step0A

signal uslova vrednost regind 0B

rindpom 0C memdir 0F nepsrd 13

Tabela 22 Signali uslova i vrednosti za upis u brojač koraka za višestruki uslovni skok u koraku step17

signal uslova vrednost regind 18

rindpom 19 memdir 1C nepsrd 21

Po opisanom postupku je, na osnovu sekvence upravljačkih signala po koracima (tabela tabela 15), formirana sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 23). Ona ima sledeću formu:

• na levoj strani nalaze se dekodovani signali stanja brojača koraka,

Page 108: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

102

• u sredini je niz upravljačkih signala operacione i upravljačke jedinice koji su aktivni pri datoj vrednosti brojača koraka,

• dok komentar, u koracima gde se to radi lakšeg razumevanja smatralo korisnim, uvek počinje uskličnikom (!) i proteže se do sledećeg uskličnika (!).

Iz izloženog se vidi da su upravljački signali za upravljačku jedinicu ožičene realizacije • signal bezuslovnog skoka brbezusl, signali uslovnih skokova i višestrukih uslovnih

skokova dati u tabelama 17 i 19 i • signali valA dati u tabelama 16 i 18. Oni se formiraju na osnovu dobijene sekvence upravljačkih signala za upravljačku jedinicu

ožičene realizacije na identičan način kao i upravljački signali blokova operacione jedinice oper_jed.

Tabela 23 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije ! U nekom koraku se ostaje samo ukoliko je ili signal run bloka interfejs neaktivan ili signal halt bloka registri aktivan, a prelazi na prvi sledeći ili na neki novi korak u svim ostalim situacijama. Signal run je neaktivan samo u koracima u kojima se realizuje ciklus čitanja, ciklus upisa ili ciklus prihvatanja broja ulaza na magistrali. U ovim koracima je zbog aktivne vrednosti signala read, write ili intack bloka interfejs signal run neaktivan sve do završetka ciklusa. Po završetku ciklusa signal run postaje aktivan, pa se prelazi na prvi sledeći korak. U svim ostalim koracima signal run je aktivan. Signal halt je aktivan samo u koraku T00. Po startovanju procesora signal halt postaje neaktivan, pa se prelazi na prvi sledeći korak. U svim ostalim koracima signal halt je neaktivan. U svim koracima u kojima su istovremeno signal run aktivan i signal halt neaktivan ostaje se jedna perioda signala takta. U tim koracima bitna je vrednost signala bradr, bropr, bruncnd i brcnd. U koracima u kojima su svi signali bradr, bropr, bruncnd i brcnd neaktivni, signal ld brojača koraka CNT je neaktivan a signal inc brojača koraka CNT aktivan, pa se inkrementira vrednost brojača koraka CNT. U koracima u kojima je jedan od signala bradr, bropr, bruncnd i brcnd aktivan, signal ld je aktivan a signal inc neaktivan, pa se u brojača koraka CNT upisuje nova vrednost. !

! U koraku T00 se ostaje sve dok je signal halt aktivan. Tada su neaktivne vrednosti signala inc i ld, pa nema promene vrednosti brojača koraka CNT. Kada signal halt postane neaktivan prelazi se u korak T01. Tada se zbog neaktivnih vrednosti signala bradr, bropr, bruncnd i brcnd formira aktivna vrednost signala inc i neaktivna signala ld, pa se inkrementira vrednost brojača koraka CNT na 1. Na identičan način se prelazi i u korake T02 i T03. !

T00 PCout, MARin, Xin; T01 read; T02 MDRout, IRHin;

! U koraku T03 se generišu aktivne vrednosti signala brnotldst32 i val07. Aktivnom vrednošću signala brnotldst32 se određuje da, u zavisnosti od toga da li je aktivna ili neaktivna vrednost signala ldst32, iz koraka T03 treba preći na korak T04 ili T07. Ako je aktivna vrednost signala ldst32 signal brcnd ostaje neaktivan. Zbog toga se formira aktivna vrednost signala inc i neaktivna signala ld, pa se inkrementira vrednost brojača koraka CNT na 4. Ako je neaktivna vrednost signala ldst32 signal brcnd postaje aktivan. Zbog toga se formira neaktivna vrednost signala inc i aktivna signala ld, pa se vrednost 07, formirana na osnovu aktivne vrednosti signala val07, upisuje u brojača koraka CNT. !

T03 inc, ALUSHIFTout, PCin, MARin, Xin, brnotldst32, val07;

T04 read; T05 MDRout, IRLin; T06 inc, ALUSHIFTout, PCin; T07 ldprcod;

! U koraku T08 se generišu aktivne vrednosti signala brprcod i valC3, kojima se određuje da, u zavisnosti od vrednosti signala PRCOD, iz koraka T08 treba preći na korak T09 ili TC3. !

T08 brprcod, valC3;

Page 109: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

103

! U koraku T09 se generiše aktivna vrednost signala brop. Aktivnom vrednošću signala brop se određuje da, u zavisnosti od toga koji od signala LOAD, STORE, ..., HALT ima aktivnu vrednost, iz koraka T09 treba preći na jedan od koraka T0A, T17, ..., TF0. Zbog aktivne vrednosti signala brop formira se neaktivna vrednost signala inc i aktivna signala ld, pa se jedna od vrednost 0A, 17, ..., F0, formirana na osnovu aktivne vrednosti jednog od signala LOAD, STORE, ..., HALT, upisuje u brojača koraka CNT. !

T09 brop; ! U koraku T0A se generiše aktivna vrednost signala bradrld. Aktivnom vrednošću signala bradrld se određuje da, u zavisnosti od toga koji od signala regind, rindpom, memdir i nepsrd ima aktivnu vrednost, iz koraka T0A treba preći na jedan od koraka T0B, T0C, T0F i T13. Zbog aktivne vrednosti signala bradrld formira se neaktivna vrednost signala inc i aktivna signala ld, pa se jedna od vrednosti 0B, 0C, 0F i 13, formirana na osnovu aktivne vrednosti jednog od signala regind, rindpom, memdir i nepsrd, upisuje u brojača koraka CNT. !

T0A bradrld; ! U koraku T0B se generišu aktivne vrednosti signala brbezusl i val10. Aktivnom vrednošću signala brbezusl se određuje da iz koraka T0B treba preći na korak T10. Tada se zbog aktivne vrednosti signala brbezusl formira neaktivna vrednost signala inc i aktivna signala ld, pa se vrednost 10, formirana na osnovu aktivne vrednosti signala val10, upisuje u brojača koraka CNT. !

T0B REGout, regsel2, MARin, brbezusl, val10;

T0C REGout, regsel2, Xin; T0D IRLout, Yin;

! U koraku T0E se generišu aktivne vrednosti signala brbezusl i val10, kojima se određuje da iz koraka T0E treba preći na korak T10. !

T0E add, ALUSHIFTout, MARin, brbezusl, val10;

T0F IRLout, MARin; T10 read; T11 MDRout, REGin, regsel1, Xin;

! U koraku T12 se generišu aktivne vrednosti signala brbezusl i val15, kojima se određuje da iz koraka T12 treba preći na korak T15. !

T12 trans, ldpsw, brbezusl, val15;

T13 IRLout, REGin, regsel1, Xin; T14 trans, ldpsw;

! U koraku T15 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T15 treba preći na korak T16 ili TC3. !

T15 brprekid, valC3; ! U koraku T16 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T16 treba preći na korak T00. !

T16 brbezusl, val00; ! U koraku T17 se generiše aktivna vrednost signala bradrst, kojom se realizuje višestruki uslovni skok. Aktivnom vrednošću signala bradrst se određuje da, u zavisnosti od toga koji od signala regind, rindpom, memdir i nepsrd ima aktivnu vrednost, iz koraka T0A treba preći na jedan od koraka T18, T19, T1C i T21. Zbog aktivne vrednosti signala bradrst formira se neaktivna vrednost signala inc i aktivna signala ld, pa se jedna od vrednosti 18, 19, 1C i 21, formirana na osnovu aktivne vrednosti jednog od signala regind, rindpom, memdir i nepsrd, upisuje u brojača koraka CNT. !

T17 bradrst; ! U koraku T18 se generišu aktivne vrednosti signala brbezusl i val1D, kojima se određuje da iz koraka T18 treba preći na korak T1D. !

T18 REGout, regsel2, MARin, brbezusl, val1D;

T19 REGout, regsel2, Xin; T1A IRLout, Yin;

Page 110: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

104

! U koraku T1B se generišu aktivne vrednosti signala brbezusl i val1D, kojima se određuje da iz koraka T1B treba preći na korak T1D. !

T1B add, ALUSHIFTout, MARin, brbezusl, val1D;

T1C IRLout, MARin; T1D REGout, regsel1, MDRin, Xin; T1E trans, ldpsw; T1F write;

! U koraku T20 se generišu aktivne vrednosti signala brbezusl i val22, kojima se određuje da iz koraka T20 treba preći na korak T22. !

T20 brbezusl, val22; ! U koraku T21 se generišu aktivne vrednosti signala brbezusl i valC3, kojima se određuje da iz koraka T21 treba preći na korak TC3. !

T21 stpradr, brbezusl, valC3;

! U koraku T22 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T22 treba preći na korak T23 ili TC3. !

T22 brprekid, valC3; ! U koraku T23 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T23 treba preći na korak T00. !

T23 brbezusl, val00; T24 REGout, regsel1, Xin;

! U koraku T25 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T25 treba preći na korak T26 ili TC3. !

T25 trans, ALUSHIFTout, REGin, regsel2, ldpsw, brprekid, valC3;

! U koraku T26 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T26 treba preći na korak T00. !

T26 brbezusl, val00; T27 REGout, regsel2, Xin;

! U koraku T28 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T28 treba preći na korak T29 ili TC3. !

T28 trans, ALUSHIFTout, REGin, regsel1, ldpsw, brprekid, valC3;

! U koraku T29 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T29 treba preći na korak T00. !

T29 brbezusl, val00; T2A PRREGout, Xin;

! U koraku T2B se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T2B treba preći na korak T2C ili TC3. !

T2B trans, ALUSHIFTout, REGin, regsel2, ldpsw, brprekid, valC3;

! U koraku T2C se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T2C treba preći na korak T00. !

T2C brbezusl, val00; T2D REGout, regsel2, Xin;

! U koraku T2E se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T2E treba preći na korak T2F ili TC3. !

T2E trans, ALUSHIFTout, PRREGin, ldpsw, brprekid, valC3;

! U koraku T2F se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T2F treba preći na korak T00. !

T2F brbezusl, val00; T30 INTREGout, Xin;

Page 111: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

105

! U koraku T31 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T31 treba preći na korak T32 ili TC3. !

T31 trans, ALUSHIFTout, REGin, regsel2, ldpsw, brprekid, valC3;

! U koraku T32 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T32 treba preći na korak T00. !

T32 brbezusl, val00; T33 REGout, regsel2, Xin;

! U koraku T34 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T34 treba preći na korak T35 ili TC3. !

T34 trans, ALUSHIFTout, INTREGin, ldpsw, brprekid, valC3;

! U koraku T35 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T35 treba preći na korak T00. !

T35 brbezusl, val00; T36 SPout, Xin; T37 dec, ALUSHIFTout, SPin, MARin; T38 REGout, regsel1, MDRin, Xin; T39 write;

! U koraku T3A se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T3A treba preći na korak T3B ili TC3. !

T3A trans, ldpsw, brprekid, valC3;

! U koraku T3B se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T3B treba preći na korak T00. !

T3B brbezusl, val00; T3C SPout, MARin, Xin; T3D inc, ALUSHIFTout, SPin; T3E read; T3F MDRout, REGin, regsel1, Xin;

! U koraku T40 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T40 treba preći na korak T41 ili TC3. !

T40 trans, ldpsw, brprekid, valC3;

! U koraku T41 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T41 treba preći na korak T00. !

T41 brbezusl, val00; ! U koraku T42 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T42 treba preći na korak T43 ili TC3. !

T42 zero, ALUSHIFTout, REGin, regsel1, ldpsw, brprekid, valC3;

! U koraku T43 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T43 treba preći na korak T00. !

T43 brbezusl, val00; T44 REGout, regsel1, Xin; T45 REGout, regsel2, Yin;

! U koraku T46 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T46 treba preći na korak T47 ili TC3. !

T46 add, ALUSHIFTout, REGin, regsel3, ldpsw, brprekid, valC3;

! U koraku T47 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T47 treba preći na korak T00. !

T47 brbezusl, val00; T48 REGout, regsel2, Xin;

Page 112: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

106

T49 REGout, regsel1, Yin; ! U koraku T4A se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T4A treba preći na korak T4B ili TC3. !

T4A sub, ALUSHIFTout, REGin, regsel3, ldpsw, brprekid, valC3;

! U koraku T4B se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T4B treba preći na korak T00. !

T4B brbezusl, val00; T4C REGout, regsel2, Xin; T4D REGout, regsel1, Yin;

! U koraku T4E se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T4E treba preći na korak T4F ili TC3. !

T4E sub, ldpsw, brprekid, valC3;

! U koraku T4F se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T4F treba preći na korak T00. !

T4F brbezusl, val00; T50 REGout, regsel1, Xin;

! U koraku T51 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T51 treba preći na korak T52 ili TC3. !

T51 inc, ALUSHIFTout, REGin, regsel1, ldpsw, brprekid, valC3;

! U koraku T52 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T52 treba preći na korak T00. !

T52 brbezusl, val00; T53 REGout, regsel1, Xin;

! U koraku T54 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T54 treba preći na korak T55 ili TC3. !

T54 dec, ALUSHIFTout, REGin, regsel1, T4A, brprekid, valC3;

! U koraku T55 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T55 treba preći na korak T00. !

T55 brbezusl, val00; T56 REGout, regsel1, Xin; T57 REGout, regsel2, Yin;

! U koraku T58 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T58 treba preći na korak T59 ili TC3. !

T58 and, ALUSHIFTout, REGin, regsel3, ldpsw, brprekid, valC3;

! U koraku T59 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T59 treba preći na korak T00. !

T59 brbezusl, val00; T5A REGout, regsel1, Xin; T5B REGout, regsel2, Yin;

! U koraku T5C se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T5C treba preći na korak T5D ili TC3. !

T5C or, ALUSHIFTout, REGin, regsel3, ldpsw, brprekid, valC3;

! U koraku T5D se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T5D treba preći na korak T00.

T5D brbezusl, val00; T5E REGout, regsel1, Xin; T5F REGout, regsel2, Yin;

Page 113: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

107

! U koraku T60 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T60 treba preći na korak T61 ili TC3. !

T60 xor, ALUSHIFTout, REGin, regsel3, ldpsw, brprekid, valC3;

! U koraku T61 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T61 treba preći na korak T00.

T61 brbezusl, val00; T62 REGout, regsel1, Xin; T63 REGout, regsel2, Yin;

! U koraku T64 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T64 treba preći na korak T65 ili TC3. !

T64 and, ldpsw, brprekid, valC3;

! U koraku T65 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T65 treba preći na korak T00.

T65 brbezusl, val00; T66 REGout, regsel1, Xin;

! U koraku T67 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T67 treba preći na korak T68 ili TC3. !

T67 not, ALUSHIFTout, REGin, regsel1, ldpsw, brprekid, valC3;

! U koraku T68 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T68 treba preći na korak T00. !

T68 brbezusl, val00; T69 REGout, regsel1, Xin;

! U koraku T6A se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T6A treba preći na korak T6B ili TC3. !

T6A asr, ALUSHIFTout, REGin, regsel1, ldpsw, brprekid, valC3;

! U koraku T6B se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T6B treba preći na korak T00. !

T6B brbezusl, val00; T6C REGout, regsel1, Xin;

! U koraku T6D se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T6D treba preći na korak T6E ili TC3. !

T6D lsr, ALUSHIFTout, REGin, regsel1, ldpsw, brprekid, valC3;

! U koraku T6E se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T6E treba preći na korak T00. !

T6E brbezusl, val00; T6F REGout, regsel1, Xin;

! U koraku T70 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T70 treba preći na korak T71 ili TC3. !

T70 ror, ALUSHIFTout, REGin, regsel1, ldpsw, brprekid, valC3;

! U koraku T71 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T71 treba preći na korak T00. !

T71 brbezusl, val00; T72 REGout, regsel1, Xin;

! U koraku T73 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T73 treba preći na korak T74 ili TC3. !

T73 rorc, ALUSHIFTout, REGin, regsel1, ldpsw, brprekid, valC3;

Page 114: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

108

! U koraku T74 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T74 treba preći na korak T00. !

T74 brbezusl, val00; T75 REGout, regsel1, Xin;

! U koraku T76 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T76 treba preći na korak T77 ili TC3. !

T76 sl, ALUSHIFTout, REGin, regsel1, ldpsw, brprekid, valC3;

! U koraku T77 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T77 treba preći na korak T00. !

T77 brbezusl, val00; T78 REGout, regsel1, Xin;

! U koraku T79 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T79 treba preći na korak T7A ili TC3. !

T79 rol, ALUSHIFTout, REGin, regsel1, ldpsw, brprekid, valC3;

! U koraku T7A se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T7A treba preći na korak T00. !

T7A brbezusl, val00; T7B REGout, regsel1, Xin;

! U koraku T7C se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T7C treba preći na korak T7D ili TC3. !

T7C rolc, ALUSHIFTout, REGin, regsel1, ldpsw, brprekid, valC3;

! U koraku T7D se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T7D treba preći na korak T00. !

T7D brbezusl, val00; ! U koraku T7E se generišu aktivne vrednosti signala breql i val9A, kojima se određuje da, u zavisnosti od vrednosti signala eql, iz koraka T7E treba preći na korak T7F ili T9A. !

T7E breql, val9A; ! U koraku T7F se generišu aktivne vrednosti signala brbezusl i val9E, kojima se određuje da iz koraka T7F treba preći na korak T9E. !

T7F brbezusl, val9E; ! U koraku T80 se generišu aktivne vrednosti signala brneq i val9A, kojima se određuje da, u zavisnosti od vrednosti signala neq, iz koraka T80 treba preći na korak T81 ili T9A. !

T80 brneq, val9A; ! U koraku T81 se generišu aktivne vrednosti signala brbezusl i val9E, kojima se određuje da iz koraka T81 treba preći na korak T9E. !

T81 brbezusl, val9E; ! U koraku T82 se generišu aktivne vrednosti signala brgrt i val9A, kojima se određuje da, u zavisnosti od vrednosti signala grt, iz koraka T82 treba preći na korak T83 ili T9A. !

T82 brgrt, val9A; ! U koraku T83 se generišu aktivne vrednosti signala brbezusl i val9E, kojima se određuje da iz koraka T83 treba preći na korak T9E. !

T83 brbezusl, val9E; ! U koraku T84 se generišu aktivne vrednosti signala brgre i val9A, kojima se određuje da, u zavisnosti od vrednosti signala gre, iz koraka T84 treba preći na korak T85 ili T9A. !

T84 brgre, val9A; ! U koraku T85 se generišu aktivne vrednosti signala brbezusl i val9E, kojima se određuje da iz koraka T85 treba preći na korak T9E. !

T85 brbezusl, val9E; ! U koraku T86 se generišu aktivne vrednosti signala brlss i val9A, kojima se određuje da, u zavisnosti od vrednosti signala lss, iz koraka T86 treba preći na korak T87 ili T9A. !

T86 brlss, val9A;

Page 115: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

109

! U koraku T87 se generišu aktivne vrednosti signala brbezusl i val9E, kojima se određuje da iz koraka T87 treba preći na korak T9E. !

T87 brbezusl, val9E; ! U koraku T88 se generišu aktivne vrednosti signala brleq i val9A, kojima se određuje da, u zavisnosti od vrednosti signala leq, iz koraka T88 treba preći na korak T89 ili T9A. !

T88 brleq, val9A; ! U koraku T89 se generišu aktivne vrednosti signala brbezusl i val9E, kojima se određuje da iz koraka T89 treba preći na korak T9E. !

T89 brbezusl, val9E; ! U koraku T8A se generišu aktivne vrednosti signala brgrtu i val9A, kojima se određuje da, u zavisnosti od vrednosti signala grtu, iz koraka T8A treba preći na korak T8B ili T9A. !

T8A brgrtu, val9A; ! U koraku T8B se generišu aktivne vrednosti signala brbezusl i val9E, kojima se određuje da iz koraka T8B treba preći na korak T9E. !

T8B brbezusl, val9E; ! U koraku T8C se generišu aktivne vrednosti signala brgreu i val9A, kojima se određuje da, u zavisnosti od vrednosti signala greu, iz koraka T8C treba preći na korak T8D ili T9A. !

T8C brgreu, val9A; ! U koraku T8D se generišu aktivne vrednosti signala brbezusl i val9E, kojima se određuje da iz koraka T8D treba preći na korak T9E. !

T8D brbezusl, val9E; ! U koraku T8E se generišu aktivne vrednosti signala brlssu i val9A, kojima se određuje da, u zavisnosti od vrednosti signala lssu, iz koraka T8E treba preći na korak T8F ili T9A. !

T8E brlssu, val9A; ! U koraku T8F se generišu aktivne vrednosti signala brbezusl i val9E, kojima se određuje da iz koraka T8F treba preći na korak T9E. !

T8F brbezusl, val9E; ! U koraku T90 se generišu aktivne vrednosti signala brlequ i val9A, kojima se određuje da, u zavisnosti od vrednosti signala lequ, iz koraka T90 treba preći na korak T91 ili T9A. !

T90 brlequ, val9A; ! U koraku T91 se generišu aktivne vrednosti signala brbezusl i val9E, kojima se određuje da iz koraka T91 treba preći na korak T9E. !

T91 brbezusl, val9E; ! U koraku T92 se generišu aktivne vrednosti signala brneg i val9A, kojima se određuje da, u zavisnosti od vrednosti signala neg, iz koraka T92 treba preći na korak T93 ili T9A. !

T92 brneg, val9A; ! U koraku T93 se generišu aktivne vrednosti signala brbezusl i val9E, kojima se određuje da iz koraka T93 treba preći na korak T9E. !

T93 brbezusl, val9E; ! U koraku T94 se generišu aktivne vrednosti signala brnng i val9A, kojima se određuje da, u zavisnosti od vrednosti signala nng, iz koraka T94 treba preći na korak T95 ili T9A. !

T94 brnng, val9A; ! U koraku T95 se generišu aktivne vrednosti signala brbezusl i val9E, kojima se određuje da iz koraka T95 treba preći na korak T9E. !

T95 brbezusl, val9E; ! U koraku T96 se generišu aktivne vrednosti signala brovf i val9A, kojima se određuje da, u zavisnosti od vrednosti signala ovf, iz koraka T96 treba preći na korak T97 ili T9A. !

T96 brovf, val9A; ! U koraku T97 se generišu aktivne vrednosti signala brbezusl i val9E, kojima se određuje da iz koraka T97 treba preći na korak T9E. !

T97 brbezusl, val9E; ! U koraku T98 se generišu aktivne vrednosti signala brnvf i val9A, kojima se određuje da, u zavisnosti od vrednosti signala nvf, iz koraka T98 treba preći na korak T99 ili T9A. !

T98 brnvf, val9A;

Page 116: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

110

! U koraku T99 se generišu aktivne vrednosti signala brbezusl i val9E, kojima se određuje da iz koraka T99 treba preći na korak T9E. !

T99 brbezusl, val9E; T9A IRHout, Xin; T9B signext, ALUSHIFTout, Yin; T9C PCout, Xin; T9D add, ALUSHIFTout, PCin;

! U koraku T9E se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka T9E treba preći na korak T9F ili TC3. !

T9E brprekid, valC3; ! U koraku T9F se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka T9F treba preći na korak T00. !

T9F brbezusl, val00; ! U koraku TA1 se generišu aktivne vrednosti signala brbezusl i valC3, kojima se određuje da iz koraka TA1 treba preći na korak TC3. !

TA1 stprins, brbezusl, valC3;

TA2 SPout, Xin; TA3 dec, ALUSHIFTout, SPin, MARin; TA4 PCout, MDRin; TA5 write;

! U koraku TA6 se generišu aktivne vrednosti signala brbezusl i val9A, kojima se određuje da iz koraka TA6 treba preći na korak T9A. !

TA6 brbezusl, val9A; TA7 SPout, MARin, Xin; TA8 inc, ALUSHIFTout, SPin; TA9 read;

! U koraku TAA se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka TAA treba preći na korak TAB ili TC3. !

TAA MDRout, PCin, brprekid, valC3;

! U koraku TAB se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TAB treba preći na korak T00. !

TAB brbezusl, val00; TAC SPout, MARin, Xin; TAD inc, ALUSHIFTout, SPin; TAE read; TAF MDRout, PSWin; TB0 SPout, MARin, Xin; TB1 inc, ALUSHIFTout, SPin; TB2 read;

! U koraku TB3 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TB3 treba preći na korak T00. !

TB3 MDRout, PCin, brbezusl, val00;

! U koraku TB4 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka TB4 treba preći na korak TB5 ili TC3. !

TB4 REGout, regsel1, PCin, brprekid, valC3;

! U koraku TB5 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TB5 treba preći na korak T00. !

TB5 brbezusl, val00; ! U koraku TB6 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TB6 treba preći na korak T00. !

Page 117: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

111

TB6 clpswi, brbezusl, val00;

! U koraku TB7 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TB7 treba preći na korak T00. !

TB7 stpswi, brbezusl, val00;

! U koraku TB9 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TB9 treba preći na korak T00. !

TB9 clpswt, brbezusl, val00;

! U koraku TBB se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TBB treba preći na korak T00. !

TBB stpswt, brbezusl, val00;

! U koraku TBD se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TBD treba preći na korak T00. !

TBD clpswp, brbezusl, val00;

! U koraku TBE se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TBE treba preći na korak T00. !

TBE stpswp, brbezusl, val00;

! U koraku TBF se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TBF treba preći na korak T00. !

TBF clpswe, brbezusl, val00;

! U koraku TC0 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TC0 treba preći na korak T00. !

TC0 stpswe, brbezusl, val00;

! U koraku TC1 se generišu aktivne vrednosti signala brprekid i valC3, kojima se određuje da, u zavisnosti od vrednosti signala prekid, iz koraka TC1 treba preći na korak TC2 ili TC3. !

TC1 brprekid, valC3; ! U koraku TC2 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TC2 treba preći na korak T00. !

TC2 brbezusl, val00; ! U koraku TC3 se generišu aktivne vrednosti signala brpradr i valC6, kojima se određuje da, u zavisnosti od vrednosti signala PRADR, iz koraka TC3 treba preći na korak TC4 ili TC6. !

TC3 brpradr, valC6; ! U koraku TC1 se generišu aktivne vrednosti signala brprcod i valC6, kojima se određuje da, u zavisnosti od vrednosti signala PRCOD, iz koraka TC4 treba preći na korak TC5 ili TC6. !

TC4 brprcod, valC6; ! U koraku TC5 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TC5 treba preći na korak T00. !

TC5 brbezusl, valC9; TC6 PCout, Xin;

! U koraku TC7 se generišu aktivne vrednosti signala brnotldst32 i valC9, kojima se određuje da, u zavisnosti od vrednosti signala ldst32, iz koraka TC7 treba preći na korak TC8 ili TC9. !

TC7 dec, ALUSHIFTout, PCin, Xin, brnotldst32, valC9;

TC8 dec, ALUSHIFTout, PCin; TC9 SPout, Xin; TCA dec, ALUSHIFTout, SPin, MARin; TCB PCout, MDRin;

Page 118: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

112

TCC write; TCD SPout, Xin; TCE dec, ALUSHIFTout, SPin, MARin; TCF PSWout, MDRin; TD0 write;

! U koraku TD1 se generišu aktivne vrednosti signala brprins i valDF, kojima se određuje da, u zavisnosti od vrednosti signala PRINS, iz koraka TD1 treba preći na korak TD2 ili TDF. !

TD1 brprins, valDF; ! U koraku TD2 se generišu aktivne vrednosti signala brprcod i valD9, kojima se određuje da, u zavisnosti od vrednosti signala PRCOD, iz koraka TD2 treba preći na korak TD3 ili TD9. !

TD2 brprcod, valD9; ! U koraku TD3 se generišu aktivne vrednosti signala brpradr i valD8, kojima se određuje da, u zavisnosti od vrednosti signala PRADR, iz koraka TD3 treba preći na korak TD4 ili TD8. !

TD3 brpradr, valD8; ! U koraku TD4 se generišu aktivne vrednosti signala brprinm i valD7, kojima se određuje da, u zavisnosti od vrednosti signala PRINM, iz koraka TD4 treba preći na korak TD5 ili TD7. !

TD4 brprinm, valD7; ! U koraku TD5 se generišu aktivne vrednosti signala brprirr i valDA, kojima se određuje da, u zavisnosti od vrednosti signala prirr, iz koraka TD5 treba preći na korak TD6 ili TDA. !

TD5 brprirr, valDA; ! U koraku TD6 se generišu aktivne vrednosti signala brbezusl i valE1, kojima se određuje da iz koraka TD6 treba preći na korak TE1. !

TD6 BRUNMSKout, Yin, brbezusl, valE1;

! U koraku TD7 se generišu aktivne vrednosti signala brbezusl i valE1, kojima se određuje da iz koraka TD7 treba preći na korak TE1. !

TD7 BRUNMSKout, Yin, clinm, brbezusl, valE1;

! U koraku TD8 se generišu aktivne vrednosti signala brbezusl i valE1, kojima se određuje da iz koraka TD8 treba preći na korak TE1.!

TD8 BRUNMSKout, Yin, clpradr, brbezusl, valE1;

! U koraku TD9 se generišu aktivne vrednosti signala brbezusl i valE1, kojima se određuje da iz koraka TD9 treba preći na korak TE1. !

TD9 BRUNMSKout, Yin, clprcod, brbezusl, valE1;

! U koraku TDA se generišu aktivne vrednosti signala brnotpswp i valDE, kojima se određuje da, u zavisnosti od vrednosti signala PSWP, iz koraka TDA treba preći na korak TDB ili TDE. !

TDA ldpswl, brnotpswp, valDE;

TDB intack; TDC MDRout, Xin;

! U koraku TDD se generišu aktivne vrednosti signala brbezusl i valE1, kojima se određuje da iz koraka TDD treba preći na korak TE1. !

TDD zeroext, ALUSHIFTout, Yin, clirr, brbezusl, valE1;

! U koraku TDE se generišu aktivne vrednosti signala brbezusl i valE1, kojima se određuje da iz koraka TDE treba preći na korak TE1. !

TDE BRUMASKout, Yin, clirr, brbezusl, valE1;

TDF IRHout, Xin; TE0 zeroext, ALUSHIFTout, Yin, clprins; TE1 IVTPout, Xin; TE2 add, ALUSHIFTout, MARin;

Page 119: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

113

TE3 read; TE4 MDRout, PCin;

! U koraku TE5 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TE5 treba preći na korak T00. !

TE5 clpswi, clpswt, brbezusl, val00;

! U koraku TF0 se generišu aktivne vrednosti signala brbezusl i val00, kojima se određuje da iz koraka TF0 treba preći na korak T00. !

TF0 sthalt, brbezusl, val00;

4.2.3.1.2 Struktura upravljačke jedinice

Struktura upravljačke jedinice ožičene realizacije je prikazana na slici 38. Upravljačka jedinica se sastoji iz sledećih blokova:

• blok generisanje nove vrednosti brojača koraka, • blok brojač koraka, • blok dekoder koraka, • blok generisanje upravljačkih signala.

Blok generisanje nove vrednosti brojača koraka se sastoji od kombinacionih mreža KMOP, KMADRLD, KMADRST i KMBRANCH sa multiplekserom MP i služi za generisanje i selekciju vrednosti koju treba upisati u brojač koraka. Potreba za ovim se javlja kada treba odstupiti od sekvencijalnog izvršavanja mikrooperacija. Vrednosti koje treba upisati u brojač koraka generišu se na četiri načina i to pomoću:

• kombinacione mreže KMOP koja formira signale op7...0, • kombinacione mreže KMADRLD koja formira signale ld7...0, • kombinacione mreže KMADRST koja formira signale st7...0 i • kombinacione mreže KMBRANCH koja formira signale br7...0.

Selekcija jedne od četiri grupe signala koji daju novu vrednost brojača koraka obezbeđuje se signalima brop, bradrld i bradrst i to:

• signali op7...0 ako je aktivan signal brop, • signali ld7...0 ako je aktivan signal bradrld, • signali st7...0 ako je aktivan signal bradrst i • signali br7...0 ako su neaktivni signali brop, bradrld i bradrst.

Kombinacionom mrežom KMOP generišu se vrednosti (tabela 20) za realizaciju višestrukog uslovnog skoka u koraku step09 sekvence upravljačkih signala po koracima. U zavisnosti od toga koji od signala LOAD, STORE, …, HALT ima aktivnu vrednost zavisi koja će od vrednosti iz tabele 20 da se pojavi tada na linijama op7...0. S obzirom da stanje brojača koraka T09 daje aktivnu vrednost signala višestrukog uslovnog skoka brop, vrednost na linijama op7...0 prolazi tada kroz multiplekser MP i pojavljuje se na ulazima brojača koraka CNT7...0.

Kombinacionom mrežom KMADRLD generišu se vrednosti (tabela 21) za realizaciju višestrukog uslovnog skoka u koraku step0A sekvence upravljačkih signala po koracima. U zavisnosti od toga koji od signala regind, rindpom, memdir i nepsrd ima aktivnu vrednost zavisi koja će od vrednosti iz tabele 21 da se pojavi tada na linijama ld7...0. S obzirom da stanje brojača koraka T0A daje aktivnu vrednost signala višestrukog uslovnog skoka bradrld, vrednost na linijama ld7...0 prolazi tada kroz multiplekser MP i pojavljuje se na ulazima brojača koraka CNT7...0.

Page 120: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

114

CNTINC

LDCLK

DC

TFF T0

CNT7..0

CLK

...

...FF 0

dekoder koraka

brojač koraka

1442443

run interfejsldinc

bradrstMP

S0

S1

brop0123

bradrld

8

8

generisanje upravljačkihsignala

generisanjeupravljačkih

signalaupravljačke

jedinice

prekidgenerisanjeupravljačkih

signalablokova

operacionejedinice

DRINM

PRADR

ldst32PSWP

eql

nvf

...

14

42

44

3pr

ekid

i

14

42

44

3

regi

stri prirr

PRINS

PRCOD

val D

F

val 0

...

val 7

bran

chbr

adrs

tbr

adrld

brop

prek

idi

inte

rfej

s

oper

acije

regi

stri

generisanje nove vrednostibrojača koraka

14444444444444244444444444443

registri

br7...0st7...0

144424443

regi

nd

neps

rd

rindp

omm

emdi

r

regi

nd

neps

rd

rindp

omm

emdi

r

op7...0

144424443

LOA

D

HA

LT...

STO

RE

KMOPA 17 F0

144424443

val 0

val D

9

val 3

144424443

...

KMBRANCH0 3 D9

KMADRLD KMADRSTB C F 13 18 19 1C 21

ld7...0

8 8 8 8

256

256 256 T0, T1, ..., TFFT0, T1, ..., TFF

bradrldbrop

bradrstbranch

halt registri

Slika 38 Struktura upravljačke jedinice

Kombinacionom mrežom KMADRST generišu se vrednosti (tabela 22) za realizaciju višestrukog uslovnog skoka u koraku step17 sekvence upravljačkih signala po koracima. U zavisnosti od toga koji od signala regind, rindpom, memdir i nepsrd ima aktivnu vrednost zavisi koja će od vrednosti iz tabele 22 da se pojavi tada na linijama st7...0. S obzirom da stanje brojača koraka T17 daje aktivnu vrednost signala višestrukog uslovnog skoka bradrst, vrednost na linijama st7...0 prolazi tada kroz multiplekser MP i pojavljuje se na ulazima brojača koraka CNT7...0.

Kombinacionom mrežom KMBRANCH generišu se vrednosti za upis u brojač koraka za bezuslovne skokove (tabela 16) i uslovne skokove (tabela 18) u sekvenci upravljačkih signala po koracima. U zavisnosti od toga koji od signala val00, val07, ..., valE1 ima aktivnu vrednost zavisi koja će od vrednosti iz tabela 16 i 18 tada da se pojavi na linijama br7...0. Signali

Page 121: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

115

višestrukih uslovnih skokova brop, bradrld i bradrst su aktivni samo u stanjima T09, T0A i T17 brojača koraka, a u svim ostalim neaktivni. S obzirom da nijedan od ova tri signala nije aktivan u stanjima brojača koraka kada treba realizovati bezuslovni ili neki od uslovnih skokova, vrednost na linijama br7...0 prolazi tada kroz multiplekser MP i pojavljuje se na ulazima brojača koraka CNT7...0.

Blok brojač koraka sadrži brojač CNT7...0. Brojač CNT7...0 svojom trenutnom vrednošću obezbeđuje aktivne vrednosti određenih upravljačkih signala. Brojač CNT7...0 može da radi u sledećim režimima:

• režim inkrementiranja, • režim skoka i • režim čekanja.

U režimu inkrementiranja pri pojavi signala takta vrši se uvećavanje sadržaja brojača CNT7...0 za jedan čime se obezbeđuje sekvencijalno generisanje upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 23). Ovaj režim rada se obezbeđuje aktivnom vrednošću signala inc. Signal inc je aktivan ako je signal run aktivan, signal halt neaktivan i ako su svi signali brop, bradrld, bradrst i branch neaktivni. Signal run je uvek aktivan sem kada treba obezbediti režim čekanja. Signal halt je uvek neaktivan sem kada je procesor zaustavljen. Signali brop, bradrld, bradrst i branch su uvek neaktivni sem kada treba obezbediti režim skoka.

U režimu skoka pri pojavi signala takta vrši se upis nove vrednosti u brojač CNT7...0 čime se obezbeđuje odstupanje od sekvencijalnog generisanja upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 23). Ovaj režim rada se obezbeđuje aktivnom vrednošću signala ld. Signal ld je aktivan ako je signal run aktivan, signal halt neaktivan i ako je jedan od signala brop, bradrld, bradrst i branch aktivan. Signal run je uvek aktivan sem kada treba obezbediti režim čekanja. Signal halt je uvek neaktivan sem kada je procesor zaustavljen. Jedan od signala brop, bradrld, bradrst i branch je aktivan samo u stanjima brojača koraka koja se koriste da daju aktivnu vrednost nekog od signala viišestrukog uslovnog skoka, bezuslovnog skoka ili nekog od uslovnih skokova i uslov skoka je ispunjen.

U režimu čekanja pri pojavi signala takta ne menja se vrednost brojača CNT7...0. Ovaj režim rada se obezbeđuje neaktivnim vrednostima signala inc i ld. Ovi signali su neaktivni kada je signal run neaktivan ili signal halt aktivan. Signal run je uvek aktivan sem kada je:

• ciklus procesora na magistrali u toku ili • magistrala prepuštena ulazno/izlaznom uređaju sa kontrolerom za direktan pristup

memoriji, a procesor je došao u korak izvršavanja instrukcije u kome mu je magistrala potrebna.

Signal halt je uvek neaktivan sem kada je procesor zaustavljen.

Brojač koraka CNT7...0 je dimenzionisan prema broju koraka u sekvenci upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 23). S obzirom da se upravljački signali svih faza izvršavanja instrukcija realizuju u opsegu od koraka T00 do koraka TE5 usvojena je dužina brojača koraka CNT7...0 od 8 bita.

Blok dekoder koraka sadrži dekoder DC. Na ulaze dekodera DC vode se izlazi brojača CNT7...0. Dekodovana stanja brojača CNT7...0 pojavljuju se kao signali T0, T1, ..., TFF na izlazima dekodera DC. Svakom koraku iz sekvence upravljačkih signala po koracima (tabela 15) dodeljeno je po jedno stanje brojača CNT7...0 određeno vrednošću signala T0 do TFF i to koraku step0 signal T0, koraku step1 signal T1, itd. (tabela 23).

Page 122: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

116

Blok generisanje upravljačkih signala sadrži kombinacione mreže koje pomoću signala T0, T1, ..., TE5, koji dolaze sa bloka dekoder koraka, signala logičkih uslova ldst32, PSWP, ..., nvf koji dolaze iz bloka registri i prekid, prirr, ..., PRCOD koji dolaze iz bloka prekidi i saglasno sekvenci upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 23) generišu dve grupe upravljačkih signala i to:

• upravljačke signale blokova operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed.

Upravljački signali blokova operacione jedinice oper_jed se daju posebno za svaki blok.

Upravljački signali bloka registri se generišu na sledeći način: • PCout = T00 + T9C + TA4 + TC6 + TCB • SPout = T36 + T3C + TA2 + TA7 + TAC + TB0 + TC9 + TCD • PRREGout = T2A • IRHout = T9A + TDF • IRLout = T0D + T0F + T13 + T1A + T1C • REGout = T0B + T0C + T18 + T19 + T1D + T24 + T27 + T2D + T33 + T38 + T44 + T45

+ T48 + T49 + T4C + T4D + T50 + T53 + T56 + T57 + T5A + T5B + T5E + T5F + T62 + T63 + T66 + T69 + T6C + T6F + T72 + T75 + T78 + T7B + TB4

• PSWout = TCF • PCin = T03 + T06 + T9D + TAA + TB3 + TB4 + TC7 + TC8 + TE4 • SPin = T37 + T3D + TA3 + TA8 + TAD + TB1 + TCA + TCE • PRREGin = T2E • IRHin = T02 • IRLin = T05 • REGin = T11 + T13 + T25 + T28 + T2B + T31 + T3F + T42 + T46 + T4A + T51

+ T54 + T58 + T5C + T60 + T67 + T6A + T6D + T70 + T73 + T76 + T79 + T7C • PSWin = TAF • regsel1 = T11 + T13 + T1D + T24 + T28 + T38 + T3F + T42 + T44 + T49 + T4D

+ T50 + T51 + T53 + T54 + T56 + T5A + T5E + T62 + T66 + T67 + T69 + T6C + T6F+ T72 + T75 + T78 + T7B + T6A + T6D + T70 + T73 + T76 + T79 + T7C

• regsel2 = T0B + T0C + T18 + T19 + T25 + T27 + T2B + T2D + T31 + T33 + T45 + T48+ T4C + T57 + T5B + T5F + T63

• regsel3 = T46 + T4A + T58 + T5C + T60 • ldpsw = T12 + T14 + T1E + T25 + T28 + T2B + T2E + T31 + T34 + T3A + T40 + T42+ T46

+ T4A + T4E + T51 + T54 + T58 + T5C + T60 + T64 + T67 + T6A + T6D + T70 + T73 + T76 + T79 + T7C

• ldpswl = TDA • clpswi = TB6 + TE5 • clpswt = TB9 + TE5 • clpswp = TBD • clpswe = TBF • stpswi = TB7 • stpswt = TBB • stpswp = TBE • stpswe = TC0 • sthalt = TF0

Upravljački signali bloka operacije se generišu na sledeći način:

Page 123: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

117

• Xout = 0 • Yout = 0 • ALUSHIFTout = T03 + T06 + T0E + T1B + T25 + T28 + T2B + T2E + T31 + T34 + T37

+ T3D + T42 + T46 + T4A + T51 + T54 + T58 + T5C + T60 + T67 + T6A + T6D + T70+ T73 + T76 + T79 + T7C + T9B + T9D + TA3 + TA8 + TAD + TB1 + TC7 + TC8 + TCA + TCE + TDD + TE0 + TE2

• Xin = T00 + T03 + T0C + T11 + T13 + T19 + T1D + T24 + T27 + T2A + T2D + T30 + T33 + T36 + T38 + T3C + T3F + T44 + T48 + T4C + T50 + T53 + T56 + T5A + T5E + T62 + T66 + T69 + T6C + T6F + T72 + T75 + T78 + T7B + T9A + T9C+ TA2 + TA7 + TAC + TB0 + TC6 + TC7 + TC9 + TCD + TDC + TDF + TE1

• Yin = T0D + T1A + T45 + T49 + T4D + T57 + T5B + T5F + T63 + T9B + TD6+ TD7 + TD8 + TD9 + TDD + TDE + TE0

• trans = T12 + T14 + T1E + T25 + T28 + T2B + T2E + T31 + T34 + T3A + T40 • add = T0E + T1B + T46 + T9D + TE2 • sub = T4A + T4E • inc = T03 + T06 + T3D + T51 + TA8 + TAD + TB1 • dec = T37 + T54 + TA3 + TC7 + TC8 + TCA + TCE • and = T58 + T64 • or = T5C • xor = T60 • not = T67 • sl = T76 • rol = T79 • rolc = T7C • asr = T6A • lsr = T6D • ror = T70 • rorc = T73 • zero = T42 • ones = 0 • zeroext = TDD + TE0 • signext = T9B

Upravljački signali bloka interfejs se generišu na sledeći način: • MARout = 0 • MDRout = T02 + T05 + T11 + T3F + TAA + TAF + TB3 + TDC + TE4 • MARin = T00 + T03 + T0B + T0E + T0F + T18 + T1B + T1C + T37 + T3C + TA3 + TA7

+ TAC + TB0 + TCA + TCE + TE2 • MDRin = T1D + T38 + TA4 + TCB + TCF • read = T01 + T04 + T10 + T3E + TA9 + TAE + TB2 + TE3 • write = T1F + T39 + TA5 + TCC + TD0 • intack = TDB

Upravljački signali bloka prekidi se generišu na sledeći način: • INTREGout = T30 • BRUNMSKout = TD6 + TD7 + TD8 + TD9 • BRUMASKout = TDE • IVTPout = TE1 • INTREGin = T34

Page 124: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

118

• ldprcod = T07 • stpradr = T21 • stprins = TA1 • clirr = TDD + TDE • clinm = TD7 • clprcod = TD9 • clpradr = TD8 • clprins = TE0

Upravljački signali upravljačke jedinice uprav_jed se generišu na sledeći način: • brop = T09 • bradrld = T0A • bradrst = T17 • branch = brbezusl

+ brnotldst32*ldst32 + brprekid*prekid + brprirr*prirr + brprinm*PRINM + brprcod*PRCOD + brpradr*PRADR + brprins*PRINS + breql*eql + brneq*neq + brgrt*grt + brgre*gre+ brlss*lss + brleq*leq + brgrtu*grtu + brgreu*greu+ brlssu*lssu + brlequ*lequ + brneg*neg + brnneg*nneg + brovf*ovf + brnvf*nvf + brnotpswp*PSWP

• val00 = T16 + T23 + T26 + T29 + T2C + T2F + T32 + T35 + T3B + T41 + T43 + T47 + T4B + T4F + T52 + T55 + T59 + T5D + T61 + T65 + T68 + T6B + T6E + T71+ T74 + T77 + T7A + T7D + T9F + TAB + TB3 + TB5 + TB6 + TB7 + TB9 + TBB + TBD + TBE + TBF + TC0 + TC2 + TE5

• val07 = T03 • val10 = T0B + T0E • val15 = T12 • val1D = T18 + T1B • val22 = T20 • val9A = T7E + T80 + T82 + T84 + T86 + T88 + T8A + T8C + T8E + T90 + T92 + T94 + T96

+ T98 + TA6 • val9E = T7F + T81 + T83 + T85 + T87 + T89 + T8B + T8D + T8F + T91 + T93 + T95 + T97

+ T99 • valC3 = T08 + T15 + T21 + T22 + T25 + T28 + T2B + T2E + T31 + T34 + T3A + T40 + T42

+T46 + T4A + T4E + T51 + T54 + T58 + T5C + T60 + T64 + T67 + T6A + T6D + T70 + T73 + T76 + T79 + T7C + T9E + TA1 + TAA + TB4 + TC1

• valC6 = TC3 + TC4 • valC9 = TC5 + TC7 • valD7 = TD4 • valD8 = TD3 • valD9 = TD2 • valDA = TD5 • valDE = TDA • valDF = TD1 • valE1 = TD6 + TD7 + TD8 + TDD + TDE + TD9

Signali koji se javljaju u izrazu za signal branch se generišu na sledeći način:

Page 125: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

119

• brbezusl = T0B + T0E + T12 + T16 + T18 + T1B + T20 + T21 + T23 + T26 + T29 + T2 + T2F + T32 + T35 + T3B + T41 + T43 + T47 + T4B + T4F + T52 + T55 + T59 + T5D + T61 + T65 + T68 + T6B + T6E + T71 + T74 + T77 + T7A + T7D + T7F + T81 + T83 + T85 + T87 + T89 + T8B + T8D + T8F + T91 + T93 + T95 + T97 + T99 + T9F + TA1 + TA6 + TAB + TB3 + TB5 + TB6 + TB7 + TB9 + TBB + TBD + TBE + TBF + TC0 + TC2 + TC5 + TD6 + TD7 + TD8+ TDD + TDE + TE5 + TD9

• brnotldst32 = T03 + TC7 • brprekid = T15 + T22 + T25 + T28 + T2B + T2E + T31 + T34 + T3A + T40 + T42 + T46

+ T4A + T4E + T51 + T54 + T58 + T5C + T60 + T64 + T67 + T6A + T6D + T70 + T73 + T76 + T79 + T7C + T9E + TAA + TB4 + TC1

• brdrirr = TD5 • brprinm = TD4 • brprcod = T08 + TC4 + TD2 • brpradr = TC3 + TD3 • brprins = TD1 • breql = T7E • brneq = T80 • brgrt = T82 • brgre = T84 • brlss = T86 • brleq = T88 • brgrtu = T8A • brgreu = T8C • brlssu = T8E • brlequ = T90 • brneg = T92 • brnng = T94 • brovf = T96 • brnvf = T98 i • brnotpswp = TDA

Pri generisanju signala branch koriste se sledeći signali logičkih uslova koji dolaze iz blokova operacione jedinice oper_jed i to:

• ldst32 — blok registri, • PSWP — blok registri, • eql — blok registri, • neq — blok registri • grt — blok registri, • gre — blok registri, • lss — blok registri, • leq — blok registri, • grtu — blok registri, • greu — blok registri, • lssu — blok registri, • lequ — blok registri, • neg — blok registri, • nng — blok registri, • ovf — blok registri,

Page 126: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

120

• nvf — blok registri, • prekid — blok prekidi, • prirr — blok prekidi, • PRINM — blok prekidi, • PRINS — blok prekidi, • PRADR — blok prekidi i • PRCOD — blok prekidi.

4.2.3.2 Mikroprogramska realizacija

U ovom odeljku su prikazana tri načina mikroprogramske realizacije upravljačke jedinice i to mikroprogramska realizacija sa mešovitim formatom mikroinstrukcije, mikroprogramska realizacija sa vertikalnim formatom mikroinstrukcija i mikroprogramska realizacija sa nanoprogramiranjem.

4.2.3.2.1 Mikroprogramska realizacija sa mešovitim formatom mikroinstrukcije

U ovom odeljku se razmatraju format mikroinstrukcije, mikroprogram i struktura upravljačke jedinice.

4.2.3.2.1.1 Format mikroinstrukcije

Usvojeno je da postoji samo jedan tip mikroinstrukcije (slika 39) koji ima dva dela i to: • operacioni deo mikroinstrukcije i • upravljački deo mikroinstrukcije.

Operacioni deo mikroinstrukcije se koristi za generisanje upravljačkih signala operacione jedinice oper_jed. Upravljački deo mikroinstrukcije se koristi za generisanje upravljačkih signala upravljačke jedinice uprav_jed. Mikroinstrukcija se označava sa CW50...0.

50 13 12 0

144444424444443 operacioni deo

mikroinstrukcije

1442443 upravljački deo mikroinstrukcije

Slika 39 Format mikroinstrukcije

4.2.3.2.1.1.1 Operacioni deo mikroinstrukcije

Operacioni deo mikroinstrukcije (slika 40) čine četiri polja i to: • polje registri, • polje operacije, • polje interfejs i • polje prekidi.

Polja su formirana prema blokovima operacione jedinice u kojima se signali kodirani datim poljima koriste.

50 37 36 28 27 22 21 13

14243 registri

14243 operacije

14243 interfejs

14243 prekidi

Slika 40 Operacioni deo mikroinstrukcije

Page 127: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

121

Polje registri

Bitovi CW50...37 mikroinstrukcije koriste se za kodiranje upravljačkih signala bloka registri (odeljak 4.1.1). Signali se kodiraju sledećim potpoljima (slika 41):

• potpolje slanje na internu magistralu, • potpolje upis sa interne magistrale, • potpolje selekcija registara opšte namene, • potpolje punjenje i • potpolje postavljanje i brisanje.

50 49 48 47 46 45 44 43 42 41 40 39 38 37

14243 14243 123 123 1442443 postavljanje i

brisanje

punjenje selekcija registara

opšte namene

upis sa interne magistrale

slanje na internu magistralu

Slika 41 Struktura polja registri

Potpolje slanje na internu magistralu. Bitovi CW50...48 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se sadržaj registara ovog bloka šalje na internu magistralu. Način kodiranja ovih signala dat je u tabeli 24 .

Tabela 24 Slanje na internu magistralu CW50...48 signali

0 — 1 PCout 2 SPout 3 PRREGout 4 IRHout 5 IRLout 6 REGout 7 PSWout

Potpolje upis sa interne magistrale. Bitovi CW47...45 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se sadržaj sa interne magistrale upisuje u registre ovog bloka. Način kodiranja ovih signala dat je u tabeli 25.

Tabela 25 Upis sa interne magistrale CW47...45 signali

0 — 1 PCin 2 SPin 3 PRREGin 4 IRHin 5 IRLin 6 REGin 7 PSWin

Page 128: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

122

Potpolje selekcija registara opšte namene. Bitovi CW44...43 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se selektuje jedno od polja OP1, OP2 ili OP3 instrukcije (odeljak 2.1.3) radi dobijanja adrese registra opšte namene. Način kodiranja ovih signala dat je u tabeli 26.

Tabela 26 Selekcija registara opšte namene CW44...43 signali

0 — 1 regsel1 2 regsel2 3 regsel3

Potpolje punjenje. Bitovi CW42...41 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se puni odgovarajuća vrednost u razrede PSWN, PSWZ, PSWC, PSWV, PSWL1 i PSWL0 registra PSW. Način kodiranja ovih signala dat je u tabelama 27 i 28.

Tabela 27 Punjenje razreda PSWN, PSWZ, PSWC i PSWV CW42 signali

0 — 1 ldpsw

Tabela 28 Punjenje razreda PSWL1 i PSWL0 CW41 signali

0 — 1 ldpswl

Potpolje postavljanje i brisanje. Bitovi CW40...37 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se pojedinačno postavljaju i brišu razredi PSWI, PSWT, PSWP i PSWE registra PSW i flip-flopa halt. Način kodiranja ovih signala dat je u tabeli 29.

Tabela 29 Punjenje razreda PSWI, PSWT, PSWP, PSWE i i flip-flopa halt CW40...37 signali

0 — 1 clpswi 2 clpswt 3 clpswi, clpswt 4 — 5 clpswp 6 clpswe 7 clpswp, clpswe 8 sthalt 9 stpswi A stpswt B stpswi, stpswt C — D stpswp E stpswe F stpswp, stpswe

Polje operacije

Bitovi CW36...28 mikroinstrukcije koriste se za kodiranje upravljačkih signala bloka operacije (odeljak 4.1.2). Signali se kodiraju sledećim potpoljima (slika 42):

• potpolje slanje na internu magistralu,

Page 129: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

123

• potpolje upis sa interne magistrale i • potpolje operacije.

36 35 34 33 32 31 30 29 28

123 123 1442443 operacija upis sa

interne magistrale

slanje na internu

magistralu

Slika 42 Struktura polja operacije

Potpolje slanje na internu magistralu. Bitovi CW36...35 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se sadržaj registara ovog bloka i kombinacione mreže ALUSHIFT šalje na internu magistralu. Način kodiranja ovih signala dat je u tabeli 30.

Tabela 30 Slanje na internu magistralu CW36...35 signali

0 — 1 Xout 2 Yout 3 ALUSHIFTout

Potpolje upis sa interne magistrale. Bitovi CW34...33 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se sadržaj sa interne magistrale upisuje u registre ovog bloka. Način kodiranja ovih signala dat je u tabelama 31 i 32.

Tabela 31 Upis sa interne magistrale u registar X CW34 signali

0 — 1 Xin

Tabela 32 Upis sa interne magistrale u registar Y CW33 signali

0 — 1 Yin

Potpolje operacije. Bitovi CW32...28 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se određuje mikrooperacija za izvršenje u ALUSHIFT jedinici. Način kodiranja ovih signala dat je u tabeli 33.

Page 130: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

124

Tabela 33 Operacije CW32...28 signali

00 trans 01 add 02 sub 03 inc 04 dec 05 and 06 or 07 xor 08 not 09 sl 0A rol 0B rolc 0C asr 0D lsr 0E ror 0F rorc 10 zero 11 ones 12 zeroext 13 signext 14 — M M

1F —

Polje interfejs

Bitovi CW27...22 mikroinstrukcije koriste se za kodiranje upravljačkih signala bloka interfejs (odeljak 4.1.3). Signali se kodiraju sledećim potpoljima (slika 43):

• potpolje slanje na internu magistralu, • potpolje upis sa interne magistrale i • potpolje ciklus na magistrali.

27 26 25 24 23 22

123 123 123 ciklus na

magistrali upis sa

interne magistrale

slanje na internu

magistralu

Slika 43 Struktura polja interfejs

Potpolje slanje na internu magistralu. Bitovi CW27...26 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se sadržaj registara ovog bloka šalje na internu magistralu. Način kodiranja ovih signala dat je u tabelama 34 i 35.

Page 131: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

125

Tabela 34 Slanje na internu magistralu registra MAR CW27 signali

0 — 1 MARout

Tabela 35 Slanje na internu magistralu registra MDR CW26 signali

0 — 1 MDRout

Potpolje upis sa interne magistrale. Bitovi CW25...24 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se sadržaj sa interne magistrale upisuje u registre ovog bloka. Način kodiranja ovih signala dat je u tabelama 36 i 37.

Tabela 36 Upis sa interne magistrale u registar MAR CW25 signali

0 — 1 MARin

Tabela 37 Upis sa interne magistrale u registar MDR CW24 signali

0 — 1 MDRin

Potpolje ciklus na magistrali. Bitovi CW23...22 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se određuje ciklus na magistrali. Način kodiranja ovih signala dat je u tabeli 38.

Tabela 38 Ciklus na magistrali CW23...22 signali

0 — 1 read 2 write 3 intack

Polje prekidi

Bitovi CW21...13 mikroinstrukcije koriste se za kodiranje upravljačkih signala bloka prekidi (odeljak 4.1.3). Signali se kodiraju sledećim potpoljima (slika 44):

• potpolje slanje na internu magistralu, • potpolje upis sa interne magistrale, • potpolje punjenje i postavljanje i • potpolje brisanje.

Page 132: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

126

21 20 19 18 17 16 15 14 13

14243 { 123 14243 brisanje punjenje i

postavljanje

upis sa interne magistrale

slanje na internu

magistralu

Slika 44 Struktura polja prekidi

Potpolje slanje na internu magistralu. Bitovi CW21...19 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se sadržaj registara ovog bloka šalje na internu magistralu. Način kodiranja ovih signala dat je u tabeli 39.

Tabela 39 Slanje na internu magistralu CW21...19 signali

0 — 1 INTREGout 2 BRUNMSKout 3 BRUMASKout 4 IVTPout 5 — 6 — 7 —

Potpolje upis sa interne magistrale. Bit CW18 mikroinstrukcije koristi se za kodiranje upravljačkog signala kojim se sadržaj sa interne magistrale upisuje u registar ovog bloka. Način kodiranja ovog signala dat je u tabeli 40.

Tabela 40 Upis sa interne magistrale CW18 signali

0 — 1 INTREGin

Potpolje punjenje i postavljanje. Bitovi CW17...16 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se puni odgovarajuća vrednost u flip-flop PRCOD ili postavljaju flip-flopovi PRADR i PRINS. Način kodiranja ovih signala dat je u tabeli 41.

Tabela 41 Punjenje i postavljanje CW17...16 signali

0 — 1 ldprcod 2 stpradr 3 stprins

Potpolje brisanje. Bitovi CW15...13 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se pojedinačno brišu flip-flopovi PINTR1…3, PRIRR1…3, PINM, PRINM, PRCOD, PRADR i PRINS. Način kodiranja ovih signala dat je u tabeli 42 .

Page 133: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

127

Tabela 42 Brisanje CW15...13 signali

0 — 1 clirr 2 clinm 3 clprcod 4 clpradr 5 clprins 6 — 7 —

4.2.3.2.1.1.2 Upravljački deo mikroinstrukcije

Upravljački deo mikroinstrukcije čine dva polja (slika 45) i to • polje uslov skoka i • polje adresa skoka.

12 8 7 0

1442443 uslov skoka

14444244443 adresa skoka

Slika 45 Upravljački deo mikroinstrukcije

Polje uslov skoka

Bitovi CW12...8 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se realizuju skokovi u mikroprogramu i to:

• bezuslovni skok, • uslovni skokovi i • višestruki uslovni skokovi.

Bezuslovni skok se realizuje u onim koracima sekvence upravljačkih signala po koracima (tabela 15) u kojima se pojavljuju iskazi tipa

br stepA. Simbolička oznaka signala bezuslovnog skoka koji za svaki od njih treba generisati i način njegovog kodiranja bitovima CW12...8 mikroinstrukcije dati su u tabeli 43.

Tabela 43 Signal bezuslovnog skoka CW12...8 signal bezuslovnog skoka

1F brbezusl

Uslovni skokovi se realizuju u onim koracima sekvence upravljačkih signala po koracima u kojima se pojavljuju iskazi tipa

br (if uslov then stepA). Način kodiranja signala uslovnih skokova bitovima CW12...8 mikroinstrukcije, simboličke oznake signala uslovnih skokova i signal uslova koji treba da je aktivan da bi se realizovao skok dati su u tabeli 44.

Višestruki uslovni skokovi se realizuju u onim koracima sekvence upravljačkih signala po koracima u kojima se pojavljuju iskazi tipa

br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn). Način kodiranja signala višestrukih uslovnih skokova bitovima CW12...8 mikroinstrukcije, koraci u sekvenci upravljačkih signala po koracima u kojima se pojavljuju iskazi ovog tipa i simboličke oznake signala višestrukih uslovnih skokova dati su u tabeli 45.

Page 134: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

128

Tabela 44 Signali uslovnih skokova CW12...8 signal uslovnog skoka signal uslova

1E brnotldst32 ldst32 1D brprekid prekid 1C brprirr prirr 1B brprinm PRINM 1A brprcod PRCOD 19 brpradr PRADR 18 brprins PRINS 17 breql eql 16 brneq neq 15 brgrt grt 14 brgre gre 13 brlss lss 12 brleq leq 11 brgrtu grtu 10 brgreu greu 0F brlssu lssu 0E brlequ lequ 0D brneg neg 0C brnng nng 0B brovf ovf 0A brnvf nvf 09 brnotpswp PSWP

Tabela 45 Signali višestrukih uslovnih skokova CW12...8 korak signal višestrukog uslovnog

skoka 08 step09 brop 07 step0A bradrld 06 step17 bradrst

Polje adresa skoka

Bitovi CW7...0 mikroinstrukcije koriste se za specificiranje adrese mikroinstrukcije na koju treba skočiti kod uslovnih i bezuslovnih skokova u sekvenci upravljačkih signala po koracima (tabela 15). Ovi bitovi sadrže vrednost koju treba upisati u mikroprogramski brojač u slučaju bezuslovnih skokova i ukoliko je signal uslova aktivan u slučaju uslovnih skokova. Kod pisanja mikroprograma ovo polje se simbolički označava sa madrxx, pri čemu xx odgovara heksadekadnoj vrednosti ovog polja. Na primer, sa madr56 je simbolički označena heksadekadna vrednost 56 ovog polja. Za kodiranje polja adresa skoka usvojeno je 8 bitova, jer je za kompletan mikroprogram dovoljan kapacitet mikroprogramske memorije od 256 reči.

4.2.3.2.1.2 Mikroprogram

Mikroprogram se za razmatrani slučaj mikroprogramske realizacije formira tako što se za svaki korak u sekvenci upravljačkih signala po koracima (tabela 15) formira jedna mikroinstrukcija. Ovo je posledica činjenice da je odabran takav format mikroinstrukcije da mikroinstrukcija sadrži i operacioni i upravljački deo. Stoga se jednom mikroinstrukcijuom mogu generisati i upravljački signali operacione jedinice oper_jed i upravljački signali upravljačke jedinice uprav_jed. Pored toga usvojen je takav format operacionog dela mikroinstrukcije da je za svaki korak u sekvenci upravljačkih signala po koracima moguće sve upravljačke signale operacione jedinice kodirati jednom mikroinstrukcijom. Kod

Page 135: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

129

formiranja mikroinstrukcija se posebno formira operacioni, a posebno upravljački deo mikroinstrukcije.

Kod formiranja operacionih delova mikroinstrukcija polazi se od sekvence upravljačkih signala po koracima i za svaki korak proverava da li se u datom koraku ne javljaju ili se javljaju upravljački signali operacione jedinice oper_jed. Ukoliko se ne javljaju, tada se, saglasno usvojenoj strukturi operacionog dela mikroinstrukcije, sva polja operacionog dela mikroinstrukcije kodiraju nulama. Ukoliko se javljaju, tada se, u zavisnosti od toga koji se upravljački signali operacione jedinice javljaju u datom koraku, saglasno usvojenoj strukturi operacionog dela mikroinstrukcije, kodiraju polja operacionog dela mikroinstrukcije.

Kod formiranja upravljačkih delova mikroinstrukcija polazi se od sekvence upravljačkih signala po koracima i za svaki korak proverava da li se u datom koraku ne javlja ili se javlja neki od iskaza

• br stepA, • br (if uslov then stepA) i • br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)).

Ukoliko se ne javljaju, tada se, saglasno usvojenoj strukturi operacionog dela mikroinstrukcije, sva polja upravljačkog dela mikroinstrukcije kodiraju nulama. Ukoliko se javljaju, tada se, u zavisnosti od toga koji se od ova tri iskaza javlja u datom koraku, saglasno usvojenoj strukturi upravljačkog dela mikroinstrukcije, kodiraju polja upravljačkog dela mikroinstrukcije.

Za iskaz br stepA

u upravljačkom delu mikroinstrukcije se kodira: • polje uslov skoka uzimanjem koda dodeljenog signalu bezuslovnog skoka koji određuje

da se bezuslovno prelazi na korak stepA i • polje adresa skoka uzimanjem binarne vrednosti A koraka stepA koju treba upisati u

mikroprogramski brojač.

Simbolička oznaka signala bezuslovnog skoka i način njegovog kodiranja poljem uslov skoka dati su u tabeli 43. Korak stepA na koji treba preći u sekvenci upravljačkih signala po koracima, simbolička oznaka vrednosti madrA koju treba upisati u mikroprogramski brojač i sama vrednost A za sve korake u sekvenci upravljačkih signala po koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli 46.

Tabela 46 Koraci stepA, adrese madrA i vrednosti A za bezuslovne skokove stepA madrA A step00 madr00 00 step10 madr10 10 step15 madr15 15 step1D madr1D 1D step22 madr22 22 step9A madr9A 9A step9E madr9E 9E stepC3 madrC3 C3 stepC9 madrC9 C9 stepE1 madrE1 E1

Za iskaz br (if uslov then stepA)

u upravljačkom delu mikroinstrukcije se kodira:

Page 136: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

130

• polje uslov skoka uzimanjem koda dodeljenog signalu uslovnog skoka koji određuje signal uslov koji treba da bude aktivan da bi se realizovao prelaz na korak stepA i

• polje adresa skoka uzimanjem binarne vrednosti A koraka stepA koju treba upisati u mikroprogramski brojač u slučaju da je signal uslov aktivan.

Simboličke oznake signala uslovnog skoka, način njihovog kodiranja poljem uslov skoka i signali uslov za sve iskaze ovog tipa koji se javljaju u sekvenci upravljačkih signala po koracima dati su u tabeli 44. Korak stepA na koji treba preći u sekvenci upravljačkih signala po koracima, simbolička oznaka vrednosti madrA koju treba upisati u mikroprogramski brojač u slučaju da je signal uslov aktivan i sama vrednost A za sve korake u sekvenci upravljačkih signala po koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli 47.

Tabela 47 Koraci stepA, adrese madrA i vrednosti A za uslovne skokove stepA madrA A step07 madr07 07 step9A madr9A 9A step9E madr9E 9E stepC3 madrC3 C3 stepC6 madrC6 C6 stepC9 madrC9 C9 stepD7 madrD7 D7 stepD8 madrD8 D8 stepD9 madrD9 D9 stepDA madrDA DA stepDE madrDE DE stepDF madrDF DF

Za iskaz br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn))

u upravljačkom delu mikroinstrukcije se kodira: • polje uslov skoka uzimanjem koda dodeljenog signalu višestrukog uslovnog skoka koji

određuje signale uslov1, ..., uslovn za koje treba izvršiti proveru koji je od njih aktivan da bi se na osnovu toga realizovao prelaz na jedan od koraka stepA1, ..., stepAn i

• polje adresa skoka nulama jer njegova vrednost nije bitna. Upravljačka jedinica uprav_jed mora da bude tako realizovana da za svaki višestruki uslovni skok generiše 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 aktivnu vrednost.

Simboličke oznake signala višestrukih uslovnih skokova, način njihovog kodiranja poljem uslov skoka i koraci u sekvenci upravljačkih signala po koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli 45. Vrednosti A1,..., An koje treba upisati u mikroprogramski brojač i signali uslova uslov1, ..., uslovn za koje treba izvršiti proveru koji je od njih aktivan da bi se na osnovu toga realizovao prelaz na jedan od koraka stepA1, ..., stepAn za tri iskaza ovog tipa koji se javljaju u sekvenci upravljačkih signala po koracima dati su u tabelama 48, 49 i 50.

Po opisanom postupku je, na osnovu sekvence upravljačkih signala po koracima (tabela 15) formiran mikroprogram (tabela 51). On ima sledeću formu:

• na levoj strani se nalaze adrese mikroinstrukcija u mikroprogramskoj memoriji u heksadekadnom obliku,

• u sredini su mikroinstrukcije predstavljene nizom simboličkih oznaka samo upravljačkih signala operacione i/ili upravljačke jedinice koji treba da budu aktivni i koji su razdvojeni zapetama,

Page 137: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

131

• dok komentar, u koracima gde se to radi lakšeg razumevanja smatralo korisnim, uvek počinje uskličnikom (!) i proteže se do sledećeg uskličnika (!).

Tabela 48 Signali uslova i vrednosti za upis u mikroprogramski brojač za višestruki uslovni skok u koraku step09

signal uslova vrednost signal uslova vrednost LOAD 0A BEQL 7E STORE 17 BNEQ 80 MVRRL 24 BGRT 82 MVRRR 27 BGRE 84 MVRPL 2A BLSS 86 MVRPR 2D BLEQ 88 MVRIL 30 BGRTU 8A MVRIR 33 BGREU 8C PUSH 36 BLSSU 8E POP 3C BLEQU 90 CLR 42 BOVF 96 ADD 44 BNVF 98 SUB 48 JMP 9A CMP 4C INT A1 INC 50 JSR A2 DEC 53 RTS A7 AND 56 RTI AC OR 5A JMPRIND B4

XOR 5E INTD B6 TST 62 INTE B7 NOT 66 TRPD B9 ASR 69 TRPE BB LSR 6C VARD BD ROR 6F VARE BE

RORC 72 EDGD BF SL 75 EDGE C0

ROL 78 NOP C1 ROLC 7B HALT F0

Tabela 49 Signali uslova i vrednosti za upis u mikroprogramski brojač za višestruki uslovni skok u koraku step0A

signal uslova vrednost regind 0B

rindpom 0C memdir 0F nepsrd 13

Tabela 50 Signali uslova i vrednosti za upis u mikroprogramski brojač za višestruki uslovni skok u koraku step17

signal uslova vrednost regind 18

rindpom 19 memdir 1C nepsrd 21

Page 138: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

132

Tabela 51 Mikroprogram ! Čitanje instrukcije !

00 PCout, MARin, Xin; 01 read; 02 MDRout, IRHin; 03 inc, ALUSHIFTout, PCin, MARin, Xin,

brnotldst32, madr07; 04 read; 05 MDRout, IRLin; 06 inc, ALUSHIFTout, PCin; 07 ldprcod; 08 brprcod, madrC3;

! Izvršavanje instrukcije !

09 brop; ! LOAD !

0A bradrld; 0B REGout, regsel2, MARin,

brbezusl, madr10; 0C REGout, regsel2, Xin; 0D IRLout, Yin; 0E add, ALUSHIFTout, MARin,

brbezusl, madr10; 0F IRLout, MARin; 10 read; 11 MDRout, REGin, regsel1, Xin; 12 trans, ldpsw,

brbezusl, madr15; 13 IRLout, REGin, regsel1, Xin; 14 trans, ldpsw; 15 brprekid, madrC3; 16 brbezusl, madr00;

! STORE ! 17 bradrst; 18 REGout, regsel2, MARin,

brbezusl, madr1D; 19 REGout, regsel2, Xin; 1A IRLout, Yin; 1B add, ALUSHIFTout, MARin,

brbezusl, madr1D; 1C IRLout, MARin; 1D REGout, regsel1, MDRin, Xin; 1E trans, ldpsw; 1F write; 20 brbezusl, madr22; 21 stpradr,

brbezusl, madrC3; 22 brprekid, madrC3; 23 brbezusl, madr00;

! MVRRL ! 24 REGout, regsel1, Xin; 25 trans, ALUSHIFTout, REGin, regsel2, ldpsw,

brprekid, madrC3;

Page 139: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

133

26 brbezusl, madr00; ! MVRRR !

27 REGout, regsel2, Xin; 28 trans, ALUSHIFTout, REGin, regsel1, ldpsw,

brprekid, madrC3; 29 brbezusl, madr00;

! MVRPL ! 2A PRREGout, Xin; 2B trans, ALUSHIFTout, REGin, regsel2, ldpsw,

brprekid, madrC3; 2C brbezusl, madr00;

! MVRPR ! 2D REGout, regsel2, Xin; 2E trans, ALUSHIFTout, PRREGin, ldpsw,

brprekid, madrC3; 2F brbezusl, madr00;

! MVRIL ! 30 INTREGout, Xin; 31 trans, ALUSHIFTout, REGin, regsel2, ldpsw,

brprekid, madrC3; 32 brbezusl, madr00;

! MVRIR ! 33 REGout, regsel2, Xin; 34 trans, ALUSHIFTout, INTREGin, ldpsw,

brprekid, madrC3; 35 brbezusl, madr00;

! PUSH ! 36 SPout, Xin; 37 dec, ALUSHIFTout, SPin, MARin; 38 REGout, regsel1, MDRin, Xin; 39 write; 3A trans, ldpsw,

brprekid, madrC3; 3B brbezusl, madr00;

! POP ! 3C SPout, MARin, Xin; 3D inc, ALUSHIFTout, SPin; 3E read; 3F MDRout, REGin, regsel1, Xin; 40 trans, ldpsw,

brprekid, madrC3; 41 brbezusl, madr00;

! CLR ! 41 zero, ALUSHIFTout, REGin, regsel1, ldpsw,

brprekid, madrC3; 43 brbezusl, madr00;

! ADD ! 44 REGout, regsel1, Xin; 45 REGout, regsel2, Yin; 46 add, ALUSHIFTout, REGin, regsel3, ldpsw,

brprekid, madrC3; 47 brbezusl, madr00;

! SUB ! 48 REGout, regsel2, Xin; 49 REGout, regsel1, Yin;

Page 140: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

134

4A sub, ALUSHIFTout, REGin, regsel3, ldpsw, brprekid, madrC3;

4B brbezusl, madr00; ! CMP !

4C REGout, regsel2, Xin; 4D REGout, regsel1, Yin; 4E sub, ldpsw,

brprekid, madrC3; 4F brbezusl, madr00;

! INC ! 50 REGout, regsel1, Xin; 51 inc, ALUSHIFTout, REGin, regsel1, ldpsw,

brprekid, madrC3; 52 brbezusl, madr00;

! DEC ! 53 REGout, regsel1, Xin; 54 dec, ALUSHIFTout, REGin, regsel1, ldpsw,

brprekid, madrC3; 55 brbezusl, madr00;

! AND ! 56 REGout, regsel1, Xin; 57 REGout, regsel2, Yin; 58 and, ALUSHIFTout, REGin, regsel3, ldpsw,

brprekid, madrC3; 59 brbezusl, madr00;

! OR ! 5A REGout, regsel1, Xin; 5B REGout, regsel2, Yin; 5C or, ALUSHIFTout, REGin, regsel3, ldpsw,

brprekid, madrC3; 5D brbezusl, madr00;

! XOR ! 5E REGout, regsel1, Xin; 5F REGout, regsel2, Yin; 59 xor, ALUSHIFTout, REGin, regsel3, ldpsw,

brprekid, madrC3; 61 brbezusl, madr00;

! TST ! 62 REGout, regsel1, Xin; 63 REGout, regsel2, Yin; 64 and, ldpsw,

brprekid, madrC3; 65 brbezusl, madr00;

! NOT ! 66 REGout, regsel1, Xin; 67 not, ALUSHIFTout, REGin, regsel1, ldpsw,

brprekid, madrC3; 68 brbezusl, madr00;

! ASR 69 REGout, regsel1, Xin; 6A asr, ALUSHIFTout, REGin, regsel1, ldpsw,

brprekid, madrC3; 6B brbezusl, madr00;

! LSR ! 6C REGout, regsel1, Xin;

Page 141: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

135

6D lsr, ALUSHIFTout, REGin, regsel1, ldpsw, brprekid, madrC3;

6E brbezusl, madr00; ! ROR !

6F REGout, regsel1, Xin; 70 ror, ALUSHIFTout, REGin, regsel1, ldpsw,

brprekid, madrC3; 71 brbezusl, madr00;

! RORC ! 72 REGout, regsel1, Xin; 73 rorc, ALUSHIFTout, REGin, regsel1, ldpsw,

brprekid, madrC3; 74 brbezusl, madr00;

! SL ! 75 REGout, regsel1, Xin; 76 sl, ALUSHIFTout, REGin, regsel1, ldpsw,

brprekid, madrC3; 77 brbezusl, madr00;

! ROL ! 78 REGout, regsel1, Xin; 79 rol, ALUSHIFTout, REGin, regsel1, ldpsw,

brprekid, madrC3; 7A brbezusl, madr00;

! ROLC ! 7B REGout, regsel1, Xin; 7C rolc, ALUSHIFTout, REGin, regsel1, ldpsw,

brprekid, madrC3; 7D brbezusl, madr00;

! BEQL ! 7E breql, madr9A; 7F brbezusl, madr9E;

! BNEQ ! 80 brneq, madr9A; 81 brbezusl, madr9E;

! BGRT ! 82 brgrt, madr9A; 83 brbezusl, madr9E;

! BGRE ! 84 brgre, madr9A; 85 brbezusl, madr9E;

! BLSS ! 86 brlss, madr9A; 87 brbezusl, madr9E;

! BLEQ ! 88 brleq, madr9A; 89 brbezusl, madr9E;

! BGRTU ! 8A brgrtu, madr9A; 8B brbezusl, madr9E;

! BGREU ! 8C brgreu, madr9A; 8D brbezusl, madr9E;

! BLSSU ! 8E brlssu, madr9A; 8F brbezusl, madr9E;

Page 142: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

136

! BLEQU ! 90 brlequ, madr9A; 91 brbezusl, madr9E;

! BNEG ! 92 brneg, madr9A; 93 brbezusl, madr9E;

! BNNG ! 94 brnng, madr9A; 95 brbezusl, madr9E;

! BOVF ! 96 brovf, madr9A; 97 brbezusl, madr9E;

! BNVF ! 98 brnvf, madr9A; 99 brbezusl, madr9E;

! JMP ! 9A IRHout, Xin; 9B signext, ALUSHIFTout, Yin; 9C PCout, Xin; 9D add, ALUSHIFTout, PCin, 9E brprekid, madrC3; 9F brbezusl, madr00;

! INT ! A1 stprins, brbezusl, madrC3;

! JSR ! A2 SPout, Xin; A3 dec, ALUSHIFTout, SPin, MARin; A4 PCout, MDRin; A5 write; A6 brbezusl, madr9A;

! RTS ! A7 SPout, MARin, Xin; A8 inc, ALUSHIFTout, SPin; A9 read; AA MDRout,PCin,

brprekid, madrC3; AB brbezusl, madr00;

! RTI ! AC SPout, MARin, Xin; AD inc, ALUSHIFTout, SPin; AE read; AF MDRout, PSWin; B0 SPout, MARin, Xin; B1 inc, ALUSHIFTout, SPin; B2 read; B3 MDRout, PCin, brbezusl, madr00;

! JMPRIND ! B4 REGout, regsel1, PCin,

brprekid, madrC3; B5 brbezusl, madr00;

! INTD ! B6 clpswi, brbezusl, madr00;

! INTE ! B7 stpswi, brbezusl, madr00;

Page 143: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

137

! TRPD ! B9 clpswt, brbezusl, madr00;

! TRPE ! BB stpswt, brbezusl, madr00;

! VARD ! BD clpswp, brbezusl, madr00;

! VARE ! BE stpswp, brbezusl, madr00;

! EDGD ! BF clpswe, brbezusl, madr00;

! EDGE ! C0 stpswe, brbezusl, madr00;

! NOP ! C1 brprekid, madrC3; C2 brbezusl, madr00;

! Opsluživanje prekida !

C3 brpradr, madrC6; C4 brprcod, madrC6; C5 brbezusl, madrC9; C6 PCout, Xin; C7 dec, ALUSHIFTout, PCin, Xin,

brnotldst32, madrC9; C8 dec, ALUSHIFTout, PCin; C9 SPout, Xin; CA dec, ALUSHIFTout, SPin, MARin; CB PCout, MDRin; CC write; CD SPout, Xin; CE dec, ALUSHIFTout, SPin, MARin; CF PSWout, MDRin; D0 write; D1 brprins, madrDF; D2 brprcod, madrD9; D3 brpradr, madrD8; D4 brprinm, madrD7 ; D5 brprirr, madrDA; D6 BRUNMSKout, Yin,

brbezusl, madrE1; D7 BRUNMSKout, Yin, clinm,

brbezusl, madrE1; D8 BRUNMSKout, Yin, clpradr,

brbezusl, madrE1; D9 BRUNMSKout, Yin, clprcod,

brbezusl, madrE1; DA ldpswl,

brnotpswp, madrDE; DB intack; DC MDRout, Xin; DD zeroext, ALUSHIFTout, Yin, clirr,

brbezusl, madrE1; DE BRUMASKout, Yin, clirr,

brbezusl, madrE1; DF IRHout, Xin; E0 zeroext, ALUSHIFTout, Yin, clprins;

Page 144: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

138

E1 IVTPout, Xin; E2 add, ALUSHIFTout, MARin; E3 read; E4 MDRout, PCin; E5 clpswi, clpswt,

brbezusl, madr00; ! HALT !

F0 sthalt, brbezusl, madr00;

4.2.3.2.1.3 Struktura upravljačke jedinice

Struktura upravljačke jedinice mikroprogramske realizacije sa mešovitim formatom mikroinstrukcije je prikazana na slici 46. Upravljačka jedinica se sastoji iz sledećih blokova:

• blok generisanje nove vrednosti mikroprogramskog brojača, • blok mikroprogramski brojač, • blok mikroprogramska memorija, • blok prihvatni registar mikroinstrukcije i • blok generisanje upravljačkih signala.

Blok generisanje nove vrednosti mikroprogramskog brojača se sastoji od kombinacionih mreža KMOP, KMADRLD i KMADRST sa multiplekserom MP i služi za generisanje i selekciju vrednosti koju treba upisati u mikroprogramski brojač. Potreba za ovim se javlja kada treba odstupiti od sekvencijalnog izvršavanja mikroprograma. Vrednosti koje treba upisati u mikroprogramski brojač generišu se na četiri načina i to pomoću:

• kombinacione mreže KMOP koja formira signale op7...0, • kombinacione mreže KMADRLD koja formira signale ld7...0, • kombinacione mreže KMADRST koja formira signale st7...0 i • razreda CW7...0 prihvatnog registra mikroinstrukcije CW50...0.

Selekcija jedne od četiri grupe signala koje daju novu vrednost mikroprogramskog brojača obezbeđuje se signalima brop, bradrld i bradrst i to:

• signali op7...0 ako je aktivan signal brop, • signali ld7...0 ako je aktivan signal bradrld, • signali st7...0 ako je aktivan signal bradrst i • signali CW7...0 ako su neaktivni signali brop, bradrld i bradrst.

Kombinacionom mrežom KMOP generišu se vrednosti (tabela 48) za realizaciju višestrukog uslovnog skoka na adresi 09 mikroprograma (tabela 51). U zavisnosti od toga koji od signala LOAD, STORE, …, HALT tada ima aktivnu vrednost zavisi koja će od vrednosti iz tabele 48 da se pojavi na linijama op7...0. S obzirom da se na adresi 09 mikroprograma nalazi mikroinstrukcija sa tako kodiranim upravljačkim delom da njeno izvršavanje daje aktivnu vrednost signala višestrukog uslovnog skoka brop, vrednost na linijama op7...0 prolazi tada kroz multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojača mPC7...0.

Kombinacionom mrežom KMADRLD generišu se vrednosti (tabela 49) za realizaciju višestrukog uslovnog skoka na adresi 0A mikroprograma (tabela 51). U zavisnosti od toga koji od signala regind, rindpom, memdir i nepsrd ima aktivnu vrednost zavisi koja će od vrednosti iz tabele 49 da se pojavi tada na linijama ld7...0. S obzirom da se na adresi 0A mikroprograma nalazi mikroinstrukcija sa tako kodiranim upravljačkim delom da njeno izvršavanje daje aktivnu vrednost signala višestrukog uslovnog skoka bradrld, vrednost na linijama ld7...0 prolazi kroz multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojača mPC7...0.

Page 145: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

139

mPCINC

LDCLK

mPC7..0

CLKmPC

brojač koraka

halt registri

ldinc

bradrstMP

S0

S1

brop0123

bradrld

8

8

generisanje nove vrednostibrojača koraka

14444444444444244444444444443

registri

st7...0

144424443

regi

nd

neps

rd

rindp

omm

emdi

r

regi

nd

neps

rd

rindp

omm

emdi

r

op7...0

144424443

LOA

D

HA

LT

...ST

ORE

KMOPA 17 F0

144424443

KMADRLD KMADRSTB C F 13 18 19 1C 21

ld7...0

8 8 8 8

mMEM

mikroprogramskamemorija

WR0

CW

prihvatni registarmikroinstrukcije

1

CLK

51

50 0813

CLK

LD1442443

... 12 7... ...14243123

generisanje upravljačkihsignala

generisanjeupravljačkih

signalaupravljačke

jedinice

prekidgenerisanjeupravljačkih

signalablokova

operacionejedinice

DRINM

PRADR

14

42

44

3pr

ekid

iprirr

PRINS

PRCOD

prek

idi

inte

rfej

s

oper

acije

regi

stri

38

CW50...13 CW12...8

5 8

CW7...0

MRmr

bran

ch

brad

rst

brad

rld

brop

ldst32PSWP

eql

nvf

...

14

42

44

3re

gist

ri

bradrldbrop

bradrstbranch

run interfejs

Slika 46 Struktura upravljačke jedinice mikroprogramske realizacije sa mešovitim formatom mikroinstrukcije

Kombinacionom mrežom KMADRST generišu se vrednosti (tabela 50) za realizaciju višestrukog uslovnog skoka na adresi 17 mikroprograma (tabela 51). U zavisnosti od toga koji od signala regind, rindpom, memdir i nepsrd ima aktivnu vrednost zavisi koja će od vrednosti iz tabele 50 da se pojavi tada na linijama st7...0. S obzirom da se na adresi 17 mikroprograma nalazi mikroinstrukcija sa tako kodiranim upravljačkim delom da njeno

Page 146: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

140

izvršavanje daje aktivnu vrednost signala višestrukog uslovnog skoka bradrst, vrednost na linijama st7...0 prolazi kroz multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojača mPC7...0.

Prihvatni registar mikroinstrukcije CW50...0 u svojim razredima CW7...0 sadrži vrednost za upis u mikroprogramski brojač mPC7...0 za bezuslovne skokove (tabela 46) i uslovne skokove (tabela 47). Signali višestrukih uslovnin skokova brop, bradrld i bradrst su aktivni samo prilikom izvršavanja mikroinstrukcija na adresama 09, 0A i 17 mikroprograma, respektivno, a u svim ostalim situacijama neaktivni. S obzirom da nijedan od ova tri signala nije aktivan prilikom izvršavanja mikroinstrukcija kojima se realizuju bezuslovni ili uslovni skokovi u mikroprogramu, vrednost određena razredima CW7...0 prolazi kroz multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojača mPC7...0.

Blok mikroprogramski brojač sadrži mikroprogramski brojač mPC7...0. Mikroprogramski brojač mPC7...0 svojom trenutnom vrednošću određuje adresu mikroprogramske memorije mMEM sa koje treba očitati mikroinstrukciju. Mikroprogramski brojač mPC7...0 može da radi u sledećim režimima:

• režim inkrementiranja, • režim skoka i • režim čekanja.

U režimu inkrementiranja pri pojavi signala takta CLKmPC vrši se uvećavanje sadržaja mikroprogramskog brojača mPC7...0 za jedan čime se obezbeđuje sekvencijalno očitavanje mikroinstrukcija iz mikroprogramske memorije (tabela 51). Ovaj režim rada se obezbeđuje aktivnom vrednošću signala inc. Signal inc je aktivan ako je signal run aktivan, signal halt neaktivan i ako su svi signali brop, bradrld, bradrst i branch neaktivni. Signal run je uvek aktivan sem kada treba obezbediti režim čekanja. Signal halt je uvek neaktivan sem kada je procesor zaustavljen. Signali brop, bradrld, bradrst i branch su uvek neaktivni sem kada treba obezbediti režim skoka.

U režimu skoka pri pojavi signala takta CLKmPC vrši se upis nove vrednosti u mikroprogramski brojač mPC7...0 čime se obezbeđuje odstupanje od sekvencijalnog očitavanja mikroinstrukcija iz mikroprogramske memorije (tabela 51). Ovaj režim rada se obezbeđuje aktivnom vrednošću signala ld. Signal ld je aktivan ako je signal run aktivan, signal halt neaktivan i ako je jedan od signala brop, bradrld, bradrst i branch aktivan. Signal run je uvek aktivan sem kada treba obezbediti režim čekanja. Signal halt je uvek neaktivan sem kada je procesor zaustavljen. Jedan od signala brop, bradrld, bradrst i branch je aktivan samo prilikom izvršavanja mikroinstrukcije koja ima takav upravljački deo da je specificiran neki višestruki uslovni skok, bezuslovni skok ili neki od uslovnih skokova i uslov skoka je ispunjen.

U režimu čekanja pri pojavi signala takta CLKmPC ne menja se vrednost mikroprogramskog brojača mPC7...0. Ovaj režim rada se obezbeđuje neaktivnim vrednostima signala inc i ld. Ovi signali su neaktivni kada je signal run neaktivan ili signal halt aktivan. Signal run je uvek aktivan sem kada je

• ciklus procesora na magistrali u toku ili • magistrala prepuštena ulazno/izlaznom uređaju sa kontrolerom za direktan pristup

memoriji, a procesor je došao na korak izvršavanja instrukcije u kome mu je magistrala potrebna.

Signal halt je uvek neaktivan sem kada je procesor zaustavljen.

Page 147: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

141

Mikroprogramski brojač mPC7...0 je dimenzionisan prema veličini mikroprograma (tabela 51). S obzirom da se mikroprogram svih faza izvršavanja instrukcija nalazi u opsegu od adrese 00 do adrese E5, usvojena je dužina mikroprogramskog brojača mPC7...0 od 8 bita.

Blok mikroprogramski memorija sadrži mikroprogramsku memoriju mMEM, koja služi za smeštanje mikroprograma. Širina reči mikroprogramske memorije je određena dužinom mikroinstrukcija i iznosi 51 bit, a kapacitet veličinom mikroprograma svih instrukcija procesora (tabela 51) i iznosi 256 lokacija. Adresiranje mikroprogramske memorije se realizuje sadržajem mikroprogramskog brojača mPC7...0.

Blok prihvatni registar mikroinstrukcije sadrži prihvatni registar mikroinstrukcije CW50...0. Prihvatni registar mikroinstrukcije CW50...0 služi za prihvatanje mikroinstrukcije očitane iz mikroprogramske memorije mMEM. Na osnovu sadržaja ovog registra generišu se upravljački signali. Razredi CW50...13 i CW12...8 se koriste u bloku generisanje upravljačkih signala za generisanje upravljačkih signala operacione jedinice oper_jed i upravljačke jedinice uprav_jed, respektivno, dok se razredi CW7...0 koriste u bloku generisanje nove vrednosti mikroprogramskog brojača kao adresa skoka u mikrorogramu u slučaju bezuslovnih i uslovnih skokova. Upis u ovaj registar se realizuje signalom takta CLK. Signal takta CLK kasni za signalom takta CLKmPC onoliko koliko je potrebno da se pročita sadržaj sa odgovarajuće adrese mikroprogramske memorije.

Blok generisanje upravljačkih signala sadrži kombinacione mreže koje na osnovu sadržaja razreda CW50...13 prihvatnog registra mikroinstrukcije CW50...0 generišu

• upravljačke signale blokova operacione jedinice oper_jed i na osnovu sadržaja razreda CW12...8 prihvatnog registra mikroinstrukcije CW50...0 i signala logičkih uslova ldst32, PSWP, ..., nvf koji dolaze iz bloka registri i prekid, prirr, ..., PRCOD koji dolaze iz bloka prekidi operacione jedinice oper_jed, generišu

• upravljačke signale upravljačke jedinice uprav_jed.

Upravljački signali blokova operacione jedinice oper_jed se daju posebno za svaki blok.

Upravljački signali bloka registri se generišu na sledeći način: • PCout = CW50*CW49*CW48 • SPout = CW50*CW49*CW48 • PRREGout = CW50*CW49*CW48 • IRHout = CW50*CW49*CW48 • IRLout = CW50*CW49*CW48 • REGout = CW50*CW49*CW48 • PSWout = CW50*CW49*CW48 • PCin = CW47*CW46*CW45 • SPin = CW47*CW46*CW45 • PRREGin = CW47*CW46*CW45 • IRHin = CW47*CW46*CW45 • IRLin = CW47*CW46*CW45 • REGin = CW47*CW46*CW45 • PSWin = CW47*CW46*CW45 • regsel1 = CW44*CW43 • regsel2 = CW44*CW43 • regsel3 = CW44*CW43 • ldpsw = CW42 • ldpswl = CW41

Page 148: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

142

• clpswi = CW40*CW39*CW37 • clpswt = CW40*CW39*CW38 • clpswp = CW40*CW39*CW37 • clpswe = CW40*CW39*CW38 • stpswi = CW40*CW39*CW37 • stpswt = CW40*CW39*CW38 • stpswp = CW40*CW39*CW37 • stpswe = CW40*CW39*CW38 • sthalt = CW40*CW39*CW38*CW37

Upravljački signali bloka operacije se generišu na sledeći način: • Xout = CW36*CW35 • Yout = CW36*CW35 • ALUSHIFTout = CW36*CW35 • Xin = CW34 • Yin = CW33 • trans = CW32*CW31*CW30*CW29*CW28 • add = CW32*CW31*CW30*CW29*CW28 • sub = CW32*CW31*CW30*CW29*CW28 • inc = CW32*CW31*CW30*CW29*CW28 • dec = CW32*CW31*CW30*CW29*CW28 • and = CW32*CW31*CW30*CW29*CW28 • or = CW32*CW31*CW30*CW29*CW28 • xor = CW32*CW31*CW30*CW29*CW28 • not = CW32*CW31*CW30*CW29*CW28 • sl = CW32*CW31*CW30*CW29*CW28 • rol = CW32*CW31*CW30*CW29*CW28 • rolc = CW32*CW31*CW30*CW29*CW28 • asr = CW32*CW31*CW30*CW29*CW28 • lsr = CW32*CW31*CW30*CW29*CW28 • ror = CW32*CW31*CW30*CW29*CW28 • rorc = CW32*CW31*CW30*CW29*CW28 • zero = CW32*CW31*CW30*CW29*CW28 • ones = CW32*CW31*CW30*CW29*CW28 • zeroext = CW32*CW31*CW30*CW29*CW28 • signext = CW32*CW31*CW30*CW29*CW28

Upravljački signali bloka interfejs se generišu na sledeći način: • MARout = CW27 • MDRout = CW26 • MARin = CW25 • MDRin = CW24 • read = CW23*CW22 • write = CW23*CW22 • intack = CW23*CW22

Upravljački signali bloka prekidi se generišu na sledeći način: • INTREGout = CW21*CW20*CW19 • BRUNMSKout = CW21*CW20*CW19

Page 149: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

143

• BRUMASKout = CW21*CW20*CW19 • IVTPout = CW21*CW20*CW19 • INTREGin = CW18 • ldprcod = CW17*CW16 • stpradr = CW17*CW16 • stprins = CW17*CW16 • clirr = CW15*CW14*CW13 • clinm = CW15*CW14*CW13 • clprcod = CW15*CW14*CW13 • clpradr = CW15*CW14*CW13 • clprins = CW15*CW14*CW13

Upravljački signali upravljačke jedinice uprav_jed se generišu na sledeći način: • brop = CW12*CW11*CW10*CW9*CW8 • bradrld = CW12*CW11*CW10*CW9*CW8 • bradrst = CW12*CW11*CW10*CW9*CW8 • branch = brbezusl

+ brnotldst32*ldst32 + brprekid*prekid + brprirr*prirr + brprinm*PRINM + brprcod*PRCOD + brpradr*PRADR + brprins*PRINS + breql*eql + brneq*neq + brgrt*grt + brgre*gre+ brlss*lss + brleq*leq + brgrtu*grtu + brgreu*greu + brlssu*lssu + brlequ*lequ + brneg*neg + brnng*nng + brovf*ovf + brnvf*nvf + brnotpswp*PSWP

Signali koji se javljaju u izrazu za signal branch se generišu na sledeći način: • brbezusl = CW12*CW11*CW10*CW9*CW8 • brnotldst32 = CW12*CW11*CW10*CW9*CW8 • brprekid = CW12*CW11*CW10*CW9*CW8 • brdrirr = CW12*CW11*CW10*CW9*CW8 • brprinm = CW12*CW11*CW10*CW9*CW8 • brprcod = CW12*CW11*CW10*CW9*CW8 • brpradr = CW12*CW11*CW10*CW9*CW8 • brprins = CW12*CW11*CW10*CW9*CW8 • breql = CW12*CW11*CW10*CW9*CW8 • brneq = CW12*CW11*CW10*CW9*CW8 • brgrt = CW12*CW11*CW10*CW9*CW8 • brgre = CW12*CW11*CW10*CW9*CW8 • brlss = CW12*CW11*CW10*CW9*CW8 • brleq = CW12*CW11*CW10*CW9*CW8 • brgrtu = CW12*CW11*CW10*CW9*CW8 • brgreu = CW12*CW11*CW10*CW9*CW8 • brlssu = CW12*CW11*CW10*CW9*CW8 • brlequ = CW12*CW11*CW10*CW9*CW8 • brneg = CW12*CW11*CW10*CW9*CW8 • brnng = CW12*CW11*CW10*CW9*CW8 • brovf = CW12*CW11*CW10*CW9*CW8 • brnvf = CW12*CW11*CW10*CW9*CW8 • brnotpswp = CW12*CW11*CW10*CW9*CW8

Page 150: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

144

Pri generisanju signala branch koriste se sledeći signali logičkih uslova koji dolaze iz blokova operacione jedinice oper_jed i to:

• ldst32 — blok registri, • PSWP — blok registri, • eql — blok registri, • neq — blok registri, • grt — blok registri, • gre — blok registri, • lss — blok registri, • leq — blok registri, • grtu — blok registri, • greu — blok registri, • lssu — blok registri, • lequ — blok registri, • neg — blok registri, • nng — blok registri, • ovf — blok registri, • nvf — blok registri, • prekid — blok prekidi, • prirr — blok prekidi, • PRINM — blok prekidi, • PRINS — blok prekidi, • PRADR — blok prekidi i • PRCOD — blok prekidi.

4.2.3.2.2 Mikroprogramska realizacija sa vertikalnim formatom mikroinstrukcija

U ovom odeljku se razmatraju formati mikroinstrukcija, sekvenca upravljačkih signala po koracima za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija, mikroprogram i struktura upravljačke jedinice.

4.2.3.2.2.1 Formati mikroinstrukcija

Usvojeno je da postoje dva tipa mikroinstrukcija (slika 47) i to: • operacione mikroinstrukcije i • upravljačke mikroinstrukcije.

operacione mikroinstrukcije 14 13 7 6 0 0

{ tip mikroinstrukcije

144424443 kombinacija

upravljačkih signala

upravljačke mikroinstrukcije 14 13 9 8 0 1 { 1442443

uslov skoka 1444442444443

adresa skoka tip mikroinstrukcije

Slika 47 Formati mikroinstrukcija

Page 151: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

145

Operacione mikroinstrukcije se koriste za generisanje upravljačkih signala operacione jedinice oper_jed. Upravljačke mikroinstrukcije se koriste za generisanje upravljačkih signala upravljačke jedinice uprav_jed. Zajedničko im je polje tip mikroinstrukcije koje vrednostima 0 i 1 određuje da li se radi o operacionoj ili upravljačkoj mikroinstrukciji, respektivno. Simbolička oznaka ovog polja u mikroinstrukciji je cnt. Mikroinstrukcije se označavaju sa CW14...0.

4.2.3.2.2.1.1 Operacione mikroinstrukcije

Operacione mikroinstrukcije pored polja tip mikroinstrukcije imaju samo polje kombinacija upravljačkih signala. Bitovi CW6...0 ovog polja mikroinstrukcije određuju kombinacije upravljačkih signala operacione jedinice. Kombinacije upravljačkih signala operacione jedinice i simboličke oznake usvojenih kodova dati su u tabeli 52. Usvojeni kodovi su simbolički označeni sa Vxx, pri čemu xx odgovara heksadekadnoj vrednosti usvojenog koda. Na primer, sa V00 je simbolički označena heksadekadna vrednost 00 ovog polja. Svakom usvojenom kodu odgovara neka kombinacija upravljačkih signala. Na primer, kodu V00 odgovaraju signali IRHout i Xin, kodu V01 signali IRHout i Yin, itd. Kombinacije upravljačkih signala su tako odabrane da njima mogu da se pokriju sve situacije iz sekvence upravljačkih signala po koracima (tabela 15). Iz tabele 52 se vidi da je za kodiranje kombinacija upravljačkih signala operacione jedinice potrebno 102 koda, pa je za kodiranje polja kombinacija upravljačkih signala operacionih mikroinstrukcija dovoljno 7 bitova.

Tabela 52 Kombinacije upravljačkih signala operacione jedinice i simboličke oznake kodova Kombinacija upravljačkih signala Oznaka koda IRHout, Xin V00 IRHout, Yin V01 IRLout, Xin V02 IRLout, Yin V03 IRLout, MARin V04 IRLout, MDRin V05 IRLout, REGin, regsel1 V06

IRLout, REGin, regsel2 V07

IRLout, REGin, regsel3 V08 PCout, Xin V09 PCout, MARin V0A PCout, MDRin V0B SPout, Xin V0C SPout, MARin V0D PSWout, MDRin V0E REGout, regsel1, Xin V0F

REGout, regsel2, Xin V10

REGout, regsel1, Yin V11

REGout, regsel2, Yin V12

REGout, regsel1 V13

REGout, regsel2, MARin V14

REGout, regsel1, MDRin V15

REGout, regsel2, MDRin V16 PRREGout, Xin V17 PRREGout, MDRin V18 INTREGout, Xin V19 INTREGout, MDRin V1A clpswi V1B

Page 152: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

146

stpswi V1C clpswt V1D stpswt V1E clpswp V1F stpswp V20 clpswi, clpswt V21 ldpswl V22 trans, ldpsw V23 trans, ALUSHIFTout, REGin, regsel1, ldpsw V24

trans, ALUSHIFTout, REGin, regsel2, ldpsw V25

trans, ALUSHIFTout, REGin, regsel3, ldpsw V26 trans, ALUSHIFTout, PRREGin, ldpsw V27 trans, ALUSHIFTout, INTREGin, ldpsw V28 add, ALUSHIFTout, MARin V29 add, ALUSHIFTout, PCin V2A add, ALUSHIFTout, SPin V2B inc, ALUSHIFTout, MARin V2C inc, ALUSHIFTout, PCin V2D inc, ALUSHIFTout, SPin V2E dec, ALUSHIFTout, MARin V2F dec, ALUSHIFTout, PCin V30 dec, ALUSHIFTout, SPin V31 zero, ALUSHIFTout, REGin, regsel1, ldpsw V32

zero, ALUSHIFTout, REGin, regsel2, ldpsw V33

zero, ALUSHIFTout, REGin, regsel3, ldpsw V34

add, ALUSHIFTout, REGin, regsel3, ldpsw V35

sub, ALUSHIFTout, REGin, regsel3, ldpsw V36 sub, ldpsw V37 inc, ALUSHIFTout, REGin, regsel1, ldpsw V38

dec, ALUSHIFTout, REGin, regsel1, ldpsw V39

and, ALUSHIFTout, REGin, regsel3, ldpsw V3A and, ldpsw V3B or, ALUSHIFTout, REGin, regsel3, ldpsw V3C

xor, ALUSHIFTout, REGin, regsel3, ldpsw V3D

not, ALUSHIFTout, REGin, regsel1, ldpsw V3E

asr, ALUSHIFTout, REGin, regsel1, ldpsw V3F

lsr, ALUSHIFTout, REGin, regsel1, ldpsw V40

ror, ALUSHIFTout, REGin, regsel1, ldpsw V41

rorc, ALUSHIFTout, REGin, regsel1, ldpsw V42

sl, ALUSHIFTout, REGin, regsel1, ldpsw V43

rol, ALUSHIFTout, REGin, regsel1, ldpsw V44

rolc, ALUSHIFTout, REGin, regsel1, ldpsw V45 zeroext, ALUSHIFTout, Xin V46 zeroext, ALUSHIFTout, Yin V47 zeroext, ALUSHIFTout, MDRin V48 signext, ALUSHIFTout, Xin V49 signext, ALUSHIFTout, Yin V4A signext, ALUSHIFTout, MDRin V4B MDRout, IRHin V4C MDRout, IRLin V4D MDRout, PCin V4E MDRout, SPin V4F

Page 153: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

147

MDRout, PSWin V50 MDRout, REGin, regsel1 V51

MDRout, REGin, regsel2 V52

MDRout, REGin, regsel3 V53 MDRout, Xin V54 MDRout, Yin V55 read V56 write V57 intack V58 BRUMASKout, Xin V59 BRUMASKout, Yin V5A BRUNMSKout, Xin V5B BRUNMSKout, Yin V5C IVTPout, Xin V5D IVTPout, Yin V5E ldprcod V5F stpradr V60 stprins V61 clirr V62 clinm V63 clprcod V64 clpradr V65 clprins V66 stpswe V67 clpswe V68 REGout, regsel1, PCin V69 sthalt V6A

4.2.3.2.2.1.2 Upravljačke mikroinstrukcije

Upravljačke mikroinstrukcije pored polja tip mikroinstrukcije imaju još dva polja i to: • polje uslov skoka i • polje adresa skoka.

Polje uslov skoka

Bitovi CW13...9 mikroinstrukcije koriste se za kodiranje upravljačkih signala kojima se realizuju skokovi u mikroprogramu i to:

• bezuslovni skok, • uslovni skokovi i • višestruki uslovni skokovi.

Bezuslovni skok se realizuje u onim koracima sekvence upravljačkih signala po koracima (tabela 15) u kojima se pojavljuju iskazi tipa

br stepA. Simbolička oznaka signala bezuslovnog skoka koji za svaki od njih treba generisati i način njegovog kodiranja bitovima CW13...9 mikroinstrukcije dati su u tabeli 53.

Tabela 53 Signal bezuslovnog skoka CW13...9 signal bezuslovnog skoka

1F brbezusl

Uslovni skokovi se realizuju u onim koracima sekvence upravljačkih signala po koracima u kojima se pojavljuju iskazi tipa

br (if uslov then stepA).

Page 154: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

148

Način kodiranja signala uslovnih skokova bitovima CW13...9 mikroinstrukcije, simboličke oznake signala uslovnih skokova i signal uslova koji treba da je aktivan da bi se realizovao skok dati su u tabeli 54.

Tabela 54 Signali uslovnih skokova CW13...9 signal uslovnog skoka signal uslova

1E brnotldst32 ldst32 1D brprekid prekid 1C brprirr prirr 1B brprinm PRINM 1A brprcod PRCOD 19 brpradr PRADR 18 brprins PRINS 17 breql eql 16 brneq neq 15 brgrt grt 14 brgre gre 13 brlss lss 12 brleq leq 11 brgrtu grtu 10 brgreu greu 0F brlssu lssu 0E brlequ lequ 0D brneg neg 0C brnng nng 0B brovf ovf 0A brnvf nvf 09 brnotpswp PSWP

Višestruki uslovni skokovi se realizuju u onim koracima sekvence upravljačkih signala po koracima u kojima se pojavljuju iskazi tipa

br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)). Način kodiranja signala višestrukih uslovnih skokova bitovima CW13...9 mikroinstrukcije, koraci u sekvenci upravljačkih signala po koracima u kojima se pojavljuju iskazi ovog tipa i simboličke oznake signala višestrukih uslovnih skokova dati su u tabeli 55.

Tabela 55 Signali višestrukih uslovnih skokova CW13...9 korak signal višestrukog uslovnog

skoka 08 step09 brop 07 step0A bradrld 06 step17 bradrst

Polje adresa skoka

Bitovi CW8...0 mikroinstrukcije koriste se za specificiranje adrese mikroinstrukcije na koju treba skočiti kod uslovnih i bezuslovnih skokova u sekvenci upravljačkih signala po koracima (tabela 15). Polje adresa skoka sadrži vrednost koju treba upisati u mikroprogramski brojač. Kod pisanja mikroprograma ovo polje se simbolički označava sa madrxx, pri čemu xx odgovara heksadekadnoj vrednosti ovog polja. Na primer, sa madr56 je simbolički označena heksadekadna vrednost 56 ovog polja. Za kodiranje polja adresa skoka usvojeno je 9 bitova, jer je za kompletan mikroprogram dovoljan kapacitet mikroprogramske memorije od 512 reči.

Page 155: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

149

4.2.3.2.2.2 Sekvenca upravljačkih signala po koracima za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija

Sekvenca upravljačkih signala po koracima (tabela 15) je tako formirana da obezbeđuje za usvojenu organizaciju procesora izvršavanje mikrooperacija u najmanjem broju koraka. U slučaju razmatrane upravljačke jedinice sa vertikalnim formatom mikroinstrukcija potreban je veći broj koraka i to iz dva razloga:

• usvojeno je da postoje posebno operacione i posebno upravljačke mikroinstrukcije i • usvojen je vertikalni format mikroinstrukcija.

Zbog toga se mora na osnovu sekvence upravljačkih signala po koracima formirati sekvenca upravljačkih signala po koracima za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija. Postupak formiranja nove sekvence zahteva da se, svuda gde se u sekvenci upravljačkih signala po koracima pojavljuju i upravljački signali operacione jedinice i neki od iskaza za skok, upravljački signali operacione jedinice i iskaz za skok stave u posebne korake. Pored toga, zbog usvojenog načina kodiranja kombinacija upravljačkih signala operacione jedinice (tabela 52), neki od koraka iz sekvence upravljačkih signala po koracima u kojima se javlja više upravljačkih signala operacione jedinice mora se zameniti sa više koraka.

Kao primer ovoga se može iz sekvence upravljačkih signala po koracima uzeti korak step03:

inc, ALUSHIFTout, PCin, MARin, Xin, br (if ldst32 then step07)

Po prvom osnovu, ovaj korak se mora razbiti na sledeća dva koraka: inc, ALUSHIFTout, PCin, MARin, Xin br (if ldst32 then step07)

Po drugom osnovu korak inc, ALUSHIFTout, PCin, MARin, Xin

se dalje razbija na sledeća tri koraka: inc, ALUSHIFTout, PCin PCout, MARin PCout, Xin

Iz datog primera se vidi da se korak step03 iz sekvence upravljačkih signala po koracima razbija na četiri koraka u sekvenci upravljačkih signala po koracima za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija. Pored toga, kao rezultat povećanja broja koraka potrebno je u iskazu

br (if ldst32 then step07) zameniti step07 odgovarajućom vrednošću.

Po ovom postupku na osnovu sekvence upravljačkih signala po koracima (tabela 15) formirana je sekvenca upravljačkih signala po koracima za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija (tabela 56).

Tabela 56 Sekvenca upravljačkih signala po koracima za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija

! Čitanje instrukcije !

step00 PCout, MARin; step01 PCout, Xin; step02 read; step03 MDRout, IRHin; step04 inc, ALUSHIFTout, PCin; step05 PCout, MARin;

Page 156: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

150

step06 PCout, Xin; step07 br (if ldst32 then step0B); step08 read; step09 MDRout, IRLin; step0A inc, ALUSHIFTout, PCin; step0B ldprcod; step0C br (if PRCOD then stepFA);

! Izvršavanje instrukcije !

step09 br (case (LOAD, STORE, MVRRL, MVRRR, MVRPL, MVRPR, MVRIL, MVRIR, PUSH, POP, CLR, ADD, SUB, CMP, INC, DEC, AND,OR, XOR, TST, NOT, ASR, LSR, ROR, RORC, SL, ROL, ROLC, BEQL, BNEQ, BGRT, BGRE, BLSS, BLEQ, BGRTU, BGREU, (BLSSU, BLEQU, BNEG, BNNG, BOVF, BNVF, JMP, INT, (JSR, RTS, RTI, JMPRIND, INTD, INTE, TRPD, TRPE, VARD, VARE, EDGD, EDGE, NOP, HALT) then (LOAD, step0E), (STORE, step20), (MVRRL, step31), (MVRRR, step35), (MVRPL, step39), (MVRPR, step3D), (MVRIL, step41), (MVRIR, step45), (PUSH, step49), (POP, step52), (CLR, step5B), (ADD, step5E), (SUB, step63), (CMP, step68), (INC, step6D), (DEC, step71), (AND, step75), (OR, step7A), (XOR, step7F), (TST, step84), (NOT, step89), (ASR, step8D), (LSR, step91), (ROR, step95), (RORC, step99), (SL, step9D), (ROL, stepA1), (ROLC, stepA5), (BEQL, stepA9), (BNEQ, stepAB), (BGRT, stepAD), (BGRE, stepAF), (BLSS, stepB1), (BLEQ, stepB3), (BGRTU, stepB5), (BGREU, stepB7), (BLSSU, stepB9), (BLEQU, stepBB), (BNEG, stepBD), (BNNG, stepBF), (BOVF, stepC1), (BNVF, stepC3), (JMP, stepC5), (INT, stepCB), (JSR, stepCD), (RTS, stepD3), (RTI, stepDA), (JMPRIND, stepE5) (INTD, stepE8), (INTE, stepEA), (TRPD, stepEC), (TRPE, stepEE), (VARD, stepF0), (VARE, stepF2), (EDGD, stepF4), (EDGE, stepF6), (NOP, stepF8), (HALT, step12F));

! LOAD ! step0E br (case (regind, rindpom, memdir, nepsrd) then

(regind, step0F), (rindpom, step11), (memdir, step15), (nepsrd, step1D)); step0F REGout, regsel2, MARin; step10 br step16; step11 REGout, regsel2, Xin; step12 IRLout, Yin; step13 add, ALUSHIFTout, MARin; step14 br step16; step15 IRLout, MARin; step16 read; step17 MDRout, REGin, regsel1; step18 MDRout, Xin; step19 trans, ldpsw; step1A br step1E; step1B IRLout, REGin, regsel1; step1C IRLout, Xin; step1D trans, ldpsw; step1E br (if prekid then stepFA; step1F br step00;

! STORE ! step20 br (case (regind, rindpom, memdir, nepsrd) then

(regind, step21), (rindpom, step23), (memdir, step27), (nepsrd, step2D));

Page 157: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

151

step21 REGout, regsel2, MARin; step22 br step28; step23 REGout, regsel2, Xin; step24 IRLout, Yin; step25 add, ALUSHIFTout, MARin; step26 br step28; step27 IRLout, MARin; step28 REGout, regsel1, MDRin; step29 REGout, regsel1, Xin; step2A trans, ldpsw; step2B write; step2C br step2F; step2D stpradr; step2E br stepFA; step2F br (if prekid then stepFA); step30 br step00;

! MVRRL ! step31 REGout, regsel1, Xin; step32 trans, ALUSHIFTout, REGin, regsel2, ldpsw; step33 br (if prekid then stepFA); step34 br step00;

! MVRRR ! step35 REGout, regsel2, Xin; step36 trans, ALUSHIFTout, REGin, regsel1, ldpsw; step37 br (if prekid then stepFA); step38 br step00;

! MVRPL ! step39 PRREGout, Xin; step3A trans, ALUSHIFTout, REGin, regsel2, ldpsw; step3B br (if prekid then stepFA); step3C br step00;

! MVRPR ! step3D REGout, regsel2, Xin; step3E trans, ALUSHIFTout, PRREGin, ldpsw; step3F br (if prekid then stepFA); step40 br step00;

! MVRIL ! step41 INTREGout, Xin; step42 trans, ALUSHIFTout, REGin, regsel2, ldpsw; step43 br (if prekid then stepFA); step44 br step00;

! MVRIR ! step45 REGout, regsel2, Xin; step46 trans, ALUSHIFTout, INTREGin, ldpsw; step47 br (if prekid then stepFA); step48 br step00;

! PUSH ! step49 SPout, Xin; step4A dec, ALUSHIFTout, SPin; step4B SPout, MARin; step4C REGout, regsel1, MDRin; step4D REGout, regsel1, Xin; step4E write; step4F trans, ldpsw;

Page 158: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

152

step50 br (if prekid then stepFA); step51 br step00;

! POP ! step52 SPout, MARin; step53 SPout, Xin; step54 inc, ALUSHIFTout, SPin; step55 read; step56 MDRout, regsel1, REGin; step57 MDRout, Xin; step58 trans, ldpsw; step59 br (if prekid then stepFA); step5A br step00;

! CLR ! step5B zero, ALUSHIFTout, REGin, regsel1, ldpsw; step5C br (if prekid then stepFA); step5D br step00;

! ADD ! step5E REGout, regsel1, Xin; step5E REGout, regsel2, Yin; step60 add, ALUSHIFTout, REGin, regsel3, ldpsw; step61 br (if prekid then stepFA); step62 br step00;

! SUB ! step63 REGout, regsel2, Xin; step64 REGout, regsel1, Yin; step65 sub, ALUSHIFTout, REGin, regsel3, ldpsw; step66 br (if prekid then stepFA); step67 br step00;

! CMP ! step68 REGout, regsel2, Xin; step69 REGout, regsel1, Yin; step6A sub, ldpsw; step6B br (if prekid then stepFA); step6C br step00;

! INC ! step6D REGout, regsel1, Xin; step6E inc, ALUSHIFTout, REGin, regsel1, ldpsw; step6F br (if prekid then stepFA); step70 br step00;

! DEC ! step71 REGout, regsel1, Xin; step72 dec, ALUSHIFTout, REGin, regsel1, ldpsw; step73 br (if prekid then stepFA); step74 br step00;

! AND ! step75 REGout, regsel1, Xin; step76 REGout, regsel2, Yin; step77 and, ALUSHIFTout, REGin, regsel3, ldpsw; step78 br (if prekid then stepFA); step79 br step00;

! OR ! step7A REGout, regsel1, Xin; step7B REGout, regsel2, Yin; step7C or, ALUSHIFTout, REGin, regsel3, ldpsw;

Page 159: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

153

step7D br (if prekid then stepFA); step7E br step00;

! XOR ! step7F REGout, regsel1, Xin; step80 REGout, regsel2, Yin; step81 xor, ALUSHIFTout, REGin, regsel3, ldpsw; step82 br (if prekid then stepFA); step83 br step00;

! TST ! step84 REGout, regsel1, Xin; step85 REGout, regsel2, Yin; step86 and, ldpsw; step87 br (if prekid then stepFA); step88 br step00;

! NOT ! step89 REGout, regsel1, Xin; step8A not, ALUSHIFTout, REGin, regsel1, ldpsw; step8B br (if prekid then stepFA); step8C br step00;

! ASR ! step8D REGout, regsel1, Xin; step8E asr, ALUSHIFTout, REGin, regsel1, ldpsw; step8F br (if prekid then stepFA); step90 br step00;

! LSR ! step91 REGout, regsel1, Xin; step92 lsr, ALUSHIFTout, REGin, regsel1, ldpsw; step93 br (if prekid then stepFA); step94 br step00;

! ROR ! step94 REGout, regsel1, Xin; step94 ror, ALUSHIFTout, REGin, regsel1, ldpsw; step94 br (if prekid then stepFA); step94 br step00;

! RORC ! step99 REGout, regsel1, Xin; step9A rorc, ALUSHIFTout, REGin, regsel1, ldpsw; step9B br (if prekid then stepFA); step9C br step00;

! SL ! step9D REGout, regsel1, Xin; step9E sl, ALUSHIFTout, REGin, regsel1, ldpsw; step9F br (if prekid then stepFA); stepA0 br step00;

! ROL ! stepA1 REGout, regsel1, Xin; stepA2 rol, ALUSHIFTout, REGin, regsel1, ldpsw; stepA3 br (if prekid then stepFA); stepA4 br step00;

! ROLC ! stepA5 REGout, regsel1, Xin; stepA6 rolc, ALUSHIFTout, REGin, regsel1, ldpsw; stepA7 br (if prekid then stepFA); stepA8 br step00;

Page 160: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

154

! BEQL ! stepA9 br (if eql then stepC5); stepAA br stepC9;

! BNEQ ! stepAB br (if neq then stepC5); stepAC br stepC9;

! BGRT ! stepAD br (if grt then stepC5); stepAE br stepC9;

! BGRE ! stepAF br (if gre then stepC5); stepB0 br stepC9;

! BLSS ! stepB1 br (if lss then stepC5); stepB2 br stepC9;

! BLEQ ! stepB3 br (if leq then stepC5); stepB4 br stepC9;

! BGRTU ! stepB5 br (if grtu then stepC5); stepB6 br stepC9;

! BGREU ! stepB7 br (if greu then stepC5); stepB8 br stepC9;

! BLSSU ! stepB9 br (if lssu then stepC5); stepBA br stepC9;

! BLEQU ! stepBB br (if lequ then stepC5); stepBC br stepC9;

! BNEG ! stepBD br (if neg then stepC5); stepBE br stepC9;

! BNNG ! stepBF br (if nng then stepC5); stepC0 br stepC9;

! BOVF ! stepC1 br (if ovf then stepC5); stepC2 br stepC9;

! BNVF ! stepC3 br (if nvf then stepC5); stepC4 br stepC9;

! JMP ! stepC5 IRHout, Xin; stepC6 signext, ALUSHIFTout, Yin; stepC7 PCout, Xin; stepC8 add, ALUSHIFTout, PCin; stepC9 br (if prekid then stepFA); stepCA br step00;

! INT ! stepCB stprins; stepCC br stepFA;

! JSR ! stepCD SPout, Xin;

Page 161: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

155

stepCE dec, ALUSHIFTout, SPin; stepCF SPout, MARin; stepD0 PCout, MDRin; stepD1 write; stepD2 br stepC5;

! RTS ! stepD3 SPout, MARin; stepD4 SPout, Xin; stepD5 inc, ALUSHIFTout, SPin; stepD6 read; stepD7 MDRout, PCin; stepD8 br (if prekid then stepFA); stepD9 br step00;

! RTI ! stepDA SPout, MARin; stepDB SPout, Xin; stepDC inc, ALUSHIFTout, SPin; stepDD read; stepDE MDRout, PSWin; stepDF SPout, MARin; stepE0 SPout, Xin; stepE1 inc, ALUSHIFTout, SPin; stepE2 read; stepE3 MDRout, PCin; stepE4 br step00;

! JMPRIND ! stepE5 REGout, regsel1, PCin; stepE6 br (if prekid then stepFA); stepE7 br step00;

! INTD ! stepE8 clpswi; stepE9 br step00;

! INTE ! stepEA stpswi; stepEB br step00;

! TRPD ! stepEC clpswt; stepED br step00;

! TRPE ! stepEE stpswt; stepEF br step00;

! VARD ! stepF0 clpswp; stepF1 br step00;

! VARE ! stepF2 stpswp; stepF3 br step00;

! EDGD ! stepF4 clpswe; stepF5 br step00;

! EDGE ! stepF6 stpswe; stepF7 br step00;

Page 162: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

156

! NOP ! stepF8 br (if prekid then stepFA); stepF9 br step00;

! Opsluživanje prekida !

stepFA br (if PRADR then stepFD); stepFB br (if PRCOD then stepFD); stepFC br step102; stepFD PCout, Xin; stepFE dec, ALUSHIFTout, PCin; stepFF PCout, Xin; step100 br (if ldst32 then step102); step101 dec, ALUSHIFTout, PCin; step102 SPout, Xin; step103 dec, ALUSHIFTout, SPin; step104 SPout, MARin; step105 PCout, MDRin; step106 write; step107 SPout, Xin; step108 dec, ALUSHIFTout, SPin; step109 SPout, MARin; step10A PSWout, MDRin; step10B write; step10C br (if PRINS then step126); step10D br (if PRCOD then step119); step10E br (if PRADR then step116); step10F br (if PRINM then step113); step110 br (if prirr then step11C); step111 BRUNMSKout, Yin; step112 br step129; step113 BRUNMSKout, Yin; step114 clinm; step115 br step129; step116 BRUNMSKout, Yin; step117 clpradr; step118 br step129; step119 BRUNMSKout, Yin; step11A clprcod; step11B br step129; step11C ldpswl; step11D br (if PSWP then step123); step11E intack; step11F MDRout, Xin; step120 zeroext, ALUSHIFTout, Yin; step121 clirr; step122 br step129; step123 BRUMASKout, Yin; step124 clirr; step125 br step129; step126 IRHout, Xin; step127 zeroext, ALUSHIFTout, Yin; step128 clprins; step129 IVTPout, Xin; step12A add, ALUSHIFTout, MARin;

Page 163: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

157

step12B read; step12C MDRout, PCin; step12D clpswi, clpswt; step12E br step00;

! HALT ! step12F sthalt; step130 br step00;

4.2.3.2.2.3 Mikroprogram

Mikroprogram se formira tako što se za svaki korak u sekvenci upravljačkih signala po koracima za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija (tabela 56) formira jedna mikroinstrukcija i to operaciona ili upravljačka.

Kod formiranja operacionih mikroinstrukcija polazi se od sekvence upravljačkih signala po koracima za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija i traže koraci u kojima se javljaju upravljački signali operacione jedinice. Za svaki takav korak formira se jedna operaciona mikroinstrukcija koja, saglasno kombinaciji upravljačkih signala operacione jedinice koja se javlja u datom koraku i tabeli 52, dobija odgovarajuću vrednost za polje kombinacija upravljačkih signala. Na primer, za korake step04, step05 i step06

inc, ALUSHIFTout, PCin; PCout, MARin; PCout, Xin;

formiraju se tri operacione mikroinstrukcije sa vrednostima polja kombinacija upravljačkih signala V2D, V0A i V09, respektivno.

Kod formiranja upravljačkih mikroinstrukcija polazi se od sekvence upravljačkih signala po koracima za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija i traže iskazi:

• br stepA, • br (if uslov then stepA) i • br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn). Za svaki takav iskaz formira se jedna upravljačka mikroinstrukcija sa vrednošću 1 polja tip

mikroinstrukcije simbolički označenog sa cnt.

Za iskaz br stepA

u upravljačkoj mikroinstrukciji se kodira: • polje uslov skoka uzimanjem koda dodeljenog signalu bezuslovnog skoka koji određuje

da se bezuslovno prelazi na korak stepA i • polje adresa skoka uzimanjem vrednosti A koraka stepA koju treba upisati u

mikroprogramski brojač.

Simbolička oznaka signala bezuslovnog skoka i način njegovog kodiranja poljem uslov skoka dati su u tabeli 53. Korak stepA na koji treba preći u sekvenci upravljačkih signala po koracima, simbolička oznaka vrednosti madrA koju treba upisati u mikroprogramski brojač i sama vrednost A za sve korake u sekvenci upravljačkih signala po koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli 57.

Page 164: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

158

Tabela 57 Koraci stepA, adrese madrA i vrednosti A za bezuslovne skokove stepA madrA A

step000 madr000 000 step016 madr016 016 step028 madr028 028 step02F madr02F 02F step0C5 madr0C5 0C5 step0FA madr0FA 0FA step102 madr102 102 step129 madr129 129

Za iskaz br (if uslov then stepA)

u upravljačkoj mikroinstrukciji se kodira: • polje uslov skoka uzimanjem koda dodeljenog signalu uslovnog skoka koji određuje

signal uslov koji treba da bude aktivan da bi se realizovao prelazak na korak stepA i • polje adresa skoka uzimanjem vrednosti A koraka stepA koju treba upisati u

mikroprogramski brojač u slučaju da je signal uslov akivan.

Simboličke oznake signala uslovnog skoka, način njihovog kodiranja poljem uslov skoka i signal uslov za sve iskaze ovog tipa koji se javljaju u sekvenci upravljačkih signala po koracima za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija dati su u tabeli 54. Korak stepA na koji treba preći u sekvenci upravljačkih signala po koracima za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija, simbolička oznaka vrednosti madrA koju treba upisati u mikroprogramski brojač u slučaju da je signal uslov aktivan i vrednost A za korake u sekvenci upravljačkih signala po koracima u kojima se javljaju iskazi ovog tipa su dati u tabeli 58.

Tabela 58 Koraci stepA, adrese madrA i vrednosti A za uslovne skokove stepA madrA A

step00B madr00B 00B step0C5 madr0C5 0C5 step0C9 madr0C9 0C9 step0FA madr0FA 0FA step0FD madr0FD 0FD step113 madr113 113 step116 madr116 116 step119 madr119 119 step11C madr11C 11C step123 madr123 123 step126 madr126 126

Za iskaz br (case (uslov1, ..., uslovn) then (uslov1, stepA1), ..., (uslovn, stepAn)

u upravljačkoj mikroinstrukciji se kodira: • polje uslov skoka uzimanjem koda dodeljenog signalu višestrukog uslovnog skoka koji

određuje signale uslov1, ..., uslovn za koje treba izvršiti proveru koji je od njih aktivan da bi se na osnovu toga realizovao prelaz na jedan od koraka stepA1, ..., stepAn i

• polje adresa skoka nulama jer njegova vrednost nije bitna. Upravljačka jedinica uprav_jed mora da bude tako realizovana da za svaki višestruki uslovni skok generiše 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 aktivnu vrednost.

Page 165: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

159

Simboličke oznake signala višestrukih uslovnih skokova, način njihovog kodiranja poljem uslov skoka i koraci u sekvenci upravljačkih signala po koracima u kojima se javljaju iskazi ovog tipa dati su u tabeli 55. Vrednosti A1,..., An koje treba upisati u mikroprogramski brojač i signali uslova uslov1, ..., uslovn za koje treba izvršiti proveru koji je od njih aktivan da bi se na osnovu toga realizovao prelazak na jedan od koraka stepA1, ..., stepAn za tri iskaza ovog tipa koji se javljaju u sekvenci upravljačkih signala po koracima dati su u tabelama 59, 60 i 61.

Tabela 59 Signali uslova i vrednosti za upis u mikroprogramski brojač za višestruki uslovni skok u koraku step00D

signali uslova vrednost signali uslova vrednost LOAD 00E BNEQ 0AB STORE 020 BGRT 0AD MVRRL 031 BGRE 0AF MVRRR 035 BLSS 0B1 MVRPL 039 BLEQ 0B3 MVRPR 03D BGRTU 0B5 MVRIL 041 BGREU 0B7 MVRIR 045 BLSSU 0B9 PUSH 049 BLEQU 0BB POP 052 BNEG 0BD CLR 05B BNNG 0BF ADD 05E BOVF 0C1 SUB 063 BNVF 0C3 CMP 068 JMP 0C5 INC 06D INT 0CB DEC 071 JSR 0CD AND 075 RTS 0D3 OR 07A RTI 0DA

XOR 07F JMPRIND 0E5 TST 084 INTD 0E8 NOT 089 INTE 0EA ASR 08D TRPD 0EC LSR 091 TRPE 0FE ROR 095 VARD 0F0

RORC 099 VARE 0F2 SL 09D EDGD 0F4

ROL 0A1 EDGE 0F6 ROLC 0A5 NOP 0F8 BEQL 0A9 HALT 12F

Tabela 60 Signali uslova i vrednosti za upis u mikroprogramski brojač za višestruki uslovni skok u koraku step00E

signali uslova vrednost regind 00F

rindpom 011 memdir 015 nepsrd 01B

Page 166: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

160

Tabela 61 Signali uslova i vrednosti za upis u mikroprogramski brojač za višestruki uslovni skok u koraku step020

signali uslova vrednost regind 021

rindpom 023 memdir 027 nepsrd 02D

Po opisanom postupku je, na osnovu sekvence upravljačkih signala po koracima (tabela 56) formiran mikroprogram (tabela 62). On ima sledeću formu:

• na levoj strani se nalaze adrese mikroinstrukcija u mikroprogramskoj memoriji u heksadekadnom obliku,

• u sredini su ili operacione mikroinstrukcije predstavljene nizom simboličkih oznaka samo upravljačkih signala operacione jedinice ili upravljačke mikroinstrukcije predstavljene nizom simboličkih oznaka signala za tip mikroinstrukcije cnt, bezuslovne, uslovne i višestruke uslovne skokove i adresu skoka koji treba da budu aktivni i koji su razdvojeni zapetama,

• dok komentar, u koracima gde se to radi lakšeg razumevanja smatralo korisnim, uvek počinje uskličnikom (!) i proteže se do sledećeg uskličnika (!).

Tabela 62 Mikroprogram ! Čitanje instrukcije !

000 V0A; ! PCout, MARin ! 001 V09; ! PCout, Xin ! 002 V56; ! read ! 003 V4C; ! MDRout, IRHin ! 004 V2D; ! inc, ALUSHIFTout, PCin ! 005 V0A; ! PCout, MARin ! 006 V09; ! PCout, Xin ! 007 cnt, brnotldst32, madr00B; 008 V56; ! read ! 009 V4D; ! MDRout, IRLin ; 00A V2D; ! inc, ALUSHIFTout, PCin ; 00B V5F; ! ldprcod ! 00C cnt, brprcod, madr0FA;

! Izvršavanje instrukcije !

00D cnt, brop; ! LOAD !

00E cnt, bradrld; 00F V14; ! REGout, regsel2, MARin ! 010 cnt, brbezusl, madr016; 011 V10; ! REGout, regsel2, Xin ! 012 V03; ! IRLout, Yin ! 013 V29; ! add, ALUSHIFTout, MARin ! 014 cnt, brbezusl, madr016; 015 V04; ! IRLout, MARin ! 016 V56; ! read ! 017 V51; ! MDRout, REGin, regsel1 ! 018 V54; ! MDRout, Xin ! 019 V23 ! trans, ldpsw ! 01A cnt, brbezusl, madr01E;

Page 167: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

161

01B V06; ! IRLout, REGin, regsel1! 01C V02; ! IRLout, Xin ! 01D V23; ! trans, ldpsw ! 01E cnt, brprekid, madr0FA; 01F cnt, brbezusl, madr000;

! STORE ! 020 cnt, bradrst; 021 V14; ! REGout, regsel2, MARin ! 022 cnt, brbezusl, madr028; 023 V10; ! REGout, regsel2, Xin ! 024 V03; ! IRLout, Yin ! 025 V29; ! add, ALUSHIFTout, MARin ! 026 cnt, brbezusl, madr028; 027 V04; ! IRLout, MARin ! 028 V15; ! REGout, regsel1, MDRin ! 029 V0F; ! REGout, regsel1, Xin ! 02A V23; ! trans, ldpsw ! 02B V57; ! write ! 02C cnt, brbezusl, madr02F; 02D V60; ! stpradr ! 02E cnt, brbezusl, madr0FA; 02F cnt, brprekid, madr0FA; 030 cnt, brbezusl, madr000;

! MVRRL ! 031 V0F; ! REGout, regsel1, Xin ! 032 V25; ! trans, ALUSHIFTout, REGin, regsel2, ldpsw ! 033 cnt, brprekid, madr0FA; 034 cnt, brbezusl, madr000;

! MVRRR ! 035 V10; ! REGout, regsel2, Xin ! 036 V24; ! trans, ALUSHIFTout, REGin, regsel1, ldpsw ! 037 cnt, brprekid, madr0FA; 038 cnt, brbezusl, madr000;

! MVRPL ! 039 V17; ! PRREGout, Xin ! 03A V25; ! trans, ALUSHIFTout, REGin, regsel2, ldpsw ! 03B cnt, brprekid, madr0FA; 03C cnt, brbezusl, madr000;

! MVRPR ! 03D V10; ! REGout, regsel2, Xin ! 03E V27; ! trans, ALUSHIFTout, PRREGin, ldpsw ! 03F cnt, brprekid, madr0FA; 040 cnt, brbezusl, madr000;

! MVRIL ! 041 V19; ! INTREGout, Xin ! 042 V25; ! trans, ALUSHIFTout, REGin, regsel2, ldpsw ! 043 cnt, brprekid, madr0FA; 044 cnt, brbezusl, madr000;

! MVRIR ! 045 V10; ! REGout, regsel2, Xin ! 046 V28; ! trans, ALUSHIFTout, INTREGin, ldpsw ! 047 cnt, brprekid, madr0FA; 048 cnt, brbezusl, madr000;

! PUSH ! 049 V0C; ! SPout, Xin !

Page 168: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

162

04A V31; ! dec, ALUSHIFTout, SPin ! 04B V0D; ! SPout, MARin ! 04C V15; ! REGout, regsel1, MDRin ! 04D V0F; ! REGout, regsel1, Xin ! 04E V57; ! write ! 04F V23; ! trans, ldpsw ! 050 cnt, brprekid, madr0FA; 051 cnt, brbezusl, madr000;

! POP ! 052 V0D; ! SPout, MARin ! 053 V0C; ! SPout, Xin ! 054 V2E; ! inc, ALUSHIFTout, SPin ! 055 V56; ! read ! 056 V51; ! MDRout, regsel1, REGin ! 057 V54; ! MDRout, Xin ! 058 V23; ! trans, ldpsw ! 059 cnt, brprekid, madr0FA; 05A cnt, brbezusl, madr000;

! CLR ! 05B V32; ! zero, ALUSHIFTout, REGin, regsel1, ldpsw ! 05C cnt, brprekid, madr0FA; 05D cnt, brbezusl, madr000;

! ADD ! 05E V0F; ! REGout, regsel1, Xin ! 05F V12; ! REGout, regsel2, Yin ! 060 V35; ! add, ALUSHIFTout, REGin, regsel3, ldpsw ! 061 cnt, brprekid, madr0FA; 062 cnt, brbezusl, madr000;

! SUB ! 063 V10; ! REGout, regsel2, Xin ! 064 V11; ! REGout, regsel1, Yin ! 065 V36; ! sub, ALUSHIFTout, REGin, regsel3, ldpsw ! 066 cnt, brprekid, madr0FA; 067 cnt, brbezusl, madr000;

! CMP ! 068 V10; ! REGout, regsel2, Xin ! 069 V11; ! REGout, regsel1, Yin ! 06A V37; ! sub, ldpsw ! 06B cnt, brprekid, madr0FA; 06C cnt, brbezusl, madr000;

! INC ! 06D V0F; ! REGout, regsel1, Xin ; 06E V38; ! inc, ALUSHIFTout, REGin, regsel1, ldpsw ; 06F cnt, brprekid, madr0FA; 070 cnt, brbezusl, madr000;

! DEC ! 071 V0F; ! REGout, regsel1, Xin ! 072 V39; ! dec, ALUSHIFTout, REGin, regsel1, ldpsw ! 073 cnt, brprekid, madr0FA; 074 cnt, brbezusl, madr000;

! AND ! 075 V0F; ! REGout, regsel1, Xin ! 076 V12; ! REGout, regsel2, Yin ! 077 V3A; ! and, ALUSHIFTout, REGin, regsel3, ldpsw ! 078 cnt, brprekid, madr0FA;

Page 169: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

163

079 cnt, brbezusl, madr000; ! OR !

07A V0F; ! REGout, regsel1, Xin ! 07B V12; ! REGout, regsel2, Yin ! 07C V3C; ! or, ALUSHIFTout, REGin, regsel3, ldpsw ! 07D cnt, brprekid, madr0FA; 07E cnt, brbezusl, madr000;

! XOR ! 07F V0F; ! REGout, regsel1, Xin ! 080 V12; ! REGout, regsel2, Yin ! 081 V3D; ! xor, ALUSHIFTout, REGin, regsel3, ldpsw ! 082 cnt, brprekid, madr0FA; 083 cnt, brbezusl, madr000;

! TST ! 084 V0F; ! REGout, regsel1, Xin ! 085 V12; ! REGout, regsel2, Yin ! 086 V3B; ! and, ldpsw ! 087 cnt, brprekid, madr0FA; 088 cnt, brbezusl, madr000;

! NOT ! 089 V0F; ! REGout, regsel1, Xin ! 08A V3E; ! not, ALUSHIFTout, REGin, regsel1, ldpsw ! 08B cnt, brprekid, madr0FA; 08C cnt, brbezusl, madr000;

! ASR ! 08D V0F; ! REGout, regsel1, Xin ! 08E V3F; ! asr, ALUSHIFTout, REGin, regsel1, ldpsw ! 08F cnt, brprekid, madr0FA; 090 cnt, brbezusl, madr000;

! LSR ! 091 V0F; ! REGout, regsel1, Xin ! 092 V40; ! lsr, ALUSHIFTout, REGin, regsel1, ldpsw ! 093 cnt, brprekid, madr0FA; 094 cnt, brbezusl, madr000;

! ROR ! 095 V0F; ! REGout, regsel1, Xin ! 096 V41; ! ror, ALUSHIFTout, REGin, regsel1, ldpsw ! 097 cnt, brprekid, madr0FA; 098 cnt, brbezusl, madr000;

! RORC ! 099 V0F; ! REGout, regsel1, Xin ! 09A V42; ! rorc, ALUSHIFTout, REGin, regsel1, ldpsw ! 09B cnt, brprekid, madr0FA; 09C cnt, brbezusl, madr000;

! SL ! 09D V0F; ! REGout, regsel1, Xin ! 09E V43; ! sl, ALUSHIFTout, REGin, regsel1, ldpsw ! 09F cnt, brprekid, madr0FA; 0A0 cnt, brbezusl, madr000;

! ROL ! 0A1 V0F; ! REGout, regsel1, Xin ! 0A2 V44; ! rol, ALUSHIFTout, REGin, regsel1, ldpsw ! 0A3 cnt, brprekid, madr0FA; 0A4 cnt, brbezusl, madr000;

Page 170: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

164

! ROLC ! 0A5 V0F; ! REGout, regsel1, Xin ! 0A6 V45; ! rolc, ALUSHIFTout, REGin, regsel1, ldpsw ! 0A7 cnt, brprekid, madr0FA; 0A8 cnt, brbezusl, madr000;

! BEQL ! 0A9 cnt, breql, madr0C5; 0AA cnt, brbezusl, madr0C9;

! BNEQ ! 0AB cnt, brneq, madr0C5; 0AC cnt, brbezusl, madr0C9;

! BGRT ! 0AD cnt, brgrt, madr0C5; 0AE cnt, brbezusl, madr0C9;

! BGRE ! 0AF cnt, brgre, madr0C5; 0B0 cnt, brbezusl, madr0C9;

! BLSS ! 0B1 cnt, brlss, madr0C5; 0B2 cnt, brbezusl, madr0C9;

! BLEQ ! 0B3 cnt, brleq, madr0C5; 0B4 cnt, brbezusl, madr0C9;

! BGRTU ! 0B5 cnt, brgrtu, madr0C5; 0B6 cnt, brbezusl, madr0C9;

! BGREU ! 0B7 cnt, brgreu, madr0C5; 0B8 cnt, brbezusl, madr0C9;

! BLSSU ! 0B9 cnt, brlssu, madr0C5; 0BA cnt, brbezusl, madr0C9;

! BLEQU ! 0BB cnt, brlequ, madr0C5; 0BC cnt, brbezusl, madr0C9;

! BNEG ! 0BD cnt, brneg, madr0C5; 0BE cnt, brbezusl, madr0C9;

! BNNG ! 0BF cnt, brnng, madr0C5; 0C0 cnt, brbezusl, madr0C9;

! BOVF ! 0C1 cnt, brovf, madr0C5; 0C2 cnt, brbezusl, madr0C9;

! BNVF ! 0C3 cnt, brnvf, madr0C5; 0C4 cnt, brbezusl, madr0C9;

! JMP ! 0C5 V00; ! IRHout, Xin ! 0C6 V4A; ! signext, ALUSHIFTout, Yin ! 0C7 V09; ! PCout, Xin ! 0C8 V2A; ! add, ALUSHIFTout, PCin ! 0C9 cnt, brprekid, madr0FA; 0CA cnt, brbezusl, madr000;

Page 171: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

165

! INT ! 0CB V61; ! stprins ! 0CC cnt, brbezusl, madr0FA;

! JSR ! 0CD V0C; ! SPout, Xin ! 0CE V31; ! dec, ALUSHIFTout, SPin ! 0CF V0D; ! SPout, MARin ! 0D0 V0B; ! PCout, MDRin ! 0D1 V57; ! write ! 0D2 cnt, brbezusl, madr0C5;

! RTS ! 0D3 V0D; ! SPout, MARin ! 0D4 V0C; ! SPout, Xin ! 0D5 V2E; ! inc, ALUSHIFTout, SPin ! 0D6 V56; ! read ! 0D7 V4E; ! MDRout,PCin ! 0D8 cnt, brprekid, madr0FA; 0D9 cnt, brbezusl, madr000;

! RTI ! 0DA V0D; ! SPout, MARin ! 0DB V0C; ! SPout, Xin ! 0DC V2E; ! inc, ALUSHIFTout, SPin ! 0DD V56; ! read ! 0DE V50; ! MDRout, PSW ! 0DF V0D; ! SPout, MARin ! 0E0 V0C; ! SPout, Xin ! 0E1 V2E; ! inc, ALUSHIFTout, SPin ! 0E2 V56; ! read ! 0E3 V4E; ! MDRout, PCin ! 0E4 cnt, brbezusl, madr000;

! JMPRIND ! 0E5 V69; ! REGout, regsel1, PCin ! 0E6 cnt, brprekid, madr0FA; 0E7 cnt, brbezusl, madr000;

! INTD ! 0E8 V1B; ! clpswi ! 0E9 cnt, brbezusl, madr000;

! INTE ! 0EA V1C; ! stpswi ! 0EB cnt, brbezusl, madr000;

! TRPD ! 0EC V1D; ! clpswt ! 0ED cnt, brbezusl, madr000;

! TRPE ! 0EE V1E; ! stpswt ! 0EF cnt, brbezusl, madr000;

! VARD ! 0F0 V1F; ! clpswp ! 0F1 cnt, brbezusl, madr000;

! VARE ! 0F2 V20; ! stpswp ! 0F3 cnt, brbezusl, madr000;

! EDGD ! 0F4 V68; ! clpswe ! 0F5 cnt, brbezusl, madr000;

Page 172: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

166

! EDGE ! 0F6 V67; ! stpswe ! 0F7 cnt, brbezusl, madr000;

! NOP ! 0F8 cnt, brprekid, madr0FA; 0F9 cnt, brbezusl, madr000;

! Opsluživanje prekida !

0FA cnt, brpradr, madr0FD; 0FB cnt, brprcod, madr0FD; 0FC cnt, brbezusl, madr102; 0FD V09; ! PCout, Xin ! 0FE V30; ! dec, ALUSHIFTout, PCin ! 0FF V09; ! PCout, Xin ! 100 cnt, brnotldst32, madr102; 101 V30; ! dec, ALUSHIFTout, PCin ! 102 V0C; ! SPout, Xin ! 103 V31; ! dec, ALUSHIFTout, SPin ! 104 V0D; ! SPout, MARin ! 105 V0B; ! PCout, MDRin ! 106 V57; ! write ! 107 V0C; ! SPout, Xin ! 108 V31; ! dec, ALUSHIFTout, SPin ! 109 V0D; ! SPout, MARin ! 10A V0E; ! PSWout, MDRin ! 10B V57; ! write ! 10C cnt, brprins, madr126; 10D cnt, brprcod, madr119; 10E cnt, brpradr, madr116; 10F cnt, brprinm, madr113; 110 cnt, brprirr, madr11C; 111 V5C; ! BRUNMSKout, Yin ! 112 cnt, brbezusl, madr129; 113 V5C; ! BRUNMSKout, Yin ! 114 V63; ! clinm ! 115 cnt, brbezusl, madr129; 116 V5C; ! BRUNMSKout, Yin ! 117 V65; ! clpradr ! 118 cnt, brbezusl, madr129; 119 V5C; ! BRUNMSKout, Yin ! 11A V64; ! clprcod ! 11B cnt, brbezusl, madr129; 11C V22; ! ldpswl ! 11D cnt, brnotpswp, madr123; 11E V58; ! intack ! 11F V54; ! MDRout, Xin ! 120 V47; ! zeroext, ALUSHIFTout, Yin ! 121 V62; ! clirr ! 122 cnt, brbezusl, madr129; 123 V5A; ! BRUMASKout, Yin ! 124 V62; ! clirr ! 125 cnt, brbezusl, madr129; 126 V00; ! IRHout, Xin ! 127 V47; ! zeroext, ALUSHIFTout, Yin ! 128 V66; ! clprins !

Page 173: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

167

129 V5D; ! IVTPout, Xin ! 12A V29; ! add, ALUSHIFTout, MARin ! 12B V56; ! read ! 12C V4E; ! MDRout, PCin ! 12D V21; ! clpswi, clpswt ! 12E cnt, brbezusl, madr000;

! HALT ! 12F V6A; ! sthalt ! 130 cnt, brbezusl, madr000;

4.2.3.2.2.4 Struktura upravljačke jedinice

Struktura upravljačke jedinice mikroprogramske realizacije sa vertikalnim formatom mikroinstrukcija je prikazana na slici 48. Upravljačka jedinica se sastoji iz sledećih blokova:

• blok generisanje nove vrednosti mikroprogramskog brojača, • blok mikroprogramski brojač, • blok mikroprogramska memorija, • blok prihvatni registar mikroinstrukcije i • blok generisanje upravljačkih signala.

Blok generisanje nove vrednosti mikroprogramskog brojača se sastoji od kombinacionih mreža KMOP, KMADRLD i KMADRST sa multiplekserom MP i služi za generisanje i selekciju vrednosti koju treba upisati u mikroprogramski brojač. Potreba za ovim se javlja kada treba odstupiti od sekvencijalnog izvršavanja mikroprograma. Vrednosti koje treba upisati u mikroprogramski brojač generišu se na četiri načina pomoću:

• kombinacione mreže KMOP koja daje signale op8...0, • kombinacione mreže KMADRLD koja daje signale ld8...0, • kombinacione mreže KMADRST koja daje signale st8...0, • razreda CW8...0 prihvatnog registra mikroinstrukcije CW14...0.

Selekcija jedne od četiri grupe signala koji daju novu vrednost mikroprogramskog brojača obezbeđuje se signalima brop, bradrld i bradrst i to:

• signali op8...0 ako je aktivan signal brop, • signali ld8...0 ako je aktivan signal bradrld, • signali st8...0 ako je aktivan signal bradrst i • signali CW8...0 ako su neaktivni signali brop, bradrld i bradrst.

Kombinacionom mrežom KMOP generišu se vrednosti (tabela 59) za realizaciju višestrukog uslovnog skoka na adresi 0D mikroprograma (tabela 62). U zavisnosti od toga koji od signala LOAD, STORE, …, HALT tada ima aktivnu vrednost zavisi koja će od vrednosti iz tabele 59 da se pojavi na linijama op8...0. S obzirom da se na adresi 0D mikroprograma nalazi upravljačka mikroinstrukcija čije izvršavanje daje aktivnu vrednost signala višestrukog uslovnog skoka brop, vrednost na linijama op8...0 prolazi tada kroz multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojača mPC8...0.

Kombinacionom mrežom KMADRLD generišu se vrednosti (tabela 60) za realizaciju višestrukog uslovnog skoka na adresi 0E mikroprograma (tabela 62). U zavisnosti od toga koji od signala regind, rindpom, memdir i nepsrd tada ima aktivnu vrednost zavisi koja će od vrednosti iz tabele 60 da se pojavi na linijama ld8...0. S obzirom da se na adresi 0E mikroprograma nalazi upravljačka mikroinstrukcija čije izvršavanje daje aktivnu vrednost signala višestrukog uslovnog skoka bradrld, vrednost na linijama ld8...0 prolazi kroz multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojača mPC8...0.

Page 174: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

168

mPCINC

LDCLK

mPC8..0

CLKmPC

brojač koraka

halt registri

ldinc

bradrstMP

S0

S1

brop0123

bradrld

9

9

generisanje nove vrednostibrojača koraka

14444444444444244444444444443

registri

st8...0

144424443

regi

nd

neps

rd

rindp

omm

emdi

r

regi

nd

neps

rd

rindp

omm

emdi

r

op8...0

144424443

LOA

D

HA

LT...

STO

RE

KMOPE 20 12F

144424443

KMADRLD KMADRSTF 11 15 1D 21 23 27 2D

ld8...0

9 9 9 9

mMEM

mikroprogramskamemorija

WR0

prihvatni registarmikroinstrukcije

15

generisanje upravljačkihsignala

14

42

44

3pr

ekid

i

CW14...9 CW14...9

CW8...0

MRmr

14

42

44

3

regi

stri

CW8...0

generisanjeupravljačkih

signalaupravljačke

jedinice

prekidgenerisanjeupravljačkih

signalablokova

operacionejedinice

DRINM

PRADR

prirr

PRINS

PRCOD

prek

idi

inte

rfej

s

oper

acije

regi

stri

bran

ch

brad

rst

brad

rld

brop

ldst32PSWP

eql

nvf

...

CW14 9144424443

... ... 0814243

1

CLKCLK

LD

6 9

run interfejs

bradrldbrop

bradrstbranch

Slika 48 Struktura upravljačke jedinice mikroprogramske realizije sa vertikalnim formatom

mikroinstrukcija

Kombinacionom mrežom KMADRST generišu se vrednosti (tabela 61) za realizaciju višestrukog uslovnog skoka na adresi 20 mikroprograma (tabela 62). U zavisnosti od toga koji od signala regind, rindpom, memdir i nepsrd tada ima aktivnu vrednost zavisi koja će od vrednosti iz tabele 61 da se pojavi na linijama st8...0. S obzirom da se na adresi 20 mikroprograma nalazi upravljačka mikroinstrukcija čije izvršavanje daje aktivnu vrednost

Page 175: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

169

signala višestrukog uslovnog skoka bradrst, vrednost na linijama st8...0 prolazi kroz multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojača mPC8...0.

Prihvatni registar mikroinstrukcije CW14...0 u slučaju upravljačkih mikroinstrukcija u svojim razredima CW8...0 sadrži vrednost za upis u mikroprogramski brojač mPC8...0 za bezuslovne skokove (tabela 57) i uslovne skokove (tabela 58). Signali višestrukih uslovnin skokova brop, bradrld i bradrst su aktivni samo prilikom izvršavanja upravljačkih mikroinstrukcija na adresama 0D, 0E i 20 mikroprograma, respektivno, a u svim ostalim situacijama neaktivni. S obzirom da nijedan od ova tri signala nije aktivan prilikom izvršavanja upravljačkih mikroinstrukcija kojima se realizuju bezuslovni ili uslovni skokovi u mikroprogramu, vrednost određena razredima CW8...0 prolazi kroz multiplekser MP i pojavljuje se na ulazima mikroprogramskog brojača mPC8...0.

Blok mikroprogramski brojač sadrži mikroprogramski brojač mPC8...0. Mikroprogramski brojač mPC8...0 svojom trenutnom vrednošću određuje adresu mikroprogramske memorije mMEM sa koje treba očitati mikroinstrukciju. Mikroprogramski brojač mPC8..0 može da radi u sledećim režimima:

• režim inkrementiranja, • režim skoka i • režim čekanja.

U režimu inkrementiranja pri pojavi signala takta CLKmPC vrši se uvećavanje sadržaja mikroprogramskog brojača mPC7...0 za jedan čime se obezbeđuje sekvencijalno očitavanje mikroinstrukcija iz mikroprogramske memorije (tabela 62). Ovaj režim rada se obezbeđuje aktivnom vrednošću signala inc. Signal inc je aktivan ako je signal run aktivan, signal halt neaktivan i ako su svi signali brop, bradrld, bradrst i branch neaktivni. Signal run je uvek aktivan sem kada treba obezbediti režim čekanja. Signal halt je uvek neaktivan sem kada je procesor zaustavljen. Signali brop, bradrld, bradrst i branch su uvek neaktivni sem kada treba obezbediti režim skoka.

U režimu skoka pri pojavi signala takta CLKmPC vrši se upis nove vrednosti u mikroprogramski brojač. Ovim režimom se obezbeđuje odstupanje od sekvencijalnog očitavanja mikroinstrukcija iz mikroprogramske memorije. Ovaj režim rada se obezbeđuje aktivnom vrednošću signala ld. Signal ld je aktivan ako je signal run aktivan, signal halt neaktivan i ako je jedan od signala brop, bradrld, bradrst i branch aktivan. Signal run je uvek aktivan sem kada treba obezbediti režim čekanja. Signal halt je uvek neaktivan sem kada je procesor zaustavljen. Jedan od signala brop, bradrld, bradrst i branch je aktivan samo prilikom izvršavanja neke od upravljačkih mikroinstrukcija kojima se specificira neki višestruki uslovni skok, bezuslovni skok ili neki od uslovnih skokova i uslov skoka je ispunjen.

U režimu čekanja pri pojavi signala takta CLKmPC ne menja se vrednost mikroprogramskog brojača mPC8...0 Ovaj režim rada se obezbeđuje neaktivnim vrednostima signala inc i ld. Ovi signali su neaktivni kada je signal run neaktivan ili signal halt aktivan. Signal run je uvek aktivan sem kada je:

• ciklus procesora na magistrali u toku ili • magistrala prepuštena ulazno/izlaznom uređaju sa kontrolerom za direktan pristup

memoriji, a procesor je došao na korak izvršavanja instrukcije u kome mu je magistrala potrebna.

Signal halt je uvek neaktivan sem kada je procesor zaustavljen.

Page 176: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

170

Mikroprogramski brojač mPC8...0. je dimenzionisan prema veličini mikroprograma (tabela 62). S obzirom da se mikroprogram svih faza izvršavanja instrukcija nalazi u opsegu od adrese 000 do adrese 12E, usvojena je dužina mikroprogramskog brojača od 9 bita.

Blok mikroprogramski memorija sadrži mikroprogramsku memoriju mMEM, koja služi za smeštanje mikroprograma. Širina reči mikroprogramske je određena dužinom mikroinstrukcija i iznosi 15 bita, a kapacitet veličinom mikroprograma svih instrukcija procesora (tabela 62) i iznosi 512 lokacija. Adresiranje mikroprogramske memorije se realizuje sadržajem mikroprogramskog brojača mPC8...0.

Blok prihvatni registar mikroinstrukcije sadrži prihvatni registar mikroinstrukcije CW14...0. Prihvatni registar mikroinstrukcije CW14...0 služi za prihvatanje mikroinstrukcije očitane iz mikroprogramske memorije mMEM. Na osnovu sadržaja ovog registra generišu se upravljački signali. Razredi CW14...0 i CW14...9 se koriste u bloku generisanje upravljačkih signala za generisanje upravljačkih signala operacione jedinice oper_jed i upravljačke jedinice uprav_jed, respektivno, dok se razredi CW8...0 koriste u bloku generisanje nove vrednosti mikroprogramskog brojača kao adresa skoka u mikrorogramu u slučaju bezuslovnih i uslovnih skokova. Upis u ovaj registar se realizuje signalom takta CLK. Signal takta CLK kasni za signalom takta CLKmPC onoliko koliko je potrebno da se pročita sadržaj sa odgovarajuće adrese mikroprogramske memorije.

Blok generisanje upravljačkih signala sadrži kombinacione mreže koje na osnovu sadržaja prihvatnog registra mikroinstrukcije CW14...0 generišu ili

• upravljačke signale blokova operacione jedinice oper_jed ili na osnovu sadržaja razreda CW14..9 prihvatnog registra mikroinstrukcije CW14...0 i signala logičkih uslova signala ldst32, PSWP, ..., nvf koji dolaze iz bloka registri i prekid, prirr, ..., PRCOD koji dolaze iz bloka prekidi operacione jedinice oper_jed

• upravljačke signale upravljačke jedinice uprav_jed.

Upravljački signali blokova operacione jedinice oper_jed se generiše ukoliko je CW14 = 0, jer se tada u prihvatnom registru mikroinstrukcije CW14...0 nalazi operaciona mikroinstrukcija. Najpre se dekodovanjem na osnovu signala CW6...0 generišu signali kombinacija upravljačkih signala V00 do V66. (odeljak 0). Potom, se za svaki upravljački signal operacione jedinice posmatra u kojim kombinacijama upravljačkih signala se signal pojavljuje (tabela 52), pa se dati signal dobija kao njihova unija. Na primer, signal PCin se javlja u kombinacijama upravljačkih signala V2A, V2D, V30 i V4E, pa se stoga ovaj signal generiše prema izrazu PCin = V2A + V2D + V30 + V4E.

Upravljački signali blokova operacione jedinice oper_jed se daju posebno za svaki blok.

Upravljački signali bloka registri se generišu na sledeći način: • PCout = V09 + V0A + V0B • SPout = V0C + V0D • PRREGout = V17 + V18 • IRHout = V00 + V01 • IRLout = V02 + V03 + V04 + V05 + V06 + V07 + V08 • REGout = V0F + V10 + V11 + V12 + V13 + V14 + V15 + V16 + V69 • PSWout = V0E • PCin = V2A + V2D + V30 + V4E + V69 • SPin = V2B + V2E + V31 + V4F • PRREGin = V27 • IRHin = V4C

Page 177: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

171

• IRLin = V4D • REGin = V06 + V07 + V08 + V24 + V25 + V26 + V32 + V33 + V34 + V35 + V36 + V38

+ V39 + V3A + V3C + V3D + V3E + V3F + V40 + V41 + V42 + V43 + V44 + V45 + V51 + V52 + V53

• PSWin = V50 • regsel1 = V06 + V0F + V11 + V13 + V15 + V24 + V32 + V38 + V39 + V3E + V3F + V40

+ V41 + V42 + V43 + V44 + V45 + V51 + V69 • regsel2 = V07 + V10 + V12 + V14 + V16 + V25 + V33 + V52 • regsel3 = V08 + V26 + V34 + V35 + V36 + V3A + V3C + V3D + V53 • ldpsw = V23 + V24 + V25 + V26 + V27 + V28 + V32 + V33 + V34 + V35 + V36

+ V37 + V38 + V39 + V3A + V3B + V3C + V3D + V3E + V3F + V40 + V41 + V42 + V43 + V44 + V45

• ldpswl = V22 • clpswi = V1B + V21 • clpswt = V1D + V21 • clpswp = V1F • stpswe = V67 • stpswi = V1C • stpswt = V1E • stpswp = V20 • clpswe = V68 • sthalt = V6A

Upravljački signali bloka operacije se generišu na sledeći način: • Xout = 0 • Yout = 0 • ALUSHIFTout = V24 + V25 + V26 + V27 + V28 + V29 + V2A + V2B + V2C + V2D

+ V2E + V2F + V30 + V31 + V32 + V33 + V34 + V35 + V36 + V38 + V39 + V3A + V3C + V3D + V3E + V3F + V40 + V41 + V42 + V43 + V44 + V45 + V46 + V47 + V48 + V49 + V4A + V4B

• Xin = V00 + V02 + V09 + V0C + V0F + V10 + V17 + V19 + V46 + V49 + V54 + V59 + V5B + V5D

• Yin = V01 + V03 + V11 + V12 + V47 + V4A + V55 + V5A + V5C + V5E • trans = V23 + V24 + V25 + V26 + V27 + V28 • add = V29 + V2A + V2B + V35 • sub = V36 + V37 • inc = V2C + V2D + V2E + V38 • dec = V2F + V30 + V31 + V39 • and = V3A + V3B • or = V3C • xor = V3D • not = V3E • sl = V43 • rol = V44 • rolc = V45 • asr = V3F • lsr = V40 • ror = V41

Page 178: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

172

• rorc = V42 • zero = V32 + V33 + V34 • ones = 0 • zeroext = V46 + V47 + V48 • signext = V49 + V4A + V4B

Upravljački signali bloka interfejs se generišu na sledeći način: • MARout = 0 • MDRout = V4C + V4D + V4E + V4F + V50 + V51 + V52 + V53 + V54 + V55 • MARin = V04 + V0A + V0D + V14 + V29 + V2C + V2F • MDRin = V05 + V0B + V0E + V15 + V16 + V18 + V1A + V48 + V4B • read = V56 • write = V57 • intack = V58

Upravljački signali bloka prekidi se generišu na sledeći način: • INTREGout = V19 + V1A • BRUNMSKout = V5B + V5C • BRUMASKout = V59 + V5A • IVTPout = V5D + V5E • INTREGin = V28 • ldprcod = V5F • stpradr = V60 • stprins = V61 • clirr = V62 • clinm = V63 • clprcod = V64 • clpradr = V65 • clprins = V66

Upravljački signali upravljačke jedinice uprav_jed se generišu ukoliko je CW14 = 1, jer se tada u prihvatnom registru mikroinstrukcije CW14...0 nalazi upravljačka mikroinstrukcija. U okviru toga se dekodovanjem na osnovu signala CW13...9 generišu signali višestrukih uslovnih skokova brop, bradrld i bradrst (tabela 55), signal bezuslovnog skoka brbezusl (tabela 53) i signali uslovnih skokova (tabela 54 ).

Upravljački signali upravljačke jedinice uprav_jed se generišu na sledeći način: • brop = CW14*CW13*CW12*CW11*CW10*CW9 • bradrld = CW14*CW13*CW12*CW11*CW10*CW9 • bradrst = CW14*CW13*CW12*CW11*CW10*CW9 • branch = brbezusl

+ brnotldst32*ldst32 + brprekid*prekid + brprirr*prirr + brprinm*PRINM + brprcod*PRCOD + brpradr*PRADR + brprins*PRINS + breql*eql + brneq*neq + brgrt*grt + brgre*gre + brlss*lss + brleq*leq + brgrtu*grtu + brgreu*greu + brlssu*lssu + brlequ*lequ + brneg*neg + brnneg*nneg + brovf*ovf + brnvf*nvf + brnotpswp*PSWP

Signali koji se javljaju u izrazu za signal branch se generišu na sledeći način: • brbezusl = CW14*CW13*CW12*CW11*CW10*CW9 • brnotldst32 = CW14*CW13*CW12*CW11*CW10*CW9

Page 179: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

173

• brprekid = CW14*CW13*CW12*CW11*CW10*CW9 • brprirr = CW14*CW13*CW12*CW11*CW10*CW9 • brprinm = CW14*CW13*CW12*CW11*CW10*CW9 • brprcod = CW14*CW13*CW12*CW11*CW10*CW9 • brpradr = CW14*CW13*CW12*CW11*CW10*CW9 • brprins = CW14*CW13*CW12*CW11*CW10*CW9 • breql = CW14*CW13*CW12*CW11*CW10*CW9 • brneq = CW14*CW13*CW12*CW11*CW10*CW9 • brgrt = CW14*CW13*CW12*CW11*CW10*CW9 • brgre = CW14*CW13*CW12*CW11*CW10*CW9 • brlss = CW14*CW13*CW12*CW11*CW10*CW9 • brleq = CW14*CW13*CW12*CW11*CW10*CW9 • brgrtu = CW14*CW13*CW12*CW11*CW10*CW9 • brgreu = CW14*CW13*CW12*CW11*CW10*CW9 • brlssu = CW14*CW13*CW12*CW11*CW10*CW9 • brlequ = CW14*CW13*CW12*CW11*CW10*CW9 • brneg = CW14*CW13*CW12*CW11*CW10*CW9 • brnng = CW14*CW13*CW12*CW11*CW10*CW9 • brovf = CW14*CW13*CW12*CW11*CW10*CW9 • brnvf = CW14*CW13*CW12*CW11*CW10*CW9 • brnotpswp = CW14*CW13*CW12*CW11*CW10*CW9

Pri generisanju signala branch koriste se sledeći signali logičkih uslova koji dolaze iz blokova operacione jedinice oper_jed i to:

• ldst32 — blok registri, • PSWP — blok registri, • eql — blok registri, • neq — blok registri, • grt — registri, • gre — blok registri, • lss — blok registri, • leq — blok registri, • grtu — blok registri, • greu — blok registri, • lssu — blok registri, • lequ — blok registri, • neg — blok registri, • nng — blok registri, • ovf — blok registri, • nvf — blok registri, • prekid — blok prekidi, • prirr — blok prekidi, • PRINM — blok prekidi, • PRINS — blok prekidi, • PRADR — blok prekidi i • PRCOD — bloka prekidi.

Page 180: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

174

4.2.3.2.3 Mikroprogramska realizacija sa nanoprogramiranjem

U ovom odeljku se razmatra mikroprogramska realizacija sa nanoprogramiranjem za slučaj vertikalnog formata mikroinstrukcija. Do strukture upravljačke jedinice sa vertikalnim formatom mikroinstrukcija i nanoprogramiranjem dolazi se tako što se u strukturi upravljačke jedinice sa vertikalnim formatom mikroinstrukcija (slika 48) između mikroprogramske memorije mMEM i prihvatnog registra mikroinstrukcije CW14...0 ubacuje nanoprogramska memorija nMEM (slika 49).

Na osnovu mikroprograma za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija (tabela 62) formiraju se nanoprogram i mikroprogram za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija i nanoprogramiranjem. Oni se smeštaju u nanoprogramsku memoriju i mikroprogramsku memoriju upravljačke jedinice sa vertikalnim formatom mikroinstrukcija i nanoprogramiranjem (slika 49).

Nanoprogram se formira od mikroinstrukcija iz mikroprograma za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija (tabela 62) tako što se svaka mikroinstrukcija koja se u njemu javlja stavi u nanoprogram ali samo jedanput. Tako formiran nanoprogram za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija i nanoprogramiranjem je dat u tabeli 64.

Mikroprogram se formira na osnovu mikroprograma za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija (tabela 62) i nanoprograma za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija i nanoprogramiranjem (tabela 64) tako što se svaka mikroinstrukcija iz tabele 62 zameni adresom te mikroinstrukcije u tabeli 64. Tako formiran mikroprogram za upravljačku jedinicu sa vertikalnim formatom mikroinstrukcija i nanoprogramiranjem je dat u tabeli 63. U njemu je sa Nj simbolički označena adresa j nanoprogramske memorije.

Strukture upravljačke jedinice sa vertikalnim formatom mikroinstrukcija i upravljačke jedinice sa vertikalnim formatom mikroinstrukcija i nanoprogramiranjem su veoma slične. Razlike su samo u delu gde se u prvom slučaju nalazi mikroprogramska memorija (slika 48), a u drugom mikroprogramska memorija i nanoprogramska memorija (slika 49). U prvom slučaju se na osnovu vrednosti mikroprogramskog brojača mPC8...0 iz mikroprogramske memorije čita mikroinstrukcija i upisuje u prihvatni registar mikroinstrukcije CW14...0. U drugom slučaju se, najpre, na osnovu vrednosti mikroprogramskog brojača mPC8...0 iz mikroprogramske memorije čita adresa sa koje se iz nanoprogramske memorije čita mikroinstrukcija i upisuje u prihvatni registar mikroinstrukcije CW14...0. Pošto je u oba slučaja struktura mikroinstrukcija identična, dalje se na identičan način u oba slučaja generišu i upravljački signali blokova operacione jedinice oper_jed i upravljački signali upravljačke jedinice uprav_jed. Sve ovo ima dalje za posledicu da se na identičan način upravlja radom blokova generisanje nove vrednosti mikroprogramskog brojača i mikroprogramski brojač.

Tabela 63 Mikroprogram ! Čitanje instrukcije !

000 N00; ! V0A; PCout, MARin ! 001 N01; ! V09; PCout, Xin ! 002 N02; ! V56; read ! 003 N03; ! V4C; MDRout, IRHin ! 004 N04; ! V2D; inc, ALUSHIFTout, PCin ! 005 N00; ! V0A; PCout, MARin ! 006 N01; ! V09; PCout, Xin !

Page 181: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

175

mPCINC

LDCLK

mPC8..0

CLKmPC

brojač koraka

halt registri

ldinc

bradrstMP

S0

S1

brop0123

bradrld9

generisanje nove vrednostibrojača koraka

14444444444444244444444444443

registri

st8...0

144424443

regi

nd

neps

rd

rindp

omm

emdi

r

regi

nd

neps

rd

rindp

omm

emdi

r

op8...0

144424443

LOA

D

HA

LT

...ST

ORE

KMOPE 20 12F

144424443

KMADRLD KMADRSTF 11 15 1D 21 23 27 2D

ld8...0

9 9 9 9 CW8...0

MRmr

prihvatni registarmikroinstrukcije

generisanje upravljačkihsignala

14

42

44

3pr

ekid

i

CW14...9 CW14...9

9

14

42

44

3re

gist

ri

CW8...0

generisanjeupravljačkih

signalaupravljačke

jedinice

prekidgenerisanjeupravljačkih

signalablokova

operacionejedinice

DRINM

PRADR

prirr

PRINS

PRCOD

prek

idi

inte

rfej

s

oper

acije

regi

stri

bran

ch

brad

rst

brad

rld

brop

ldst32PSWP

eql

nvf

...9

mMEM

mikroprogramskamemorija

WR0

7

nMEM

nanoprogramskamemorija

WR0

15

6

CW14 9144424443

... ... 0814243

1

CLKCLK

LD

run interfejs

bradrldbrop

bradrstbranch

Slika 49 Struktura upravljačke jedinice sa vertikalnim formatom mikroinstrukcija i

nanoprogramiranjem

Page 182: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

176

007 N05; ! cnt, brnotldst32, madr00B; ! 008 N02; ! V56; read ! 009 N06; ! V4D; MDRout, IRLin ! 00A N04; ! V2D; inc, ALUSHIFTout, PCin ! 00B N07; ! V5F; ldprcod ! 00C N08; ! cnt, brprcod, madr0FA; !

! Izvršavanje instrukcije !

00D N09; ! cnt, brop; ! ! LOAD !

00E N0A; ! cnt, bradrld; ! 00F N0B; ! V14; REGout, regsel2, MARin ! 010 N78; ! cnt, brbezusl, madr016; ! 011 N0D; ! V10; REGout, regsel2, Xin ! 012 N0E; ! V03; IRLout, Yin ! 013 N0F; ! V29; add, ALUSHIFTout, MARin ! 014 N78; ! cnt, brbezusl, madr016; ! 015 N10; ! V04; IRLout, MARin ! 016 N02; ! V56; read ! 017 N11; ! V51; MDRout, REGin, regsel1 ! 018 N12; ! V54; MDRout, Xin ! 019 N13; ! V23; trans, ldpsw ! 01A N14; ! cnt, brbezusl, madr01E; ! 01B N15; ! V06; IRLout, REGin, regsel1! 01C N16; ! V02; IRLout, Xin ! 01D N13; ! V23; trans, ldpsw ! 01E N17; ! cnt, brprekid, madr0FA; ! 01F N18; ! cnt, brbezusl, madr000; !

! STORE ! 020 N19; ! cnt, bradrst; ! 021 N0B; ! V14; REGout, regsel2, MARin ! 022 N1A; ! cnt, brbezusl, madr028; ! 023 N0D; ! V10; REGout, regsel2, Xin ! 024 N0E; ! V03; IRLout, Yin ! 025 N0F; ! V29; add, ALUSHIFTout, MARin ! 026 N0A; ! cnt, brbezusl, madr028; ! 027 N10; ! V04; IRLout, MARin ! 028 N1B; ! V15; REGout, regsel1, MDRin ! 029 N1C; ! V0F; REGout, regsel1, Xin ! 02A N13; ! V23; trans, ldpsw ! 02B N1D; ! V57; write ! 02C N1E; ! cnt, brbezusl, madr02F; ! 02D N1F; ! V60; stpradr ! 02E N20; ! cnt, brbezusl, madr0FA; ! 02F N17; ! cnt, brprekid, madr0FA; ! 030 N18; ! cnt, brbezusl, madr000; !

! MVRRL ! 031 N1C; ! V0F; REGout, regsel1, Xin ! 032 N21; ! V25; trans, ALUSHIFTout, REGin, regsel2, ldpsw ! 033 N17; ! cnt, brprekid, madr0FA; ! 034 N18; ! cnt, brbezusl, madr000; !

! MVRRR ! 035 N0D; ! V10; REGout, regsel2, Xin ! 036 N22; ! V24; trans, ALUSHIFTout, REGin, regsel1, ldpsw ! 037 N17; ! cnt, brprekid, madr0FA; !

Page 183: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

177

038 N18; ! cnt, brbezusl, madr000; ! ! MVRPL !

039 N23; ! V17; PRREGout, Xin ! 03A N21; ! V25; trans, ALUSHIFTout, REGin, regsel2, ldpsw ! 03B N17; ! cnt, brprekid, madr0FA; ! 03C N18; ! cnt, brbezusl, madr000; !

! MVRPR ! 03D N0D; ! V10; REGout, regsel2, Xin ! 03E N24; ! V27; trans, ALUSHIFTout, PRREGin, ldpsw ! 03F N17; ! cnt, brprekid, madr0FA; ! 040 N18; ! cnt, brbezusl, madr000; !

! MVRIL ! 041 N25; ! V19; INTREGout, Xin ! 042 N21; ! V25; trans, ALUSHIFTout, REGin, regsel2, ldpsw ! 043 N17; ! cnt, brprekid, madr0FA; ! 044 N18; ! cnt, brbezusl, madr000; !

! MVRIR ! 045 N0D; ! V10; REGout, regsel2, Xin ! 046 N26; ! V28; trans, ALUSHIFTout, INTREGin, ldpsw ! 047 N17; ! cnt, brprekid, madr0FA; ! 048 N18; ! cnt, brbezusl, madr000; !

! PUSH ! 049 N27; ! V0C; SPout, Xin ! 04A N28; ! V31; dec, ALUSHIFTout, SPin ! 04B N29; ! V0D; SPout, MARin ! 04C N1B; ! V15; REGout, regsel1, MDRin ! 04D N1C; ! V0F; REGout, regsel1, Xin ! 04E N1D; ! V57; write ! 04F N13; ! V23; trans, ldpsw ! 050 N17; ! cnt, brprekid, madr0FA; ! 051 N18; ! cnt, brbezusl, madr000; !

! POP ! 052 N29; ! V0D; SPout, MARin ! 053 N27; ! V0C; SPout, Xin ! 054 N2A; ! V2E; inc, ALUSHIFTout, SPin ! 055 N02; ! V56; read ! 056 N11; ! V51; MDRout, regsel1, REGin ! 057 N12; ! V54; MDRout, Xin ! 058 N13; ! V23; trans, ldpsw ! 059 N17; ! cnt, brprekid, madr0FA ! 05A N18; ! cnt, brbezusl, madr000 !

! CLR ! 05B N2B; ! V32; zero, ALUSHIFTout, REGin, regsel1, ldpsw ! 05C N17; ! cnt, brprekid, madr0FA; ! 05D N18; ! cnt, brbezusl, madr000; !

! ADD ! 05E N1C; ! V0F; REGout, regsel1, Xin ! 05F N77; ! V12; REGout, regsel2, Yin ! 060 N2D; ! V35; add, ALUSHIFTout, REGin, regsel3, ldpsw ! 061 N17; ! cnt, brprekid, madr0FA; ! 062 N18; ! cnt, brbezusl, madr000; !

! SUB ! 063 N0D; ! V10; REGout, regsel2, Xin ! 064 N2C; ! V11; REGout, regsel1, Yin ! 065 N2E; ! V36; sub, ALUSHIFTout, REGin, regsel3, ldpsw !

Page 184: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

178

066 N17; ! cnt, brprekid, madr0FA; ! 067 N18; ! cnt, brbezusl, madr000; !

! CMP ! 068 N0D; ! V10; REGout, regsel2, Xin ! 069 N2C; ! V11; REGout, regsel1, Yin ! 06A N2F; ! V37; sub, ldpsw ! 06B N17; ! cnt, brprekid, madr0FA; ! 06C N18; ! cnt, brbezusl, madr000; !

! INC ! 06D N1C; ! V0F; REGout, regsel1, Xin ! 06E N30; ! V38; inc, ALUSHIFTout, REGin, regsel1, ldpsw ! 06F N17; ! cnt, brprekid, madr0FA; ! 070 N18; ! cnt, brbezusl, madr000; !

! DEC ! 071 N1C; ! V0F; REGout, regsel1, Xin ! 072 N31; ! V39; dec, ALUSHIFTout, REGin, regsel1, ldpsw ! 073 N17; ! cnt, brprekid, madr0FA; ! 074 N18; ! cnt, brbezusl, madr000; !

! AND ! 075 N1C; ! V0F; REGout, regsel1, Xin ! 076 N77; ! V12; REGout, regsel2, Yin ! 077 N32; ! V3A; and, ALUSHIFTout, REGin, regsel3, ldpsw ! 078 N17; ! cnt, brprekid, madr0FA; ! 079 N18; ! cnt, brbezusl, madr000; !

! OR ! 07A N1C; ! V0F; REGout, regsel1, Xin ! 07B N77; ! V12; REGout, regsel2, Yin ! 07C N33; ! V3C; or, ALUSHIFTout, REGin, regsel3, ldpsw ! 07D N17; ! cnt, brprekid, madr0FA; ! 07E N18; ! cnt, brbezusl, madr000; !

! XOR ! 07F N1C; ! V0F; REGout, regsel1, Xin ! 080 N77; ! V12; REGout, regsel2, Yin ! 081 N34; ! V3D; xor, ALUSHIFTout, REGin, regsel3, ldpsw ! 082 N17; ! cnt, brprekid, madr0FA; ! 083 N18; ! cnt, brbezusl, madr000; !

! TST ! 084 N1C; ! V0F; REGout, regsel1, Xin ! 085 N77; ! V12; REGout, regsel2, Yin ! 086 N35; ! V3B; and, ldpsw ! 087 N17; ! cnt, brprekid, madr0FA; ! 088 N18; ! cnt, brbezusl, madr000; !

! NOT ! 089 N1C; ! V0F; REGout, regsel1, Xin ! 08A N36; ! V3E; not, ALUSHIFTout, REGin, regsel1, ldpsw ! 08B N17; ! cnt, brprekid, madr0FA; ! 08C N18; ! cnt, brbezusl, madr000; !

! ASR ! 08D N1C; ! V0F; REGout, regsel1, Xin ! 08E N37; ! V3F; asr, ALUSHIFTout, REGin, regsel1, ldpsw ! 08F N17; ! cnt, brprekid, madr0FA; ! 090 N18; ! cnt, brbezusl, madr000; !

! LSR ! 091 N1C; ! V0F; REGout, regsel1, Xin ! 092 N38; ! V40; lsr, ALUSHIFTout, REGin, regsel1, ldpsw !

Page 185: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

179

093 N17; ! cnt, brprekid, madr0FA; ! 094 N18; ! cnt, brbezusl, madr000; !

! ROR ! 095 N1C; ! V0F; REGout, regsel1, Xin ! 096 N39; ! V41; ror, ALUSHIFTout, REGin, regsel1, ldpsw ! 097 N17; ! cnt, brprekid, madr0FA; ! 098 N18; ! cnt, brbezusl, madr000; !

! RORC ! 099 N1C; ! V0F; REGout, regsel1, Xin ! 09A N3A; ! V42; rorc, ALUSHIFTout, REGin, regsel1, ldpsw ! 09B N17; ! cnt, brprekid, madr0FA; ! 09C N18; ! cnt, brbezusl, madr000; !

! SL ! 09D N1C; ! V0F; REGout, regsel1, Xin ! 09E N3B; ! V43; sl, ALUSHIFTout, REGin, regsel1, ldpsw ! 09F N17; ! cnt, brprekid, madr0FA; ! 0A0 N18; ! cnt, brbezusl, madr000; !

! ROL ! 0A1 N1C; ! V0F; REGout, regsel1, Xin ! 0A2 N3C; ! V44; rol, ALUSHIFTout, REGin, regsel1, ldpsw ! 0A3 N17; ! cnt, brprekid, madr0FA; ! 0A4 N18; ! cnt, brbezusl, madr000; !

! ROLC ! 0A5 N1C; ! V0F; REGout, regsel1, Xin ! 0A6 N3D; ! V45; rolc, ALUSHIFTout, REGin, regsel1, ldpsw ! 0A7 N17; ! cnt, brprekid, madr0FA; ! 0A8 N18; ! cnt, brbezusl, madr000; !

! BEQL ! 0A9 N3E; ! cnt, breql, madr0C5; ! 0AA N3F; ! cnt, brbezusl, madr0C9; !

! BNEQ ! 0AB N40; ! cnt, brneq, madr0C5; ! 0AC N3F; ! cnt, brbezusl, madr0C9; !

! BGRT ! 0AD N41; ! cnt, brgrt, madr0C5; ! 0AE N3F; ! cnt, brbezusl, madr0C9; !

! BGRE ! 0AF N42; ! cnt, brgre, madr0C5; ! 0B0 N3F; ! cnt, brbezusl, madr0C9; !

! BLSS ! 0B1 N43; ! cnt, brlss, madr0C5; ! 0B2 N3F; ! cnt, brbezusl, madr0C9; !

! BLEQ ! 0B3 N44; ! cnt, brleq, madr0C5; ! 0B4 N3F; ! cnt, brbezusl, madr0C9; !

! BGRTU ! 0B5 N45; ! cnt, brgrtu, madr0C5; ! 0B6 N3F; ! cnt, brbezusl, madr0C9; !

! BGREU ! 0B7 N46; ! cnt, brgreu, madr0C5; ! 0B8 N3F; ! cnt, brbezusl, madr0C9; !

! BLSSU ! 0B9 N47; ! cnt, brlssu, madr0C5; ! 0BA N3F; ! cnt, brbezusl, madr0C9; !

Page 186: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

180

! BLEQU ! 0BB N48; ! cnt, brlequ, madr0C5; ! 0BC N3F; ! cnt, brbezusl, madr0C9; !

! BNEG ! 0BD N49; ! cnt, brneg, madr0C5; ! 0BE N3F; ! cnt, brbezusl, madr0C9; !

! BNNG ! 0BF N4A; ! cnt, brnng, madr0C5; ! 0C0 N3F; ! cnt, brbezusl, madr0C9; !

! BOVF ! 0C1 N4B; ! cnt, brovf, madr0C5; ! 0C2 N3F; ! cnt, brbezusl, madr0C9; !

! BNVF ! 0C3 N4C; ! cnt, brnvf, madr0C5; ! 0C4 N3F; ! cnt, brbezusl, madr0C9; !

! JMP ! 0C5 N4D; ! V00; IRHout, Xin ! 0C6 N4E; ! V4A; signext, ALUSHIFTout, Yin ! 0C7 N01; ! V09; PCout, Xin 0C8 N4F; ! V2A; add, ALUSHIFTout, PCin ! 0C9 N17; ! cnt, brprekid, madr0FA; ! 0CA N18; ! cnt, brbezusl, madr000; !

! INT ! 0CB N50; ! V61; stprins ! 0CC N20; ! cnt, brbezusl, madr0FA; !

! JSR ! 0CD N27; ! V0C; SPout, Xin ! 0CE N28; ! V31; dec, ALUSHIFTout, SPin ! 0CF N29; ! V0D; SPout, MARin ! 0D0 N52; ! V0B; PCout, MDRin ! 0D1 N1D; ! V57; write ! 0D2 N53; ! cnt, brbezusl, madr0C5; !

! RTS ! 0D3 N29; ! V0D; SPout, MARin ! 0D4 N27; ! V0C; SPout, Xin ! 0D5 N2A; ! V2E; inc, ALUSHIFTout, SPin ! 0D6 N02; ! V56; read ! 0D7 N54; ! V4E; MDRout,PCin ! 0D8 N17; ! cnt, brprekid, madr0FA; ! 0D9 N18; ! cnt, brbezusl, madr000; !

! RTI ! 0DA N29; ! V0D; SPout, MARin ! 0DB N27; ! V0C; SPout, Xin ! 0DC N2A; ! V2E; inc, ALUSHIFTout, SPin ! 0DD N02; ! V56; read ! 0DE N55; ! V50; MDRout, PSWin ! 0DF N29; ! V0D; SPout, MARin ! 0E0 N27; ! V0C; SPout, Xin ! 0E1 N2A; ! V2E; inc, ALUSHIFTout, SPin ! 0E2 N02; ! V56; read ! 0E3 N54; ! V4E; MDRout, PCin ! 0E4 N18; ! cnt, brbezusl, madr000; !

! JMPRIND ! 0E5 N74; ! V69; REGout, regsel1, PCin ! 0E6 N17; ! cnt, brprekid, madr0FA; !

Page 187: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

181

0E7 N18; ! cnt, brbezusl, madr000; ! ! INTD !

0E8 N56; ! V1B; clpswi ! 0E9 N18; ! cnt, brbezusl, madr000; !

! INTE ! 0EA N57; ! V1C; stpswi ! 0EB N18; ! cnt, brbezusl, madr000; !

! TRPD ! 0EC N58; ! V1D; clpswt ! 0ED N18; ! cnt, brbezusl, madr000; !

! TRPE ! 0EE N59; ! V1E; stpswt ! 0EF N18; ! cnt, brbezusl, madr000; !

! VARD ! 0F0 N5A; ! V1F; clpswp ! 0F1 N18; ! cnt, brbezusl, madr000; !

! VARE ! 0F2 N5B; ! V20; stpswp ! 0F3 N18; ! cnt, brbezusl, madr000; !

! EDGD ! 0F4 N75; ! V68; clpswe ! 0F5 N18; ! cnt, brbezusl, madr000; !

! EDGE ! 0F6 N76; ! V67; stpswe ! 0F7 N18; ! cnt, brbezusl, madr000; !

! NOP ! 0F8 N17; ! cnt, brprekid, madr0FA; ! 0F9 N18; ! cnt, brbezusl, madr000; !

! Opsluživanje prekida !

0FA N5C; ! cnt, brpradr, madr0FD; ! 0FB N5D; ! cnt, brprcod, madr0FD; ! 0FC N5E; ! cnt, brbezusl, madr102; ! 0FD N01; ! V09; PCout, Xin ! 0FE N51; ! V30; dec, ALUSHIFTout, PCin ! 0FF N01; ! V09; PCout, Xin ! 100 N5F; ! cnt, brnotldst32, madr102; ! 101 N51; ! V30; dec, ALUSHIFTout, PCin ! 102 N27; ! V0C; SPout, Xin ! 103 N28; ! V31; dec, ALUSHIFTout, SPin ! 104 N29; ! V0D; SPout, MARin ! 105 N52; ! V0B; PCout, MDRin ! 106 N1D; ! V57; write ! 107 N27; ! V0C; SPout, Xin ! 108 N28; ! V31; dec, ALUSHIFTout, SPin ! 109 N29; ! V0D; SPout, MARin ! 10A N60; ! V0E; PSWout, MDRin ! 10B N1D; ! V57; write ! 10C N61; ! cnt, brprins, madr126; ! 10D N62; ! cnt, brprcod, madr119; ! 10E N63; ! cnt, brpradr, madr116; ! 10F N64; ! cnt, brprinm, madr113; ! 110 N65; ! brprirr, madr11C; ! 111 N66; ! V5C; BRUNMSKout, Yin ! 112 N67; ! cnt, brbezusl, madr129; !

Page 188: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

182

113 N66; ! V5C; BRUNMSKout, Yin ! 114 N68; ! V63; clinm ! 115 N67; ! cnt, brbezusl, madr129; ! 116 N66; ! V5C; BRUNMSKout, Yin ! 117 N69; ! V65; clpradr ! 118 N67; ! cnt, brbezusl, madr129; ! 119 N66; ! V5C; BRUNMSKout, Yin ! 11A N6A; ! V64; clprcod ! 11B N67; ! cnt, brbezusl, madr129; ! 11C N6B; ! V22; ldpswl ! 11D N6C; ! cnt, brnotpswp, madr123; ! 11E N6D; ! V58; intack ! 11F N12; ! V54; MDRout, Xin ! 120 N6E; ! V47; zeroext, ALUSHIFTout, Yin ! 121 N6F; ! V62; clirr ! 122 N67; ! cnt, brbezusl, madr129; ! 123 N70; ! V5A; BRUMASKout, Yin ! 124 N6F; ! V62; clirr ! 125 N67; ! cnt, brbezusl, madr129; ! 126 N4D; ! V00; IRHout, Xin ! 127 N6E; ! V47; zeroext, ALUSHIFTout, Yin ! 128 N71; ! V66; clprins ! 129 N72; ! V5D; IVTPout, Xin ! 12A N0F; ! V29; add, ALUSHIFTout, MARin ! 12B N02; ! V56; read ! 12C N54; ! V4E; MDRout, PCin ! 12D N73; ! V21; clpswi, clpswt ! 12E N18; ! cnt, brbezusl, madr000; !

! HALT ! 12F N79; ! V6A; sthalt ! 130 N18; ! cnt, brbezusl, madr000; !

Tabela 64 Nanoprogram 00 V0A; ! PCout, MARin ! 01 V09; ! PCout, Xin ! 02 V56; ! read ! 03 V4C; ! MDRout, IRHin ! 04 V2D; ! inc, ALUSHIFTout, PCin ! 05 cnt, brnotldst32, madr00B; 06 V4D; ! MDRout, IRLin ! 07 V5F; ! ldprcod ! 08 cnt, brprcod, madr0FA; 09 cnt, brop; 0A cnt, bradrld; 0B V14; ! REGout, regsel2, MARin ! 0C cnt, brbezusl, madr015; 0D V10; ! REGout, regsel2, Xin ! 0E V03; ! IRLout, Yin ! 0F V29; ! add, ALUSHIFTout, MARin ! 10 V04; ! IRLout, MARin ! 11 V51; ! MDRout, REGin, regsel1 ! 12 V54; ! MDRout, Xin 13 V23; ! trans, ldpsw ! 14 cnt, brbezusl, madr01E; 15 V06; ! IRLout, REGin, regsel1!

Page 189: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

183

16 V02; ! IRLout, Xin ! 17 cnt, brprekid, madr0FA; 18 cnt, brbezusl, madr000; 19 cnt, bradrst; 1A cnt, brbezusl, madr028; 1B V15; ! REGout, regsel1, MDRin ! 1C V0F; ! REGout, regsel1, Xin ! 1D V57; ! write ! 1E cnt, brbezusl, madr02F; 1F V60; ! stpradr ! 20 cnt, brbezusl, madr0FA; 21 V25; ! trans, ALUSHIFTout, REGin, regsel2, ldpsw ! 22 V24; ! trans, ALUSHIFTout, REGin, regsel1, ldpsw ! 23 V17; ! PRREGout, Xin ! 24 V27; ! trans, ALUSHIFTout, PRREGin, ldpsw ! 25 V19; ! INTREGout, Xin ! 26 V28; ! trans, ALUSHIFTout, INTREGin, ldpsw ! 27 V0C; ! SPout, Xin ! 28 V31; ! dec, ALUSHIFTout, SPin ! 29 V0D; ! SPout, MARin ! 2A V2E; ! inc, ALUSHIFTout, SPin ! 2B V32; ! zero, ALUSHIFTout, REGin, regsel1, ldpsw ! 2C V11; ! REGout, regsel1, Yin ! 2D V35; ! add, ALUSHIFTout, REGin, regsel3, ldpsw ! 2E V36; ! sub, ALUSHIFTout, REGin, regsel3, ldpsw ! 2F V37; ! sub, ldpsw ! 30 V38; ! inc, ALUSHIFTout, REGin, regsel1, ldpsw ! 31 V39; ! dec, ALUSHIFTout, REGin, regsel1, ldpsw ! 32 V3A; ! and, ALUSHIFTout, REGin, regsel3, ldpsw ! 33 V3C; ! or, ALUSHIFTout, REGin, regsel3, ldpsw ! 34 V3D; ! xor, ALUSHIFTout, REGin, regsel3, ldpsw ! 35 V3B; ! and, ldpsw ! 36 V3E; ! not, ALUSHIFTout, REGin, regsel1, ldpsw ! 37 V3F; ! asr, ALUSHIFTout, REGin, regsel1, ldpsw ! 38 V40; ! lsr, ALUSHIFTout, REGin, regsel1, ldpsw ! 39 V41; ! ror, ALUSHIFTout, REGin, regsel1, ldpsw ! 3A V42; ! rorc, ALUSHIFTout, REGin, regsel1, ldpsw ! 3B V43; ! sl, ALUSHIFTout, REGin, regsel1, ldpsw ! 3C V44; ! rol, ALUSHIFTout, REGin, regsel1, ldpsw ! 3D V45; ! rolc, ALUSHIFTout, REGin, regsel1, ldpsw ! 3E cnt, breql, madr0C5; 3F cnt, brbezusl, madr0C9; 40 cnt, brneq, madr0C5; 41 cnt, brgrt, madr0C5; 42 cnt, brgre, madr0C5; 43 cnt, brlss, madr0C5; 44 cnt, brleq, madr0C5; 45 cnt, brgrtu, madr0C5; 46 cnt, brgreu, madr0C5; 47 cnt, brlssu, madr0C5; 48 cnt, brlequ, madr0C5; 49 cnt, brneg, madr0C5; 4A cnt, brnng, madr0C5; 4B cnt, brovf, madr0C5; 4C cnt, brnvf, madr0C5;

Page 190: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

184

4D V00; ! IRHout, Xin ! 4E V4A; ! signext, ALUSHIFTout, Yin ! 4F V2A; ! add, ALUSHIFTout, PCin ! 50 V61; ! stprins ! 51 V30; ! dec, ALUSHIFTout, PCin ! 52 V0B; ! PCout, MDRin ! 53 cnt, brbezusl, madr0C5; 54 V4E; ! MDRout, PCin ! 55 V50; ! MDRout, PSWin ! 56 V1B; ! clpswi ! 57 V1C; ! stpswi ! 58 V1D; ! clpswt ! 59 V1E; ! stpswt ! 5A V1F; ! clpswp ! 5B V20; ! stpswp ! 5C cnt, brpradr, madr0FD; 5D cnt, brprcod, madr0FD; 5E cnt, brbezusl, madr102; 5F cnt, brnotldst32, madr102; 60 V0E; ! PSWout, MDRin ! 61 cnt, brprins, madr126; 62 cnt, brprcod, madr119; 63 cnt, brpradr, madr116; 64 cnt, brprinm, madr113; 65 cnt, brprirr, madr11C; 66 V5C; ! BRUNMSKout, Yin ! 67 cnt, brbezusl, madr129; 68 V63; ! clinm ! 69 V65; ! clpradr ! 6A V64; ! clprcod ! 6B V22; ! ldpswl ! 6C cnt, brnotpswp, madr123; 6D V58; ! intack ! 6E V47; ! zeroext, ALUSHIFTout, Yin ! 6F V62; ! clirr ! 70 V5A; ! BRUMASKout, Yin ! 71 V66; ! clprins ! 72 V5D; ! IVTPout, Xin ! 73 V21; ! clpswi, clpswt ! 74 V69; ! REGout, regsel1, PCin ! 75 V68; ! clpswe ! 76 V67; ! stpswe ! 77 V12; ! REGout, regsel2, Yin ! 78 cnt, brbezusl, madr16; 79 V6A; ! sthalt !

Page 191: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

185

5 MEMORIJA U ovoj glavi se daje organizacija memorije MEM (slika 50). Memorija MEM se sastoji iz

operacione jedinice oper_jed i upravljačke jedinice uprav_jed.

MEM

uprav_jed

oper_jed

WRBUSRDBUS

FCBUS

DBUS15...0

ABUS15...0

BUS

14

44

24

44

3

Slika 50 Organizacija memorije MEM

Operaciona jedinica oper_jed je kompozicija kombinacionih i sekvencijalnih prekidačkih mreža koje služe za pamćenje binarnih reči, izvršavanje mikrooperacija i generisanje signala logičkih uslova. Upravljačka jedinica uprav_jed je kompozicija kombinacionih i sekvencijalnih prekidačkih mreža koje služe za generisanje upravljačkih signala prema algoritmu generisanja upravljačkih signala operacione jedinice i signala logičkih uslova.

Struktura i opis operacione i upravljačke jedinice se daju u daljem tekstu.

5.1 OPERACIONA JEDINICA Operaciona jedinica oper_jed sadrži memorijski RAM modul, registar PDR15...0,

kombinacione i sekvencijalne mreže za realizaciju ciklusa na magistrali u kojima je memorija sluga i kombinacione i sekvencijalne mreže za realizaciju vremena pristupa memorijskom RAM modulu (slika 51).

Memorijski RAM modul služi za pamćenje (216-212) 16-to bitnih reči. Na adresne linije A15...0 se vodi sadržaj sa adresnih linija ABUS15...0 magistrale BUS. Na ulazne linije podataka DIN15...0 se vodi sadržaj sa linija podataka DBUS15...0 magistrale. Sadržaj sa izlaznih linija podataka DOUT15...0 se vodi na ulaze registra podatka PDR15...0. Na linije WR i RD se vode signali wrs i rds koje generišu kombinacione i sekvencijalne mreže za realizaciju ciklusa na magistrali u kojima je memorija sluga. Sa memorijskim RAM modulom mogu de realizovati operacije upisa i čitanja. Sadržaj sa linija DIN15...0 se upisuje na adresi sa linija A15...0 pri aktivnoj vrednosti signala na liniji WR. Sadržaj memorijske lokacije sa adrese određene sadržajem sa linija A15...0 pojavljuje se na linijama DOUT15...0 pri aktivnoj vrednosti signala na liniji RD.

Page 192: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

186

OEfcbusuprav_jed

memorijskiRAMmodul

DOUT15...0 DIN15...0

DBUS15…0

CLK

BUS

uprav_jed

PDR15…0

MRLD

16

CLK

mr

OEdata

PDRin

ABUS15…0A15...0

wrs WR

16rds RD

16

16 PDR15...0

uprav_jed

ldTIMETIME7…0LD

DEC MRmr

decTIMECLK CLK

uprav_jed

7 0

7

uprav_jed

MM

MM

mikroprekidači7 0

LL

D

CLK

Q

QRd

rds

D

CLK

Q

QRd

wrs

mr

mr

uprav_jed

uprav_jedBUS WRBUS

ABUS15ABUS14ABUS13ABUS12

BUS

14

24

3

RDBUSBUS

BUS FCBUS

TIME7...0

access M

uprav_jed

TIME7

TIME0

fcbusuprav_jed

BUS16 16 16

16

CLK

CLK

select

Slika 51 Operaciona jedinica oper_jed

Page 193: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

187

Registar PDR15...0 je 16-to razredni registar u kome se pri operaciji čitanja iz memorijskog RAM modula prihvata očitani sadržaj. U registar PDR15...0 se pri aktivnoj vrednosti signala PDRin upisuje sadržaj sa izlaznih linija podataka DOUT15...0 memorijskog RAM modula. Sadržaj registra PDR15...0 se preko bafera sa tri stanja vodi na linije podataka DBUS15...0 magistrale i na njih propušta pri aktivnoj vrednosti signala OEdata.

Kombinacione i sekvencijalne mreže za realizaciju ciklusa na magistrali u kojima je memorija sluga formiraju signale rds i wrs upravljačke jedinice uprav_jed_bus i FCBUS magistrale. Signali rds i wrs se formiraju na osnovu signala ABUS15..0 sa adresnih linija magistrale i RDBUS i WRBUS sa upravljačkih linija magistrale. Signal FCBUS se formira na osnovu signala OEfcbus i fcbus upravljačke jedinice uprav_jed_bus.

Pri realizaciji ciklusa čitanja procesor ili kontroler sa direktnim pristupom memoriji kao gazda, najpre, izbacuje adresu na adresne linije magistrale ABUS15..0 i, potom, generisanjem aktivne vrednosti upravljačkog signala magistrale RDBUS, startuje u memoriji kao slugi čitanje adresirane memorijske lokacije. Memorija po završenom čitanju izbacuje sadržaj memorijske lokacije na linije podataka magistrale DBUS15..0 i formira aktivnu vrednost upravljačkog signala magistrale FCBUS. Posle toga procesor ili kontroler sa direktnim pristupom memoriji prihvata sadržaj sa linija podataka i postavlja signal RDBUS na neaktivnu vrednost. Na kraju memorija uklanja sadržaj sa linija podataka magistrale i postavljanja signal FCBUS na neaktivnu vrednost.

Pri realizaciji ciklusa upisa procesor ili kontroler sa direktnim pristupom memoriji kao gazda, najpre, izbacuje adresu i podatak na adresne linije i linije podataka magistrale ABUS15..0 i DBUS15..0, respektivno, i, potom, generisanjem aktivne vrednosti upravljačkog signala magistrale WRBUS, startuje u memoriji kao slugi upis u adresiranu memorijsku lokaciju. Memorija po završenom upisu formira aktivnu vrednost upravljačkog signala magistrale FCBUS. Posle toga procesor ili kontroler sa direktnim pristupom memoriji uklanja adresu i podatak sa adresnih linija i linija podataka magistrale i postavlja signal WRBUS na neaktivnu vrednost. Na kraju kontroler postavlja signal FCBUS na neaktivnu vrednost.

Signali rds i wrs su upravljački signali magistrale RDBUS i WRBUS sinhronizovani na signal takta memorije, respektivno. U flip-flop rds se na signal takta memorije upisuje vrednost koja odgovara vrednosti signala RDBUS ukoliko je aktivna vrednost signala select. U flip-flop wrs se na signal takta memorije upisuje vrednost koja odgovara vrednosti signala WRBUS ukoliko je aktivna vrednost signala select. Signal rds je kao i signal RDBUS aktivan za vreme operacije čitanja neke memorijske lokacije, dok je signal wrs kao i signal WRBUS aktivan za vreme operacije upisa u neku memorijsku lokaciju.

Signal select ima aktivnu vrednost ukoliko se na adresnim linijama magistrale ABUS15…0 nalazi adresa iz opsega adresa dodeljenih memoriji. Kako su memoriji dodeljene adrese u opsegu 0000h do EFFFh, a registrima po kontrolerima periferija adrese u opsegu F000h do FFFF, to signal select ima aktivnu vrednost ukoliko na adresnim linijama ABUS15…12 magistrale nisu sve jedinice. Signal select ima neaktivnu vrednost ukoliko se na adresnim linijama ABUS15…0 magistrale nalazi adresa iz opsega adresa dodeljenih registrima po kontrolerima periferija, pa se u flip-flopove rds i wrs upisuju neaktivne vrednosti bez obzira na vrednosti signala RDBUS i WRBUS, respektivno.

Kombinaciona mreža za generisanje upravljačkog signala FCBUS magistrale generiše ovaj signal na osnovu signala OEfcbus i fcbus. Pri neaktivnoj vrednosti signala OEfcbus na liniji FCBUS je stanje visoke impedance. Pri aktivnoj vrednosti signala OEfcbus na liniji FCBUS je neaktivna ili aktivna vrednost koja odgovara vrednosti signala fcbus. Signal fcbus ima

Page 194: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

188

neaktivnu ili aktivnu vrednost u zavisnosti od toga da li je u memorijskom RAM modulu ciklus čitanja ili upisa u toku ili je završen, respektivno.

Kombinacina i sekvencijalna mreža za realizaciju vremena pristupa memorijskom RAM modulu formira signal access upravljačke jedinice uprav_jed. Signal access svojom aktivnom vrednošću određuje da je isteklo vreme pristupa. Vreme pristupa se izražava u periodama signal takta memorije i zadaje se postavljanjem mikropekidača. Po startovanju operacije čitanja ili upisa u memorijskom RAM modulu generiše se aktivna vrednost signala ldTIME kojim se u brojač TIME7...0 kao početna vrednost upisuje sadržaj mikroprekidača. U opštem slučaju taj sadržaj je različit od nule, zbog čega po upisu sadržaja mikroprekidaća u brojač TIME7...0 i signal access postaje neaktivan. Neaktivna vrednost signala access je indikacija da vreme pristupa memorijskom RAM modulu nije isteklo i da startovana operacija čitanja ili upisa u memorijskom RAM modulu nije završena. Aktivnom vrednošću signala decTIME se dekrementira sadržaj brojača TIME7...0. Signal decTIME je aktivan i dekrementiranje brojača TIME7...0 se nastavlja sve dok sadržaj brojača TIME7...0 ne postane nula. Kada sadržaj brojača TIME7...0 postane nula signal access postaje aktivan. Aktivna vrednost signala access je indikacija da je vreme pristupa memorijskom RAM modulu nije isteklo i da je startovana operacija čitanja ili upisa u memorijskom RAM modulu završena.

5.2 UPRAVLJAČKA JEDINICA U ovom odeljku se daju dijagram toka operacija, algoritam generisanja upravljačkih

signala, sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije i struktura upravljačke jedinice.

5.2.1 Dijagram toka operacija

Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 52). U operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim blokovima se nalaze opisi logičkih uslova koji definišu grananja algoritma.

U početnom koraku dijagrama toka operacija vrši se provera da li je procesor ili neki od kontrolera sa direktnim pristupom memoriji startovao u memoriji ciklus upisa ili ciklus čitanja, pri čemu se procesor ili kontroler sa direktnim pristupom memoriji ponaša kao gazda, a memorija kao sluga. Ako nije startovan ni ciklus upisa ni ciklus čitanja ostaje se u početnom koraku. Ako je startovan ili ciklus upisa ili ciklus čitanja prelazi se na sledeći korak.

Ako je startovan ciklus čitanja vrši se inicijalizacija simuliranog vremena pristupa memoriji. Potom se ulazi u petlju u kojoj se vrši čitanje iz memorije u trajanju simuliranog vremena pristupa memoriji. Po isteku vremena pristupa memoriji uzima se da je čitanje završeno, pa se izlazi iz petlje. Potom se ulazi u petlju u kojoj se, saglasno protokolu za ciklus čitanja, gazdi šalje očitani sadržaj i indikacija da je memorija završila čitanje i čeka da gazda pošalje indikaciju da je prihvatio očitani sadržaj i završio ciklus čitanja. Po dobijanju date indikacije izlazi se iz petlje i vraća na početni korak.

Ako je startovan ciklus upisa vrši se inicijalizacija simuliranog vremena pristupa memoriji. Potom se ulazi u petlju u kojoj se vrši upis u memoriju u trajanju simuliranog vremena pristupa memoriji. Po isteku vremena pristupa memoriji uzima se da je upis završen, pa se izlazi iz petlje. Potom se ulazi u petlju u kojoj se, saglasno protokolu za ciklus upisa, gazdi šalje indikacija da je memorija završila upis i čeka da gazda pošalje indikaciju da je završio ciklus upisa. Po dobijanju date indikacije izlazi se iz petlje i vraća na početni korak.

Page 195: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

189

Da li je gazda startovaociklus čitanja ?

Da li je gazda startovaociklus upisa ?

0

1

1

Čitanje iz memorije

Inicijalizacija vremenapristupa memorije

0

Upis u memoriju

Inicijalizacija vremenapristupa memorije

Da li je proteklo vremepristupa memoriji ?

0

Slanje očitanog sadržaja gazdiIndikacija gazdi da je čitanje iz

memorije završeno

1

Da li je gazda završiociklus čitanja ?

0

1

1

Da li je proteklo vremepristupa memoriji ?

0

Indikacija gazdi da je upis umemoriju završen

Da li je gazda završiociklus upisa ?

0

1

Slika 52 Dijagram toka operacija

5.2.2 Algoritam generisanja upravljačkih signala

Algoritam generisanja upravljačkih signala je formiran na osnovu dijagrama toka operacija (slika 52) i dat u obliku dijagrama toka upravljačkih signala (slika 53 ), sekvence upravljačkih signala po koracima (tabela 65) i vremenskih oblika signala (slike 54 i 55).

Dijagram toka upravljačkih signala je predstavljen operacionim i uslovnim blokovima (slika 53 ). U operacionim blokovima se nalaze upravljački signali i uslovi pod kojima se oni generišu. U uslovnim blokovima se nalaze signali logičkih uslova.

if (rds+wrs) then ldTIMEstep0

1rds+wrs 0

step1

OEfcbus,if access then PDRin,if access then decTIME

1access 0

OEfcbus,if (rds+wrs) then fcbus,if rds then OEdata

0rds+wrs 1

step2

Slika 53 Dijagram toka upravljačkih signala

U sekvenci upravljačkih signala po koracima se koriste iskazi za signale i skokove. Iskazi za signale su oblika

Page 196: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

190

signali i if uslov then signali.

Prvi iskaz sadrži spisak upravljačkih signala blokova operacione jedinice oper_jed i određuje koji se signali bezuslovno generišu. Drugi iskaz sadrži uslov i spisak upravljačkih signala blokova operacione jedinice oper_jed i određuje koji signali i pod kojim uslovima treba da budu generisani. Iskazi za skokove su oblika

br (if uslov then stepA). Ovaj iskaz sadrži uslov i korak i određuje na koji korak i pod kojim uslovima treba preći. Objašnjenja vezana za generisanje upravljačkih signala su data zajednički za dijagram toka

upravljačkih signala i sekvencu upravljačkih signala po koracima i to u okviru sekvence upravljačkih signala po koracima.

Tabela 65 Sekvenca upravljačkih signala po koracima ! U koraku step0 se ostaje i ne generiše se aktivna vrednost ni jednog od upravljačkih signala sve dok su signali rds i wrs neaktivni. Signal rds postaje aktivan kada processor CPU ili ulazno/izlazni uređaj U/I sa kontrolerom za direktan pristup memoriji prebaci adresne linije ABUS15..0 iz stanja visoke impedanse na vrednost adrese memorijske lokacije i započne ciklus čitanja. Signal wrs postaje aktivan kada processor ili ulazno/izlazni uređaj sa kontrolerom za direktan pristup memoriji prebaci adresne linije ABUS15..0 i linije podataka DBUS15..0 iz stanja visoke impedanse na vrednost adrese memorijske lokacije i sadržaja za upis, respektivno, i započne ciklus upisa. Pri aktivnoj vrednosti signala rds ili wrs generiše se signal ldTIME i prelazi na korak step1. Signalom ldTIME se sadržaj mikroprekidača, koji određuje vreme pristupa memorijskog RAM modula, upisuje u registar TIME7…0. !

step0 if (rds+wrs) then ldTIME, br (if (rds+wrs) then step1);

! U korak step1 se dolazi iz koraka step0, bez obzira na to da li je startovan ciklus čitanja ili upisa. U ovom koraku se generiše signal OEfcbus. Signalom OEfcbus se obezbeđuje da upravljačka linija FCBUS magistrale BUS pređe iz stanja visoke impedanse na neaktivnu vrednost signala fcbus upravljačke jedinice uprav_jed. U ovom koraku se ostaje sve vreme dok je signal access neaktivan. Dok je signal access neaktivan, generiše se aktivna vrednost signala decTIME i dekrementira sadržaj brojača TIME7…0. Kada sadržaj brojača TIME7…0 postane nula, signal access postane aktivan. Pri aktivnoj vrednosti signala access i startovanom ciklusu čitanja, na šta ukazuje aktivna vrednost signala rds, generiše se signal PDRin. Ovim signalom se očitani sadržaj sa izlaznih linija podataka DOUT15…0 memorijskog RAM modula upisuje u prihvatni registar PDR15…0. Pri aktivnoj vrednosti signala access se, bez obzira na to da li je startovan ciklus čitanja ili upisa, prelazi u korak step2. !

step1 OEfcbus, if (access*rds) then PDRin, if access then decTIME, br (if access then step2);

! U korak step2 se dolazi iz koraka step1, bez obzira na to da li je startovan ciklus čitanja ili upisa. U ovom koraku se generiše signal OEfcbus, čime se obezbeđuje da se i dalje preko bafera sa tri stanja na upravljačku liniju FCBUS magistrale prosleđuje vrednost signala fcbus. U ovom koraku se ostaje sve vreme dok je jedan od signala rds ili wrs aktivan. Dok je jedan od signala rds ili wrs aktivan, generiše se aktivna vrednost signala fcbus. Time je i na upravljačkoj liniji FCBUS magistrale aktivna vrednost. Pri aktivnoj vrednosti signala rds generiše se aktivna vrednost signala OEdata, čime se obezbeđuje da linije podataka DBUS15…0 magistrale pređu iz stanja visoke impedanse na vrednost sadržaja registra PDR15..0. Kada signal rds postane neaktivan i signal OEdata postane neaktivan, pa linije DBUS15…0 prelaze u stanje visoke impedanse. Kada oba signala rds i wrs postanu neaktivni i signali fcbus postane neaktivan. Na liniji FCBUS se pojavljuje neaktivna vrednost, jer je signal OEfcbus još uvek aktivan. Pri neaktivnim vrednostima oba signala rds i wrs prelazi se u korak step0. Time i signal OEfcbus postaje neaktivan, čime se obezbeđuje da linija FCBUS pređe sa neaktivne vrednosti na stanje visoke impedanse. !

step2 OEfcbus, if (rds+wrs) then fcbus,

Page 197: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

191

if rds then OEdata, br (if rds+wrs then step0);

Vremenski oblici signala su dati posebno za ciklus čitanja iz memorije (slika 54) i za ciklus upisa u memoriju (slika 55). U koraku step0 se ostaje sve dok su neaktivne vrednosti signala rds i wrs.

CLK

rdsldTIME

step0step1step0

RDBUSL

step2

L

accessdecTIMEOEfcbus

fcbusFCBUSPDRin

OEdataDBUS

LL

LL

LLLLL

L

LLLLL

L

L

LLL

L

LLLLL

LLL

L

LLL

Slika 54 Vremenski oblici signala za ciklus čitanja iz memorije

CLK

wrsldTIME

step0step1step0

WRBUS

step2

L

accessdecTIMEOEfcbus

fcbusFCBUS

LLL

LLL

LLLLL

L

LLL

L

LLLLL

LLL

L

Slika 55 Vremenski oblici signala za ciklus upisa

Ciklus čitanja započinje processor ili ulazno/izlazni uređaj sa kontrolerom za direktan pristup memoriji postavljanjem upravljačkog signala RDBUS magistrale na aktivnu vrednost. Ovaj signal sinhronizovan na signal takta memorije daje aktivnu vrednost signal rds. Aktivna vrednost signala rds daje aktivnu vrednost signala ldTIME. Na osnovu aktivne vrednosti signala rds na signal takta se prelazi iz koraka step0 u korak step1. Na isti signal takta aktivna vrednosti signala ldTIME omogućuju upis sadržaja mikrorekidača vremena pristupa u brojač TIME7…0. Pošto je uzeto da je vrednost upisana u brojač TIME7…0 različita od nule, signal access postaje neaktivan. Neaktivna vrednost signala access daje aktivnu vrednost signal decTIME. Sve dok je neaktivna vrednost signala access ostaje se u koraku step1. U koraku step1 signal OEfcbus je neaktivan, pa se na liniji FCBUS umesto stanja visoke impedanse pojavljuje neaktivna vrednost signal fcbus. Kada zbog neaktivne vrednosti signala access i aktivne vrednosti signala decTIME sadržaj brojača TIME7…0 dekrementitanjem dođe do vrednosti nula, signal access postaje aktivan, a signal decTIME neaktivan. Aktivna vrednost signala access daje aktivnu vrednost signala PDRin i omogućuje prelazak u korak step2. Na isti signal takta aktivna vrednosti signala PDRin omogućuju upis očitanog sadržaja sa izlaznih linija podataka DOUT15…0 memorijskog RAM modula u registar PDR15…0. U koraku

Page 198: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

192

step2 se generiše aktivna vrednost signala fcbus, koja daje i aktivnu vrednost signala FCBUS. U koraku step2 se generiše i aktivna vrednost signala OEdata, koja obezbeđuje puštanje sadržaja registra PDR15…0 na linije DBUS15…0. U koraku step2 se ostaje sve dok je aktivna vrednost signala rds. Pošto signal FCBUS postane neaktivan, na prvi signal takta i signal rds postane neaktivan. Tada i signali fcbus i OEdata postanu neaktivni. Neaktivna vrednost signala fcbus daje i neaktivnu vrednost signala FCBUS. Neaktivna vrednost signala OEdata daje stanje visoke impedanse na linijama DBUS15…0. Pri neaktivnoj vrednosti signala rds prelazi se u korak step0. Tada i signal OEfcbus postaje neaktivan, pa linija FCBUS prelazi u stanje visoke impedanse.

Ciklus upisa započinje processor ili ulazno/izlazni uređaj sa kontrolerom za direktan pristup memoriji postavljanjem upravljačkog signala magistrale WRBUS na aktivnu vrednost. Ovaj signal sinhronizovan na signal takta memorije daje aktivnu vrednost signal wrs. Aktivna vrednost signala wrs daje aktivnu vrednost signala ldTIME. Na osnovu aktivne vrednosti signala wrs na signal takta se prelazi iz koraka step0 u korak step1. Na isti signal takta aktivna vrednosti signala ldTIME omogućuju upis sadržaja mikrorekidača vremena pristupa u brojač TIME7…0. Pošto je uzeto da je vrednost upisana u brojač TIME7…0 različita od nule, signal access postaje neaktivan. Neaktivna vrednost signala access daje aktivnu vrednost signal decTIME. Sve dok je neaktivna vrednost signala access ostaje se u koraku step1. U koraku step1 signal OEfcbus je neaktivan, pa se na liniji FCBUS umesto stanja visoke impedanse pojavljuje neaktivna vrednost signal fcbus. Kada zbog neaktivne vrednostu signala access i aktivne vrednosti signala decTIME sadržaj brojača TIME7…0 dekrementitanjem dođe do vrednosti nula, signal access postaje aktivan, a signal decTIME neaktivan. Aktivna vrednost signala access omogućuje prelazak u korak step2. U koraku step2 se generiše aktivna vrednost signala fcbus, koja daje i aktivnu vrednost signala FCBUS. U koraku step2 se ostaje sve dok je aktivna vrednost signala wrs. Pošto signal WRBUS postane neaktivan, na prvi signal takta i signal wrs postane neaktivan. Tada i signal fcbus postane neaktivan, što daje i neaktivnu vrednost signala FCBUS. Pri neaktivnoj vrednosti signal wrs prelazi se u korak step0. Tada i signal OEfcbus postaje neaktivan, pa linija FCBUS prelazi u stanje visoke impedanse.

5.2.3 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije

Upravljačka jedinica ožičene realizacije generiše dve vrste upravljačkih signala i to: • upravljačke signale operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed.

Upravljački signali operacione jedinice oper_jed se koriste u operacionoj jedinici oper_jed radi izvršavanja mikrooperacija. Upravljački signali upravljačke jedinice uprav_jed se koriste u upravljačkoj jedinici uprav_jed radi inkrementiranja brojača koraka ili upisa nove vrednosti u brojač koraka.

Upravljački signali operacione jedinice oper_jed se mogu generisati na osnovu sekvence upravljačkih signala po koracima (tabela 65). Za svaki upravljački signal operacione jedinice oper_jed treba u sekvenci upravljačkih signala po koracima tražiti korake sa iskazima za signale u kojima se pojavljuje dati signal. Za svaki takav korak treba uzeti signal dekodovanog stanja brojača koraka, ukoliko se signal bezuslovno generiše, i logički proizvod signala dekodovanog stanja brojača koraka i signala uslova, ukoliko se signal uslovno generiše, i formirati njihovu uniju.

Upravljački signali upravljačke jedinice uprav_jed se ne mogu formirati na osnovu sekvence upravljačkih signala po koracima (tabela 65), jer se u njoj ne pojavljuju upravljački signali upravljačke jedinice uprav_jed već samo iskazi za skok. Zbog toga je potrebno, na

Page 199: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

193

osnovu sekvence upravljačkih signala po koracima, najpre, formirati sekvencu upravljačkih signala za upravljačku jedinicu ožičene realizacije. Prilikom njenog formiranja primenjuje se različiti postupak za upravljačke signale operacione jedinice oper_jed i za upravljačke signale upravljačke jedinice uprav_jed. Za upravljačke signale operacione jedinice oper_jed treba staviti iskaze za signale onako kako se javljaju u sekvenci upravljačkih signala po koracima. Za upravljačke signale upravljačke jedinice uprav_jed treba u sekvenci upravljačkih signala po koracima tražiti iskaze

br (if uslov then stepA) i umesto njih staviti

if uslov then (ldCNT, bv1,bv0) ili if uslov then incCNT.

Iskaz if uslov then (ldCNT, bv1,bv0)

se stavlja u onim koracima u kojima stepA nije prvi sledeći korak. U svakom takvom iskazu pored signala ldCNT, koji je obavezan, pojavljuje se i kombinacija aktivnih i neaktivnih vrednosti signala bv1 i bv0 koja odgovara binarnoj vrednosti A koraka stepA na koji treba preći ukoliko je signal uslov aktivan. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 66. Iskaz

if uslov then incCNT se stavlja u onim koracima u kojima je stepA prvi sledeći korak na koji treba preći ukoliko je signal uslov aktivan. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 67.

Tabela 66 Signali ldCNT, bv1 i bv0

stepA br (if uslov then stepA) if uslov then (ldCNT, bv1,bv0) step2 br (if rds+wrs then step0) if rds+wrs then ldCNT

Tabela 67 Signal incCNT

stepA br (if uslov then stepA) if uslov then incCNT step0 br (if (rds+wrs) then step1) if (rds+wrs) then incCNT step1 br (if access then step2) if access then incCNT

Po opisanom postupku je, na osnovu sekvence upravljačkih signala po koracima (tabela 65), formirana sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 68). Ona ima sledeću formu:

• na levoj strani nalaze se dekodovani signali stanja brojača koraka, • u sredini je iskaz tipa

signali, if uslov then signali, if uslov then (ldCNT, bv1,bv0) ili if uslov then incCNT,

• dok komentar, u koracima gde se to radi lakšeg razumevanja smatra korisnim, uvek počinje uskličnikom (!) i proteže se do sledećeg uskličnika (!).

Iz izloženog se vidi da su upravljački signali za upravljačku jedinicu ožičene realizacije ldCNT, bv1, bv0 i incCNT. Oni se formiraju na osnovu dobijene sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije na identičan način kao i upravljački signali kontrolera i operacione jedinice oper_jed.

Page 200: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

194

Tabela 68 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije ! U koraku T0 se ostaje sve dok su i signal rds i signal wrs neaktivni. Ukoliko je aktivna vrednost signala rds ili signala wrs prelazi se u korak T1. Pri aktivnoj vrednosti jednog od ova dva signala generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 1. !

T0 if (rds+wrs) then ldTIME, if (rds+wrs) then incCNT;

! U koraku T1 se ostaje sve dok je signal access neaktivan. Ukoliko je aktivna vrednost signala access prelazi se u korak T2. Pri aktivnoj vrednosti signala access generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 2. !

T1 OEfcbus, if (access*rds) then PDRin, if access then decTIME, if access then incCNT;

! U koraku T2 se ostaje sve dok su signal rds ili signal wrs aktivni. Ukoliko su neaktivne vrednosti i signala rds i signala wrs prelazi se u korak T0. Pri neaktivnim vrednostima i signala rds i signala wrs generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. !

T2 OEfcbus, if (rds+wrs) then fcbus, if rds then OEdata, if rds+wrs then ldCNT;

5.2.4 Struktura upravljačke jedinice

Struktura upravljačke jedinice ožičene realizacije je prikazana na slici 56. Upravljačka jedinica se sastoji od sledećih blokova:

• blok brojač koraka, • blok dekoder koraka i • blok generisanje upravljačkih signala.

Blok brojač koraka sadrži brojač CNT1...0. Brojač CNT1...0 svojom trenutnom vrednošću obezbeđuje aktivne vrednosti određenih upravljačkih signala. Brojač Brojač CNT1...0 može da radi u sledećim režimima:

• režim inkrementiranja, • režim skoka i • režim čekanja.

U režimu inkrementiranja pri pojavi signala takta vrši se uvećavanje sadržaja brojača CNT1...0 za jedan čime se obezbeđuje sekvencijalno generisanje upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 68). Ovaj režim rada se realizuje neaktivnom vrednošću signala ldCNT i aktivnom vrednošću signala incCNT (tabela 67).

U režimu skoka pri pojavi signala takta vrši se upis nove vrednosti u brojač CNT1...0 čime se obezbeđuje odstupanje od sekvencijalnog generisanja upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 68). Ovaj režim rada se realizuje aktivnom vrednošću signala ldCNT, neaktivnom vrednošću signala incCNT i kombinacijom aktivnih i neaktivnih vrednosti signala bv1 i bv0 koja odgovara vrednosti koju treba upisati u brojač CNT1...0 (tabela 66).

U režimu čekanja pri pojavi signala takta ne menja se vrednost brojača CNT1...0. Ovaj režim rada se obezbeđuje neaktivnim vrednostima signala ldCNT i incCNT.

Page 201: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

195

CNT1...0 INC

LDCLK

1 0

D C

T3 T0

CNT0

1 0mr

MRCLK

...

...

0

3 0

... ...

bv0

ldCNTincCNT

bv1

CNT1

1

generisanjeupravljačkih

signalaoperacione

jedinice

ldC

NT

generisanjeupravljačkih

signalaupravljačke

jedinice

incC

NT

bv1

bv0

brojačkoraka

dekoderkoraka

generisanjeupravljačkih signala

oper

_jed

14

42

44

3

wrsaccess

rds

ldTI

ME

decT

IME

fcbu

sO

Efcb

usPD

Rin

OEd

ata

Slika 56 Sruktura upravljačke jedinice

Blok dekoder koraka sadrži dekoder DC. Na ulaze dekodera DC vode se izlazi brojača CNT1...0. Dekodovana stanja brojača CNT1...0 pojavljuju se kao signali T0 do T3 na izlazima dekodera DC. Svakom koraku iz sekvence upravljačkih signala po koracima (tabela 65) dodeljeno je po jedno stanje brojača CNT1...0 određeno vrednošću signala T0 do T3 i to koraku step0 signal T0, koraku step1 signal T1, itd.

Blok generisanje upravljačkih signala sadrži kombinacione mreže koje pomoću signala T0 do T3, koji dolaze sa bloka dekoder koraka, signala logičkih uslova rds, wrs i access, koji dolaze iz operacione jedinice oper_jed, i saglasno sekvenci upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 68) generišu dve grupe upravljačkih signala i to:

• upravljačke signale operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed.

Upravljački signali operacione jedinice oper_jed se generišu na sledeći način: • ldTIME = (rds + wrs)*T0 • OEfcbus = T1 + T2 • PDRin = access*rds*T1 • decTIME = access*T1

Page 202: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

196

• fcbus = (rds + wrs)*T2 • OEdata = rds*T2

Upravljački signali upravljačke jedinice uprav_jed se generiše na sledeći način: • ldCNT = rds+wrs*T2 • bv0 = 0 • bv1 = 0 • incCNT = (rds + wrs)*T0 + access*T1

Pri njihovom generisanju koriste se sledeći signali logičkih uslova koji dolaze iz operacione jedinice oper_jed i to:

• rds — operaciona jedinica oper_jed, • wrs — operaciona jedinica oper_jed i • access — operaciona jedinica oper_jed.

Page 203: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

197

6 ULAZNO/IZLAZNI UREĐAJI Ulazno/izlazni uređaji U/I se sastoje iz periferije PER i kontrolera periferije KP. Postoje

kontroleri periferija bez i sa direktnim pristupom memoriji. U ovoj glavi se daje organizacija periferije, kontrolera bez direktnog pristupa memoriji i kontrolera sa direktnim pristupom memoriji.

6.1 PERIFERIJA Periferija PER (slika 57) se sastoji iz operacione jedinice oper_jed i upravljačke jedinice

uprav_jed.

uprav_jed

PER

KPPI

N15

...0

reqr

dps

top

POU

T 15...

0

reqw

r_do

ne

oper_jed

16

16re

qrd_

done

reqw

r

Slika 57 Organizacija periferije PER

Operaciona jedinica oper_jed je kompozicija kombinacionih i sekvencijalnih prekidačkih mreža koje služe za pamćenje binarnih reči, izvršavanje mikrooperacija i generisanje signala logičkih uslova. Upravljačka jedinica uprav_jed je kompozicija kombinacionih i sekvencijalnih prekidačkih mreža koje služe za generisanje upravljačkih signala prema algoritmu generisanja upravljačkih signala operacione jedinice i signala logičkih uslova.

Struktura i opis operacione i upravljačke jedinice se daju u daljem tekstu.

6.1.1 Operaciona jedinica

Operaciona jedinica oper_jed sadrži brojač ENTRY, dekoder DC, kombinacione mreže za generisanje signala wrREG(0) do wrREG(15) i rdREG(0) do rdREG(15), registre REG(0) do REG(15), registar PRP, flip-flop RQ, mikroprekidače i brojač TIME (slika 58).

Brojač ENTRY3...0 je 4-razredni brojač registara REG(0) do REG(15) koji služi za njihovo adresiranje prilikom upisa u periferiju ili čitanja iz periferije. U brojač ENTRY3...0 se pri aktivnoj vrednosti signala pstop sa paralelnih ulaza podataka upisuje vrednost nula. Ovo se koristi da se pri zaustavljanju periferije PER od strane kontrolera KP sadržaj brojač ENTRY3...0 dovede na početno stanje. Sadržaj brojača ENTRY3...0 se pri aktivnoj vrednosti signala incENTRY inkrementira. Ovo se koristi da se prilikom svakog upisa ili čitanja inkrementira sadržaj brojača ENTRY3...0.

Page 204: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

198

pstopENTRY3…0LD

0

INC MRmr

incENTRY

KP

CLK CLK

uprav_jed0 0 0

3 2 1 0

3 2 1 0

DC3 1 02

MMM M

V(15) V(i) V(0)

15 i 0

16

CLKREG(0)15…0LD

16

16 REG(0)15...0

CLK

16

CLKREG(i)15…0LD

16

16 REG(i)15...0

CLK

ldRPRPRP15…0LD

16

16 PRP15...0

CLK MRmr

CLK

uprav_jed

PIN15...0KP

16

CLKREG(15)15…0LD

16

16 REG(15)15...0

CLK

POUT15...0KP

wrREG(15)REGinV(15)

uprav_jed

REGinV(0)

V(0)

uprav_jed

uprav_jedREGout

REGinV(i)

V(i)

uprav_jed

uprav_jedREGout

V(15)

uprav_jedREGout

MRmr

MRmr

MRmr

rdREG(15)

wrREG(i)

rdREG(i)

wrREG(0)

rdREG(0)

M

M

M

M

16

16

ldTIMETIME7…0LD

DEC MRmr

decTIMECLK CLK

uprav_jed

7 0

7

uprav_jed

M

accessuprav_jed

MM

M

mikroprekidači7 0

LL

MS

R

CLK

Q

QRd

CLK

mr

RQuprav_jed

stRQ

clRQ

pstop

uprav_jed

uprav_jed

KP

Slika 58 Operaciona jedinica oper_jed

Page 205: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

199

Dekoder DC na osnovu sadržaja brojača ENTRY3...0 daje aktivnu vrednost jednog od signala V(0) do V(15). Signali V(0) do V(15) sa signalom REGin formiraju signale wrREG(0) do wrREG(15), koji se koriste za selekciju jednog od registara prilikom upisa. Signali V(0) do V(15) sa signalom REGin formiraju signale rdREG(0) do rdREG(15), koji se koriste za selekciju jednog od registara prilikom čitanja.

Registri REG(0)15...0 do REG(15)15...0 služe za simulaciji periferije kapaciteta 24 16-bitnih reči. Sadržaj POUT15...0 sa izlaznih linija podataka kontrolera periferije KP se vodi na paralelne ulaze svih 16 registara. Ovaj sadržaj se upisuje u jedan od registara REG(0)15...0 do REG(15)15...0 jedino ukoliko jedan od signala wrREG(0) do wrREG(15) ima aktivnu vrednost. Pri neaktivnoj vrednosti signala REGin svi signali wrREG(0) do wrREG(15) su neaktivni i tada se sadržaj POUT15...0 ne upisuje ni u jedan od registara REG(0)15...0 do REG(15)15...0. Pri aktivnoj vrednosti signala REGin i saglasno tome koji od signala V(0) do V(15) sa izlaza dekodera DC ima aktivnu vrednost i jedan od signala wrREG(0) do wrREG(15) dobija aktivnu vrednost, pa se sadržaj POUT15...0 upisuje u jedan od registara REG(0)15...0 do REG(15)15...0. Sadržaj sa izlaza registara REG(0)15...0 do REG(15)15...0 se preko bafera sa tri stanja vodi na paralelne ulaze prihvatnog registra podatka PRP15...0. Sadržaj jednog od registara REG(0)15...0 do REG(15)15...0 se pojavljuje na ulazima registra PRP15...0 jedino ukoliko jedan od signala rdREG(0) do rdREG(15) ima aktivnu vrednost. Pri neaktivnoj vrednosti signala REGout svi signali rdREG(0) do rdREG(15) su neaktivni, pa se linije na ulazima registra PRP15...0 nalaze u stanju visoke impedanse. Pri aktivnoj vrednosti signala REGout i saglasno tome koji od signala V(0) do V(15) sa izlaza dekodera DC ima aktivnu vrednost i jedan od signala rdREG(0) do rdREG(15) dobija aktivnu vrednost, pa se sadržaj jednog od registara REG(0)15...0 do REG(15)15...0 pojavljuje na ulazima registra PRP15...0.

Registar PRP15…0 je 16-razredni prihvatni registar podatka očitanog iz jednog od registara REG(0)15...0 do REG(15)15...0. Sadržaj sa paralelnih ulaza se upisuje u registar PRP15…0 pri aktivnoj vrednosti signala ldPRP i šalje u kontroler periferije KP po linijama PIN15…0.

Flip-flop RQ svojom aktivnom vrednošću određuje da je u toku ili upis ili čitanje. Flip-flop RQ se postavlja na aktivnu vrednost signalom stRQ, koji se generiše ukoliko je signalom reqwr ili reqrd kontrolera periferije startovan upis ili čitanje, respektivno. Upis aktivne vrednosti u flip-flop RQ se sprečava aktivnom vrednošću signala pstop kojim kontroler periferije zaustavlja periferiju. Flip-flop RQ ima aktivnu vrednost sve vreme trajanja upisa ili čitanja. Po završetku upisa ili čitanja signalom clRQ flip-flop RQ se postavlja na neaktivnu vrednost. Flip-flop RQ se postavlja na neaktivnu vrednost i signalom pstop kojim kontroler periferije zaustavlja periferiju.

Brojač TIME7…0 je 8-razredni brojač koji se koristi za simulaciju vremena pristupa periferiji. Vreme pristupa periferiji se bira postavljanjem mikroprekidača. Na početku svakog upisa u periferuju ili čitanja iz periferije signalom ldTIME se u brojač TIME7…0 upisuje sadržaj mikroprekidača. U toku upisa ili čitanja signalom decTIME se dekrementira sadržaj brojača TIME7…0 sve dok ne postane nula. Sadržaj nula brojača TIME7…0 daje aktivnu vrednost signala access, koja se koristi kao kriterijum da je isteklo vreme pristupa periferiji i da je upis ili čitanje završeno.

6.1.2 Upravljačka jedinica

U ovom odeljku se daju dijagram toka operacija, algoritam generisanja upravljačkih signala, sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije i struktura upravljačke jedinice uprav_jed.

Page 206: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

200

6.1.2.1 Dijagram toka operacija

Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 59). U operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim blokovima se nalaze opisi logičkih uslova koji definišu grananja algoritma.

Da li je stigao zahtev odkontrolera za čitanje ?

Da li je stigao zahtev odkontrolera za upis ?

0

1

1

0

Startovanje periferije

Čitanje iz periferije

Inicijalizacija vremenapristupa periferije

Da li je čitanjeobustavljeno ?

1

Da li je proteklo vremepristupa periferiji ?

0

Pozicioniranje na sledećiregistar periferije

Zaustavljanje periferije

Indikacija kontroleru da ječitanje iz periferije završeno

1

Startovanje periferije

Upis u periferiju

Inicijalizacija vremenapristupa periferije

Da li je upisobustavljen ?

1

Da li je proteklo vremepristupa periferiji ?

0

0 0

Pozicioniranje na sledećiregistar periferije

Zaustavljanje periferije

Indikacija kontroleru da jeupis u periferiju završen

1

Slika 59 Dijagram toka operacija

U početnom koraku dijagrama toka operacija vrši se provera da li je od kontrolera stigao zahtev za operaciju upisa ili čitanja. Ako nije stigao nijedan od ovih zahteva ostaje se u početnom koraku. Ako je stigao neko od zahteva prelazi se na odgovarajući korak.

Ako je stigao zahtev za operaciju čitanja vrši se startovanje periferije i inicijalizacija vremena pristupa periferije i započinje čitanje iz periferije. Potom se ulazi u petlju u kojoj se vrši provera da li je, upisivanjem neaktivne vrednosti u bit start upravljačkog registra, obustavljeno čitanje i da li je proteklo vreme pristupa periferiji. Ako je čitanje obustavljeno, izlazi se iz petlje i vraća na početni korak. Ako je proteklo zadato vreme pristupa periferije, uzima se da je čitanje realizovano, pa se izlazi iz petlje i prelazi na sledeće korake. U njima se inkrementira brojač registra simulirane periferije, čime se vrši njegovo pozicioniranje na sledeći registar periferije, šalje indikacija kontroleru da je čitanje završeno, zaustavlja periferija i vraća na početni korak.

Ako je stigao zahtev za operaciju upisa vrši se startovanje periferije i inicijalizacija vremena pristupa periferije i započinje upis u periferiju. Potom se ulazi u petlju u kojoj se vrši provera da li je, upisivanjem neaktivne vrednosti u bit start upravljačkog registra, obustavljen upis i da li je proteklo vreme pristupa periferiji. Ako je upis obustavljen, izlazi se iz petlje i vraća na početni korak. Ako je proteklo zadato vreme pristupa periferije, uzima se da je upis realizovan, pa se izlazi iz petlje i prelazi na sledeće korake. U njima se inkrementira brojač registra simulirane periferije, čime se vrši njegovo pozicioniranje na sledeći registar

Page 207: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

201

periferije, šalje indikacija kontroleru da je upis završen, zaustavlja periferija i vraća na početni korak.

6.1.2.2 Algoritam generisanja upravljačkih signala

Algoritam generisanja upravljačkih signala je formiran na osnovu dijagrama toka operacija (slika 59) i dat u obliku dijagrama toka upravljačkih signala (slika 60), sekvence upravljačkih signala po koracima (tabela 69) i vremenskih oblika signala (slike 61 i 62).

reqrd

if (access*RQ) then decTIME,if (access*RQ) then REGout,if (access*RQ) then ldPRP,if (access*RQ) then incENTRY,if (access*RQ) then reqrd_done,if (access*RQ) then clRQ

step11

0

1

1RQ

access

0

0

if (access*RQ) then decTIME,if (access*RQ) then REGin,if (access*RQ) then incENTRY,if (access*RQ) then reqwr_done,if (access*RQ) then clRQ

step2

1

1RQ

access

0

00

if reqrd then (stRQ, ldTIME), if reqwr then (stRQ, ldTIME)

step0

0reqwr 1

Slika 60 Dijagram toka upravljačkih signala

Dijagram toka upravljačkih signala je predstavljen operacionim i uslovnim blokovima (slika 60). U operacionim blokovima se nalaze upravljački signali i uslovi pod kojima se oni generišu. U uslovnim blokovima se nalaze signali logičkih uslova.

U sekvenci upravljačkih signala po koracima se koriste iskazi za signale i skokove. Iskazi za signale su oblika

if uslov then signali. Ovaj iskaz sadrži uslov i spisak upravljačkih signala kontrolera periferije KP i operacione jedinice oper_jed i određuje koji signali i pod kojim uslovima treba da budu generisani. Iskazi za skokove su oblika

br (if uslov then stepA). Ovaj iskaz sadrži uslov i korak i određuje na koji korak i pod kojim uslovima treba preći.

Objašnjenja vezana za generisanje upravljačkih signala su data zajednički za dijagram toka upravljačkih signala i sekvencu upravljačkih signala po koracima i to u okviru sekvence upravljačkih signala po koracima.

Tabela 69 Sekvenca upravljačkih signala po koracima ! U koraku step0 se ostaje i ne generiše se aktivna vrednost ni jednog od upravljačkih signala sve dok su i signal startovanja operacije čitanja reqrd i signal startovanja operacije upisa reqrd kontrolera periferije KP neaktivni. Kontroler šalje aktivnu vrednost signala reqrd pri startovanju operacije čitanja u periferiji PER. Ukoliko je aktivna vrednost signala reqrd, generišu se signali stRQ i ldTIME i prelazi u korak step1. Kontroler šalje aktivnu vrednost signala reqwr pri startovanju operacije upisa u periferiji. Ukoliko je aktivna vrednost signala reqwr, generišu se signali stRQ i ldTIME i prelazi u korak step2. Signalom stRQ se upisuje aktivna vrednost u flip-flop RQ, čime se

Page 208: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

202

startuje periferija. Signalom ldTIME se u brojač TIME7...0 upisuje sadržaj mikroprekidača čime se inicijalizuje simulirano vreme pristupa periferije. !

step0 if reqrd then (stRQ, ldTIME), if reqwr then (stRQ, ldTIME), br (if reqrd then step1), br (if reqwr then step2);

! U korak step1 se dolazi iz koraka step0 i u njemu se realizuje operacija čitanja iz periferije. Ukoliko je neaktivna vrednost signala RQ zaustavlja se čitanje iz periferije i prelazi u korak step0. Flip-flop RQ se postavlja na neaktivnu vrednost signalom pstop koji generiše kontroler kada se, upisivanjem neaktivne vrednosti u razred CR2 upravljačkog registra CR kontrolera, zaustavlja njegov rad. Ukoliko je aktivna vrednost signala RQ ostaje se u koraku step1 ili se prelazi u korak step0 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal access, respektivno. Neaktivna vrednost signala access je indikacija da nije proteklo zadato vreme pristupa periferiji i da čitanje podatka iz periferiji još uvek traje, a aktivna vrednost da je vreme isteklo i da je podatak očitan. Sve dok je neaktivna vrednost signala access generiše se signal decTIME kojim se dekrementira brojač vremena pristupa periferiji TIME7...0. Kada sadržaj brojača TIME7...0 dođe do vrednosti nula signal access postaje aktivan. Pri aktivnoj vrednosti signala access generišu se signali REGout, ldPRP, incENTRY, reqrd_done i clRQ. Signalom REGout se sadržaj registra simulirane periferije, adresiran sadržajem brojača ENTRY3...0, propušta kroz odgovarajući bafer sa tri stanja na ulaze registra PRP15...0 i signalom ldPRP upisuje u njega. Signalom incENTRY se inkrementira sadržaj brojača ENTRY3...0, čime se izvršava pozicioniranje za čitanje sadržaja sledećeg registra simulirane periferije. Signalom slRQ se upisuje neaktivna vrednost u flip-flop RQ, čime se zaustavlja periferija. Signalom reqwr_done šalje indikacija kontroleru da je operacija čitanja završena i da je sadržaj registra PRP15...0, u kome se nalazi očitani podatak, raspoloživ na izlaznim linijama podataka periferije PIN15...0. Pri aktivnoj vrednosti signala access prelazi se u korak step0. !

step1 if (RQ*access) then decTIME, if (RQ *access) then (REGout, ldPRP, incENTRY, reqrd_done, clRQ), br (if RQ then step0), br (if (RQ*access) then step0);

! U korak step2 se dolazi iz koraka step0 i u njemu se realizuje operacija upisa u periferiju. Ukoliko je neaktivna vrednost signala RQ zaustavlja se upis u periferiju i prelazi u korak step0. Flip-flop RQ se postavlja na neaktivnu vrednost signalom pstop koji generiše kontroler kada se, upisivanjem neaktivne vrednosti u razred CR2 upravljačkog registra CR kontrolera, zaustavlja njegov rad. Ukoliko je aktivna vrednost signala RQ, ostaje se u koraku step2 ili se prelazi u korak step0 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal access, respektivno. Neaktivna vrednost signala access je indikacija da nije proteklo zadato vreme pristupa periferiji i da upis podatka u periferiji još uvek traje, a aktivna vrednost da je vreme isteklo i da je podatak upisan. Sve dok je neaktivna vrednost signala access generiše se signal decTIME kojim se dekrementira brojač vremena pristupa periferiji TIME7...0. Kada sadržaj brojača TIME7...0 dođe do vrednosti nula signal access postaje aktivan. Pri aktivnoj vrednosti signala access generišu se signali REGin, incENTRY, reqwr_done, clRQ. Signalom REGin se sadržaj sa ulaznih linija podataka periferije POUT15...0 upisuje u registar simulirane periferije adresiran sadržajem brojača ENTRY3...0. Signalom incENTRY se inkrementira sadržaj brojača ENTRY3...0, čime se izvršava pozicioniranje za upis novog sadržaja u sledeći registar simulirane periferije. Signalom slRQ se upisuje neaktivna vrednost u flip-flop RQ, čime se zaustavlja periferija. Signalom reqwr_done šalje indikacija kontroleru da je operacija upisa završena. Pri aktivnoj vrednosti signala access prelazi se u korak step0. !

step2 if (RQ*access) then decTIME, if (RQ*access) then (REGin, incENTRY, reqwr_done, clRQ), br (if RQ then step0), br (if (RQ*access) then step0);

Vremenski oblici signala su dati posebno za operaciju čitanja iz periferije (slika 61) i za operaciju upisa u periferiju (slika 62). Vremenski oblici signala su dati za obe operacije uz pretpostavku da je signal pstop kontrolera neaktivan sve vreme i da nema zaustavljanja

Page 209: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

203

započete operacije čitanja ili upisa u periferiji. U koraku step0 se ostaje sve dok kontroler šalje periferiji neaktivne vrednosti signala reqrd i reqwr.

CLK

step0step1step0

REGout, ldPRP, incENTRY,reqrd_done, clRQ

stRQ, ldTIMEreqrd

RQ

decTIMEaccess

L

LL

LL

L

L

L

L

Slika 61 Vremenski oblici signala za operaciju čitanja

CLK

step0step2step0

REGin, incENTRY,reqwr_done, clRQ

stRQ, ldTIMEreqwr

RQ

decTIMEaccess

L

LL

LL

L

L

L

L

Slika 62 Vremenski oblici signala za operaciju upisa

Na osnovu aktivne vrednosti signala reqrd, koju kontroler šalje periferiji prilikom startovanja operacije čitanja, generišu se signali stRQ i ldTIME i na signal takta prelazi iz koraka step0 u korak step1. Na isti signal takta aktivne vrednosti signala stRQ i ldTIME omogućuju upis aktivne vrednosti u flip-flop RQ i upis vrednosti mikroprekidača u brojač TIME7…0, respektivno. Upisom u brojač TIME15…0 vrednosti različite od nule signal access postaje neaktivan. Na osnovu neaktivne vrednosti signala access generiše se aktivna vrednost signala decTIME. Sve vreme dok je signal decTIME aktivan na signal takta se dekrementira sadržaj brojača TIME7…0. Kada sadržaj brojača TIME7…0 postane nula, signal access postaje aktivan a signal decTIME neaktivan. Pri aktivnoj vrednosti signala access generišu se signali REGout, ldPRP, incENTRY, reqrd_done i clRQ i na signal takta prelazi iz koraka step1 u korak step0. Na isti signal takta signali REGout i ldPRP omogućuju upis sadržaja očitanog registra simulirane periferije u registar PRP15…0, signal incENTRY inkrementiranje brojača ENTRY3…0, a signal clRQ upis neaktivne vrednosti u flip-flop RQ. Aktivnom vrednošću signala reqrd_done periferija šalje indikaciju kontroleru da je operacija čitanja završena.

Na osnovu aktivne vrednosti signala reqwr, koju kontroler šalje periferiji prilikom startovanja operacije upisa, generišu se signali stRQ i ldTIME i na signal takta prelazi iz koraka step0 u korak step2. Na isti signal takta aktivne vrednosti signala stRQ i ldTIME omogućuju upis aktivne vrednosti u flip-flop RQ i upis vrednosti mikroprekidača u brojač TIME7…0, respektivno. Upisom u brojač TIME7…0 vrednosti različite od nule signal access postaje neaktivan. Na osnovu neaktivne vrednosti signala access generiše se aktivna vrednost signala decTIME. Sve vreme dok je signal decTIME aktivan na signal takta se dekrementira sadržaj brojača TIME7…0. Kada sadržaj brojača TIME7…0 postane nula, signal access postaje aktivan a signal decTIME neaktivan. Pri aktivnoj vrednosti signala access generišu se signali REGin, incENTRY, reqwr_done i clRQ i na signal takta prelazi iz koraka step2 u korak

Page 210: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

204

step0. Na isti signal takta signal REGin omogućuju upis sadržaja koji šalje kontroler u registar simulirane periferije, signal incENTRY inkrementiranje brojača ENTRY3…0 i signal clRQ upis neaktivne vrednosti u flip-flop RQ. Aktivnom vrednošću signala reqwr_done periferija šalje indikaciju kontroleru da je operacija upisa završena.

6.1.2.3 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije

Upravljačka jedinica ožičene realizacije generiše dve vrste upravljačkih signala i to: • upravljačke signale kontrolera periferije KP i operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed.

Upravljački signali kontrolera periferije KP i operacione jedinice oper_jed se koriste u kontroleru periferije KP i u operacionoj jedinice oper_jed radi izvršavanja mikrooperacija. Upravljački signali upravljačke jedinice uprav_jed se koriste u upravljačkoj jedinici uprav_jed radi inkrementiranja brojača koraka ili upisa nove vrednosti u brojač koraka.

Upravljački signali kontrolera periferije KP i operacione jedinice oper_jed se mogu generisati na osnovu sekvence upravljačkih signala po koracima (tabela 69). Za svaki upravljački signal kontrolera periferije KP i operacione jedinice oper_jed treba u sekvenci upravljačkih signala po koracima tražiti korake sa iskazima za signale u kojima se pojavljuje dati signal. Za svaki takav korak treba uzeti signal dekodovanog stanja brojača koraka, ukoliko se signal bezuslovno generiše, i logički proizvod signala dekodovanog stanja brojača koraka i signala uslova, ukoliko se signal uslovno generiše, i formirati njihovu uniju.

Upravljački signali upravljačke jedinice uprav_jed se ne mogu formirati na osnovu sekvence upravljačkih signala po koracima (tabela 69), jer se u njoj ne pojavljuju upravljački signali upravljačke jedinice uprav_jed, već samo iskazi za skok. Zbog toga je potrebno, na osnovu sekvence upravljačkih signala po koracima, najpre, formirati sekvencu upravljačkih signala za upravljačku jedinicu ožičene realizacije. Prilikom njenog formiranja primenjuje se različiti postupak za upravljačke signale kontrolera periferije KP i operacione jedinice oper_jed i za upravljačke signale upravljačke jedinice uprav_jed. Za upravljačke signale kontrolera periferije KP i operacione jedinice oper_jed treba staviti iskaze za signale onako kako se javljaju u sekvenci upravljačkih signala po koracima. Za upravljačke signale upravljačke jedinice uprav_jed treba u sekvenci upravljačkih signala po koracima tražiti iskaze

br (if uslov then stepA) i umesto njih staviti

if uslov then (ldCNT, bv1,bv0) ili if uslov then incCNT.

Iskaz if uslov then (ldCNT, bv1,bv0)

se stavlja u onim koracima u kojima stepA nije prvi sledeći korak. U svakom takvom iskazu pored signala ldCNT, koji je obavezan, pojavljuje se i kombinacija aktivnih i neaktivnih vrednosti signala bv1 i bv0 koja odgovara binarnoj vrednosti A koraka stepA na koji treba preći ukoliko je signal uslov aktivan. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 70. Iskaz

if uslov then incCNT se stavlja u onim koracima u kojima je stepA prvi sledeći korak na koji treba preći ukoliko je signal uslov aktivan. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 71.

Page 211: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

205

Tabela 70 Signali ldCNT, bv1 i bv0

stepA br (if uslov then stepA) if uslov then (ldCNT, bv1,bv0) step0 br (if reqrd then step2) if reqrd then (ldCNT, bv1) step1 br (if (RQ*access) then step0) if (RQ*access) then ldCNT step1 br (if RQ then step0) if RQ then ldCNT step2 br (if (RQ*access) then step0) if (RQ*access) then ldCNT step2 br (if RQ then step0) if RQ then ldCNT

Tabela 71 Signal incCNT

stepA br (if uslov then stepA) if uslov then incCNT step0 br (if (reqrd*Vm) then step1) if (reqrd*Vm) then incCNT

Po opisanom postupku je, na osnovu sekvence upravljačkih signala po koracima (tabela 69), formira sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 72). Ona ima sledeću formu:

• na levoj strani nalaze se dekodovani signali stanja brojača koraka, • u sredini je iskaz tipa

if uslov then signali, if uslov then (ldCNT, bv1,bv0) ili if uslov then incCNT,

• dok komentar, u koracima gde se to radi lakšeg razumevanja smatra korisnim, uvek počinje uskličnikom (!) i proteže se do sledećeg uskličnika (!).

Iz izloženog se vidi da su upravljački signali za upravljačku jedinicu ožičene realizacije ldCNT, bv1, bv0 i incCNT. Oni se formiraju na osnovu dobijene sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije na identičan način kao i upravljački signali kontrolera periferije KP i operacione jedinice oper_jed.

Tabela 72 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije ! U koraku T0 se ostaje sve dok su i signal reqrd i signal reqwr neaktivni. Tada su neaktivne vrednostu signala incCNT i ldCNT, pa nema promene vrednosti brojača koraka CNT. Ukoliko je aktivna vrednost signala reqrd prelazi se u korak T1, a ukoliko je aktivna vrednost signala reqwr u korak T2. Pri aktivnoj vrednosti signala reqrd generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 1. Pri aktivnoj vrednosti signala reqwr generišu se aktivne vrednosti signala ldCNT i bv1, pa se u brojač koraka CNT upisuje vrednost 2. !

T0 if reqrd then (stRQ, ldTIME), if reqwr then (stRQ, ldTIME), if reqrd then incCNT, if reqwr then (ldCNT, bv1);

! U korak T1 se dolazi iz koraka T0. Ukoliko je neaktivna vrednost signala RQ prelazi se u korak T0. Pri neaktivnoj vrednosti signala RQ generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala RQ ili se ostaje u koraku T1 ili se prelazi u korak T0 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal access, respektivno. Pri neaktivnoj vrednosti signala access generiše se neaktivna vrednost signala ldCNT, pa se vrednost 1 brojača koraka CNT ne menja. Pri aktivnoj vrednosti signala access generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. !

T1 if (RQ*access) then decTIME, if (RQ*access) then (REGout, ldPRP, incENTRY, reqrd_done, clRQ),

Page 212: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

206

if RQ then ldCNT, if (RQ*access) then ldCNT;

! U korak T2 se dolazi iz koraka T0. Ukoliko je neaktivna vrednost signala RQ prelazi se u korak T0. Pri neaktivnoj vrednosti signala RQ generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala RQ ili se ostaje u koraku T2 ili se prelazi u korak T0 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal access, respektivno. Pri neaktivnoj vrednosti signala access generiše se neaktivna vrednost signala ldCNT, pa se vrednost 2 brojača koraka CNT ne menja. Pri aktivnoj vrednosti signala access generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. !

T2 if (RQ*access) then decTIME, if (RQ*access) then (REGin, incENTRY, reqwr_done, clRQ), if RQ then ldCNT, if (RQ*access) then ldCNT;

6.1.2.4 Struktura upravljačke jedinice

Struktura upravljačke jedinice ožičene realizacije je prikazana na slici 63. Upravljačka jedinica se sastoji od sledećih blokova:

• blok brojač koraka, • blok dekoder koraka i • blok generisanje upravljačkih signala.

Blok brojač koraka sadrži brojač CNT1...0. Brojač CNT1...0 svojom trenutnom vrednošću obezbeđuje aktivne vrednosti određenih upravljačkih signala. Brojač Brojač CNT1...0 može da radi u sledećim režimima:

• režim inkrementiranja, • režim skoka i • režim čekanja.

U režimu inkrementiranja pri pojavi signala takta vrši se uvećavanje sadržaja brojača CNT1...0 za jedan čime se obezbeđuje sekvencijalno generisanje upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 72). Ovaj režim rada se realizuje neaktivnom vrednošću signala ldCNT i aktivnom vrednošću signala incCNT (tabela 71).

U režimu skoka pri pojavi signala takta vrši se upis nove vrednosti u brojač CNT1...0 čime se obezbeđuje odstupanje od sekvencijalnog generisanja upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 72). Ovaj režim rada se realizuje aktivnom vrednošću signala ldCNT, neaktivnom vrednošću signala incCNT i kombinacijom aktivnih i neaktivnih vrednosti signala bv1 i bv0 koja odgovara vrednosti koju treba upisati u brojač CNT1...0 (tabela 70).

U režimu čekanja pri pojavi signala takta ne menja se vrednost brojača CNT1...0. Ovaj režim rada se obezbeđuje neaktivnim vrednostima signala ldCNT i incCNT.

Blok dekoder koraka sadrži dekoder DC. Na ulaze dekodera DC vode se izlazi brojača CNT1...0. Dekodovana stanja brojača CNT1...0 pojavljuju se kao signali T0 do T7 na izlazima dekodera DC. Svakom koraku iz sekvence upravljačkih signala po koracima (tabela 69) dodeljeno je po jedno stanje brojača CNT1...0 određeno vrednošću signala T0 do T3 i to koraku step0 signal T0, koraku step1 signal T1, itd.

Page 213: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

207

reqr

d_do

ne

reqw

r_do

ne

generisanjeupravljačkih

signalakontroleraperiferije

oper

_jed

generisanjeupravljačkih

signalaoperacione

jedinice

... ...

generisanjeupravljačkih signala

ldC

NT

generisanjeupravljačkih

signalaupravljačke

jedinice

...

incC

NT

bv1

bv0

reqwr

oper

_jed

KP

12

31

23reqrd

accessRQ

CNT1...0 INC

LDCLK

1 0

D C

T3 T0

CNT0

1 0mr

MRCLK

...

...

0

3 0

bv0

ldCNTincCNT

bv1

CNT1

1

brojačkoraka

dekoderkoraka

Slika 63 Struktura upravljačke jedinice uprav_jed

Blok generisanje upravljačkih signala sadrži kombinacione mreže koje pomoću signala T0 do T3, koji dolaze sa bloka dekoder koraka, signala logičkih uslova reqwr do access, koji dolaze iz kontrolera periferije KP i operacione jedinice oper_jed, i saglasno sekvenci upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 72) generišu tri grupe upravljačkih signala i to:

• upravljačke signale kontrolera periferije KP, • upravljačke signale operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed.

Upravljački signali kontrolera periferije KP se generišu na sledeći način: • reqrd_done = access*RQ*T1 • reqwr_done = access*RQ*T2

Upravljački signali operacione jedinice oper_jed se generišu na sledeći način: • stRQ = reqrd*T0 + reqwr*T0 • clRQ = access*RQ*T1 + access*RQ*T2 • ldTIME = reqrd*T0 + reqwr*T0 • decTIME = access*RQ*T1 + access*RQ*T2 • REGout = access*RQ*T1

Page 214: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

208

• REGin = access*RQ*T2 • ldPRP = access*RQ*T1 • incENTRY = access*RQ*T1 + access*RQ*T2

Upravljački signali upravljačke jedinice uprav_jed se generiše na sledeći način: • ldCNT = reqwr*T0 + access*RQ*T1 + access*RQ*T2 + RQ*T1 +RQ*T2 • bv1 = reqwr*T0 • bv0 = 0 • incCNT = reqrd*T0

Pri njihovom generisanju koriste se sledeći signali logičkih uslova koji dolaze iz kontrolera periferije KP i operacione jedinice oper_jed i to:

• reqrd — kontroler periferije KP, • reqwr — kontroler periferije KP, • RQ — operaciona jedinica oper_jed i • access — operaciona jedinica oper_jed.

6.2 KONROLER PERIFERIJE BEZ DIREKTNOG PRISTUPA MEMORIJI

Kontroler periferije KP (slika 64) se sastoji iz operacione jedinice oper_jed i upravljačke jedinice uprav_jed.

Operaciona jedinica oper_jed je kompozicija kombinacionih i sekvencijalnih prekidačkih mreža koje služe za pamćenje binarnih reči, izvršavanje mikrooperacija i generisanje signala logičkih uslova.

Upravljačka jedinica uprav_jed se sastoji iz dva dela i to upravljačke jedinice magistrale uprav_jed_bus i upravljačke jedinice periferije uprav_jed_per. Upravljačka jedinica magistrale uprav_jed_bus generiše upravljačke signale neophodne da kontroler periferije KP kao sluga realizacije cikluse na magistrali BUS kojima se prenose podaci između procesora CPU i kontrolera periferije KP. Upravljačka jedinica periferije uprav_jed_per generiše upravljačke signale neophodne za prenos podataka između periferije PER i kontrolera periferije KP. Upravljačke jedinice uprav_jed_bus i uprav_jed_per rade istovremeno i omogućuju paralelan rad kontrolera periferije KP kao sluge sa magistralom BUS i kontrolera periferije KP sa periferijon PER. Svaka od upravljačkih jedinica uprav_jed_bus i uprav_jed_per je kompozicija kombinacionih i sekvencijalnih prekidačkih mreža koje služe za generisanje upravljačkih signala prema algoritmu generisanja upravljačkih signala operacione jedinice oper_jed i signala logičkih uslova.

Struktura i opis operacione i upravljačke jedinice se daju u daljem tekstu.

6.2.1 Operaciona jedinica

Operaciona jedinica (slika 64) se sastoji od sledećih blokova: • blok registri i • blok interfejs.

Blok registri (slike 65 i 66) služi za čuvanje podataka, upravljačkih i statusnih informacija i broja ulaza u tabelu sa adresama prekidnih rutina. Blok interfejs (slike 67 i 68) služi za realizaciju ciklusa na magistrali u kojima je kontroler sluga i realizaciju prekida.

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

Page 215: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

209

PIN

15...

0

reqr

dps

top

POU

T 15...

0

reqw

r_do

ne

16

16

reqr

d_do

nere

qwr

KPuprav_jed

oper_jed

registri interfejs

uprav_jed_bus uprav_jed_per

PER

U/I

WRBUSRDBUS

FCBUS

DBUS15...0

ABUS15...0

intr

intain intaoutU/I

CPU

CPUili

U/I

BUS

14

44

24

44

3

Slika 64 Organizacija kontrolera periferije KP

6.2.1.1 Blok registri

Blok registri sadrži registre DR i DRAUX sa multiplekserima MP1 i MP2, registar CR (slika 65), flip-flopove SR0, SR1 i SP2, registar IER i flip-flopove WRDR i RDDR (slika 66).

Registri DR15…0 i DRAUX15…0 su 16-razredni registar podatka i pomoćni registar podatka, respektivno (slika 65). Ovi registri zajedno sa multiplekserima MP1 i MP2 služe za prenos podataka između periferije PER i memorije MEM. Pri prenosu podataka iz periferije u memoriju podatak koji dolazi iz periferije po linijama PIN15...0 se, najpre, propušta kroz multiplekser MP2 i upisuje u pomoćni registar podatka DRAUX15…0. Potom se podatak iz registra DRAUX15…0 propušta kroz multiplekser MP1 i upisuje u registar podatka DR15…0. Na kraju se podatak iz registra DR15…0 preko bafera sa tri stanja propušta na linije podataka DBUS15…0 magistrale BUS i upisuje u memoriju. Ovakvim načinom prenosa podataka je omogućeno da se istovremeno prenosi tekući podatak iz registra DR15…0 u memoriju i sledeći podatak iz periferije u registar DRAUX15…0. Pri tome se sledeći podatak prenosi iz registra

Page 216: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

210

DRAUX15…0 u registar DR15…0, tek pošto je tekući podatak prenet iz registra DR15…0 u memoriju. Pri prenosu podataka iz memorije u periferiju podatak koji dolazi iz memorije po linijama podataka DBUS15…0 magistrale se, najpre, propušta kroz multiplekser MP1 i upisuje u registar podatka DR15…0. Potom se podatak iz registra DR15…0 propušta kroz mulstiplekser MP2 i upisuje u pomoćni registar podatka DRAUX15…0. Na kraju se podatak iz registra DRAUX15…0 po linijama POUT15…0 šalje i upisuje u periferiju. Ovakvin načinom prenosa podataka je omogućeno da se istovremeno prenosi tekući podatak iz registra DRAUX15…0 u periferiju i sledeći podatak iz memorije u registar DR15…0. Pri tome se sledeći podatak prenosi iz registra DR15…0 u registar DRAUX15…0, tek pošto je tekući podatak prenet iz registra DRAUX15…0 u periferiju.

Registar DR15…0 je 16-razredni registar u koji se generisanjem aktivne vrednosti jednog od signala DRin i ldDR upisuje sadržaj sa izlaza multipleksera MP1. Pri aktivnoj vrednosti signala DRin i neaktivnoj vrednosti signala ldDR sadržaj sa linija podataka DBUS15…0 magistrale se propušta kroz multiplekser MP1 i upisuje u registar DR15…0. Pri aktivnoj vrednosti signala ldDR sadržaj sa izlaza registra DRAUX15…0 se propušta kroz multiplekser MP1 i upisuje u registar DR15…0. Sadržaj registra DR15…0 se pri aktivnoj vrednosti signala DRout propušta kroz bafere sa tri stanja na linije podataka DBUS15…0 magistrale. Pored toga sadržaj registra DR15…0 se vodi na ulaze multipleksera MP2.

Multiplekser MP1 se sastoji od 16 multipleksera sa dva ulaza. Na ulaze 0 i 1 multipleksera MP1 dovodi se sadržaj sa linija podataka DBUS15…0 magistrale i sadržaj sa izlaza registra DRAUX15…0, respektivno. Selektovanje sadržaja se obavlja signalom ldDR.

Registar DRAUX15…0 je 16-razredni registar u koji se, generisanjem aktivne vrednosti jednog od signala DRAUXin i ldDRAUX, upisuje sadržaj sa izlaza multipleksera MP2. Pri aktivnoj vrednosti signala DRAUXin i neaktivnoj vrednosti signala ldDRAUX sadržaj registra DR15…0 se propušta kroz multiplekser MP2 i upisuje u registar DRAUX15…0. Pri aktivnoj vrednosti signala ldDRAUX sadržaj sa ulaznih linija podataka PIN15…0 periferije se propušta kroz multiplekser MP2 i upisuje u registar DRAUX15…0. Sadržaj registra DRAUX15…0 se po izlaznim linijama podataka POUT15…0 šalje u periferiju. Pored toga sadržaj registra DRAUX15…0 se vodi na ulaze multipleksera MP1.

Multiplekser MP2 se sastoji od 16 multipleksera sa dva ulaza. Na ulaze 0 i 1 multipleksera MP2 dovodi se sadržaj sa izlaza registra DR15…0 i sadržaj sa ulaznih linija podataka PIN15…0 periferije, respektivno. Selektovanje sadržaja se obavlja signalom ldDRAUX.

Flip-flop i logičko I kolo pri pojavi aktivne vrednosti signala CRin trajanja jedna ili više perioda signala takta stvaraju aktivnu vrednost signala ldCR trajanja jedna perioda signala takta.

Registar CR15…0 je 16-razredni upravljački registar, pri čemu se koriste samo četiri najmlađa razreda CR3…0. U registar CR15…0 se, generisanjem aktivne vrednosti signala ldCR i pod uslovom da nisu istovremeno aktivne vrednosti signala DBUS2 i CR2, upisuje sadržaj sa linija podataka DBUS15…0 magistrale. Aktivne vrednosti signala DBUS2 i CR2 označavaju pokušaj da se startuje već startovan kontroler periferije. Kako ovo nije dozvoljeno ovaj zahteh se ignoriše. Preostale tri kombinacije signala DBUS2 i CR2 su regularne, pa se zahtevi za upis upis u registar CR15…0 prihvataju. Sadržaj registra CR15…0 se pri aktivnoj vrednosti signala DRout propušta kroz bafere sa tri stanja na linije podataka DBUS15…0 magistrale.

Ukoliko je pri upisu sadržaja sa linija podataka DBUS15…0 magistrale u upravljački registar CR15…0 aktivna vrednosti signala CR2 i neaktivna vrednost signala DBUS2 radi se o zaustavljanju već startovanog kontrolera periferije. S toga se pri pojavi aktivne vrednosti

Page 217: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

211

signala ldCR formira aktivna vrednost signala pstop. Signal pstop, trajanja jedna perioda signala takta, se koristi u periferiji za njeno zaustavljanje.

CLK

16

01MP1S0

1616

DR15…0CLK

LD

MRmr16

16 DR15...0

ldDRuprav_jed_per

DRinuprav_jed_bus

DRoutuprav_jed_bus

DBUS15…0

BUS

16

16

ldCRCR2

DBUS2BUS

pstopPER

DRAUXin

ldDRAUX

uprav_jed_per

CLK

uprav_jed_per 01MP2S0

1616

DRAUX15…0CLK

LD

MRmr16

16 DRAUX15...016

POUT15...0PIN15...0PER PER

D

CLK

Q

QRd

CLK

mr

CRinuprav_jed_bus ldCR

CLK

ldCRDBUS2

BUS

CR2

16

CR15…0LD

CLK

MRmr16

16 CR15...0

CRoutuprav_jed_bus

16

16

DBUS3...0

40…3

1215…4

0

16

12

3

Slika 65 Blok registri (prvi deo)

Flip-flopovi SR0, SR1 i SR2 formiraju tri najmlađa razreda 16-razrednog statusnog registra SR15…0 (slika 66). Flip-flopovi SR0, SR1 i SR2 se pojedinačno postavljaju na neaktivne i aktivne vrednosti. Prilikom svakog startovanja kontrolera periferije flip-flopovi SR0, SR1 i SR2 se signalom clSR postavljaju na neaktivne vrednosti. Tada je neaktivna vrednost signala

Page 218: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

212

CR2 i aktivna vrednost signala DBUS2, pa se generisanjem aktivne vrednosti signala ldCR, kojim se upisuje sadržaj sa linija podataka DBUS15…0 magistrale u registar CR15…0, formira i aktivna vrednost signala clSR.

DBUS7...00

ldCRCR2

DBUS2BUS

stSR0uprav_jed_per

stSR1

uprav_jed_bus

SR2S

R

CLK

Q

QRd

CLK

mr

SR0S

R

CLK

Q

QRd

CLK

mr

SR1S

R

CLK

Q

QRd

CLK

mr

13

12

321

1615…3

0 SRoutuprav_jed_bus

16

BUS

ldCRCR2DBUS2

BUS

clSR

stSR2DRout

CR0

CR2

uprav_jed_bus

SR0

DRin

CR0

CR2

uprav_jed_bus

SR0

clSR0bus

CLK

16

IER15…0

CLK

LD

MRmr16

16 IER15...0

IERoutuprav_jed_bus

16

IERinuprav_jed_bus

DBUS15…0BUS

12

3

16

DBUS7...0

80…7

815…8

0

16

WRDRS

R

CLK

Q

QRdclWRDRper

CLK

uprav_jed_per

uprav_jed_per

mr

stWRDRbusuprav_jed_bus RDDR

S

R

CLK

Q

QRdclRDDRper

CLK

uprav_jed_per

uprav_jed_per

mr

stRDDRbusuprav_jed_bus

stRDDRperuprav_jed_per

Slika 66 Blok registri (drugi deo)

Page 219: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

213

Flip-flop SR0 sadrži bit spremnosti. Pri prenosu podataka iz periferije u memoriju njegova aktivna vrednost je indikacija da je novi podatak prebačen iz registra DRAUX15…0 u registar DR15…0 i da je raspoloživ da se programskim putem prebaci iz registra DR15…0 u memoriju. S toga se na početku, po startovanju kontrolera periferije za prenos iz periferije u memoriju, flip-flop SR0 signalom clSR postavlja na neaktivnu vrednost. Posle toga se, po prenosu podatka iz registra DRAUX15…0 u registar DR15…0, flip-flop SR0 signalom stSR0 postavlja na aktivnu vrednost, a po prenosu podatka iz registra DR15…0 u memoriju signalom SR0bus postavlja na neaktivnu vrednost. Pri prenosu podataka iz memorije u periferiju njegova aktivna vrednost je indikacija da je sadržaj registra DR15…0 prebačen u registar DRAUX15…0 i da je registar DR15…0 raspoloživ da se u njega programskim putem prebaci novi podatak iz memorije. S toga se na početku, po startovanju kontrolera periferije za prenos iz memorije u periferiju, flip-flop SR0, najpre, signalom clSR postavlja na neaktivnu vrednost, a odmah potom signalom stSR0 na aktivnu vrednost. Posle toga se, po prenosu podatka iz memorije u registar DR15…0, flip-flop SR0 signalom clSR0bus postavlja na neaktivnu vrednost, a po prenosu podatka iz registra DR15…0 u registar DRAUX15…0 signalom stSR0 postavlja na aktivnu vrednost.

Flip-flop SR1 sadrži bit čija aktivna vrednost ukazuje da je programskim putem pokušano da se, upisivanjem u registar CR15…0, startuje već startovan kontroler periferije. Ovaj slučaj se javlja pri aktivnim vrednostima signala DBUS2 i CR2. Kako startovanje već startovanog kontrolera periferije nije dozvoljeno, ovaj zahtev se ignoriše. Tada se, iako je generisana aktivna vrednost signala ldCR, u registar CR15…0 ne upisuje sadržaj sa linija podataka DBUS15…0 magistrale. Umesto toga generiše se aktivna vrednost signala stSR1 kojom se u flip-flop SR1 upisuje aktivna vrednost.

Flip-flop SR2 sadrži bit čija aktivna vrednost ukazuje da je programskim putem ili pročitan sadržaj registra DR15…0 ili je u registar DR15…0 upisan novi sadržaj iako se u flip-flopu SR0, koji sadrži bit spremnosti, nalazi neaktivna vrednost. U slučaju čitanja neaktivna vrednost signala SR0 znači da je prethodni podatak pročitan iz registra DR15…0 a novi još nije prenet iz registra DRAUX15…0 u registar DR15…0. Efekat je ponovno čitanje već pročitanog podatka. U slučaju upisa neaktivna vrednost signala SR0 znači da je novi podatak upisan u registar DR15…0 a prethodni još nije prenet iz registra DR15…0 u registar DRAUX15…0. Efekat je gubitak prethodnog podatka. Prilikom čitanja registra DR15…0 ovaj slučaj se javlja pri aktivnim vrednostima signala DRin i CR2 i neaktivnim vrednostima signala CR0 i SR0. Prilikom upisa u registar DR15…0 ovaj slučaj se javlja pri aktivnim vrednostima signala DRin, CR2 i CR0 i neaktivnoj vrednosti signala SR0. U ovim slučajevima čitanje i upis se normalno realizuju, ali se pri tome generiše akrivna vrednost signala stSR2 kojom se u flip-flop SR2 upisuje aktivna vrednost.

Sadržaj registra SR15…0 se pri aktivnoj vrednosti signala SRout propušta kroz bafere sa tri stanja na linije podataka DBUS15…0 magistrale. Pri tome su sadržaji razreda SR2…0 sadržaji flip-flopova SR2, SR1 i SR15…0, a razreda SR15…3 nule.

Registar IER15…0 je 16-razredni registar u kome se čuva broj ulaza u tabelu sa adresama prekidnih rutina. Ova tabela ima 256 ulaza, pa se broj ulaza zadaje kao 8-bitna pozitivna vrednost. S toga se generisanjem aktivne vrednosti signala IERin u razrede IER7…0 upisuje sadržaj sa linija podataka DBUS7…0 magistrale, dok se u razrede IER15…8 upisuju nule. Sadržaj registra IER15…0 se pri aktivnoj vrednosti signala IERout propušta kroz bafere sa tri stanja na linije podataka DBUS15…0 magistrale.

Flip-flopovi RDDR i WRDR se koriste za neophodnu sinhronizaciju pri prenosu podataka iz periferije u memoriju i obrnuto. Flip-flop RDDR se koristi pri prenosu podataka iz

Page 220: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

214

periferije u memoriju. Njegova aktivna vrednost je indikacija da novi podatak može da se prenese iz registra DRAUX15…0 u registar DR15…0, a neaktivna da tekući podatak još uvek nije prenet iz registra DR15…0 u memoriju i da novi podatak ne može da se prenese iz registra DRAUX15…0 u registar DR15…0. S toga se na početku po startovanju kontrolera periferije za prenos iz periferije u memoriju flip-flop RDDR signalom stRDDRper postavlja na aktivnu vrednost. Posle toga se po prenosu podatka iz registra DRAUX15…0 u registar DR15…0 flip-flop RDDR signalom clRDDRper postavlja na neaktivnu vrednost, a po prenosu podatka iz registra DR15…0 u memoriju signalom stRDDRbus postavlja na aktivnu vrednost. Flip-flop WRDR se koristi pri prenosu podataka iz memorije u periferiju. Njegova aktivna vrednost je indikacija da se u registru DR15…0 nalazi podatak i da sadržaj registra DR15…0 može da se prenese u registar DRAUX15…0, a neaktivna da novi podatak još uvek nije prenet iz memorije u registar DR15…0 i da sadržaj registra DR15…0 ne može da se prenese u registar DRAUX15…0. S toga se na početku po startovanju kontrolera za prenos iz memorije u periferiju flip-flop WRDR signalom clWRDRper postavlja na neaktivna vrednost. Posle toga se po prenosu podatka iz memorije u registar DR15…0 flip-flop WRDR signalom stWRDRper postavlja na aktivnu vrednost, a po prenosu podatka iz registra DR15…0 u registar DRAUX15…0 signalom clWRDRper postavlja na neaktivnu vrednost.

6.2.1.2 Blok interfejs

Blok interfejs sadrži kombinacione i sekvencijalne mreže za realizaciju ciklusa na magistrali u kojima je kontroler sluga (slika 67) i realizaciju prekida (slika 68).

Kombinacione i sekvencijalne mreže za realizaciju ciklusa na magistrali u kojima je kontroler sluga formiraju signale rds i wrs upravljačke jedinice uprav_jed_bus i FCBUS magistrale BUS (slika 67). Signali rds i wrs se formiraju na osnovu signala ABUS15..0 sa adresnih linija magistrale i RDBUS i WRBUS sa upravljačkih linija magistrale. Signal FCBUS se formira na osnovu signala OEfcbus i fcbus upravljačke jedinice uprav_jed_bus.

Pri realizaciji ciklusa čitanja na magistrali procesor kao gazda, najpre, izbacuje adresu na adresne linije ABUS15..0 magistrale i, potom, generisanjem aktivne vrednosti upravljačkog signala magistrale RDBUS, startuje u kontroleru kao slugi čitanje adresiranog registra. Konroler po završenom čitanju izbacuje sadržaj registra na linije podataka DBUS15..0 magistrale i formira aktivnu vrednost upravljačkog signala magistrale FCBUS. Posle toga procesor prihvata sadržaj sa linija podataka i postavlja signal RDBUS na neaktivnu vrednost. Na kraju kontroler uklanja podatak sa linija podataka magistrale i postavljanja signal FCBUS na neaktivnu vrednost.

Pri realizaciji ciklusa upisa na magistrali procesor kao gazda, najpre, izbacuje adresu i podatak na adresne linije ABUS15..0 i linije podataka DBUS15..0 magistrale, respektivno, i, potom, generisanjem aktivne vrednosti upravljačkog signala magistrale WRBUS, startuje u kontroleru kao slugi upis u adresirani registar. Konroler po završenom upisu formira aktivnu vrednost upravljačkog signala magistrale FCBUS. Posle toga procesor uklanja adresu i podatak sa adresnih linija i linija podataka magistrale i postavlja signal WRBUS na neaktivnu vrednost. Na kraju kontroler postavlja signal FCBUS na neaktivnu vrednost.

Signali rds i wrs su upravljački signali RDBUS i WRBUS magistrale sinhronizovani na signal takta kontrolera. U flip-flop rds se na signal takta kontrolera upisuje vrednost koja odgovara vrednosti signala RDBUS ukoliko je aktivna vrednost signala select. U flip-flop wrs se na signal takta kontrolera upisuje vrednost koja odgovara vrednosti signala WRBUS ukoliko je aktivna vrednost signala select. Signal rds je kao i signal RDBUS aktivan za vreme operacije čitanja nekog registra kontrolera, dok je signal wrs kao i signal WRBUS aktivan za vreme operacije upisa u neki od registara kontrolera.

Page 221: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

215

L

select

ABUS15ABUS14ABUS13ABUS12

BUS

14

24

3

3210

DC

E

10ABUS0

ABUS1

selCRselSRselIERselDR

12

3BUS

L

ABUS11 ABUS6

BUSBUS

mikroprekidači5 0

LL

ABUS2

ABUS3

ABUS4

ABUS5

BUS

14

24

3

D

CLK

Q

QRd

rds

mr

uprav_jed_bus

CLKRDBUSBUS

D

CLK

Q

QRd

wrs

mr

uprav_jed_bus

CLKBUS WRBUS

OEfcbus

fcbus

uprav_jed_bus

uprav_jed_busBUS FCBUS

Slika 67 Blok interfejs (prvi deo)

Signal select ima aktivnu vrednost ukoliko se na adresnim linijama ABUS15…0 magistrale nalazi adresa iz opsega adresa dodeljenih registrima kontrolera periferije KP. Celokupan opseg adresa od 0000h do FFFFh podeljen je na opseg adresa od 0000h do EFFFh, koje su dodeljene memoriji MEM, i opseg adresa od F000h do FFFFh, koje su dodeljene registrima po svim kontrolerima periferija. Opseg adresa koje su dodeljene registrima po kontrolerima periferija je predviđen za adresiranje registara u najviše 64 kontrolera i to najviše 64 registra unutar određenog kontrolera. Pri tome prilikom adresiranja nekog od registara kontrolera sadržaj na adresnim linijama ABUS15…0 magistrale ima sledeću strukturu: bitovi ABUS15…12 su sve jedinice, bitovi ABUS11…6 određuju broj kontrolera i bitovi ABUS5…0 adresu registra unutar kontrolera. Broj kontrolera periferije za određeni kontroler periferije se postavlja mikroprekidačima na jednu od vrednosti u opsegu 0 do 63. Registrima CR15…0, SR15…0, IER15…0 i DR15…0 su unutar opsega adresa datog kontrolera dodeljene adrese 0 do 3, pa bitovi ABUS5…2 mora da budu nule dok se njihovo pojedinačno adresiranje realizuje bitovima ABUS1 i ABUS0. Na osnovu usvojene strukture adresa signal select ima aktivnu vrednost ukoliko su na adresnim linijama ABUS15…12 magistrale sve jedinice, na adresnim linijama ABUS11…6 se nalazi vrednost koja odgovara vrednosti postavljenoj mikroprekidačima i na adresnim linijama ABUS5…2 sve nule. Signali selCR, selSR, selIER i selDR se dobijaju na izlazima 0 do 3 dekodera DC na osnovu vrednosti signala ABUS1, ABUS0 i select sa ulaza 1, 0 i E, respektivno. Pri neaktivnoj vrednosti signala select i signali selCR, selSR, selIER i selDR su neaktivni. Pri aktivnoj vrednosti signala select jedan od signala selCR, selSR,

Page 222: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

216

selIER i selDR postaje aktivan i to signal određen binarnom vrednošću signala ABUS1 i ABUS0.

Signal select ima neaktivnu vrednost ukoliko se na adresnim linijama ABUS15…0 magistrale ne nalazi adresa iz opsega adresa dodeljenih registrima kontrolera periferije, pri čemu to može da bude ili adresa memorijske lokacije ili registra iz nekog drugog kontrolera periferije. Tada se u flip-flopove rds i wrs upisuju neaktivne vrednosti bez obzira na vrednosti signala RDBUS i WRBUS, respektivno.

Kombinaciona mreža za generisanje upravljačkog signala FCBUS magistrale generiše ovaj signal na osnovu signala OEfcbus i fcbus. Pri neaktivnoj vrednosti signala OEfcbus na liniji signala FCBUS je stanje visoke impedance. Pri aktivnoj vrednosti signala OEfcbus na liniji signala FCBUS je neaktivna ili aktivna vrednost koja odgovara vrednosti signala fcbus. Signal fcbus ima neaktivnu ili aktivnu vrednost u zavisnosti od toga da li je u kontroleru operacija čitanja ili upisa u toku ili je završena, respektivno.

Kombinacione i sekvencijalne mreže za realizaciju prekida formiraju signale intr procesora CPU, signal intas upravljačke jedinice uprav_jed_bus i signal inta na liniji intaout ulazno izlaznog uređaja U/I (slika 68). Ovi signali se formiraju na osnovu signala stintr i clintr, koje generišu upravljačke jedinice uprav_jed_per i uprav_jed_bus, respektivno, i signala inta na liniji intain, koji šalje processor ili kontroler uređaja prethodnika u lancu. Na njihovo formiranje utiče i to što više uređaja, serijski povezanih u lanac, po istoj liniji intr šalju signal zahteva za prekid procesoru, i što se signal dozvole prekida inta, dobijen po liniji intain od strane procesora ili kontrolera prethodnog uređaja u lancu, mora po liniji intaout serijski prosleđivati kontroleru sledećeg uređaja u lancu. Pored toga razred CR3 upravljačkog registra CR bloka registri određuje da li signal prekida intr treba formirati kao nivo ili kao impuls.

Ove kombinacione i sekvencijalne mreže realizuju dve vrste operacija vezano za realizaciju prekida. Prva se javlja kada kontroler treba da pošalje signal zahteva za prekid procesoru. Druga se javlja kada kontroler treba da prosledi signal dozvole prekida.

Kada kontroler treba u procesoru da izazove prekid, upravljačka jedinica uprav_jed_per generiše signal stintr. Kao rezultat formira se aktivna vrednost signala intr i time procesoru šalje zahtev za prekid. Procesor na ovaj zahtev u određenom trenutku reaguje tako što, između ostalog, slanjem aktivne vrednosti signala dozvole prekida inta kao gazda započinje ciklus prihvatanja broja ulaza na magistrali. Kontroler po dobijanju aktivne vrednosti signala inta na liniji intain i to od strane procesora, ukoliko je prvi u lancu, ili prethodnog uređaja u lancu, ukoliko nije prvi u lancu, formira aktivnu vrednost signala intas. Aktivna vrednost signala intas aktivira upravljačku jedinicu uprav_jed_bus da kontroler kao sluga realizuje ciklus prihvatanja broja ulaza na magistrali. Procesor kao gazda završava ciklus na magistrali tako što postavljanjem signal inta na neaktivnu vrednost ukida dozvolu prekida. Kontroler prima neaktivnu vrednost ovog signala po liniji intain, pa se kao rezultat formira neaktivna vrednost signala intas i time zaustavlja upravljačka jedinica uprav_jed_bus. Pored toga i bafer sa tri stanja, na čijem izlazu se formira signal intr, se prebacuje u stanje visoke impedanse. Ovo prebacivanje se realizuje na dva načina u zavisnosti od toga da li se signal prekida intr formira kao nivo ili kao impuls. Ukoliko se formira kao nivo, to se realizuje signalom clintr koji generiše upravljačka jedinica uprav_jed_bus po završetku ciklusa na magistrali. Ukoliko se formira kao impuls, to se realizuje interno generisanim signalom clpulse po isteku vremena zadatog mikroprekidačima.

Može se dogoditi da kontroler dobije aktivnu vrednost signala dozvole prekida inta po liniji intain iako on nije ni uputio zahtev za prekid procesoru. Aktivnu vrednost signala

Page 223: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

217

prekida intr je postavio kontroler nekog od uređaja sledbenika u lancu. Zbog toga se aktivna vrednost signala dozvole prekida inta dobijena po liniji intain prosleđuje po liniji intaout sledećem uređaju u lancu.

FFintrS

R Rd

mr

Q

Q

CLKCLK

PintrS

R Rd

mr

Q

Q

CLKCLK

enintr

INTRintasS

R Rd

mr

Q

Q

CLKCLK

intain

uprav_jed_bus

CPU

U/Iili

L

TIMELD

DEC

mikroprekidači

L

L

mr

CLK

5 0

5 0MR

CLK 5 0

CR3

uprav_jed_busclintr

registri

D

CLK

Q

QRd

mr

CLK

FFinta

intaoutU/I

CPUintr

D

CLK

Q

QRd

mr

CLK

DFFinta

clINTR

clpulse

clFFintr

D

CLK

Q

QRd

CLK

mr

stintruprav_jed_per

stPintr

Slika 68 Blok interfejs (drugi deo)

Kontroler uređaja koji je sledeći u lancu se po dobijanju dozvole prekida ponaša na jedan od dva prethodno opisana načina. Ukoliko je kontroler datog uređaja uputio zahtev za prekid procesoru, onda on kao sluga realizuje ciklus prihvatanja broja ulaza na magistrali. U suprotnom slučaju dozvola prekida se prosleđuje kontroleru sledećeg uređaja u lancu.

Flip-flop Pintr se postavlja na aktivnu vrednost pri pojavi aktivne vrednosti signala stPintr. Signal stPintr se formira kada upravljačka jedinica uprav_jed_per prođe kroz korak

Page 224: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

218

u kome se generiše aktivna vrednost signala stintr. Trajanje aktivne vrednosti signala stPintr je jedna perioda signala takta bez obzira na to koliko je trajanje aktivne vrednosti signala stintr. Flip-flop Pintr služi da se upamti da izlaz bafera sa tri stanja koji daje signal intr treba da pređe iz stanja visoke impedanse na aktivnu vrednost. Koliko će dugo flip-flop Pintr ostati aktivan zavisi od toga da li je neaktivna ili aktivna vrednost signala FFinta. Ako je signal FFinta neaktivan, signal enintr postaje aktivan, pa se na sledeći signal takta flip-flop FFintr postavlja na aktivnu, a flip-flop Pintr na neaktivnu vrednost. Ako je signal FFinta aktivan, signal enintr ostaje neaktivan, pa flip-flop Pintr ostaje aktivan, a flip-flop FFintr neaktivan. Vrednost signala FFinta prati vrednost signala inta sa linije intain sinhronizovanu na signal takta kontrolera. Njegova neaktivna vrednost označava da dozvola prekida nije dobijena, prelazak na aktivnu vrednost da je dozvola dobijena i povratak na neaktivnu da je dozvola ukinuta. Na početku, pošto nije bilo zahteva za prekid, nije bilo ni dozvole prekida, pa je signal FFinta neaktivan. S toga, po postavljanju flip-flopa Pintr na aktivnu vrednost, signal enintr odmah postaje aktivan, pa se na signal takta flip-flop Pintr postavlja na neaktivnu, a flip-flopovi FFintr i INTR na aktivnu vrednost. Postavljanjem flip-flopa FFintr na aktivnu vrednost izlaz bafera sa tri stanja koji daje signal intr prelazi iz stanja visoke impedanse na aktivnu vrednost. Postavljanjem flip-flopa INTR na aktivnu vrednost se pamti da je zahtev za prekid poslat procesoru.

Dalje aktivnosti nastaju tek kada se pojavi aktivna vrednost signala dozvole prekida inta na liniji intain koja dolazi iz procesora, ukoliko je uređaj prvi u lancu, ili prethodnog uređaja u lancu, ukoliko uređaj nije prvi u lancu. Koliko će vremena do tada proteći zavisi od toga kada će procesor, po prijemu aktivne vrednosti signala intr, da reaguje na zahtev za prekid i da, u okviru opsluživanja prekida, između ostalog, slanjem aktivne vrednosti signala dozvole prekida inta, kao gazda započne ciklus prihvatanja broja ulaza na magistrali i da li ima uređaja prethodnika u lancu koji su, takođe, uputili zahtev za prekid. U tom vremenskom intervalu još neki od uređaja u lancu može da postavi aktivnu vrednost signala zahteva za prekid intr. Kada se pojavi aktivna vrednost signala inta na liniji intain i flip-flop FFinta se na signal takta postavlja na aktivnu vrednost. Pošto je signal INTR aktivan, i signal intas postaje aktivan. Aktivna vrednost signala intas aktivira upravljačku jedinicu uprav_jed_bus da kontroler kao sluga realizuje ciklus prihvatanja broja ulaza na magistrali. Na sledeći signal takta i flip-flop DFFinta se postavlja na aktivnu vrednost. Ovaj flip-flop se koristi samo da bi sa flip-flopom FFinta formirao aktivnu vrednost signala clINTR trajanja jedna perioda signala takta pri prelasku signala potvrde prekida inta sa linije intain sa aktivne na neaktivnu vrednost.

Procesor kao gazda završava ciklus na magistrali tako što postavljanjem signala inta na neaktivnu vrednost ukida dozvolu prekida. Kontroler prima neaktivnu vrednost ovog signala po liniji intain koja dolazi iz procesora, ukoliko je prvi u lancu, ili prethodnog uređaja u lancu, ukoliko nije prvi u lancu i na sledeći signal takta postavlja flip-flop FFinta na neaktivnu vrednost. Neaktivna vrednost signala FFinta sa aktivnom vrednošću signala DFFinta daju aktivnu vrednost signala clINTR. Na sledeći signal takta se u flip-flopove INTR i DFFinta upisuju neaktivne vrednosti. Time se formira neaktivna vrednost signala intas, čime se zaustavlja upravljačka jedinica uprav_jed_bus, i neaktivna vrednost signala clINTR, čime se trajanje aktivne vrednosti signala clINTR ograničava na jednu periodu signala takta.

Pored toga i bafer sa tri stanja, na čijem izlazu se formira signal intr, se prebacuje u stanje visoke impedanse. Prebacivanje se realizuje postavljanjem flip-flopa FFintr na neaktivnu vrednost. Ono se realizuje na dva načina u zavisnosti od toga da li se signal prekida intr formira kao nivo ili kao impuls, što je određeno aktivnom i neaktivnom vrednošću signala

Page 225: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

219

CR3, respektivno. Po završetku ciklusa prihvatanja broja ulaza na magistrali upravljačka jedinica uprav_jed_bus prelazi na korak u kome generiše aktivnu vrednost signala clintr trajanja jedna perioda signala takta. Ukoliko je signal CR3 aktivan i signal clFFintr postaje aktivan, pa se na sledeći signal takta flip-flop FFintr postavlja na neaktivnu vrednost. S druge strane sve vreme dok je signal FFintr neaktivan u brojač TIME se upisuje sadržaj mikroprekidača, koji određuje trajanje aktivne vrednosti signala prekida intr. Ukoliko se zahtev za prekid generiše kao impuls, čim signal FFintr postane aktivan, kreće se sa dekrementiranjem sadržaja brojača TIME. Kada brojač prolazi kroz stanje nula, formira se aktivna vrednost signala clpulse trajanja jedna perioda signala takta. Ukoliko je signal CR3 neaktivan i signal clFFintr postaje aktivan, pa se na sledeći signal takta flip-flop FFintr postavlja na neaktivnu vrednost.

U kontroleru se može dogoditi da se na liniji intain dobije dozvola prekida iako kontroler nije postavio zahtev za prekid. To se dešava kada je zahtev za prekid postavio neki od kontrolera uređaja koji su sledbenici u lancu, pa dozvolu prekida treba po liniji intaout proslediti sledećem uređaju u lancu. Kako kontroler nije postavio zahtev za prekid flip-flop INTR nije postavljen. Kada procesor reagujući na dati zahtev za prekid da dozvolu prekida, signal inta sa linije intain postaje aktivan. Aktivna vrednost ovog signala dolazi u kontroler i to od procesora, ukoliko je prvi u lancu, ili od kontrolera uređaja prethodnika, ukoliko nije prvi u lancu, pa se na signal takta i flip-flop FFinta postavlja na aktivnu vrednost. Kako je signal INTR neaktivan, signal intas ostaje neaktivan, a signal sa linije intaout postaje aktivan. Neaktivnom vrednošću signala intas se obezbeđuje da kontroler kao sluga ne realizuje ciklus prihvatanja broja ulaza na magistrali, a aktivnom vrednošću signala sa linije intaout se dozvola prekida prosleđuje sledećem uređaju u lancu. Sledeći uređaj u lancu se, po dobijanju aktivne vrednosti signala dozvole prekida na svojoj liniji intain, ponaša na jedan od dva prethodno opisana načina u zavisnosti od toga da li je on ili neki od kontrolera uređaja sledbenika u lancu uputio zahtev za prekid. Kada dozvola za prekid stigne do prvog kontrolera uređaja koji je uputio zahtev za prekid, dati kontroler kao sluga realizuje ciklus prihvatanja broja ulaza na magistrali. Procesor kao gazda završava ciklus na magistrali tako što postavljanjem signala inta na neaktivnu vrednost ukida dozvolu prekida. Kontroler prvog uređaja u lancu po liniji intain prima neaktivnu vrednost ovog signala, koja dolazi iz procesora, i na sledeći signal takta postavlja flip-flop FFinta na neaktivnu vrednost. Neaktivna vrednost signala FFinta daje neaktivnu vrednost signala na liniji intaout, čime se ukidanje dozvole prekida prosleđuje kontroleru prvog sledećeg uređaja u lancu.

Treba uočiti da tokom prosleđivanja dozvole prekida od kontrolera do kontrolera uređaja koji su u lancu, flip-flopovi FFinta ostaju postavljeni. Da bi se flip-flop FFinta postavio na neaktivnu vrednost potrebno je da dozvola za prekid stigne do prvog kontrolera uređaja koji je uputio zahtev za prekid, da dati kontroler kao sluga realizuje ciklus prihvatanja broja ulaza na magistrali i da procesor kao gazda završi ciklus na magistrali postavljanjem signala inta na neaktivnu vrednost. Prvi kontroler u lancu prima neaktivnu vrednost ovog signala po liniji intain koja dolazi iz procesora i na sledeći signal takta postavlja flip-flop FFinta na neaktivnu vrednost. U međuvremenu se može dogoditi da se flip-flop Pintr postavi na aktivnu vrednost zbog toga što je upravljačka jedinica uprav_jed_per prošla kroz korak u kome se generiše aktivna vrednost signala stintr. Time se pamti da kontroler treba da uputi zahtev za prekid procesoru tako što će da generiše aktivnu vrednost signala intr. Međutim, kako je dozvola prekida prosleđena kontroleru sledećeg uređaja u lancu i kako kao rezultat toga još uvek nije realizovan ciklus prihvatanja broja ulaza na magistrali od strane kontrolera nekog od sledbenika u lancu, na šta ukazuje aktivna vrednost signala FFinta, signal enintr ostaje neaktivan. S toga flip-flop Pintr ostaje aktivan, a flip-flop FFintr neaktivan. Tek kada, najpre, kontroler uređaja sledbenika u lancu koji je postavio zahtev za prekid prosleđivanjem dobiju

Page 226: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

220

dozvolu prekida i realizuje kao sluga ciklus prihvatanja broja ulaza na magistrali, a zatim procesor, postavljanjem signala inta na neaktivnu vrednost, ukine dozvolu prekida, flip flopovi FFinta koji su postavljeni na aktivnu vrednost budu postavljeni na neaktivnu vrednost. Čim signal FFinta postane neaktivan, signal enintr postaje aktivan, pa se na sledeći signal takta flip-flopovi FFintr i INTR postavljaju na aktivnu, a flip-flop Pintr na neaktivnu vrednost. Pri aktivnoj vrednosti signala FFintr izlaz bafera sa tri stanja koji daje signal intr prelazi iz stanja visoke impedanse na aktivnu vrednost, čime se procesoru šalje zahtev za prekid.

6.2.2 Upravljačka jedinica

Upravljačka jedinica uprav_jed se sastoji iz dva dela: • upravljačke jedinice magistrale uprav_jed_bus i • upravljačke jedinice periferije uprav_jed_per.

Upravljačke jedinice uprav_jed_bus i uprav_jed_per rade isovremeno i omogućuju paralelan rad kontrolera periferije KP kao sluge sa magistralom BUS i kontrolera periferije KP sa periferijon PER.

Upravljačka jedinica uprav_jed_bus omogućuje da processor CPU kao gazda realizuje u kontroleru periferije KP kao slugi upisivanje sadržaja u registre, čitanje sadržaja iz registara i prihvatanje broja ulaza u tabelu sa adresama prekidnih rutina. Upisivanjem odgovarajućeg sadržaja u upravljački registar startuje se kontroler za prenos podataka iz periferije u memoriju i iz memorije u periferiju.

Prilikom startovanja kontrolera periferije za prenos podataka iz periferije u memoriju aktivira se upravljačka jedinica uprav_jed_per. Upravljačka jedinica uprav_jed_per prvo startuje periferiju da pročita podatak i smesti ga u registar podatka periferije, a zatim podatak prenosi iz registra podatka periferije, najpre, u pomoćni registar podatka kontrolera, a potom u registar podatka kontrolera. Podatak se prenosi iz registra podatka kontrolera u memoriju programskim putem sa dve instrukcije. Prvom instrukcijom se, uz aktiviranje upravljačke jedinice uprav_jed_bus, podatak prenosi iz registra podatka kontrolera u procesor. Drugom instrukcijom se podatak prenosi iz procesora u memoriju. Prenos podatka iz registra podatka u memoriju i čitanje novog podatka iz periferije sa prenosom iz registra podatka periferije u pomoćni registar podatka kontrolera su preklopljeni. Upravljačka jedinica uprav_jed_per novi podatak prenosi iz pomoćnog registra podatka u registar podatka tek pošto je upravljačka jedinica uprav_jed_bus prethodni podatak prenela iz registra podatka u procesor. Po prenosu podatka iz pomoćnog registra podatka u registar podatka, bit spremnost statusnog registra se postavlja na aktivnu vrednost i generiše prekid ukoliko je pri startovanju zadat režim rada sa generisanjem prekida. Prenos podataka iz periferije u memoriju traje dok se kontroler periferije ne zaustavi programskim putem.

Prilikom startovanja kontrolera periferije za prenos podataka iz memorije u periferiju aktivira se upravljačka jedinica uprav_jed_per. Podatak se prenosi iz memorije u registar podatka kontrolera programskim putem sa dve instrukcije. Prvom instrukcijom se podatak prenosi iz memorije u procesor. Drugom instrukcijom se, uz aktiviranje upravljačke jedinice uprav_jed_bus, podatak prenosi iz procesora u registar podatka kontrolera. Posle toga upravljačka jedinica uprav_jed_per podatak prenosi iz registra podatka kontrolera u pomoćni registar podatka kontrolera i startuje upis podatka u periferiju. Upis podatka iz pomoćnog registra podatka u periferiju i prenos novog podatka iz memorije u registar podatka kontrolera su preklopljeni. Upravljačka jedinica uprav_jed_per novi podatak prenosi iz registra podatka kontrolera u pomoćni registar podatka kontrolera tek pošto prethodni podatak iz pomoćnog registra podatka kontrolera upiše u periferiju. Po prenosu podatka iz registra podatka u

Page 227: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

221

pomoćni registar podatka, bit spremnost statusnog registra se postavlja na aktivnu vrednost i generiše prekid ukoliko je pri startovanju zadat režim rada sa generisanjem prekida. Prenos podataka iz memorije u periferiju traje dok se kontroler periferije ne zaustavi programskim putem.

Struktura i opis upravljačkih jedinica uprav_jed_bus i uprav_jed_per se daju u daljem tekstu.

6.2.2.1 Upravljačka jedinica magistrale

U ovom odeljku se daju dijagram toka operacija, algoritam generisanja upravljačkih signala, sekvenca upravljičkih signala za upravljačku jedinicu ožičene realizacije i struktura upravljačke jedinice uprav_jed_bus.

6.2.2.1.1 Dijagram toka operacija

Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 69). U operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim blokovima se nalaze opisi logičkih uslova koji definišu grananja algoritma.

U početnom koraku dijagrama toka operacija vrši se provera da li je procesor startovao u kontroleru ciklus čitanja, ciklus upisa ili ciklus prihvatanja broja ulaza, pri čemu se procesor ponaša kao gazda, a kontroler kao sluga. Ako nije startovan ni ciklus čitanja ni ciklus upisa ni ciklus prihvatanja broja ulaza ostaje se u početnom koraku. Ako je startovan jedan od ova tri ciklusa prelazi se na sledeći korak.

Ako je startovan ciklus čitanja ulazi se u petlju u kojoj se, saglasno protokolu za ciklus čitanja, procesoru kao gazdi šalje sadržaj očitanog registra kontrolera i indikacija da je kontroler kao sluga završio čitanje i čeka da procesor kao gazda pošalje indikaciju da je prihvatio očitani sadržaj i završio ciklus čitanja. Po dobijanju date indikacije izlazi se iz petlje i vrši provera da li je pročitan sadržaj registra podatka. Ukoliko nije, vraća se na početni korak. Ukoliko jeste, postavljaju se dve indikacije. Prva je interna indikacija da je registar podatka pročitan i da je on raspoloživ da se u njega prenese novi podatak iz pomoćnog registra podatka. Druga je postavljanje bita spremnost statusnog registra na neaktivnu vrednost kao indikacija da je registar podatka pročitan i da ne treba da se čita dok se u njega ne prenese novi podatak iz pomoćnog registra podatka. Posle toga se vraća na početni korak.

Ako je startovan ciklus upisa ulazi se u petlju u kojoj se, saglasno protokolu za ciklus upisa, procesoru kao gazdi šalje indikacija da je kontroler kao sluga završio upis i čeka da procesor kao gazda pošalje indikaciju da je završio ciklus upisa. Po dobijanju date indikacije izlazi se iz petlje i vrši provera da li je sadržaj upisan u registar podatka. Ukoliko nije, vraća se na početni korak. Ukoliko jeste, postavljaju se dve indikacije. Prva je interna indikacija da je u registar podatka upisan novi podatak i da je on raspoloživ da se iz njega prenese novi podatak u pomoćni registar podatka. Druga je postavljanje bita spremnost statusnog registra na neaktivnu vrednost kao indikacija da je u registar podatka upisan podatak i da ne treba da se vrši upis novog podatka dok se podatak iz njega ne prenese u pomoćni registar podatka. Posle toga se vraća na početni korak.

Ako je startovan ciklus prihvatanja broja ulaza ulazi se u petlju u kojoj se, saglasno protokolu za ciklus prihvatanja broja ulaza, procesoru kao gazdi šalje sadržaj očitanog registra broja ulaza i indikacija da je kontroler kao sluga završio prihvatanje broja ulaza i čeka da procesor kao gazda pošalje indikaciju da je prihvatio broj ulaza i završio ciklus prihvatanja broja ulaza. Po dobijanju date indikacije izlazi se iz petlje i vraća na početni korak.

Page 228: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

222

Da

li je

gaz

da st

arto

vao

cikl

us u

pisa

?

Da

li je

gaz

da st

arto

vao

cikl

us č

itanj

a ?

0

1

0

1

Da

li je

gaz

da st

arto

vao

cikl

us p

rihva

tanj

a br

oja

ulaz

a ?

0

Da

li je

čita

n sa

drža

jre

gist

ra p

odat

ka ?

1

0

Regi

star

pod

atka

je ra

spol

oživ

za sl

anje

nov

og p

odat

ka iz

pom

oćno

g re

gist

ra p

odat

ka

Kon

trole

r nije

spre

man

za

pren

ospo

datk

a iz

regi

stra

pod

atka

um

emor

iju p

rogr

amsk

im p

utem

Da

li je

upi

san

sadr

žaj u

regi

star

pod

atka

?1

0

Regi

star

pod

atka

je ra

spol

oživ

za sl

anje

nov

og p

odat

ka u

pom

oćni

regi

star

pod

atka

Kon

trole

r nije

spre

man

za

pren

ospo

datk

a iz

mem

orije

u re

gist

arpo

datk

a pr

ogra

msk

im p

utem

Slan

je sa

drža

ja re

gist

ra b

roja

ulaz

a ga

zdi

1

Da

li je

gaz

da z

avrš

ioci

klus

prih

vata

nja

broj

aul

aza

?

0

1

Indi

kaci

ja g

azdi

da

je c

iklu

spr

ihva

tanj

a br

oja

ulaz

a za

vrše

n

Upi

s sad

ržaj

a u

adre

sira

nire

gist

ar

Da

li je

gaz

da z

avrš

ioci

klus

upi

sa ?

0

1

Indi

kaci

ja g

azdi

da

je c

iklu

sup

isa

zavr

šen

Slan

je sa

drža

ja a

dres

irano

gre

gist

ra g

azdi

Da

li je

gaz

da z

avrš

ioci

klus

čita

nja

?0

1

Indi

kaci

ja g

azdi

da

je c

iklu

sči

tanj

a za

vrše

n

Slika 69 Dijagram toka operacija

6.2.2.1.2 Algoritam generisanja upravljačkih signala

Algoritam generisanja upravljačkih signala je formiran na osnovu dijagrama toka operacija (slika 69) i dat u obliku dijagrama toka upravljačkih signala (slika 70), sekvence upravljačkih signala po koracima (tabela73) i vremenskih oblika signala (slike 71, 72 i 73).

Dijagram toka upravljačkih signala je predstavljen operacionim i uslovnim blokovima (slika 70). U operacionim blokovima se nalaze upravljački signali i uslovi pod kojima se oni generišu. U uslovnim blokovima se nalaze signali logičkih uslova.

Page 229: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

223

if rd

s the

n O

Efcb

us,

if w

rs th

en O

Efcb

us,

if in

tas t

hen

OEf

cbus

step

0

step

3

0rds

wrs

1

inta

s0

1

OEf

cbus

,if

inta

s the

n (fc

bus,

IERo

ut),

if in

tas t

hen

clin

tr1 inta

s1

0

00

OEf

cbus

,if

wrs

then

fcbu

s,if

(wrs

*sel

CR)

then

CRi

n,if

(wrs

*sel

DR)

then

DRi

n,if

(wrs

*sel

IER)

then

IERi

n,if

(wrs

*sel

DR)

then

stW

RDRb

us,

if (w

rs*s

elD

R) th

en c

lSR0

bus

step

2

wrs

1

0

OEf

cbus

,if

rds t

hen

fcbu

s,if

(rds

*sel

CR)

then

CRo

ut,

if (r

ds*s

elSR

) the

n SR

out,

if (r

ds*s

elD

R) th

en D

Rout

,if

(rds

*sel

IER)

then

IERo

ut,

if (r

ds*s

elD

R) th

en st

RDD

Rbus

,if

(rds

*sel

DR)

then

clS

R0bu

s

step

1

rds

0

1

Slika 70 Dijagram toka upravljačkih signala

U sekvenci upravljačkih signala po koracima se koriste iskazi za signale i skokove. Iskazi za signale su oblika

signali i if uslov then signali.

Prvi iskaz sadrži spisak upravljačkih signala blokova operacione jedinice oper_jed i određuje koji se signali bezuslovno generišu. Drugi iskaz sadrži uslov i spisak upravljačkih signala blokova operacione jedinice oper_jed i određuje koji signali i pod kojim uslovima treba da budu generisani. Iskazi za skokove su oblika

Page 230: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

224

br (if uslov then stepA). Ovaj iskaz sadrži uslov i korak i određuje na koji korak i pod kojim uslovima treba preći.

Objašnjenja vezana za generisanje upravljačkih signala su data zajednički za dijagram toka upravljačkih signala i sekvencu upravljačkih signala po koracima i to u okviru sekvence upravljačkih signala po koracima.

Tabela 73 Sekvenca upravljačkih signala po koracima ! U koraku step0 se ostaje i ne generiše se aktivna vrednost ni jednog od upravljačkih signala sve dok su sva tri signala rds, wrs i intas bloka interfejs neaktivni. Signal rds postaje aktivan kada processor CPU prebaci adresne linije ABUS15..0 magistrale iz stanja visoke impedanse na vrednost adrese nekog od programski dostupnih registara CR15..0, SR15..0, IER15..0 ili DR15..0 bloka registri i započne ciklus čitanja. Signal wrs postaje aktivan kada processor prebaci adresne linije ABUS15..0 i linije podataka DBUS15..0 magistrale iz stanja visoke impedanse na vrednost adrese registra i sadržaja za upis u neki od programski dostupnih registara CR15..0, IER15..0 ili DR15..0, respektivno, i započne ciklus upisa. Signal intas postaje aktivan kada processor započne ciklus prihvatanja broja ulaza u tabelu sa adresama prekidnih rutina iz registra IER15..0. Pri aktivnoj vrednosti jednog od signala rds, wrs i intas generiše se signal OEfcbus bloka interfejs i prelazi na korak step1, step2 ili step3, respektivno. Signalom OEfcbus se obezbeđuje da upravljačka linija FCBUS magistrale pređe iz stanja visoke impedanse na neaktivnu vrednost signala fcbus upravljačke jedinice uprav_jed_bus. Koraci step1, step2 i step3 odgovaraju ciklusima čitanja, upisa i prihvatanja broja ulaza, respektivno. !

step0 if (rds+wrs+intas) then OEfcbus, br (if rds then step1), br (if wrs then step2), br (if intas then step3);

! U korak step1 se dolazi iz koraka step0. U ovom koraku se generiše signal OEfcbus, čime se obezbeđuje da se i dalje preko bafera sa tri stanja na upravljačku liniju FCBUS magistrale prosleđuje vrednost signala fcbus. U ovom koraku se ostaje sve vreme dok je signal rds aktivan. Dok je signal rds aktivan, generiše se aktivna vrednost signala fcbus. Time je i na upravljačkoj liniji FCBUS magistrale aktivna vrednost. Pri aktivnoj vrednosti signala rds, a u zavisnosti od toga koji od signala selCR, selSR, selDR i selIER bloka interfejs ima aktivnu vrednost, generiše se aktivna vrednost jednog od signala CRout, SRout, DRout i IERout bloka registri, respektivno. Signalima CRout, SRout, DRout i IERout se obezbeđuje da linije podataka DBUS15…0 magistrale pređu iz stanja visoke impedanse na vrednost sadržaja jednog od registara CR15..0, SR15..0, DR15..0 ili IER15..0, respektivno. Kada signal rds postane neaktivan i signali fcbus, CRout, SRout, DRout i IERout postanu neaktivni. Na liniji FCBUS se pojavljuje neaktivna vrednost, jer je signal OEfcbus još uvek aktivan, dok linije DBUS15…0 prelaze u stanje visoke impedanse. Pri neaktivnoj vrednosti signala rds i aktivnoj vrednosti signala selDR, što znači da je čitan sadržaja registra DR15..0, generišu se signali stRDDRbus i clSR0bus, bloka registri. Signalom stRDDRbus flip-flop RDDR se postavlja na aktivnu vrednost, što je indikacija da je registar DR15..0 bloka registri raspoloživ da se u njega prenese novi podatak iz registra DRAUX15..0 bloka registri. Signalom clSR0bus razred SR0 statusnog registra SR15..0 se postavlja na neaktivnu vrednost, što je indikacija da registar DR15..0 nije raspoloživ da se čita programskim putem dok se u njega ne prenese novi podatak iz registra DRAUX15..0. Pri neaktivnoj vrednosti signala rds prelazi se u korak step0. Time i signal OEfcbus postaje neaktivan, čime se obezbeđuje da linija FCBUS pređe sa neaktivne vrednosti na stanje visoke impedanse. !

step1 OEfcbus, if rds then fcbus, if (rds*selCR) then CRout, if (rds*selSR) then SRout, if (rds*selDR) then DRout, if (rds*selIER) then IERout, if (rds*selDR) then (stRDDRbus, clSR0bus), br (if rds then step0);

Page 231: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

225

! U korak step2 se dolazi iz koraka step0. U ovom koraku se generiše signal OEfcbus, čime se obezbeđuje da se i dalje preko bafera sa tri stanja na upravljačku liniju FCBUS magistrale prosleđuje vrednost signala fcbus. U ovom koraku se ostaje sve vreme dok je signal wrs aktivan. Dok je signal wrs aktivan, generiše se aktivna vrednost signala fcbus. Time je i na upravljačkoj liniji FCBUS magistrale aktivna vrednost. Pri aktivnoj vrednosti signala wrs, a u zavisnosti od toga koji od signala selCR, selDR i selIER bloka interfejs ima aktivnu vrednost, generiše se aktivna vrednost jednog od signala CRin, DRin i IERin bloka registri, respektivno. Signalima CRin, DRin i IERin se obezbeđuje da se sadržaj sa linija podataka DBUS15…0 magistrale upiše u jedan od registara CR15..0, DR15..0 ili IER15..0, respektivno. Kada signal wrs postane neaktivan i linije linije DBUS15…0 prelaze u stanje visoke impedanse. Pri neaktivnoj vrednosti signala wrs generišu se neaktivne vrednosti signala fcbus, CRin, DRin i IERin. Na liniji FCBUS se pojavljuje neaktivna vrednost, jer je signal OEfcbus još uvek aktivan. Pri neaktivnoj vrednosti signala wrs i aktivnoj vrednosti signala selDR, što znači da je sadržaj upisan u registar DR15..0, generišu se signali stWRDRbus i clSR0bus, bloka registri. Signalom stWRDRbus flip-flop WRDR se postavlja na aktivnu vrednost, što je indikacija da je registar DR15..0 bloka registri raspoloživ da se iz njega prenese novi podatak u registar DRAUX15..0 bloka registri. Signalom clSR0bus razred SR0 statusnog registra SR15..0 se postavlja na neaktivnu vrednost, što je indikacija da registar DR15..0 nije raspoloživ da se u njega programskim putem upiše novi podatak iz memorije dok se prethodni podatak iz njega ne prenese u registar DRAUX15..0. Pri neaktivnoj vrednosti signala wrs prelazi se u korak step0. Time i signal OEfcbus postaje neaktivan, čime se obezbeđuje da linija FCBUS pređe sa neaktivne vrednosti na stanje visoke impedanse. !

step2 OEfcbus, if wrs then fcbus, if (wrs*selCR) then CRin, if (wrs*selDR) then DRin, if (wrs*selIER) then IERin, if (wrs*selDR) then (stWRDRbus, clSR0bus), br (if wrs then step0);

! U korak step3 se dolazi iz koraka step0. U ovom koraku se generiše signal OEfcbus, čime se obezbeđuje da se i dalje preko bafera sa tri stanja na upravljačku liniju FCBUS magistrale prosleđuje vrednost signala fcbus. U ovom koraku se ostaje sve vreme dok je signal intas aktivan. Dok je signal intas aktivan, generiše se aktivna vrednost signala fcbus. Time je i na upravljačkoj liniji FCBUS magistrale aktivna vrednost. Pri aktivnoj vrednosti signala intas generiše se aktivna vrednost signala IERout bloka registri. Signalom IERout se obezbeđuje da linije podataka DBUS15…0 magistrale pređu iz stanja visoke impedanse na vrednost sadržaja registra IER15..0. Kada signal intas postane neaktivan i signali fcbus i IERout postanu neaktivni. Na liniji FCBUS se pojavljuje neaktivna vrednost, jer je signal OEfcbus još uvek aktivan, dok linije DBUS15…0 prelaze u stanje visoke impedanse. Pri neaktivnoj vrednosti signala intas generiše se signal clintr bloka interfejs. Signalom clintr se flip-flop FFintr bloka interfejs postavlja na neaktivnu vrednost. Time se i signal prekida intr bloka interfejs postavlja na neaktivnu vrednost u slučaju kada se zahtev za prekid šalje kao nivo. Pri neaktivnoj vrednosti signala intas prelazi se u korak step0. Time i signal OEfcbus postaje neaktivan, čime se obezbeđuje da linija FCBUS pređe sa neaktivne vrednosti na stanje visoke impedanse. !

step3 OEfcbus, if intas then (fcbus, IERout), if intas then clintr, br (if intas then step0);

Vremenski oblici signala su dati posebno za ciklus čitanja iz kontrolera periferije, za ciklus upisa u kontroler periferije i ciklus prihvatanja broja ulaza kontrolera periferije. Prilikom ciklusa čitanja iz kontrolera periferije se mogu čitati sadržaji registara CR15…0, SR15…0, DR15…0 i IER15…0. Vremenski oblici signala su veoma slični za ciklus čitanja sadržaja sva četiri registra, pa su dati samo za registar DR15…0 (slika 71). Prilikom ciklusa upisa u kontroler periferije sadržaj se može upisati u registre CR15…0, DR15…0 i IER15…0. Vremenski oblici signala su veoma slični za ciklus upisa sadržaja u sva tri registra, pa su dati samo za registar DR15…0 (slika 72). Prilikom ciklusa prihvatanja broja ulaza kontrolera periferije čita

Page 232: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

226

se sadržaj registra IER15…0, pri čemu su vremenski oblici signala veoma slični vremenskim oblicima signala za ciklus čitanja (slika 73). U koraku step0 se ostaje sve dok su neaktivne vrednosti signala rds, wrs i intas.

CLK

step0step1step0

ABUS

DBUS

selDR

rdsRDBUS

OEfcbusfcbus, DRout

FCBUS

stRDDRbus, clSR0bus

LLL

L

L

L

L

L

LLLLL

LL

L Slika 71 Vremenski oblici signala za ciklus čitanja iz kontrolera periferije

CLK

step0step2step0

ABUS, DBUSselDR

wrsWRBUS

OEfcbusfcbus, DRin

FCBUSstWRDRbus, clSR0bus

LLLL

LLLLLLL

L

L

L

Slika 72 Vremenski oblici signala za ciklus upisa u kontroler periferije

DBUS

intasintain

OEfcbusfcbus, IERout

FCBUS

clintr

CLK

step0step3step0

LLL

L

LLLLLLLL

L

Slika 73 Vremenski oblici signala za ciklus prihvatanja broja ulaza kontrolera periferije

Ciklus čitanja započinje procesor postavljanjem adrese registra DR15…0 na adresne linije ABUS15…0 magistrale, pa ove linije prelaze iz stanja visoke impedanse na odgovarajuću kombinaciju aktivnih i neaktivnih vrednosti. Kao rezultat u kontroleru se formira aktivna vrednost signala selDR. Nešto kasnije procesor startuje ciklus čitanja postavljanjem upravljačkog signala RDBUS magistrale na aktivnu vrednost. Ovaj signal sinhronizovan na signal takta kontrolera periferije daje aktivnu vrednost signal rds. Aktivna vrednost signala rds daje aktivnu vrednost signala OEfcbus, pa se na liniji FCBUS umesto stanja visoke impedanse pojavljuje neaktivna vrednost signala fcbus. Na osnovu aktivne vrednosti signala rds prelazi se iz koraka step0 u korak step1. U koraku step1 signal OEfcbus je aktivan, pa se na liniji FCBUS pojavljuje vrednost koja prati vrednost signala fcbus. U koraku step1 se pri

Page 233: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

227

aktivnoj vrednosti signala rds generišu aktivne vrednosti signala fcbus i DRout. Aktivna vrednost signala fcbus daje aktivnu vrednost signala FCBUS. Aktivna vrednost signala DRout obezbeđuje puštanje sadržaja registra DR15…0 na linije podataka DBUS15…0 magistrale, pa ove linije prelaze iz stanja visoke impedanse na odgovarajuću kombinaciju aktivnih i neaktivnih vrednosti. U koraku step1 se ostaje sve dok je aktivna vrednost signala rds. Pošto signal RDBUS postane neaktivan, na prvi signal takta i signal rds postane neaktivan. Tada i signali fcbus i DRout postanu neaktivni. Neaktivna vrednost signala fcbus daje i neaktivnu vrednost signala FCBUS. Neaktivna vrednost signala DRout daje stanje visoke impedanse na linijama DBUS15…0. Pri neaktivnoj vrednosti signala rds i aktivnoj vrednosti signala selDR, što znači da je čitan sadržaja registra DR15..0, generišu se signali stRDDRbus i clSR0bus. Signalom stRDDRbus flip-flop RDDR se postavlja na aktivnu vrednost, što je indikacija da je registar DR15..0 raspoloživ da se u njega prenese novi podatak iz registra DRAUX15..0. Signalom clSR0bus razred SR0 statusnog registra SR15..0 se postavlja na neaktivnu vrednost, što je indikacija da registar DR15..0 nije raspoloživ da se čita programskim putem dok se u njega ne prenese novi podatak iz registra DRAUX15..0. Pri neaktivnoj vrednosti signal rds prelazi se u korak step0. Tada i signal OEfcbus postane neaktivan, pa linija FCBUS prelazi u stanje visoke impedanse. Procesor, pošto konstatuje da je signal FCBUS postao neaktivan, ukida adresu registra DR15…0 sa adresnih linija ABUS15…0 magistrale, pa ove linije prelaze u stanja visoke impedanse.

Vremenski oblici signala za ciklus čitanja sadržaja registara CR15…0, SR15…0 i IER15…0 su veoma slični vremenskim oblicima signala za ciklus čitanja sadržaja registra DR15…0 (slika 71). Da bi se do njih došlo potrebno je u vremenskim oblicima signala za registar DR15…0 uzeti da se na adresnim linijama ABUS15…0 magistrale umesto adrese registra DR15…0 nalazi adresa jednog od registara CR15…0, SR15…0 ili IER15…0. Zbog toga treba uzeti i da se u kontroleru umesto aktivne vrednosti signala selDR formira aktivna vrednost jednog od signala selCR, selSR ili selIER. Takođe, umesto signala DRout traba generisati jedan od signala CRout, SRout ili IERout. Na kraju, u slučaju registara CR15…0, SR15…0 i IER15…0 nema generisanja signala stRDDRbus i clSR0bus.

Ciklus upisa započinje procesor postavljanjem adrese registra DR15…0 na adresne linije ABUS15…0 magistrale i sadržaja za upis u registar DR15…0 na linije podataka DBUS15…0 magistrale, pa ove linije prelaze iz stanja visoke impedanse na odgovarajuću kombinaciju aktivnih i neaktivnih vrednosti. Kao rezultat u kontroleru se formira aktivna vrednost signala selDR. Nešto kasnije procesor startuje ciklus upisa postavljanjem upravljačkog signala WRBUS magistrale na aktivnu vrednost. Ovaj signal sinhronizovan na signal takta kontrolera periferije daje aktivnu vrednost signal wrs. Aktivna vrednost signala wrs daje aktivnu vrednost signala OEfcbus, pa se na liniji FCBUS umesto stanja visoke impedanse pojavljuje neaktivna vrednost signal fcbus. Na osnovu aktivne vrednosti signala wrs prelazi se iz koraka step0 u korak step2. U koraku step2 signal OEfcbus je aktivan, pa se na liniji FCBUS pojavljuje vrednost koja prati vrednost signala fcbus. U koraku step2 se pri aktivnoj vrednosti signala wrs generišu aktivne vrednosti signala fcbus i DRin. Aktivna vrednost signala fcbus daje aktivnu vrednost signala FCBUS. Aktivna vrednost signala DRin obezbeđuje upis sadržaja sa linija podataka DBUS15…0 magistrale u registar DR15…0. U koraku step2 se ostaje sve dok je aktivna vrednost signala wrs. Pošto signal WRBUS postane neaktivan, na prvi signal takta i signal wrs postane neaktivan. Tada i signali fcbus i DRin postanu neaktivni. Neaktivna vrednost signala fcbus daje i neaktivnu vrednost signala FCBUS. Pri neaktivnoj vrednosti signala wrs i aktivnoj vrednosti signala selDR, što znači da je sadržaj upisan u registar DR15..0, generišu se signali stWRDRbus i clSR0bus. Signalom stWRDRbus flip-flop WRDR se postavlja na aktivnu vrednost, što je indikacija da je registar DR15..0 raspoloživ

Page 234: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

228

da se iz njega prenese podatak u registar DRAUX15..0. Signalom clSR0bus razred SR0 statusnog registra SR15..0 se postavlja na neaktivnu vrednost, što je indikacija da registar DR15..0 nije raspoloživ da se u njega upisuje programskim putem dok se iz njega ne prenese podatak u registar DRAUX15..0. Pri neaktivnoj vrednosti signal rds prelazi se u korak step0. Tada i signal OEfcbus postane neaktivan, pa linija FCBUS prelazi u stanje visoke impedanse. Procesor, pošto konstatuje da je signal FCBUS postao neaktivan, ukida adresu registra DR15…0 sa adresnih linija ABUS15…0 magistrale i sadržaj upisan u registar DR15…0 sa linija podataka DBUS15…0 magistrale, pa ove linije prelaze u stanje visoke impedanse.

Vremenski oblici signala za ciklus upisa sadržaja u registare CR15…0 i IER15…0 su veoma slični vremenskim oblicima signala za ciklus upisa sadržaja u registar DR15…0 (slika 72). Da bi se do njih došlo potrebno je u vremenskim oblicima signala za registar DR15…0 uzeti da se na adresnim linijama ABUS15…0 magistrale umesto adrese registra DR15…0 nalazi adresa jednog od registara CR15…0 ili IER15…0. Zbog toga treba uzeti i da se u kontroleru umesto aktivne vrednosti signala selDR formira aktivna vrednost jednog od signala selCR ili selIER. Takođe, umesto signala DRin treba generisati jedan od signala CRin ili IERin. Na kraju, u slučaju registara CR15…0 i IER15…0 nema generisanja signala stRDDRbus i clSR0bus.

Ciklus prihvatanja broja ulaza započinje procesor postavljanjem signala inta na aktivnu vrednost. Ovaj signal, koji se pojavljuje na liniji intain, sinhronizovan na signal takta kontrolera periferije daje aktivnu vrednost signal intas. Aktivna vrednost signala intas daje aktivnu vrednost signala OEfcbus, pa se na liniji FCBUS umesto stanja visoke impedanse pojavljuje neaktivna vrednost signal fcbus. Na osnovu aktivne vrednosti signala intas prelazi se iz koraka step0 u korak step3. U koraku step3 signal OEfcbus je aktivan, pa se na liniji FCBUS pojavljuje vrednost koja prati vrednost signala fcbus. U koraku step3 se pri aktivnoj vrednosti signala intas generišu aktivne vrednosti signala fcbus i IERout. Aktivna vrednost signala fcbus daje aktivnu vrednost signala FCBUS. Aktivna vrednost signala IERout obezbeđuje puštanje sadržaja registra IER15…0 na linije podataka DBUS15…0 magistrale, pa ove linije prelaze iz stanja visoke impedanse na odgovarajuću kombinaciju aktivnih i neaktivnih vrednosti. U koraku step3 se ostaje sve dok je aktivna vrednost signala intas. Pošto signal inta na liniji intain postane neaktivan, na prvi signal takta i signal intas postane neaktivan. Tada i signali fcbus i IERout postanu neaktivni. Neaktivna vrednost signala fcbus daje i neaktivnu vrednost signala FCBUS. Neaktivna vrednost signala IERout daje stanje visoke impedanse na linijama DBUS15…0. Pri neaktivnoj vrednosti signala intas generiše se signal clintr, koji se koristi da se i signal zahteva za prekid intr postavi na neaktivnu vrednost u slučaju kada se zahtev za prekid šalje kao nivo procesoru. Pri neaktivnoj vrednosti signal intas prelazi se u korak step0. Tada i signal OEfcbus postane neaktivan, pa linija FCBUS prelazi u stanje visoke impedanse.

6.2.2.1.3 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije

Upravljačka jedinica ožičene realizacije generiše dve vrste upravljačkih signala i to: • upravljačke signale blokova operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed_bus.

Upravljački signali blokova operacione jedinice oper_jed se koriste u blokovima operacione jedinice oper_jed radi izvršavanja mikrooperacija. Upravljački signali upravljačke jedinice uprav_jed_bus se koriste u upravljačkoj jedinici uprav_jed_bus radi inkrementiranja brojača koraka ili upisa nove vrednosti u brojač koraka.

Upravljački signali blokova operacione jedinice oper_jed se mogu generisati na osnovu sekvence upravljačkih signala po koracima (tabela 73). Za svaki upravljački signal blokova operacione jedinice oper_jed treba krenuti kroz sekvencu upravljačkih signala po koracima i

Page 235: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

229

tražiti korake sa iskazima za signale u kojima se pojavljuje dati signal. Za svaki takav korak treba uzeti signal dekodovanog stanja brojača koraka, ukoliko se signal bezuslovno generiše, i logički proizvod signala dekodovanog stanja brojača koraka i signala uslova, ukoliko se signal uslovno generiše, i formirati njihovu uniju.

Upravljački signali upravljačke jedinice uprav_jed_bus se ne mogu formirati na osnovu sekvence upravljačkih signala po koracima (tabela 73) jer se u njoj ne pojavljuju upravljački signali upravljačke jedinice uprav_jed_bus već samo iskazi za skok. Zbog toga je potrebno na osnovu sekvence upravljačkih signala po koracima, najpre, formirati sekvencu upravljačkih signala za upravljačku jedinicu ožičene realizacije. Prilikom njenog formiranja primenjuje se različiti postupak za upravljačke signale blokova operacione jedinice oper_jed i za upravljačke signale upravljačke jedinice uprav_jed_bus. Za upravljačke signale blokova operacione jedinice oper_jed treba staviti iskaze za signale onako kako se javljaju u sekvenci upravljačkih signala po koracima. Za upravljačke signale upravljačke jedinice uprav_jed_bus treba u sekvenci upravljačkih signala po koracima tražiti iskaze

br (if uslov then stepA) i umesto njih staviti

if uslov then (ldCNT, bv1,bv0) ili if uslov then incCNT.

Iskaz if uslov then (ldCNT, bv1,bv0)

se stavlja u onim koracima u kojima stepA nije prvi sledeći korak. U svakom takvom iskazu pored signala ldCNT, koji je obavezan, pojavljuje se i kombinacija aktivnih i neaktivnih vrednosti signala bv1 i bv0 koja odgovara binarnoj vrednosti A koraka stepA na koji treba preći ukoliko je signal uslov aktivan. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 74. Iskaz

if uslov then incCNT se stavlja u onim koracima u kojima je stepA prvi sledeći korak na koji treba preći ukoliko je signal uslov aktivan. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 75.

Tabela 74 Signali ldCNT, bv1 i bv0

stepA br (if uslov then stepA) if uslov then (ldCNT, bv1,bv0) step0 br (if wrs then step2) if wrs then (ldCNT, bv1) step0 br (if intas then step3) if intas then (ldCNT, bv1,bv0) step1 br (if rds then step0) if rds then ldCNT step2 br (if wrs then step0) if wrs then ldCNT step3 br (if intas then step0) if intas then ldCNT

Tabela 75 Signali incCNT

stepA br (if uslov then stepA) if uslov then incCNT step0 br (if rds then step1 if rds then incCNT

Po opisanom postupku je na osnovu sekvence upravljačkih signala po koracima (tabela 73) formirana sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 76). Ona ima sledeću formu:

• na levoj strani nalaze se dekodovani signali stanja brojača koraka, • u sredini je iskaz tipa

Page 236: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

230

signali, if uslov then signali, if uslov then (ldCNT, bv1,bv0) ili if uslov then incCNT,

• dok komentar, u koracima gde se to radi lakšeg razumevanja smatralo korisnim, uvek počinje uskličnikom (!) i proteže se do sledećeg uskličnika (!).

Iz izloženog se vidi da su upravljački signali za upravljačku jedinicu ožičene realizacije ldCNT, bv1, bv0 i incCNT. Oni se formiraju na osnovu dobijene sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije na identičan način kao i upravljački signali blokova operacione jedinice oper_jed.

Tabela 76 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije ! U koraku T0 se ostaje sve dok su i signal rds i signal wrs i signal intas neaktivni. Tada su neaktivne vrednostu signala incCNT i ldCNT, pa nema promene vrednosti brojača koraka CNT. Ukoliko je aktivna vrednost signala rds prelazi se u korak T1. Pri aktivnoj vrednosti signala rds generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 1. Ukoliko je aktivna vrednost signala wrs prelazi se u korak T2. Pri aktivnoj vrednosti signala wrs generišu se aktivne vrednosti signala ldCNT i bv1, pa se u brojač koraka CNT upisuje vrednost 2. Ukoliko je aktivna vrednost signala intas prelazi se u korak T3. Pri aktivnoj vrednosti signala intas generišu se aktivne vrednosti signala ldCNT, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 3. !

T0 if (rds+wrs+intas) then OEfcbus, if rds then incCNT, if wrs then (ldCNT, bv1), if intas then (ldCNT, bv1, bv0);

! U koraku T1 se ostaje sve dok je signal rds aktivan. Tada su neaktivne vrednostu signala incCNT i ldCNT, pa nema promene vrednosti brojača koraka CNT. Ukoliko je neaktivna vrednost signala rds prelazi se u korak T0. Pri aktivnoj vrednosti signala rds generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. !

T1 OEfcbus, if rds then fcbus, if (rds*selCR) then CRout, if (rds*selSR) then SRout, if (rds*selDR) then DRout, if (rds*selIER) then IERout, if (rds*selDR) then (stRDDRbus, clSR0bus), if rds then ldCNT;

! U koraku T2 se ostaje sve dok je signal wrs aktivan. Tada su neaktivne vrednostu signala incCNT i ldCNT, pa nema promene vrednosti brojača koraka CNT. Ukoliko je neaktivna vrednost signala rds prelazi se u korak T0. Pri aktivnoj vrednosti signala wrs generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. !

T2 OEfcbus, if wrs then fcbus, if (wrs*selCR) then CRin, if (wrs*selDR) then DRin, if (wrs*selIER) then IERin, if (wrs *selDR) then (stWRDRbus, clSR0bus), if wrs then ldCNT;

! U koraku T3 se ostaje sve dok je signal intas aktivan. Tada su neaktivne vrednostu signala incCNT i ldCNT, pa nema promene vrednosti brojača koraka CNT. Ukoliko je neaktivna vrednost signala intas prelazi se u korak T0. Pri aktivnoj vrednosti signala intas generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. !

step3 OEfcbus,

Page 237: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

231

if intas then (fcbus, IERout), if intas then clintr, if intas then ldCNT;

6.2.2.1.4 Struktura upravljačke jedinice

Struktura upravljačke jedinice ožičene realizacije je prikazana na slici 74. Upravljačka jedinica se sastoji od sledećih blokova:

• blok brojač koraka, • blok dekoder koraka i • blok generisanje upravljačkih signala.

CNT1...0 INC

LDCLK

1 0

D C

T3 T0

CNT0

1 0mr

MRCLK

...

...

0

3 0

... ...

bv0

ldCNTincCNT

bv1

CNT1

1

blok

regi

stri

blok

inte

rfej

s

generisanjeupravljačkih

signalablokova

operacionejedinice

ldC

NT

generisanjeupravljačkih

signalaupravljačke

jedinice

incC

NT

bv1

bv0

brojačkoraka

dekoderkoraka

generisanjeupravljačkih signala

inte

rfej

s1

44

24

43

selDR

intas

rdswrs

selCRselSRselIER

Slika 74 Struktura upravljačke jedinice uprav_jed_bus

Blok brojač koraka sadrži brojač CNT1...0. Brojač CNT1...0 svojom trenutnom vrednošću obezbeđuje aktivne vrednosti određenih upravljačkih signala. Brojač CNT1...0 može da radi u sledećim režimima:

• režim inkrementiranja, • režim skoka i • režim čekanja.

U režimu inkrementiranja pri pojavi signala takta vrši se uvećavanje sadržaja brojača CNT1...0 za jedan čime se obezbeđuje sekvencijalno generisanje upravljačkih signala iz

Page 238: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

232

sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 76). Ovaj režim rada se realizuje neaktivnom vrednošću signala ldCNT i aktivnom vrednošću signala incCNT (tabela 75).

U režimu skoka pri pojavi signala takta vrši se upis nove vrednosti u brojač CNT1...0 čime se obezbeđuje odstupanje od sekvencijalnog generisanja upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 76). Ovaj režim rada se realizuje aktivnom vrednošću signala ldCNT, neaktivnom vrednošću signala incCNT i kombinacijom aktivnih i neaktivnih vrednosti signala bv1 i bv0 koja odgovara vrednosti koju treba upisati u brojač CNT1...0 (tabela 78).

U režimu čekanja pri pojavi signala takta ne menja se vrednost brojača CNT1...0. Ovaj režim rada se obezbeđuje neaktivnim vrednostima signala ldCNT i incCNT.

Blok dekoder koraka sadrži dekoder DC. Na ulaze dekodera DC vode se izlazi brojača CNT1...0. Dekodovana stanja brojača CNT1...0 pojavljuju se kao signali T0 do T3 na izlazima dekodera DC. Svakom koraku iz sekvence upravljačkih signala po koracima (tabela 73) dodeljeno je po jedno stanje brojača CNT1...0 određeno vrednošću signala T0 do T3 i to koraku step0 signal T0, koraku step1 signal T1, itd.

Blok generisanje upravljačkih signala sadrži kombinacione mreže koje pomoću signala T0 do T3, koji dolaze sa bloka dekoder koraka, signala logičkih uslova selCR do intas, koji dolaze iz bloka interfejs, i saglasno sekvenci upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 76) generišu dve grupe upravljačkih signala i to:

• upravljačke signale blokova operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed_bus.

Upravljački signali blokova operacione jedinice oper_jed se daju posebno za blok registri i blok interfejs.

Upravljački signali bloka registri se generišu na sledeći način: • CRout = rds*selCR*T1 • SRout = rds*selSR*T1 • DRout = rds*selDR*T1 • IERout = rds*selIER*T1 + intas*T3 • CRin = wrs*selCR*T2 • DRin = wrs*selDR*T2 • IERin = wrs*selIER*T2 • stRDDRbus = rds*selDR*T1 • stWRDRbus = wrs*selDR*T2 • clSR0bus = rds *selDR*T1 + wrs*selDR*T2

Upravljački signali bloka interfejs se generišu na sledeći način: • OEfcbus = (rds + wrs + intas)*T0 + T1 + T2 + T3 • fcbus = rds*T1 + wrs*T2 + intas*T3 • clintr = intas*T3

Upravljački signali upravljačke jedinice uprav_jed_bus se generišu na sledeći način: • ldCNT = wrs*T0 + intas*T0 + rds*T1 + wrs*T2 + intas*T3 • bv1 = wrs*T0 + intas*T0 • bv0 = intas*T0 • incCNT = rds*T0

Page 239: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

233

Pri njihovom generisanju koriste se sledeći signali logičkih uslova koji dolaze iz bloka interfejs operacione jedinice oper_jed i to:

• rds — bloka interfejs. • wrs — bloka interfejs • intas — bloka interfejs • selCR — bloka interfejs • selSR — bloka interfejs • selDR — bloka interfejs • selIER — bloka interfejs

6.2.2.2 Upravljačka jedinica periferije

U ovom odeljku se daju dijagram toka operacija, algoritam generisanja upravljačkih signala, sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije i struktura upravljačke jedinice uprav_jed_per.

6.2.2.2.1 Dijagram toka operacija

Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 75). U operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim blokovima se nalaze opisi logičkih uslova koji definišu grananja algoritma.

U početnom koraku dijagrama toka operacija vrši se provera da li je kontroler startovan ili ne. Ako kontroler nije startovan ostaje se u početnom koraku i čeka startovanje kontrolera. Ako je kontroler startovan prelazi se na korak u kome se vrši provera da li je zadat prenos iz periferije u memoriju ili iz memorije u periferiju.

Ako je zadat prenos iz periferije u memoriju prelazi se na prenošenje podatka iz periferije u kontroler. Najpre se postavlja indikacija da je registar podatka raspoloživ da se u njega prenese podatak iz pomoćnog registra podatka. Zatim se postavlja zahtev periferiji da pročita podatak. Potom se u petlji vrši provera da li je kontroler zaustavljen programskim putem upisivanjem neaktivne vrednosti u razred start upravljačkog registra i da li je periferija završila čitanje podatka. Ukoliko se utvrdi da je kontroler zaustavljen, prekida se prenošenje podataka iz periferije u kontroler, vraća se u početni korak i čeka da se ponovo programskim putem upisivanjem aktivne vrednosti u razred start upravljačkog registra startuje kontroler. Ukoliko se utvrdi da je periferija očitala podatak i upisala ga u registar podatka periferije izlazi se iz petlje i podatak prenosi iz registra podatka periferije u pomoćni registar podatka kontrolera.

Potom se u petlji vrši provera da li je kontroler zaustavljen programskim putem i da li je registar podatka raspoloživ da se u njega prenese novi podatak iz pomoćnog registra podatka. Ukoliko se utvrdi da je kontroler zaustavljen, prekida se prenošenje podataka iz periferije u kontroler, vraća se u početni korak i čeka da se ponovo programskim putem startuje kontroler. Ukoliko se utvrdi da je registar podatka raspoloživ izlazi se iz petlje i podatak prenosi iz pomoćnog registra podatka u registar podatka. Istovremeno se postavlja indikacija da registar podatka nije raspoloživ da se u njega prenese novi podatak iz pomoćnog registra podatka sve dok se programskim putem podatak ne prenese iz registra podatka u memoriju. Pored toga bit spremnost statusnog registra kontrolera se postavlja na aktivnu vrednost, čime se postavlja indikacija da je kontroler spreman za prenos podatka iz registra podatka u memoriju, i generiše prekid, ukoliko je pri startovanju zadat režim sa generisanjem prekida. Na kraju se vraća na korak u kome se postavlja zahtev periferiji da pročita sledeći podatak. Opisane aktivnosti se ponavljaju sve dok se kontroler ne zaustavi programskim putem.

Page 240: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

234

Indikacija da u registrupodatka nema podatka zaprenos u pomoćni registar

podatka

Da li je kontrolerstartovan ?

Da li je zadat prenos izperiferije u memoriju ?

0

0

1

1

Indikacija da je kontroler spremanza prenos podatka iz memorije u

registar podatka

Prenos podatka iz registrapodatka u pomoćni registar

podatka

Indikacija da u registrupodatka nema podatka zaprenos u pomoćni registar

podatka

Ako je zadat režim rada saprekidom generisanje prekida

Da li podatak može dase prenese iz registrapodatka u pomoćniregistar podatka ?

Da li je kontrolerzaustavljen ?

0

1

0

1

Indikacija da je kontroler spremanza prenos podatka iz memorije u

registar podatka

Ako je zadat režim rada saprekidom generisanje prekida

Da li je kontrolerzaustavljen ?

Zahtev periferiji za upispodatka iz pomoćnog registra

podatka

Da li je kontrolerzaustavljen ?

Da li je periferija završilaupis podatka ?

0

0

1

1

0

1

Indikacija da u registarpodatka može da se prenosi

podatak iz pomoćnog registrapodatka

Zahtev periferiji za čitanjepodatka

Da li je periferija završilačitanje podatka ?

Da li je kontrolerzaustavljen ?

0

1

0

Prenos podatka iz prihvatnogregistra podatka periferije upomoćni registar podatka

kontrolera

1

Da li u registar podatkamože da se prenese

podatka iz pomoćnogregistra podatka ?

Da li je kontrolerzaustavljen ?

1

0

0

1

Indikacija da u registarpodatka ne može da se prenosipodatak iz pomoćnog registra

podatka

Prenos podatka iz pomoćnogregistra podatka u registar

podatka

Ako je zadat režim rada saprekidom generisanje prekida

Indikacija da je kontroler spremanza prenos podatka iz registra

podatka u memoriju

Slika 75 Dijagram toka operacija

Page 241: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

235

Ako je u zadat prenos iz memorije u periferiju prelazi se na prenošenje podatka iz kontrolera u periferiju. Najpre se postavlja indikacija da registar podatka nije raspoloživ da se iz njega prenosi podatak u pomoćni registar podatka sve dok se programskim putem podatak ne prenese iz memorije u registar podatka. Zatim se postavlja na aktivnu vrednost bit spremnost statusnog registra kontrolera, čime se postavlja indikacija da je kontroler spreman za prenos podatka iz memorije u registar podatka, i generiše prekid, ukoliko je pri startovanju zadat režim sa generisanjem prekida. Potom se u petlji vrši provera da li je kontroler zaustavljen programskim putem i da li je registar podatka raspoloživ da se iz njega prenese novi podatak u pomoćni registar podatka. Ukoliko se utvrdi da je kontroler zaustavljen, prekida se prenošenje podataka iz kontrolera u periferiju, vraća se u početni korak i čeka da se ponovo programskim putem, startuje kontroler. Ukoliko se utvrdi da je registar podatka raspoloživ izlazi se iz petlje i podatak prenosi iz registra podatka u pomoćni registar podatka. Istovremeno se postavlja indikacija da registar podatka nije raspoloživ da se iz njega prenosi podatak u pomoćni registar podatka sve dok se programskim putem podatak ne prenese iz memorije u registar podatka. Pored toga na aktivnu vrednost se postavlja bit spremnost statusnog registra kontrolera, čime se postavlja indikacija da je kontroler spreman za prenos podatka iz memorije u registar podatka, i generiše prekid, ukoliko je pri startovanju zadat režim sa generisanjem prekida.

Zatim se vrši provera da li je kontroler zaustavljen programskim putem. Ukoliko se utvrdi da je kontroler zaustavljen, prekida se prenošenje podataka iz kontrolera u periferiju, vraća se u početni korak i čeka da se ponovo programskim putem startuje kontroler. Ukoliko se utvrdi da kontroler nije zaustavljen periferiji se postavlja zahtev da upiše sledeći podatak. Potom se u petlji vrši provera da li je kontroler zaustavljen programskon putem i da li je periferija završila upis padatka. Ukoliko se utvrdi da je kontroler periferije zaustavljen, prekida se prenošenje podataka iz kontrolera u periferiju, vraća se u početni korak i čeka da se ponovo programskim putem startuje kontroler. Ukoliko se utvrdi da je periferija završila upis podatka iz pomoćnog registra podatka kontrolera izlazi se iz ove petlje i vraća u petlju u kojoj se vrši provera da li je kontroler zaustavljen programskim putem i da li je registar podatka kontrolera raspoloživ da se iz njega prenese novi podatak u pomoćni registar podatka kontrolera. Opisane sktivnosti se ponavljaju sve dok se kontroler ne zaustavi programskim putem.

6.2.2.2.2 Algoritam generisanja upravljačkih signala

Algoritam generisanja upravljačkih signala je formiran na osnovu dijagrama toka operacija (slika 75) i dat u obliku dijagrama toka upravljačkih signala (slika 76), sekvence upravljačkih signala po koracima (tabela 77) i vremenskih oblika signala (slike 77 i 78).

Dijagram toka upravljačkih signala je predstavljen operacionim i uslovnim blokovima (slika 76). U operacionim blokovima se nalaze upravljački signali i uslovi pod kojima se oni generišu. U uslovnim blokovima se nalaze signali logičkih uslova.

U sekvenci upravljačkih signala po koracima se koriste iskazi za signale i skokove. Iskazi za signale su oblika

signali i if uslov then signali.

Prvi iskaz sadrži spisak upravljačkih signala periferije PER i blokova operacione jedinice oper_jed i određuje signale koji se bezuslovno generišu. Drugi iskaz sadrži uslov i spisak upravljačkih signala periferije PER i blokova operacione jedinice oper_jed i određuje koji signali i pod kojim uslovima se generišu. Iskazi za skokove su oblika

br (if uslov then stepA). Ovaj iskaz sadrži uslov i korak i određuje na koji korak i pod kojim uslovima treba preći.

Page 242: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

236

0

if (CR2*CR0) then stRDDRper,if (CR2*CR0) then (clWRDRper, stSR0),if (CR2*CR1*CR0) then stintr

1

if (CR2*WRDR) then DRAUXin,if (CR2*WRDR) then clWRDRper,if (CR2*WRDR) then stSR0,if (CR2*CR1*WRDR) then stintr;

step0

step5

CR2

CR0

0

1

reqrdstep1

step2

step4

ldDRAUXstep3

CR2

CR2

reqrd_done

CR2

if (CR2*RDDR) then ldDR,if (CR2*RDDR) then clRDDRper,if (CR2*RDDR) then stSR0,if (CR2*CR1*RDDR) then stintr

CR2

RDDR

0

1

01

1

0

0

1

0

10

1

reqwrstep6

step7

reqwr_done

CR2

CR2

WRDR

CR20

01

1

0

1

1

1

0

0

Slika 76 Dijagram toka upravljačkih signala

Objašnjenja vezana za generisanje upravljačkih signala su data zajednički za dijagram toka upravljačkih signala i sekvencu upravljačkih signala po koracima i to u okviru sekvence upravljačkih signala po koracima.

Tabela 77 Sekvenca upravljačkih signala po koracima ! U koraku se step0 se ostaje i ne generiše se aktivna vrednost ni jednog od upravljačkih signala sve dok je signal CR2 bloka registri neaktivan. Signal CR2 postaje aktivan tek kada se programskim putem startuje kontroler periferije. Tom prilikom se u upravljački registar CR15…0 bloka registri upisuje sadržaj koji na poziciji razreda CR2 ima aktivnu vrednost. Na poziciji razreda CR0 je aktivna ili neaktivna vrednost i zavisnosti od toga da li je zadat prenos iz periferije u memoriju ili iz memorije u periferiju, respektivno. Na poziciji razreda CR1 je aktivna ili neaktivna vrednost i zavisnosti od toga da li je zadat režim rada sa generisanjem ili bez generisanja prekida, respektivno. Pri aktivnim vrednostima signala CR2 i CR0 generiše se signal stRDDRper bloka registri i prelazi na korak step1 koji odgovara prenosu iz periferije u memoriju. Signalom stRDDRper se upisuje aktivna vrednost u flip-flop RDDR bloka registri. Ova vrednost je indikacija da je registar podatka DR15…0 raspoloživ da se u njega prenese podatak iz pomoćnog registra podatka DRAUX15…0 bloka registri. Pri aktivnoj i neaktivnoj vrednosti signala CR2 i CR0, respektivno, generišu se signali clWRDRper i stSR0 bloka registri i prelazi na korak step5, koji odgovara prenosu iz memorije u periferiju. Signalom clWRDRper se upisuje neaktivna vrednost u flip-flop WRDR bloka registri. Ova vrednost je indikacija da registar podatka DR15…0 nije raspoloživ da se iz njega prenese podatak u pomoćni registar podatka DRAUX15…0 bloka registri. Signalom stSR0 se upisuje aktivna vrednost u razred SR0

Page 243: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

237

statusnog registra SR15…0 bloka registri. Ovaj razred odgovara bitu spremnost i njegova aktivna vrednost pri prenosu iz memorije u periferiju služi kao indikacija procesoru da može programskim putem da prenese prvi podatak iz memorije u registar DR15…0. Ukoliko je pri aktivnoj i neaktivnoj vrednosti signala CR2 i CR0, respektivno, i signal CR1 aktivan, generiše se signal stintr bloka interfejs. Ovim signalom se pri prenosu iz memorije u periferiju pokreće generisanje signala prekida, da bi processor skočio na odgovarajuću prekidnu rutinu i u okvuru nje programskim putem preneo prvi podatak iz memorije u registar DR15…0. !

step0 if (CR2*CR0) then stRDDRper, if (CR2*CR0) then (clWRDRper, stSR0), if (CR2*CR1*CR0) then stintr, br (if (CR2*CR0) then step1), br (if (CR2*CR0) then step5);

! U korak step1 se dolazi iz koraka step0 ili koraka step4. U ovom koraku se generiše signal reqrd, koji predstavlja zahtev periferiji da pročita sledeći podatak. Ukoliko je neaktivna vrednost signala CR2, što znači da je programskim putem upisivanjem neaktivne vrednosti u razred CR2 upravljačkog registra CR zaustavljen rad kontrolera, prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2 prelazi se u korak step2. !

step1 reqrd, br (if CR2 then step0), br (if CR2 then step2);

! U korak step2 se dolazi iz koraka step1. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2, ili se ostaje u koraku step2 ili se prelazi u korak step3 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal reqrd_done periferije PER, respektivno. Neaktivna vrednost signala reqrd_done je indiakcija da čitanje podatka u periferiji još uvek traje, a aktivna vrednost da je podatak očitan i da se nalazi u registru PRP15...0 periferije. !

step2 br (if CR2 then step0), br (if (CR2*reqrd_done) then step3);

! U korak step3 se dolazi iz koraka step2. U ovom koraku se generiše signal ldDRAUX. Ovim signalom se sadržaj registra PRP15...0 periferije, koji u kontroler periferije dolazi po linijama DIN15...0, propušta kroz multiplekser MP2 bloka registri i upisuje u pomoćni registar podatka DRAUX15...0 bloka registri. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2 prelazi se u korak step4. !

step3 ldDRAUX, br (if CR2 then step0), br (if CR2 then step4);

! U korak step4 se dolazi iz koraka step3. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2, ili se ostaje u koraku step4 ili se prelazi u korak step1 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal RDDR bloka registri, respektivno. Neaktivna vrednost signala RDDR je indikacija da registar podatka DR15...0 nije raspoloživ, jer prethodni podatak još uvek nije programskim putem prenet iz registra DR15...0 u memoriju. Aktivna vrednost signala RDDR je indikacija da je registar podatka DR15...0 raspoloživ, pa se generišu signali ldDR, clRDDRper i stSR0. Signalom ldDR se sadržaj registra DRAUX15...0 bloka registri propušta kroz multiplekser MP1 bloka registri i upisuje u registar podatka DR15...0. Signalom clRDDRper se u flip-flop RDDR upisuje neaktivna vrednost. Ova vrednost je indikacija da registar DR15...0 nije raspoloživ da se u njega prenese novi podatak iz registra DRAUX15...0 sve dok se programskim putem prethodni podatak ne prenese iz registra DR15...0 u memoriju. Signalom stSR0 se upisuje aktivna vrednost u razred SR0 statusnog registra SR15…0 bloka registri. Ovaj razred odgovara bitu spremnost i njegova aktivna vrednost pri prenosu iz periferije u memoriju služi kao indikacija procesoru da može programskim putem da prenese podatak iz registra DR15...0 u memoriju. Ukoliko je pri aktivnim vrednostima signala CR2 i RDDR i signal CR1 aktivan, generiše se signal stintr bloka interfejs. Ovim signalom se pri prenosu iz periferije u memoriju pokreće generisanje signala prekida, da bi procesor skočio na odgovarajuću prekidnu rutinu i u okvuru nje programskim putem preneo podatak iz registra DR15...0 u memoriju. !

step4 if (CR2*RDDR) then (ldDR, stSR0, clRDDRper),

Page 244: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

238

if (CR2*CR1*RDDR) then stintr, br (if CR2 then step0), br (if (CR2*RDDR) then step1);

! U korak step5 se dolazi iz koraka step0 ili koraka step7. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2, ili se ostaje u koraku step5 ili se prelazi u korak step6 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal WRDR bloka registri, respektivno. Neaktivna vrednost signala WRDR je indikacija da registar podatka DR15...0 bloka registri nije raspoloživ, jer novi podatak još uvek nije programskim putem prenet iz memorije u registar DR15...0. Aktivna vrednost signala WRDR je indikacija da je podatak programskim putem prenet iz memorije u registar podatka DR15...0 da je registar DR15...0 raspoloživ. Po upisu podatka u registar DR15...0 upravljačka jedinica uprav_jed_bus signalom stWRDRbus postavlja flip-flop WRDR na aktivnu vrednost. Pri aktivnoj vrednosti signala WRDR generišu se signali DRAUXin, clWRDRper i stSR0. Neaktivnom vrednošću signal ldDRAUX se sadržaj registra DR15...0 propušta kroz multiplekser MP2 bloka registri, a aktivnom vrednošću signala DRAUXin i upisuje u pomoćni registar podatka DRAUX15...0 bloka registri. Signalom clWRDRper se u flip-flop WRDR upisuje neaktivna vrednost. Ova vrednost je indikacija da registar DR15...0 nije raspoloživ i da njegov sadržaj ne može da se prenese u registar DRAUX15...0 sve dok se programskim putem novi podatak ne prenese iz memorije u registar DR15...0. Signalom stSR0 se upisuje aktivna vrednost u razred SR0 statusnog registra SR15…0 bloka registri. Ovaj razred odgovara bitu spremnost i njegova aktivna vrednost pri prenosu iz memorije u periferiju služi kao indikacija procesoru da može programskim putem da prenese podatak iz memorije u registar DR15...0. Ukoliko je pri aktivnim vrednostima signala CR2 i RDDR i signal CR1 aktivan, generiše se signal stintr bloka interfejs. Ovim signalom se pri prenosu iz memorije u periferiju pokreće generisanje signala prekida, da bi procesor skočio na odgovarajuću prekidnu rutinu i u okvuru nje programskim putem preneo podatak iz memorije u registar DR15...0. !

step5 if (CR2*WRDR) then (DRAUXin, clWRDRper, stSR0), if (CR2*CR1*WRDR) then stintr, br (if CR2 then step0), br (if (CR2*WRDR) then step6);

! U korak step6 se dolazi iz koraka step5. U ovom koraku se generiše signal reqwr, koji predstavlja zahtev periferiji da upiše podatak iz registra DRAUX15…0. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2 prelazi se u korak step7. !

step6 reqwr, br (if CR2 then step0), br (if CR2 then step7);

! U korak step7 se dolazi iz koraka step6. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2, ili se ostaje u koraku step7 ili se prelazi u korak step5 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal reqwr_done periferije PER, respektivno. Neaktivna vrednost signala reqwr_done je indikacija da upis podatka iz registra DRAUX15...0 u periferiju još uvek traje, a aktivna vrednost da je podatak upisan. !

step7 br (if CR2 then step0), br (if (CR2*reqwr_done) then step5);

Vremenski oblici signala su dati posebno pri prenosu podataka iz periferije u memoriju (slika 77) i pri prenosu podataka iz memorije u periferiju (slika 78). U oba slučaja ostaje se u koraku step0 sve dok kontroler periferije nije startovan (CR2=0).

Nakon startovanja kontrolera periferije (CR2=1) za prenos iz periferije u memoriju (CR0=1) sa generisanjem prekida (CR1=1) u koraku step0 se generiše aktivna vrednost signala stRDDRper i prelazi u korak step1. Signalom stRDDRper se flip-flop RDDR postavlja na aktivnu vrednost. U koraku step1 se generiše aktivna vrednost signala reqrd i prelazi u korak step2. U koraku step2 se ostaje sve dok je neaktivna vrednost signala reqrd_done. Kada podatak postane raspoloživ i signal reqrd_done postane aktivan. Tada se prelazi u korak step3. U koraku step3 se generiše aktivna vrednost signala ldDRAUX, čime se sa ulaznih

Page 245: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

239

linija podataka PIN15...0 iz periferije preuzima podatak i upisuje u pomoćni registar podatka DRAUX15...0, i prelazi u korak step4.

CR2, CR1, CR0

ldDRAUXldDR, clRDDRper, stSR0, stintr

reqrdreqrd_done

stRDDRperRDDR

L

LLL

L

L

L

L

L

L L

L L

L L

LL

L

L

LL

L L

L

L

stRDDRbus L L

L

L

LL

L

L

L

L

L

L

L

CLK

step1step0 step2

L

step3step4step1 step2 step4

L

step3

L

step1

L

step2

Slika 77 Vremenski oblici signala pri prenosu iz periferije u memoriju

U koraku step4 se ostaje jedna perioda signala takta ukoliko je signal RDDR aktivan i više perioda signala takta ukoliko je neaktivan. Aktivna vrednost signala RDDR je indikacija da su procesor i upravljačka jedinica uprav_jed_bus preneli prethodni podatak iz registra DR15...0 u memoriju i da je registar DR15...0 raspoloživ. Neaktivna vrednost signala RDDR je indikacija da procesor i upravljačka jedinica uprav_jed_bus još uvek nisu preneli prethodni podatak iz registra DR15...0 u memoriju i da u registar DR15...0 ne sme da se upisuje novi podatak iz registra DRAUX15...0. Prilikom prenosa prvog podatka registar DR15...0 je raspoloživ, pa je zato flip-flop RDDR postavljan na aktivnu vrednost. Pri aktivnoj vrednosti signala RDDR u koraku step4 se generišu aktivne vrednosti signala ldDR, clRDDRper i stSR0 i, pošto je uzeto da je kontroler periferije startovan za režim rada sa generisanjem prekida (CR1=1), aktivna vrednost signala stintr. Signalom ldDR se novi podatak prenosi iz registra DRAUX15...0 u registar DR15...0. Signalom clRDDRper se flip-flop RDDR postavlja na neaktivnu vrednost. Signalom stSR0 se bit spremnost SR0 statusnog registra postavlja na aktivnu vrednost. Signalom stintr se startuje generisanje signala prekida intr. Pri aktivnoj vrednosti signala RDDR se prelazi iz koraka step4 u korak step1. Time je prenos jednog podatka iz periferije u kontroler završen i započinje prenos sledećeg podatka. Pri tome je uzeta situacija koja se javlja ukoliko se radi o brzoj periferiji. Novi podatak je prenet iz periferije u pomoćni registar podatka DRAUX15...0, a da prethodni podatak nije prenet iz registra podatka DR15...0 u memoriju. Zbog toga se po prelasku u korak step4 u flip-flopu RDDR zatiče neaktivna vrednost. Kada procesor i upravljačka jedinica uprav_jed_bus prenesu prethodni podatak iz registra podatka DR15...0 u memoriju i upravljačka jedinica uprav_jed_bus generiše aktivnu vrednost signala stRDDRbus, flip-flop RDDR se postavlja na aktivnu vrednost. Pri aktivnoj vrednosti signala RDDR u koraku step4 se generišu aktivne vrednosti signala ldDR, clRDDRper i stSR0 i, pošto je uzeto da je kontroler periferije startovan za režim rada sa generisanjem prekida (CR1=1), aktivna vrednost signala stintr. Signalom ldDR se novi podatak prenosi iz registra DRAUX15...0 u registar DR15...0. Signalom clRDDRper se flip-flop RDDR postavlja na neaktivnu vrednost. Signalom stSR0 se bit spremnost SR0 statusnog registra postavlja na aktivnu vrednost. Signalom stintr se startuje generisanje signala prekida intr. Pri aktivnoj vrednosti signala RDDR se prelazi iz koraka step4 u korak step1. Time je prenos još jednog podatka iz periferije u završen i započinje prenos sledećeg podatka.

Nakon startovanja kontrolera (CR2=1) za prenos iz memorije u periferiju (CR0=0) sa generisanjem prekida (CR1=1) u koraku step0 se generišu aktivne signala clWRDRper, stSR0 i stintr. Zbog aktivnih vrednosti signala clWRDRper, stSR0 i stintr na sledeći signal

Page 246: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

240

takta se flip-flop WRDR postavlja na neaktivnu vrednost, bit spremnost SR0 statusnog registra postavlja na aktivnu vrednost i startuje generisanje signala prekida intr, respektivno. Na isti signal takta se prelazi iz koraka step0 u korak step5.

CLK

step5step0

CR2, CR1CR0

L

LL

step5step6 step7

LLLL

L

LLL

L L

step6 step7

LLL

L

DRAUXinreqwr

reqwr_done

L

L

L

L

L

L

L

L

L

L

L

L

WRDR L L L L

stWRDRbus L L LL

LclWRDRper, stSR0, stintr L L L

Slika 78 Vremenski oblici signala pri prenosu iz memorije u periferiju

U koraku step5 se ostaje jedna perioda signala takta ukoliko je signal WRDR aktivan i više perioda signala takta ukoliko je neaktivan. Aktivna vrednost signala WRDR je indikacija da su procesor i upravljačka jedinica uprav_jed_bus preneli podatak iz memorije u registar DR15...0 i da je registar DR15...0 raspoloživ. Neaktivna vrednost signala WRDR je indikacija da registar podatka DR15...0 nije raspoloživ, jer procesor i upravljačka jedinica uprav_jed_bus još uvek nisu preneli podatak iz memorije u registar DR15...0, i da iz registra DR15...0 podatak ne sme da se prenosi u registar DRAUX15...0. Pri prenosu prvog podatka registar DR15...0 nije raspoloživ, pa je zato i flip-flop WRDR postavljen na neaktivnu vrednost. Po upisu podatka u registar DR15...0 upravljačka jedinica uprav_jed_bus signalom stWRDRbus postavlja flip-flop WRDR na aktivnu vrednost. Pri aktivnoj vrednosti signala WRDR u koraku step5 se generišu aktivne vrednosti signala DRAUXin, clWRDRper i stSR0 i, pošto je uzeto da je kontroler startovan za režim rada sa generisanjem prekida (CR1=1), aktivna vrednost signala stintr. Signalom DRAUXin se novi podatak prenosi iz registra DR15...0 u registar DRAUX15...0. Signalom clWRDRper se flip-flop WRDR postavlja na neaktivnu vrednost. Signalom stSR0 se bit spremnost SR0 statusnog registra postavlja na aktivnu vrednost. Signalom stintr se startuje generisanje signala prekida intr. Pri aktivnoj vrednosti signala WRDR se prelazi iz koraka step5 u korak step6. U koraku step6 se generiše aktivna vrednost signala reqwr, čime se startuje upis u periferiju sadržaja registra DRAUX15...0, raspoloživog na izlaznim linijama podataka POUT15...0, i prelazi u korak step7. Dok upravljačke jedinica uprav_jed_per upisuje prvi podatak iz registra DRAUX15...0 u periferiju, procesor i upravljačka jedinica uprav_jed_bus prenose sledeći podatak iz memorije u registar DR15...0. Pri tome je uzeta situacija koja se javlja ukoliko se radi o sporoj periferiji. Novi podatak je prenet iz memorije u registar DR15...0, a da prethodni podatak nije prenet iz registra DRAUX15...0 u periferiju. Kada procesor i upravljačka jedinica uprav_jed_bus prenesu novi podatak iz memorije u registar DR15...0 i upravljačka jedinica uprav_jed_bus generiše aktivnu vrednost stWRDRbus, flip-flop WRDR se postavlja na aktivnu vrednost. U koraku step7 se ostaje sve dok je neaktivna vrednost signala reqrd_done. Sa završetkom upisa podatka u periferiju i signal reqrd_done postane aktivan. Tada se prelazi u korak step5. Po prelasku u korak step5 u flip-flopu WRDR se zatiče aktivna vrednost. Pri aktivnoj vrednosti signala WRDR u koraku step5 se generišu aktivne vrednosti signala DRAUXin, clWRDRper i stSR0 i, pošto je uzeto da je kontroler startovan za režim rada sa generisanjem prekida (CR1=1), aktivna vrednost signala stintr. Signalom DRAUXin se novi podatak prenosi iz registra DR15...0 u registar DRAUX15...0. Signalom clWRDRper se flip-flop WRDR postavlja na neaktivnu vrednost. Signalom stSR0 se bit spremnost SR0 statusnog registra postavlja na aktivnu vrednost.

Page 247: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

241

Signalom stintr se startuje generisanje signala prekida intr. Zbog aktivne vrednosti signala WRDR iz koraka step5 se odmah prelazi u korak step6. U koraku step6 se generiše aktivna vrednost signala reqwr, čime se startuje upis u periferiju sadržaja registra DRAUX15...0, i prelazi u korak step7. Dok upravljačka jedinica uprav_jed_per upisuje dati podatak iz registra DRAUX15...0 u periferiju, procesor i upravljačka jedinica uprav_jed_bus započinju prenos sledećeg podatka iz memorije u registar DR15...0.

6.2.2.2.3 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije

Upravljačka jedinica ožičene realizacije generiše dve vrste upravljačkih signala i to: • upravljačke signale periferije PER i blokova operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed_per.

Upravljački signali periferije PER i blokova operacione jedinice oper_jed se koriste u periferiji PER i u blokovima operacione jedinice oper_jed radi izvršavanja mikrooperacija. Upravljački signali upravljačke jedinice uprav_jed_per se koriste u upravljačkoj jedinici uprav_jed_per radi inkrementiranja brojača koraka ili upisa nove vrednosti u brojač koraka.

Upravljački signali periferije PER i blokova operacione jedinice oper_jed se mogu generisati na osnovu sekvence upravljačkih signala po koracima (tabela 77). Za svaki upravljački signal periferije PER i blokove operacione jedinice oper_jed treba krenuti kroz sekvencu upravljačkih signala po koracima i tražiti korake sa iskazima za signale u kojima se pojavljuje dati signal. Za svaki takav korak treba uzeti signal dekodovanog stanja brojača koraka, ukoliko se signal bezuslovno generiše, i logički proizvod signala dekodovanog stanja brojača koraka i signala uslova, ukoliko se signal uslovno generiše, i formirati njihovu uniju.

Upravljački signali upravljačke jedinice uprav_jed_per se ne mogu formirati na osnovu sekvence upravljačkih signala po koracima (tabela 77) jer se u njoj ne pojavljuju upravljački signali upravljačke jedinice već samo iskazi za skok. Zbog toga je potrebno na osnovu sekvence upravljačkih signala po koracima, najpre, formirati sekvencu upravljačkih signala za upravljačku jedinicu ožičene realizacije. Prilikom njihovog formiranja primenjuje se različiti postupak za upravljačke signale periferije PER i blokove operacione jedinice oper_jed i za upravljačke signale upravljačke jedinice uprav_jed_per. Za upravljačke signale periferije PER i blokove operacione jedinice oper_jed treba staviti iskaze za signale onako kako se javljaju u sekvenci upravljačkih signala po koracima. Za upravljačke signale upravljačke jedinice uprav_jed_per treba u sekvenci upravljačkih signala po koracima tražiti iskaze

br (if uslov then stepA) i umesto njih staviti

if uslov then (ldCNT, bv1,bv0) ili if uslov then incCNT.

Iskaz if uslov then (ldCNT, bv1,bv0)

se stavlja u onim koracima u kojima stepA nije prvi sledeći korak. U svakom takvom iskazu pored signala ldCNT, koji je obavezan, pojavljuje se i kombinacija aktivnih i neaktivnih vrednosti signala bv1 i bv0 koja odgovara binarnoj vrednosti A koraka stepA na koji treba preći ukoliko je signal uslov aktivan. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 78. Iskaz

if uslov then incCNT se stavlja u onim koracima u kojima je stepA prvi sledeći korak na koji treba preći ukoliko je signal uslov aktivan. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 79.

Page 248: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

242

Tabela 78 Signali ldCNT, bv2, bv1 i bv0

stepA br (if uslov then stepA) if uslov then (ldCNT, bv2, bv1,bv0) step0 br (if (CR2*CR0) then step5) if (CR2* CR0) then (ldCNT, bv2, bv0) step1 br (if CR2 then step0) if CR2 then ldCNT step2 br (if CR2 then step0) if CR2 then ldCNT step3 br (if CR2 then step0) if CR2 then ldCNT step4 br (if CR2 then step0) if CR2 then ldCNT step4 br (if (CR2*RDDR) then step1) if (CR2*RDDR) then (ldCNT, bv0) step5 br (if CR2 then step0) if CR2 then ldCNT step6 br (if CR2 then step0) if CR2 then ldCNT step7 br (if CR2 then step0) if CR2 then ldCNT step7 br (if (CR2*reqrd_done)

then step0) if (CR2*reqrd_done)

then (ldCNT, bv2, bv0)

Tabela 79 Signali incCNT

stepA br (if uslov then stepA) if uslov then incCNT step0 br (if (CR2*CR0) then step1) if (CR2*CR0) then incCNT step1 br (if CR2 then step2) if CR2 then incCNT step2 br (if (CR2*reqrd_done)

then step3) if (CR2*reqrd_done)

then incCNT step3 br (if CR2 then step4) if CR2 then incCNT step5 br (if (CR2*WRDR) then step6) if (CR2*WRDR) then incCNT step6 br (if CR2 then step7) if CR2 then incCNT

Po opisanom postupku je na osnovu sekvence upravljačkih signala po koracima (tabela 77) formirana sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 80). Ona ima sledeću formu:

• na levoj strani nalaze se dekodovani signali stanja brojača koraka, • u sredini je iskaz tipa

signali, if uslov then signali, if uslov then (ldCNT, bv1,bv0) ili if uslov then incCNT,

• dok komentar, u koracima gde se to radi lakšeg razumevanja smatralo korisnim, uvek počinje uskličnikom (!) i proteže se do sledećeg uskličnika (!).

Iz izloženog se vidi da su upravljački signali za upravljačku jedinicu ožičene realizacije ldCNT, bv1, bv0 i incCNT. Oni se formiraju na osnovu dobijene sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije na identičan način kao i upravljački signali periferije PER i blokova operacione jedinice oper_jed.

Tabela 80 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije ! U koraku se T0 se ostaje sve dok je signal CR2 neaktivan. Tada su neaktivne vrednostu signala incCNT i ldCNT, pa nema promene vrednosti brojača koraka CNT. Ukoliko je aktivna vrednost

Page 249: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

243

signala CR0 prelazi se u korak T1 ili korak T5 u zavisnosti od toga da li je vrednost signala CR0 aktivna ili neaktivna, respektivno. Pri aktivnoj vrednosti signala CR0 generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 1. Pri neaktivnoj vrednosti signala CR0 generišu se aktivne vrednosti signala ldCNT, bv2 i bv0, pa se u brojač koraka CNT upisuje vrednost 5.

T0 if (CR2*CR0) then stRDDRper, if (CR2*CR0) then (clWRDRper, stSR0), if (CR2*CR1*CR0) then stintr, if (CR2*CR0) then incCNT, if (CR2*CR0) then (ldCNT, bv2, bv0);

! U korak T1 se dolazi iz koraka T0 ili koraka T4. Iz koraka T1 se prelazi se u korak T0 ili korak T2 u zavisnosti od toga da li je vrednost signala CR2 neaktivna ili aktivna, respektivno. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Pri aktivnoj vrednosti signala CR2 generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 2. !

T1 reqrd, if CR2 then ldCNT, if CR2 then incCNT;

! U korak T2 se dolazi iz koraka T1. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak T0. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala CR2 ili se ostaje u koraku T2 ili se prelazi u korak T3 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal reqrd_done, respektivno. Pri neaktivnoj vrednosti signala reqrd_done generiše se neaktivna vrednost signala incCNT, pa se vrednost 2 brojača koraka CNT ne menja. Pri aktivnoj vrednosti signala reqrd_done generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 3. !

T2 if CR2 then ldCNT, if (CR2*reqrd_done) then incCNT;

! U korak T3 se dolazi iz koraka T2. Iz koraka T3 se prelazi se u korak T0 ili korak T4 u zavisnosti od toga da li je vrednost signala CR2 neaktivna ili aktivna, respektivno. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Pri aktivnoj vrednosti signala CR2 generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na vrednost 4. !

T3 ldDRAUX, if CR2 then ldCNT, if CR2 then incCNT;

! U korak T4 se dolazi iz koraka T3. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak T0. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala CR2 ili se ostaje u koraku T4 ili se prelazi u korak T1 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal RDDR, respektivno. Pri neaktivnoj vrednosti signala RDDR generiše se neaktivna vrednost signala ldCNT, pa se vrednost 4 brojača koraka CNT ne menja. Pri aktivnoj vrednosti signala RDDR generiše se generišu se aktivne vrednosti signala ldCNT i bv0, pa se u brojač koraka CNT upisuje vrednost 1. !

T4 if (CR2*RDDR) then (ldDR, stSR0, clRDDRper), if (CR2*CR1*RDDR) then stintr, if CR2 then ldCNT, if (CR2*RDDR) then (ldCNT, bv0);

! U korak T5 se dolazi iz koraka T0 ili koraka T7. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak T0. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala CR2 ili se ostaje u koraku T5 ili se prelazi u korak T6 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal WRDR, respektivno. Pri neaktivnoj vrednosti signala WRDR generiše se neaktivna vrednost signala incCNT, pa se vrednost 5 brojača koraka CNT ne

Page 250: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

244

menja. Pri aktivnoj vrednosti signala WRDR generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 6. !

T5 if (CR2*WRDR) then (DRAUXin, clWRDRper, stSR0), if (CR2*CR1 * WRDR) then stintr, if CR2 then ldCNT, if (CR2*WRDR) then incCNT;

! U korak T6 se dolazi iz koraka T5. Iz koraka T6 se prelazi se u korak T0 ili korak T7 u zavisnosti od toga da li je vrednost signala CR2 neaktivna ili aktivna, respektivno. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Pri aktivnoj vrednosti signala CR2 generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 7. !

T6 reqwr, if CR2 then ldCNT, if CR2 then incCNT;

! U korak T7 se dolazi iz koraka T6. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak T0. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala CR2 ili se ostaje u koraku T4 ili se prelazi u korak T1 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal reqwr_done, respektivno. Pri neaktivnoj vrednosti signala reqwr_done generiše se neaktivna vrednost signala ldCNT, pa se vrednost 7 brojača koraka CNT ne menja. Pri aktivnoj vrednosti signala reqwr_done generiše se generišu se aktivne vrednosti signala ldCNT, bv2 i bv0, pa se u brojač koraka CNT upisuje vrednost 5. !

T7 if CR2 then ldCNT, if (CR2*reqwr_done) then (ldCNT, bv2, bv0);

6.2.2.2.4 Struktura upravljačke jedinice Struktura upravljačke jedinice ožičene realizacije je prikazana na slici 79. Upravljačka

jedinica se sastoji od sledećih blokova: • blok brojač koraka, • blok dekoder koraka i • blok generisanje upravljačkih signala. Blok brojač koraka sadrži brojač CNT1...0. Brojač CNT1...0 svojom trenutnom vrednošću

obezbeđuje aktivne vrednosti određenih upravljačkih signala. Brojač Brojač CNT1...0 može da radi u sledećim režimima:

• režim inkrementiranja, • režim skoka i • režim čekanja. U režimu inkrementiranja pri pojavi signala takta vrši se uvećavanje sadržaja brojača

CNT1...0 za jedan čime se obezbeđuje sekvencijalno generisanje upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 80). Ovaj režim rada se realizuje neaktivnom vrednošću signala ldCNT i aktivnom vrednošću signala incCNT (tabela79).

U režimu skoka pri pojavi signala takta vrši se upis nove vrednosti u brojač CNT1...0 čime se obezbeđuje odstupanje od sekvencijalnog generisanja upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 80). Ovaj režim rada se realizuje aktivnom vrednošću signala ldCNT, neaktivnom vrednošću signala incCNT i kombinacijom aktivnih i neaktivnih vrednosti signala bv2, bv1 i bv0 koja odgovara vrednosti koju treba upisati u brojač CNT1...0 (tabela 78).

U režimu čekanja pri pojavi signala takta ne menja se vrednost brojača CNT1...0. Ovaj režim rada se obezbeđuje neaktivnim vrednostima signala ldCNT i incCNT.

Page 251: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

245

CNT2...0 INC

LDCLK

2 0CNT2

D C

T7 T0

CNT0

2 0mr

MRCLK

...

...

2 0

7 0

reqr

d

reqw

r

generisanjeupravljačkih

signalaperiferije

PER

blok

regi

stri

blok

inte

rfej

sgenerisanjeupravljačkih

signalablokova

operacionejedinice

... ...

brojač koraka

dekoder koraka

generisanjeupravljačkih signala

bv2 bv0

ldCNTincCNT

bv1

CNT1

1

ldC

NT

bv2

generisanjeupravljačkih

signalaupravljačke

jedinice

...

incC

NT

bv1

bv0

WRDR

reqwr_done

regi

stri

PER

14

24

31

23

RDDR

reqrd_done

CR0CR1CR2

1

1

Slika 79 Struktura upravljačke jedinice uprav_jed_per

Blok dekoder koraka sadrži dekoder DC. Na ulaze dekodera DC vode se izlazi brojača CNT1...0. Dekodovana stanja brojača CNT1...0 pojavljuju se kao signali T0 do T7 na izlazima dekodera DC. Svakom koraku iz sekvence upravljačkih signala po koracima (tabela 77) dodeljeno je po jedno stanje brojača CNT1...0 određeno vrednošću signala T0 do T3 i to koraku step0 signal T0, koraku step1 signal T1, itd.

Blok generisanje upravljačkih signala sadrži kombinacione mreže koje pomoću signala T0 do T7, koji dolaze sa bloka dekoder koraka, signala logičkih uslova CR0 do reqwr_done, koji dolaze iz periferije PER i operacione jedinice oper_jed, i saglasno sekvenci upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 80) generišu tri grupe upravljačkih signala i to:

• upravljačke signale periferije PER, • upravljačke signale blokova operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed_per.

Upravljački signali periferije PER se generišu na sledeći način: • reqrd = T1 • reqwr = T6

Page 252: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

246

Upravljački signali blokova operacione jedinice oper_jed se daju posebno za blok registri i blok interfejs.

Upravljački signali bloka registri se generišu na sledeći način: • stSR0 = CR2*CR0*T0 + CR2*RDDR*T4 + CR2*WRDR*T5 • stRDDRper = CR2*CR0*T0 • clRDDRper = CR2*RDDR*T4 • clWRDRper = CR2*CR0*T0 + CR2*WRDR*T5 • ldDR = CR2*RDDR*T4 • DRAUXin = CR2*WRDR*T5 • ldDRAUX = T3

Upravljački signal bloka interfejs se generiše na sledeći način: • stintr = CR2*CR1*CR0*T0 + CR2*CR1*RDDR*T4 + CR2*CR1*WRDR*T5

Upravljački signali upravljačke jedinice uprav_jed_per se generiše na sledeći način: • ldCNT = CR2*CR0*T0 + CR2*RDDR*T4 + CR2*reqwr_done*T7 +

+CR2*(T1 + T2 + T3 + T4 + T5 + T6 + T7) • bv2 = CR2*CR0*T0 + CR2*reqwr_done*T7 • bv1 = 0 • bv0 = CR2*CR0*T0 + CR2*RDDR*T4 + CR2*reqwr_done*T7 • incCNT = CR2*CR0*T0 + CR2*T1 + CR2*reqrd_done*T2 + CR2*T3 +

+ CR2*WRDR*T5 + CR2*T6

Pri njihovom generisanju koriste se sledeći signali logičkih uslova koji dolaze iz periferije PER i pojedinih blokova operacione jedinice oper_jed i to:

• reqrd_done — periferija PER, • reqwr_done — periferija PER, • CR0 — blok registri, • CR2 — blok registri, • RDDR — blok registri i • WRDR — blok registri.

6.3 KONTROLER PERIFERIJE SA DIREKTNIM PRISTUPOM MEMORIJI

Kontroler periferije KP (slika 80) se sastoji iz: • operacione jedinice oper_jed i • upravljačke jedinice uprav_jed. Operaciona jedinica oper_jed je kompozicija kombinacionih i sekvencijalnih prekidačkih

mreža koje služe za pamćenje binarnih reči, izvršavanje mikrooperacija i generisanje signala logičkih uslova.

Upravljačka jedinica uprav_jed se sastoji iz tri dela i to upravljačke jedinice magistrale uprav_jed_bus, upravljačke jedinice periferije uprav_jed_per i upravljačke jedinice memorije uprav_jed_mem. Upravljačka jedinica magistrale uprav_jed_bus generiše upravljačke signale neophodne da kontroler periferije KP kao sluga realizacije cikluse na magistrali BUS kojima se prenose podaci između procesora CPU i kontrolera periferije KP. Upravljačka jedinica periferije uprav_jed_per generiše upravljačke signale neophodne za prenos podataka između periferije PER i kontrolera periferije KP. Upravljačka jedinica memorije uprav_jed_mem generiše upravljačke signale neophodne da kontroler periferije KP kao gazda realizacije cikluse na magistrali BUS kojima se prenose podaci između kontrolera periferije KP i

Page 253: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

247

memorije MEM. Upravljačke jedinice uprav_jed_bus, uprav_jed_per i uprav_jed_mem rade isovremeno i omogućuju paralelan rad kontrolera periferije KP kao sluge sa magistralom BUS, kontrolera periferije KP sa periferijom PER i kontrolera periferije KP kao gazde sa magistralom BUS. Svaka od upravljačkih jedinica uprav_jed_bus, uprav_jed_per i uprav_jed_mem je kompozicija kombinacionih i sekvencijalnih prekidačkih mreža koje služe za generisanje upravljačkih signala prema algoritmu generisanja upravljačkih signala operacione jedinice oper_jed i signala logičkih uslova.

Struktura i opis operacione i upravljačke jedinice se daju u daljem tekstu.

PIN

15...

0

reqr

dps

top

POU

T 15...

0

reqw

r_do

ne

16

16

reqr

d_do

nere

qwr

KPuprav_jed

oper_jedregistri interfejs

uprav_jed_mem

PER

U/I

WRBUSRDBUS

FCBUS

DBUS15...0

ABUS15...0

BUS

14

44

24

44

3

intr

intain

CPU

CPUili

U/I

hldr

hldain

CPU

CPUili

U/I

intaoutU/I

hldaoutU/I

uprav_jed_per

uprav_jed_bus

Slika 80 Organizacija kontrolera periferije KP

6.3.1 Operaciona jedinica

Operaciona jedinica (slika 80) se sastoji od sledećih blokova: • blok registri i • blok interfejs.

Page 254: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

248

Blok registri (slike 81, 82 i 83) služi za čuvanje podataka, upravljačkih i statusnih informacija i broja ulaza u tabelu sa adresama prekidnih rutina. Blok interfejs (slike 84, 85, 86 i 87) služi za realizaciju ciklusa na magistrali kada je kontroler sluga, realizaciju prekida, dobijanje dozvole korišćenja magistrale i realizaciju ciklusa na magistrali kada ja kontroler gazda.

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

6.3.1.1 Blok registri

Blok registri sadrži registre DR i DRAUX sa multiplekserima MP1 i MP2, registar CR (slika 81), flip-flopove SR0, SP1, SR3, SR4 i SP5, registre IER (slika 82), WCR, AR1 i AR2 i flip-flopove WRDR i RDDR (slika 83).

Registri DR15…0 i DRAUX15…0 su 16-razredni registar podatka i pomoćni registar podatka, respektivno (slika 81). Ovi registri zajedno sa multiplekserima MP1 i MP2 služe za prenos podataka između periferije PER i memorije MEM. Pri prenosu podataka iz periferije u memoriju podatak koji dolazi iz periferije po linijama PIN15...0 se, najpre, propušta kroz multiplekser MP2 i upisuje u pomoćni registar podatka DRAUX15…0. Potom se podatak iz registra DRAUX15…0 propušta kroz multiplekser MP1 i upisuje u registar podatka DR15…0. Na kraju se podatak iz registra DR15…0 preko bafera sa tri stanja propušta na linije podataka DBUS15…0 magistrale BUS i upisuje u memoriju. Ovakvin načinom prenosa podataka je omogućeno da se istovremeno prenosi tekući podatak iz registra DR15…0 u memoriju i sledeći podatak iz periferije u registar DRAUX15…0. Pri tome se sledeći podatak prenosi iz registra DRAUX15…0 u registar DR15…0, tek pošto je tekući podatak prenet iz registra DR15…0 u memoriju. Pri prenosu podataka iz memorije u periferiju podatak koji dolazi iz memorije po linijama podataka DBUS15…0 magistrale se, najpre, propušta kroz multiplekser MP1 i upisuje u registar podatka DR15…0. Potom se podatak iz registra DR15…0 propušta kroz mulstiplekser MP2 i upisuje u pomoćni registar podatka DRAUX15…0. Na kraju se podatak iz registra DRAUX15…0 po linijama POUT15…0 šalje i upisuje u periferiju. Ovakvin načinom prenosa podataka je omogućeno da se istovremeno prenosi tekući podatak iz registra DRAUX15…0 u periferiju i sledeći podatak iz memorije u registar DR15…0. Pri tome se sledeći podatak prenosi iz registra DR15…0 u registar DRAUX15…0, tek pošto je tekući podatak prebnet iz registra DRAUX15…0 u periferiju.

Registar DR15…0 je 16-razredni registar u koji se generisanjem aktivne vrednosti jednog od signala DRin i ldDR upisuje sadržaj sa izlaza multipleksera MP1. Pri aktivnoj vrednosti signala DRin i neaktivnoj vrednosti signala ldDR sadržaj sa linija podataka DBUS15…0 magistrale se propušta kroz multiplekser MP1 i upisuje u registar DR15…0. Pri aktivnoj vrednosti signala ldDR sadržaj sa izlaza registra DRAUX15…0 se propušta kroz multiplekser MP1 i upisuje u registar DR15…0. Sadržaj registra DR15…0 se pri aktivnoj vrednosti signala DRout propušta kroz bafere sa tri stanja na linije podataka DBUS15…0 magistrale. Pored toga sadržaj registra DR15…0 se vodi na ulaze multipleksera MP2.

Multiplekser MP1 se sastoji od 16 multipleksera sa dva ulaza. Na ulaze 0 i 1 multipleksera MP1 dovodi se sadržaj sa linija podataka DBUS15…0 magistrale i sadržaj sa izlaza registra DRAUX15…0, respektivno. Selektovanje sadržaja se obavlja signalom ldDR.

Registar DRAUX15…0 je 16-razredni registar u koji se, generisanjem aktivne vrednosti jednog od signala DRAUXin i ldDRAUX, upisuje sadržaj sa izlaza multipleksera MP2. Pri aktivnoj vrednosti signala DRAUXin i neaktivnoj vrednosti signala ldDRAUX sadržaj registra DR15…0 se propušta kroz multiplekser MP2 i upisuje u registar DRAUX15…0. Pri aktivnoj vrednosti signala ldDRAUX sadržaj sa ulaznih linija podataka PIN15…0 periferije se propušta kroz multiplekser MP2 i upisuje u registar DRAUX15…0. Sadržaj registra

Page 255: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

249

DRAUX15…0 se po izlaznim linijama podataka POUT15…0 šalje u periferiju. Pored toga sadržaj registra DRAUX15…0 se vodi na ulaze multipleksera MP1.

CLK

16

01MP1S0

1616

DR15…0

CLK

LD

MRmr16

16 DR15...0

ldDRuprav_jed_per

DRin

DRoutuprav_jed_mem

DBUS15…0

BUS

16

16

ldCRCR2DBUS2BUS

DRAUXin

ldDRAUX

uprav_jed_per

CLK

uprav_jed_per 01MP2S0

1616

DRAUX15…0

CLK

LD

MRmr16

16 DRAUX15...016

POUT15...0PIN15...0PER PER

CLK

ldCRDBUS2

BUS

CR2

16

CR15…0

LD

CLK

MRmr16

16 CR15...0

CRoutuprav_jed_bus

16

16

DBUS7...0

80…7

815…8

0

16

12

3

D

CLK

Q

QRd

CLK

mr

CRinuprav_jed_bus ldCR

interfejs

CR0 mp

pm

mmCR4

12

3 uprav_jed_peruprav_jed_mem

uprav_jed_mempstopPER

Slika 81 Blok registri (prvi deo)

Multiplekser MP2 se sastoji od 16 multipleksera sa dva ulaza. Na ulaze 0 i 1 multipleksera MP2 dovodi se sadržaj sa izlaza registra DR15…0 i sadržaj sa ulaznih linija podataka PIN15…0 periferije, respektivno. Selektovanje sadržaja se obavlja signalom ldDRAUX.

Page 256: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

250

Flip-flop i logičko I kolo pri pojavi aktivne vgisrednosti signala CRin trajanja jedna ili više perioda signala takta stvaraju aktivnu vrednost signala ldCR trajanja jedna perioda signala takta.

Registar CR15…0 je 16-razredni upravljački registar, pri čemu se koristi samo osam najmlađih razreda CR7…0. U registar CR15…0 se generisanjem aktivne vrednosti signala ldCR i pod uslovom da nisu istovremeno aktivne vrednosti signala DBUS2 i CR2 upisuje sadržaj sa linija podataka DBUS15…0 magistrale. Aktivne vrednosti signala DBUS2 i CR2 označavaju pokušaj da se startuje već startovan kontroler periferije. Kako ovo nije dozvoljeno ovaj zahteh se ignoriše. Preostale tri kombinacije signala DBUS2 i CR2 su regularne, pa se zahtevi za upis upis u registar CR15…0 prihvataju. U registar CR15…0 se generisanjem aktivne vrednosti signala clCR upisuju sve nule. Sadržaj registra CR15…0 se pri aktivnoj vrednosti signala DRout propušta kroz bafere sa tri stanja na linije podataka DBUS15…0 magistrale.

Ukoliko je pri upisu sadržaja sa linija podataka DBUS15…0 magistrale u upravljački registar CR15…0 aktivna vrednosti signala CR2 i neaktivna vrednost signala DBUS2 radi se o zaustavljanju već startovanog kontrolera periferije. S toga se pri pojavi aktivne vrednosti signala ldCR, trajanja jedna perioda signala takta, formira aktivna vrednost signala pstop koji se koristi u periferiji za njemo zaustavljanje.

Sa dva logička I kola se na osnovu razreda CR4 i CR0 registra CR15…0 generišu signali mp, pm i mm. Signali mp, pm i mm određuju da li se radi o prenosu podataka iz memoriju u periferiju, iz periferiju u memoriju ili iz memorije u memoriju, pri čemu u datom trenutku samo jedan od ova tri signala može da bude aktivan. Pri neaktivnoj vrednosti signala CR4 aktivan je ili signal mp ili signal pm u zavisnosti od toga da li je signal CR0 neaktivan ili aktivan, respektivno. Pri aktivnoj vrednosti signala CR4 aktivan je signal mm.

Flip-flopovi SR0, SR1, SR3, SR4 i SR5 formiraju odgovarajuće razrede 16-razrednog statusnog registra SR15…0 (slika 82). Flip-flopovi SR0, SR1, SR3, SR4 i SR5 se pojedinačno postavljaju na neaktivne i aktivne vrednosti. Prilikom svakog startovanja kontrolera periferije flip-flopovi SR0, SR1, SR3, SR4 i SR5 se signalom clSR postavljaju na neaktivne vrednosti. Tada je neaktivna vrednost signala CR2 i aktivna vrednost signala DBUS2, pa se generisanjem aktivne vrednosti signala ldCR, kojim se upisuje sadržaj sa linija podataka DBUS15…0 magistrale u registar CR15…0, formira i aktivna vrednost signala clSR.

Flip-flop SR0 sadrži bit spremnosti. Po kompletiranom prenosu bloka podataka signalom stSR0 flip-flop SR0 se postavlja na aktivnu vrednost. Indikacija da je kompletiran prenos bloka podataka je sadržaj nula registra WCR15…0.

Flip-flop SR1 sadrži bit čija aktivna vrednost ukazuje da je programskim putem pokušano da se upisivanjem u registar CR15…0 startuje već startovan kontroler periferije. Ovaj slučaj se javlja pri aktivnim vrednostima signala DBUS2 i CR2. Kako startovanje već startovanog kontrolera periferije nije dozvoljeno, ovaj zahtev se ignoriše. Tada se, iako je generisana aktivna vrednost signala ldCR, u registar CR15…0 ne upisuje sadržaj sa linija podataka DBUS15…0 magistrale. Umesto toga generiše se aktivna vrednost signala stSR1 kojom se u flip-flop SR1 upisuje aktivna vrednost.

Flip-flop SR3 sadrži bit čija aktivna vrednost ukazuje da je programskim putem ili u registar WCR15…0 upisana nova vrednosti ili pročitan sadržaj registra WCR15…0 iako startovani prenos bloka podataka nije bio kompletiran. Ovaj slučaj se javlja pri aktivnoj vrednosti signala CR2, neaktivnoj vrednosti signala SR0 i aktivnoj vrednosti signala WCRin ili WCRout. Ovi slučajevi su dozvoljeni, ali se registruju tako što se generiše aktivna vrednost signala stSR3 kojom se u flip-flop SR3 upisuje aktivna vrednost.

Page 257: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

251

DBUS7...0

stSR0uprav_jed_mem

SR0S

R

CLK

Q

QRd

CLK

mr

SR1S

R

CLK

Q

QRd

CLK

mr

12

332

16

1 SRoutuprav_jed_bus

16

BUS

ldCRCR2DBUS2BUS

SR3S

R

CLK

Q

QRd

CLK

mr

WCRoutWCRinuprav_jed_bus

uprav_jed_bus

SR0

CR2

SR5S

R

CLK

Q

QRd

CLK

mr

AR2inSR0

CR2

SR4S

R

CLK

Q

QRd

CLK

mr

AR1inSR0

CR2

ldCRCR2DBUS2BUS

uprav_jed_bus

uprav_jed_bus

CLK

16

IER15…0

CLK

LD

MRmr16

16 IER15...0

IERoutuprav_jed_bus

16

IERinuprav_jed_bus

DBUS15…0BUS

12

3

16

DBUS7...0

80…7

815…8

0

16

0

0

4

10 15...65

0

clSR

Slika 82 Blok registri (drugi deo)

Flip-flop SR4 sadrži bit čija aktivna vrednost ukazuje da je programskim putem u registar AR115…0 upisana nova vrednosti iako startovani prenos bloka podataka nije bio kompletiran. Ovaj slučaj se javlja pri aktivnoj vrednosti signala CR2, neaktivnoj vrednosti signala SR0 i

Page 258: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

252

aktivnoj vrednosti signala AR1in. Ovi slučaj je dozvoljen, ali se registruje tako što se generiše aktivna vrednost signala stSR4 kojom se u flip-flop SR4 upisuje aktivna vrednost.

Flip-flop SR5 sadrži bit čija aktivna vrednost ukazuje da je programskim putem u registar AR215…0 upisana nova vrednosti iako startovani prenos bloka podataka nije bio kompletiran. Ovaj slučaj se javlja pri aktivnoj vrednosti signala CR2, neaktivnoj vrednosti signala SR0 i aktivnoj vrednosti signala AR2in. Ovi slučaj je dozvoljen, ali se registruje tako što se generiše aktivna vrednost signala stSR5 kojom se u flip-flop SR5 upisuje aktivna vrednost.

Sadržaj registra SR15…0 se pri aktivnoj vrednosti signala SRout propušta kroz bafere sa tri stanja na linije podataka DBUS15…0 magistrale. Pri tome su sadržaji razreda SR5…3 i SR1…0 sadržaji flip-flopova SR5, SR4, SR3, SR1 i SR0, a razreda SR15…6 i SR2 nule.

Registar IER15…0 je 16-razredni registar u kome se čuva broj ulaza u tabelu sa adresama prekidnih rutina. Ova tabela ima 256 ulaza, pa se broj ulaza zadaje kao 8-bitna pozitivna vrednost. S toga se generisanjem aktivne vrednosti signala IERin u razrede IER7…0 upisuje sadržaj sa linija podataka DBUS7…0 magistrale, dok se u razrede IER15…8 upisuju nule. Sadržaj registra IER15…0 se pri aktivnoj vrednosti signala IERout propušta kroz bafere sa tri stanja na linije podataka DBUS15…0 magistrale.

Brojač WCR15…0 je 16-razredni brojač u kome se čuva broj reči bloka podataka koje treba preneti (slika 83). U brojač WCR15…0 se generisanjem aktivne vrednosti signala WCRin upisuje sadržaj sa linija podataka DBUS15…0 magistrale, dok se pri aktivnoj vrednosti signala decWCR njegov sadržaj dekrementira. Sadržaj brojača WCR15…0 različit od nule je indikacija da blok podatak nije još uvek prenet, dok je sadržaj nula indikacija da je kompletan blok podataka prenet. Na osnovu toga da li je sadržaja registra WCR15…0 različit od nule ili je nula generišu se neaktivna i aktivna vrednost signala done. Sadržaj brojača WCR15…0 se pri aktivnoj vrednosti signala WCRout propušta kroz bafere sa tri stanja na linije podataka DBUS15…0 magistrale.

Brojač AR115…0 je 16-razredni brojač u kome se čuva adresa sledeće reči bloka podataka koja se prenosi. Početna adresa se u brojač AR115…0 upisuje programskim putem, tako što se generisanjem aktivne vrednosti signala AR1in u brojač AR115…0 upisuje sadržaj sa linija podataka DBUS15…0 magistrale. Prilikom prenosa bloka podataka sadržaj brojača AR115…0 se inkrementira ili dekrementira u zavisnosti od toga da li se podaci prenose prema rastućim ili opadajućim adresama. Pri aktivnoj vrednosti signala incAR1 njegov sadržaj se inkrementira, a pri aktivnoj vrednosti signala decAR1 dekrementira. Sadržaj brojača AR115…0 se pri aktivnoj vrednosti signala incAR1 propušta kroz bafere sa tri stanja na linije podataka DBUS15…0 magistrale.

Brojač AR215…0 je 16-razredni brojač u kome se čuva adresa sledeće reči bloka podataka koja se prenosi. Početna adresa se u brojač AR215…0 upisuje programskim putem, tako što se generisanjem aktivne vrednosti signala AR2in u brojač AR215…0 upisuje sadržaj sa linija podataka DBUS15…0 magistrale. Prilikom prenosa bloka podataka sadržaj brojača AR215…0 se inkrementira ili dekrementira u zavisnosti od toga da li se podaci prenose prema rastućim ili opadajućim adresama. Pri aktivnoj vrednosti signala incAR2 njegov sadržaj se inkrementira, a pri aktivnoj vrednosti signala decAR2 dekrementira. Sadržaj brojača AR215…0 se pri aktivnoj vrednosti signala incAR2 propušta kroz bafere sa tri stanja na linije podataka DBUS15…0 magistrale.

Page 259: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

253

WCRin

16

WCR15…0

LD

DEC

MRmr16

16 WCR15...0

WCRoutuprav_jed_bus

decWCRuprav_jed_mem

CLK CLK

uprav_jed_bus

done M

uprav_jed_mem

WCR15

WCR0

M

AR1in

16

AR115…0

LD

DEC

MRmr16

16 AR115...0

AR1outuprav_jed_mem

decAR1 CLK CLK

uprav_jed_busINCincAR1uprav_jed_mem

uprav_jed_mem

AR2in

16

AR215…0

LD

DEC

MRmr16

16 AR215...0

AR2outuprav_jed_mem

16

decAR2

ABUS15…0BUS

CLK CLK

uprav_jed_busINCincAR2uprav_jed_mem

uprav_jed_mem

16DBUS15…0

BUS

16DBUS15…0

BUS

16ABUS15…0

BUS

RDDRS

R

CLK

Q

QRdclRDDRper

uprav_jed_per

uprav_jed_mem

mr

uprav_jed_per

CLK

stRDDRmemuprav_jed_mem

stRDDRperuprav_jed_per

WRDRS

R

CLK

Q

QRd

CLK

uprav_jed_mem

mr

stWRDRmemuprav_jed_mem

uprav_jed_per

clWRDRperuprav_jed_per

Slika 83 Blok registri (treći deo)

Flip-flopovi RDDR i WRDR se koriste za neophodnu sinhronizaciju pri prenosu podataka iz periferije u memoriju i obrnuto, dok se pri prenosu podataka iz memorije u memoriju ne koriste. Flip-flop RDDR se koristi pri prenosu podataka iz periferije u memoriju. Njegova aktivna vrednost je indikacija da novi podatak može da se prenese iz registra DRAUX15…0 u registar DR15…0, a neaktivna da tekući podatak još uvek nije prenet iz registra DR15…0 u memoriju i da novi podatak ne može da se prenese iz registra DRAUX15…0 u registar DR15…0. S toga se na početku po startovanju kontrolera periferije za prenos iz periferije u memoriju flip-flop RDDR signalom stRDDRper postavlja na aktivnu vrednost. Posle toga se po prenosu podatka iz registra DRAUX15…0 u registar DR15…0 flip-flop RDDR signalom clRDDRper postavlja na neaktivnu, a po prenosu podatka iz registra DR15…0 u memoriju

Page 260: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

254

signalom stRDDRmem postavlja na aktivnu vrednost. Flip-flop WRDR se koristi pri prenosu podataka iz memorije u periferiju. Njegova aktivna vrednost je indikacija da se u registru DR15…0 nalazi podatak i da sadržaj registra DR15…0 može da se prenese u registar DRAUX15…0, a neaktivna da novi podatak još uvek nije prenet iz memorije u registar DR15…0 i da sadržaj registra DR15…0 ne može da se prenese u registar DRAUX15…0. S toga se na početku po startovanju kontrolera periferije za prenos iz memorije u periferiju flip-flop WRDR signalom clWRDRper postavlja na neaktivna vrednost. Posle toga se po prenosu podatka iz memorije u registar DR15…0 flip-flop WRDR signalom stWRDRmem postavlja na aktivnu, a po prenosu podatka iz registra DR15…0 u registar DRAUX15…0 signalom clWRDRper postavlja na neaktivnu vrednost.

6.3.1.2 Blok interfejs

Blok interfejs sadrži kombinacione i sekvencijalne mreže za realizaciju ciklusa na magistrali kada je kontroler sluga (slika 84), realizaciju prekida (slika 85), dobijanje dozvole korišćenja magistrale (slika 86) i realizaciju ciklusa na magistrali kada je kontroler gazda (slika 87).

Kombinacione i sekvencijalne mreže za realizaciju ciklusa na magistrali kada je kontroler sluga formiraju signale rds i wrs upravljačke jedinice uprav_jed_bus i FCBUS magistrale BUS (slika 84). Signali rds i wrs se formiraju na osnovu signala ABUS15..0 sa adresnih linija magistrale i RDBUS i WRBUS sa upravljačkih linija magistrale. Signal FCBUS se formira na osnovu signala OEfcbus i fcbus upravljačke jedinice uprav_jed_bus.

Pri realizaciji ciklusa čitanja na magistrali procesor kao gazda, najpre, izbacuje adresu na adresne linije ABUS15..0 magistrale i, potom, generisanjem aktivne vrednosti upravljačkog signala magistrale RDBUS, startuje u kontroleru kao slugi čitanje adresiranog registra. Konroler po završenom čitanju izbacuje sadržaj registra na linije podataka DBUS15..0 magistrale i formira aktivnu vrednost upravljačkog signala magistrale FCBUS. Posle toga procesor prihvata sadržaj sa linija podataka i postavlja signal RDBUS na neaktivnu vrednost. Na kraju kontroler uklanja podatak sa linija podataka magistrale i postavljanja signal FCBUS na neaktivnu vrednost.

Pri realizaciji ciklusa upisa na magistrali procesor kao gazda, najpre, izbacuje adresu i podatak na adresne linije ABUS15..0 i linije podataka DBUS15..0 magistrale, respektivno, i, potom, generisanjem aktivne vrednosti upravljačkog signala magistrale WRBUS, startuje u kontroleru kao slugi upis u adresirani registar. Konroler po završenom upisu formira aktivnu vrednost upravljačkog signala magistrale FCBUS. Posle toga procesor uklanja adresu i podatak sa adresnih linija i linija podataka magistrale i postavlja signal WRBUS na neaktivnu vrednost. Na kraju kontroler postavlja signal FCBUS na neaktivnu vrednost.

Signali rds i wrs su upravljački signali magistrale RDBUS i WRBUS sinhronizovani na signal takta kontrolera. U flip-flop rds se na signal takta kontrolera upisuje vrednost koja odgovara vrednosti signala RDBUS ukoliko je aktivna vrednost signala select. U flip-flop wrs se na signal takta kontrolera upisuje vrednost koja odgovara vrednosti signala WRBUS ukoliko je aktivna vrednost signala select. Signal rds je kao i signal RDBUS aktivan za vreme operacije čitanja nekog registra kontrolera, dok je signal wrs kao i signal WRBUS aktivan za vreme operacije upisa u neki od registara kontrolera.

Page 261: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

255

L

select

ABUS15ABUS14ABUS13ABUS12

BUS

14

24

3

L

ABUS11 ABUS6

BUSBUS

mikroprekidači5 0

LL

ABUS3

ABUS4

ABUS5BUS

14

24

3

D

CLK

Q

QRd

rds

mr

uprav_jed_bus

CLKRDBUSBUS

D

CLK

Q

QRd

wrs

mr

uprav_jed_bus

CLKBUS WRBUS

OEfcbus

fcbus

uprav_jed_bus

uprav_jed_busBUS FCBUS

765

DC

E

10ABUS0

ABUS1

selAR1selAR2

12

3BUS4 selWCR32 selIER1 selSR0 selCR

ABUS2 2

Slika 84 Blok interfejs (prvi deo)

Signal select ima aktivnu vrednost ukoliko se na adresnim linijama ABUS15…0 magistrale nalazi adresa iz opsega adresa dodeljenih registrima kontrolera periferija. Celokupan opseg adresa od 0000h do FFFFh podeljen je na opseg adresa od 0000h do EFFFh, koje su dodeljene memoriji MEM, i opseg adresa od F000h do FFFFh, koje su dodeljene registrima po svim kontrolerima periferija. Opseg adresa koje su dodeljene registrima po kontrolerima periferija je predviđen za adresiranje registara u najviše 64 kontrolera i to najviše 64 registra unutar određenog kontrolera. Pri tome prilikom adresiranja nekog od registara kontrolera sadržaj na adresnim linijama ABUS15…0 magistrale ima sledeću strukturu: bitovi ABUS15…12 su sve jedinice, bitovi ABUS11…6 određuju broj kontrolera i bitovi ABUS5…0 adresu registra unutar kontrolera. Broj kontrolera periferije za određeni kontroler periferije se postavlja mikroprekidačima na jednu od vrednosti u opsegu 0 do 63. Registrima CR15…0, SR15…0 i IER15…0 su unutar opsega adresa datog kontrolera dodeljene adrese 0 do 2, a registrima WCR15…0, AR115…0 i AR215…0 adrese 4 do 6, pa bitovi ABUS5…3 mora da budu nule dok se njihovo pojedinačno adresiranje realizuje bitovima ABUS2, ABUS1 i ABUS0. Na osnovu usvojene strukture adresa signal select ima aktivnu vrednost ukoliko su na adresnim linijama ABUS15…12 magistrale sve jedinice, na adresnim linijama ABUS11…6 nalazi vrednost koja odgovara vrednosti postavljenoj mikroprekidačima i na adresnim linijama ABUS5…2 sve nule. Signali selCR, selSR i selIER se dobijaju na izlazima 0 do 2, a signali selWCR, selAR1 i selAR2 na izlazima 4 do 6 dekodera DC i to na osnovu vrednosti signala ABUS2, ABUS1, ABUS0 i select sa ulaza 2, 1, 0 i E, respektivno. Pri neaktivnoj vrednosti signala select i

Page 262: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

256

signali selCR, selSR, selIER, selWCR, selAR1 i selAR2 su neaktivni. Pri aktivnoj vrednosti signala select jedan od signala selCR, selSR, selIER, selWCR, selAR1 i selAR2 postaje aktivan i to signal određen binarnom vrednošću signala ABUS2, ABUS1 i ABUS0.

Signal select ima neaktivnu vrednost ukoliko se na adresnim linijama ABUS15…0 magistrale ne nalazi adresa iz opsega adresa dodeljenih registrima kontrolera periferije, pri čemu to može da bude ili adresa memorijske lokacije ili registra iz nekog drugog kontrolera periferije. Tada se u flip-flopove rds i wrs upisuju neaktivne vrednosti bez obzira na vrednosti signala RDBUS i WRBUS, respektivno.

Kombinaciona mreža za generisanje upravljačkog signala FCBUS magistrale generiše ovaj signal na osnovu signala OEfcbus i fcbus. Pri neaktivnoj vrednosti signala OEfcbus na liniji FCBUS je stanje visoke impedance. Pri aktivnoj vrednosti signala OEfcbus na liniji FCBUS je neaktivna ili aktivna vrednost koja odgovara vrednosti signala fcbus. Signal fcbus ima aktivnu ili neaktivnu vrednost u zavisnosti od toga da li je u kontroleru operacija čitanja ili upisa u toku ili je završena, respektivno.

Kombinacione i sekvencijalne mreže za realizaciju prekida formiraju signal intr procesora CPU, signal intas upravljačke jedinice uprav_jed_bus i signal inta na liniji intaout ulazno izlaznog uređaja U/I (slika 85). Ovi signali se formiraju na osnovu signala stintr i clintr, koje generišu upravljačke jedinice uprav_jed_mem i uprav_jed_bus, respektivno, i signala inta na liniji intain, koji šalje processor ili kontroler uređaja prethodnika u lancu. Na njihovo formiranje utiče i to što više uređaja, serijski povezanih u lanac, po istoj liniji intr šalju signal zahteva za prekid procesoru, i što se signal dozvole prekida inta, dobijen po liniji intain od strane procesora ili kontrolera prethodnog uređaja u lancu, mora po liniji intaout serijski prosleđivati kontroleru sledećeg uređaja u lancu. Pored toga razred CR3 upravljačkog registra CR bloka registri određuje da li signal prekida intr treba formirati kao nivo ili kao impuls.

Ove kombinacione i sekvencijalne mreže realizuju dve vrste operacija vezano za realizaciju prekida. Prva se javlja kada kontroler treba da pošalje signal zahteva za prekid procesoru. Druga se javlja kada kontroler treba da prosledi signal dozvole prekida.

Kada kontroler po obavljenom prenosu podataka treba u procesoru da izazove prekid, upravljačka jedinica uprav_jed_mem generiše signal stintr. Kao rezultat formira se aktivna vrednost signala intr i time procesoru šalje zahtev za prekid. Procesor na ovaj zahtev u određenom trenutku reaguje tako što, između ostalog, slanjem aktivne vrednosti signala dozvole prekida inta kao gazda započinje ciklus prihvatanja broja ulaza na magistrali. Kontroler po dobijanju aktivne vrednosti signala inta na liniji intain i to od strane procesora, ukoliko je prvi u lancu, ili prethodnog uređaja u lancu, ukoliko nije prvi u lancu, formira aktivnu vrednost signala intas. Aktivna vrednost signala intas aktivira upravljačku jedinicu uprav_jed_bus da kontroler kao sluga realizuje ciklus prihvatanja broja ulaza na magistrali.

Procesor kao gazda završava ciklus na magistrali tako što postavljanjem signal inta na neaktivnu vrednost ukida dozvolu prekida. Kontroler prima neaktivnu vrednost ovog signala po liniji intain, pa se kao rezultat formira neaktivna vrednost signala intas i time zaustavlja upravljačka jedinica uprav_jed_bus. Pored toga i bafer sa tri stanja, na čijem izlazu se formira signal intr, se prebacuje u stanje visoke impedanse. Ovo prebacivanje se realizuje na dva načina u zavisnosti od toga da li se signal prekida intr formira kao nivo ili kao impuls. Ukoliko se formira kao nivo, to se realizuje signalom clintr koji generiše upravljačka jedinica uprav_jed_bus po završetku ciklusa na magistrali. Ukoliko se formira kao impuls, to se realizuje interno generisanim signalom clpulse po isteku vremena zadatog mikroprekidačima.

Page 263: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

257

FFintrS

R Rd

mr

Q

Q

CLKCLK

PintrS

R Rd

mr

Q

Q

CLKCLK

enintr

INTRintasS

R Rd

mr

Q

Q

CLKCLK

intain

uprav_jed_bus

CPU

U/Iili

L

TIMELD

DEC

mikroprekidači

L

L

mr

CLK

5 0

5 0MR

CLK 5 0

CR3

uprav_jed_busclintr

registri

D

CLK

Q

QRd

mr

CLK

FFinta

intaoutU/I

CPUintr

D

CLK

Q

QRd

mr

CLK

DFFinta

clINTR

clpulse

clFFintr

D

CLK

Q

QRd

CLK

mr

stintruprav_jed_mem

stPintr

Slika 85 Blok interfejs (drugi deo)

Može se dogoditi da kontroler dobije aktivnu vrednost signala dozvole prekida inta po liniji intain iako on nije ni uputio zahtev za prekid procesoru. Aktivnu vrednost signala prekida intr je postavio kontroler nekog od uređaja sledbenika u lancu. Zbog toga se aktivna vrednost signala dozvole prekida inta dobijena po liniji intain prosleđuje po liniji intaout sledećem uređaju u lancu.

Kontroler uređaja koji je sledeći u lancu se po dobijanju dozvole prekida ponaša na jedan od dva prethodno opisana načina. Ukoliko je kontroler datog uređaja uputio zahtev za prekid procesoru, onda on kao sluga realizuje ciklus prihvatanja broja ulaza na magistrali. U suprotnom slučaju dozvola prekida se prosleđuje kontroleru sledećeg uređaja u lancu.

Page 264: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

258

Flip-flop Pintr se postavlja na aktivnu vrednost pri pojavi aktivne vrednosti signala stPintr. Signal stPintr se formira kada upravljačka jedinica uprav_jed_mem prođe kroz korak u kome se generiše aktivna vrednost signala stintr. Trajanje aktivne vrednosti signala stPintr je jedna perioda signala takta bez obzira na to koliko je trajanje aktivne vrednosti signala stintr. Flip-flop Pintr služi da se upamti da izlaz bafera sa tri stanja koji daje signal intr treba da pređe iz stanja visoke impedanse na aktivnu vrednost. Koliko će dugo flip-flop Pintr ostati aktivan zavisi od toga da li je neaktivna ili aktivna vrednost signala FFinta. Ako je signal FFinta neaktivan, signal enintr postaje aktivan, pa se na sledeći signal takta flip-flopovi FFintr i INTR postavljaju na aktivnu, a flip-flop Pintr na neaktivnu vrednost. Ako je signal FFinta aktivan, signal enintr ostaje neaktivan, pa flip-flop Pintr ostaje aktivan, a flip-flopovi FFintr i INTR neaktivni. Vrednost signala FFinta prati vrednost signala inta sa linije intain sinhronizovanu na signal takta kontrolera. Njegova neaktivna vrednost označava da dozvola prekida nije dobijena, prelazak na aktivnu vrednost da je dozvola dobijena i povratak na neaktivnu da je dozvola ukinuta. Na početku, pošto nije bilo zahteva za prekid, nije bilo ni dozvole prekida, pa je signal FFinta neaktivan. S toga, po postavljanju flip-flopa Pintr na aktivnu vrednost, signal enintr odmah postaje aktivan, pa se na signal takta flip-flop Pintr postavlja na neaktivnu, a flip-flopovi FFintr i INTR na aktivnu vrednost. Pri aktivnoj vrednosti flip-flopa FFintr izlaz bafera sa tri stanja koji daje signal intr prelazi iz stanja visoke impedanse na aktivnu vrednost. Aktivnom vrednošću flip-flopa INTR se pamti da je zahtev za prekid poslat procesoru.

Dalje aktivnosti nastaju tek kada se pojavi aktivna vrednost signala dozvole prekida inta na liniji intain koja dolazi iz procesora, ukoliko je uređaj prvi u lancu, ili prethodnog uređaja u lancu, ukoliko uređaj nije prvi u lancu. Koliko će vremena do tada proteći zavisi od toga kada će procesor, po prijemu aktivne vrednosti signala intr, da reaguje na zahtev za prekid i da, u okviru opsluživanja prekida, između ostalog, slanjem aktivne vrednosti signala dozvole prekida inta, kao gazda započne ciklus prihvatanja broja ulaza na magistrali i da li ima uređaja prethodnika u lancu koji su, takođe, uputili zahtev za prekid. U tom vremenskom intervalu još neki od uređaja u lancu može da postavi aktivnu vrednost signala zahteva za prekid intr. Kada se pojavi aktivna vrednost signala inta na liniji intain i flip-flop FFinta se na signal takta postavlja na aktivnu vrednost. Pošto je flip-flop INTR aktivan, i signal intas postaje aktivan. Aktivna vrednost signala intas aktivira upravljačku jedinicu uprav_jed_bus da kontroler kao sluga realizuje ciklus prihvatanja broja ulaza na magistrali. Na sledeći signal takta i flip-flop DFFinta se postavlja na aktivnu vrednost. Ovaj flip-flop se koristi samo da bi sa flip-flopom FFinta formirao aktivnu vrednost signala clINTR trajanja jedna perioda signala takta pri prelasku signala potvrde prekida inta sa linije intain sa aktivne na neaktivnu vrednost.

Procesor kao gazda završava ciklus na magistrali tako što postavljanjem signala inta na neaktivnu vrednost ukida dozvolu prekida. Kontroler prima neaktivnu vrednost ovog signala po liniji intain koja dolazi iz procesora, ukoliko je prvi u lancu, ili prethodnog uređaja u lancu, ukoliko nije prvi u lancu i na sledeći signal takta postavlja flip-flop FFinta na neaktivnu vrednost. Neaktivna vrednost signala FFinta sa aktivnom vrednošću signala DFFinta formira aktivnu vrednost signala clINTR. Na sledeći signal takta se u flip-flopove INTR i DFFinta upisuju neaktivne vrednosti. Time se formira neaktivna vrednost signala intas, čime se zaustavlja upravljačka jedinica uprav_jed_bus, i neaktivna vrednost signala clINTR, čime se trajanje aktivne vrednosti signala clINTR ograničava na jednu periodu signala takta.

Pored toga i bafer sa tri stanja, na čijem izlazu se formira signal intr, se prebacuje u stanje visoke impedanse. Prebacivanje se realizuje postavljanjem flip-flopa FFintr na neaktivnu

Page 265: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

259

vrednost. Ono se realizuje na dva načina u zavisnosti od toga da li se signal prekida intr formira kao nivo ili kao impuls, što je određeno aktivnom i neaktivnom vrednošću signala CR3, respektivno. Po završetku ciklusa prihvatanja broja ulaza na magistrali upravljačka jedinica uprav_jed_bus prelazi na korak u kome generiše aktivnu vrednost signala clintr trajanja jedna perioda signala takta. Ukoliko je signal CR3 aktivan i signal clFFintr postaje aktivan, pa se na sledeći signal takta flip-flop FFintr postavlja na neaktivnu vrednost. S druge strane sve vreme dok je signal FFintr neaktivan u brojač TIME se upisuje sadržaj mikroprekidača, koji određuje trajanje aktivne vrednosti signala prekida intr. Ukoliko se zahtev za prekid generiše kao impuls, čim signal FFintr postane aktivan, kreće se sa dekrementiranjem sadržaja brojača TIME. Kada brojač prolazi kroz stanje nula, formira se aktivna vrednost signala clpulse trajanja jedna perioda signala takta. Ukoliko je signal CR3 neaktivan i signal clFFintr postaje aktivan, pa se na sledeći signal takta flip-flop FFintr postavlja na neaktivnu vrednost.

U kontroleru se može dogoditi da se na liniji intain dobije dozvola prekida iako kontroler nije postavio zahtev za prekid. To se dešava kada je zahtev za prekid postavio neki od kontrolera uređaja koji su sledbenici u lancu, pa dozvolu prekida treba po liniji intaout proslediti sledećem uređaju u lancu. Kako kontroler nije postavio zahtev za prekid flip-flop INTR nije postavljen. Kada procesor reagujući na dati zahtev za prekid da dozvolu prekida, signal inta sa linije intain postaje aktivan. Aktivna vrednost ovog signala dolazi u kontroler i to od procesora, ukoliko je prvi u lancu, ili od kontrolera uređaja prethodnika, ukoliko nije prvi u lancu, pa se na signal takta i flip-flop FFinta postavlja na aktivnu vrednost. Kako je signal INTR neaktivan, signal intas ostaje neaktivan, a signal sa linije intaout postaje aktivan. Neaktivnom vrednošću signala intas se obezbeđuje da kontroler kao sluga ne realizuje ciklus prihvatanja broja ulaza na magistrali, a aktivnom vrednošću signala sa linije intaout se dozvola prekida prosleđuje sledećem uređaju u lancu. Sledeći uređaj u lancu se, po dobijanju aktivne vrednosti signala dozvole prekida na svojoj liniji intain, ponaša na jedan od dva prethodno opisana načina u zavisnosti od toga da li je on ili neki od kontrolera uređaja sledbenika u lancu uputio zahtev za prekid. Kada dozvola za prekid stigne do prvog kontrolera uređaja koji je uputio zahtev za prekid, dati kontroler kao sluga realizuje ciklus prihvatanja broja ulaza na magistrali. Procesor kao gazda završava ciklus na magistrali tako što postavljanjem signala inta na neaktivnu vrednost ukida dozvolu prekida. Kontroler prvog uređaja u lancu po liniji intain prima neaktivnu vrednost ovog signala, koji dolazi iz procesora, i na sledeći signal takta postavlja flip-flop FFinta na neaktivnu vrednost. Neaktivna vrednost signala FFinta daje neaktivnu vrednost signala na liniji intaout, čime se ukidanje dozvole prekida prosleđuje kontroleru prvog sledećeg uređaja u lancu.

Treba uočiti da tokom prosleđivanja dozvole prekida od kontrolera do kontrolera uređaja koji su u lancu, flip-flopovi FFinta ostaju postavljeni. Da bi se flip-flop FFinta postavio na neaktivnu vrednost potrebno je da dozvola prekida stigne do prvog kontrolera uređaja koji je uputio zahtev za prekid, da dati kontroler kao sluga realizuje ciklus prihvatanja broja ulaza na magistrali i da procesor kao gazda završi ciklus na magistrali postavljanjem signala inta na neaktivnu vrednost. Prvi kontroler u lancu prima neaktivnu vrednost ovog signala po liniji intain koja dolazi iz procesora i na sledeći signal takta postavlja flip-flop FFinta na neaktivnu vrednost. U međuvremenu se može dogoditi da se flip-flop Pintr postavi na aktivnu vrednost zbog toga što je upravljačka jedinica uprav_jed_mem prošla kroz korak u kome se generiše aktivna vrednost signala stintr. Time se pamti da kontroler treba da uputi zahtev za prekid procesoru tako što će da generiše aktivnu vrednost signala intr. Međutim, kako je dozvola prekida prosleđena kontroleru sledećeg uređaja u lancu i kako kao rezultat toga još uvek nije realizovan ciklus prihvatanja broja ulaza na magistrali od strane kontrolera nekog od sledbenika u lancu, na šta ukazuje aktivna vrednost signala FFinta, signal enintr ostaje

Page 266: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

260

neaktivan. S toga flip-flop Pintr ostaje aktivan, a flip-flopovi FFintr i INTR neaktivni. Tek kada, najpre, kontroler uređaja sledbenika u lancu koji je postavio zahtev za prekid prosleđivanjem dobije dozvolu prekida i realizuje kao sluga ciklus prihvatanja broja ulaza na magistrali, a zatim procesor, postavljanjem signala inta na neaktivnu vrednost, ukine dozvolu prekida, flip flopovi FFinta koji su postavljeni na aktivnu vrednost se postavljaju na neaktivnu vrednost. Čim signal FFinta postane neaktivan, signal enintr postaje aktivan, pa se na sledeći signal takta flip-flopovi FFintr i INTR postavljaju na aktivnu, a flip-flop Pintr na neaktivnu vrednost. Pri aktivnoj vrednosti signala FFintr izlaz bafera sa tri stanja koji daje signal intr prelazi iz stanja visoke impedanse na aktivnu vrednost, čime se procesoru šalje zahtev za prekid.

Kombinacione i sekvencijalne mreže za dobijanje dozvole korišćenja magistrale formiraju signal hldr procesora CPU i ulazno izlaznih uređaja U/I, signal hldas upravljačke jedinice uprav_jed_mem i signal hlda na liniji hldaout ulazno izlaznog uređaja U/I (slika 86). Ovi signali se formiraju na osnovu signala sthold i clhold, koje generiše upravljačka jedinica uprav_jed_mem, i signala hlda sa linije hldain, koji šalje processor ili kontroler uređaja prethodnika u lancu. Na njihovo formiranje utiče i to što svi ulazno izlazni uređaji sa kontrolerom za direktan pristup memoriji, serijski povezani u lanac, po istoj liniji hldr šalju zahtev korišćenja magistrale hldr procesoru i svim kontrolerima uređaja vezanim u lanac, i što se dozvola korišćenja magistrale hlda, dobijena po liniji hldain od strane procesora ili kontrolera prethodnog uređaja u lancu, mora po liniji hldaout serijski prosleđivati kontroleru sledećeg uređa u lancu.

clhold

14

44

42

44

44

3

upra

v_je

d_m

em

FFholdhldas

hldaout

S

R Rd

mr

Q

Q

CLKCLK

hldain D

CLK

Q

QRd

mr

CLK

U/I

Phold uprav_jed_mem

FFhlda

CPU

U/Iili

S

R Rd

mr

Q

Q

CLKCLK

sthold

hldr

enhold

hldr

CPU i U/Ihldr

Slika 86 Blok interfejs (treći deo)

Ove kombinacione i sekvencijalne mreže realizuju dve vrste operacija. Prva se javlja kada kontroler treba kao gazda da realizuje ciklus na magistrali. Druga se javlja kada kontroler treba da prosledi dozvolu korišćenja magistrale.

Kada kontroler treba kao gazda da realizuje ciklus na magistrali upravljačka jedinica uprav_jed_mem generiše signal sthold čime se formira aktivna vrednost signala hldr i time

Page 267: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

261

procesoru šalje zahtev korišćenja magistrale. Signal hldr primaju i kontroleri svih ulazno izlaznih uređaja vezanih u lanac, tako da imaju informaciju da li je neki od njih uputio zahtev korišćenja magistrale procesoru. Potom se po dobijanju aktivne vrednosti signala hlda po liniji hldain od strane procesora, ukoliko je uređaj prvi u lancu, ili kontrolera prethodnog uređaja u lancu, ukoliko uređaj nije prvi u lancu, kojim se kontroleru šalje dozvola korišćenja magistrale, formira aktivna vrednost signala hldas. Aktivna vrednost signala hldas služi kao indikacija upravljačkoj jedinici uprav_jed_mem da kontroler kao gazda može da realizuje ciklus čitanja ili upisa na magistrali. Po završetku ciklusa na magistrali upravljačka jedinica uprav_jed_mem generiše signal clhold, pa se kao rezultat formira neaktivna vrednost signala hldas i bafer sa tri stanja, na čijem izlazu se formira signal hldr, prebacuje u stanje visoke impedanse. Neaktivna vrednost signala hldas služi kao indikacija upravljačkoj jedinici uprav_jed_mem da kontroler kao gazda više ne može da pristupa magistrali. Šta će dalje biti zavisi od toga da li je neki od uređaja sledbenika u lancu poslao zahtev korišćenja magistrale ili nije. Ukoliko ni jedan od njih nije poslao zahtev korišćenja magistrale, signal hldr prelazi u stanje visoke impedanse, čime se procesoru ukida zahtev korišćenja magistrale. Na ovo procesor reaguje tako što signal hlda na liniji hldain postavlja na neaktivnu vrednost, čime ukida dozvolu korišćenja magistrale. Ukoliko je neki od uređaja sledbenika u lancu poslao zahtev korišćenja magistrale, signal hldr ostaje aktivan, čime se procesoru ne ukida zahtev korišćenja magistrale. Zbog toga kontroler signal dozvole korišćenja magistrale hlda prosleđuje kontroleru sledećeg uređaja u lancu po liniji hldaout.

Može se dogoditi da kontroler dobije aktivnu vrednost signala dozvole korišćenja magistrale hlda po liniji hldain iako on, zbog toga što kao gazda ne treba da realizuje ciklus na magistrali, nije ni uputio zahtev korišćenja magistrale. Aktivnu vrednost signala hldr kao zahtev korišćenja magistrale je postavio neki od uređaja sledbenika u lancu koji kao gazda treba da realizuje ciklus na magistrali. Zbog toga se aktivna vrednost signala dozvole korišćenja magistrale hlda dobijena po liniji hldain prosleđuje sledećem uređaju u lancu po liniji hldaout.

Sledeći uređaj u lancu se po dobijanju dozvole korišćenja magistrale ponaša na jedan od prethodno opisanih načina u zavisnosti od toga da li je on ili neki od njegovih sledbenika u lancu uputio zahtev korišćenja magistrale.

Flip-flop Phold se postavlja na aktivnu vrednost kada upravljačka jedinica uprav_jed_mem prođe kroz korak u kome se generiše aktivna vrednost signala sthold trajanja jedna perioda signala takta i služi da se upamti da izlaz bafera sa tri stanja koji daje signal hldr treba da pređe iz stanja visoke impedanse na aktivnu vrednost. Koliko će dugo flip-flop Phold ostati aktivan zavisi od toga da li je neaktivna ili aktivna vrednost signala FFhlda. Ako je signal FFhlda neaktivan, signal enhold postaje aktivan, pa se na sledeći signal takta flip-flop FFhold postavlja na aktivnu, a flip-flop Phold na neaktivnu vrednost. Ako je signal FFhlda aktivan, signal enhold ostaje neaktivan. S toga flip-flop Phold ostaje aktivan, a flip-flop FFhold neaktivan. Signal FFhlda predstavlja vrednost signala hlda sa linije hldain sinhronizovanu na signal takta kontrolera. Njegova neaktivna vrednost označava da dozvola korišćenja magistrale nije dobijena, prelazak na aktivnu da je dozvola dobijena i povratak na neaktivnu da je dozvola ukinuta. Na početku, pošto nije bilo zahteva korišćenja magistrale, nije bilo ni dozvole korišćenja magistrale, pa je signal FFhlda neaktivan. S toga, po postavljanju flip-flopa Phold na aktivnu vrednost, signal enhold odmah postaje aktivan, pa se na signal takta flip-flop Phold postavlja na neaktivnu, a flip-flop FFhold na aktivnu vrednost. Pri aktivnoj vrednosti signala FFhold izlaz bafera sa tri stanja koji daje signal hldr prelazi iz stanja visoke impedanse na aktivnu vrednost.

Page 268: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

262

Dalje aktivnosti nastaju tek kada se pojavi aktivna vrednost signala hlda na liniji hldain koja dolazi iz procesora, ukoliko je uređaj prvi u lancu, ili kontrolera prethodnog uređaja u lancu, ukoliko uređaj nije prvi u lancu. Koliko će vremena proteći do pojavljivanja aktivne vrednost signala hlda na liniji hldain zavisi od toga koliko brzo može procesor, po prijemu aktivne vrednosti signala hldr, da prepusti magistralu uređajima u lancu i da li ima uređaja prethodnika u lancu koji su, takođe, uputili zahtev korišćenja magistrale. U tom vremenskom intervalu još neki od uređaja u lancu može da postavi aktivnu vrednost signala zahteva korišćenja magistrale hldr. Kada se pojavi aktivna vrednost signala hlda na liniji hldain i signal hldr je aktivan, pa se flip-flop FFhlda na signal takta postavlja na aktivnu vrednost. Pošto je flip-flop FFhold aktivan, i signal hldas postaje aktivan. Njegova aktivna vrednost je indikacija upravljačkoj jedinici uprav_jed_mem da može da krene sa realizacijom ciklusa na magistrali.

Po završetku ciklusa na magistrali upravljačka jedinica uprav_jed_mem prelazi na korak u kome generiše aktivnu vrednost signala clhold trajanja jedna perioda signala takta. Na sledeći signal takta flip-flop FFhold se postavlja na neaktivnu vrednost. Kao rezultat signal hldas postaje neaktivan, signal hlda na liniji hldaout aktivan, a izlaz bafera sa tri stanja koji daje signal hldr prelazi u stanje visoke impedanse. Postavljanjem signala hldas na neaktivnu vrednost se upravljačkoj jedinici uprav_jed_mem šalje indikacija da više ne može da koristi magistralu. Formiranjem aktivne vrednosti signala hlda na liniji hldaout dozvola korišćenja magistrale se prosleđuje kontroleru sledećeg uređaja u lancu. Po prelasku bafera sa tri stanja koji daje signal hldr u stanje visoke impedanse dalje aktivnosti u datom kontroleru i kontrolerima uređaja sledbenika i prethodnika u lancu zavise od toga da li je još neki od uređaja koji je sledbenik u lancu uputio zahtev korišćenja magistrale. Ukoliko nije, signal hldr je u stanju visoke impedanse, jer ga svi kontroleri u lancu drže u stanju visoke impedanse. Signal hldr u stanju visoke impedanse daje neaktivnu vrednost signala hldr. Zbog toga na sledeći signal takta kontroler uređaja sledbenika u lancu, iako je dobio aktivnu vrednost signala hlda na liniji hldain, ne postavlja svoj flip-flop FFhlda na aktivnu vrednost, a flip-flopovi FFhlda datog kontrolera i kontrolera uređaja prethodnika u lancu se postavljaju na neaktivnu vrednost. S druge strane ovo je za procesor indikacija da je zahtev korišćenja magistrale ukinut, pa procesor, postavljanjem signala hlda na neaktivnu vrednost, ukida dozvolu korišćenja magistrale. Ukoliko jeste, signal hldr je aktivan, jer bar jedan kontroler uređaja u lancu drži aktivnu vrednost. S toga se na sledeći signal takta u kontroleru uređaja sledbenika u lancu, koji je dobio aktivnu vrednost signala hlda na liniji hldain, flip-flop FFhlda postavlja na aktivnu vrednost. S druge strane ovo je za procesor indikacija da zahtev korišćenja magistrale još uvek nije ukinut, pa procesor, daljim držanjem signala hlda na aktivnu vrednost, ne ukida dozvolu korišćenja magistrale. S obzirom na to da su signali hldr i hlda na liniji hldain ostali aktivni i u flip-flopovima FFhlda datog kontrolera i kontrolera uređaja prethodnika u lancu ostaje aktivna vrednost. Kada redom svi kontroleri uređaja sledbenici u lancu, koji su postavili zahtev korišćenja magistrale, prosleđivanjem dobiju dozvolu korišćenja magistrale, realizuju ciklus na magistrali i ukinu zahtev korišćenja magistrale, signal hldr prelazi u stanje visoke impedanse. To je posledica toga što svi kontroleri uređaja u lancu drže signal hldr u stanju visoke impedanse. Signal hldr u stanju visoke impedanse daje neaktivnu vrednost signala hldr u svim kontrolerima uređaja u lancu, pa se u svim kontrolerima uređaja u kojima je flip-flop FFhlda postavljen na aktivnu vrednost na signal takta flip-flop FFhlda postavlja na neaktivnu vrednost. Ovo je za procesor indikacija da je zahtev korišćenja magistrale ukinut od strane svih kontrolera u lancu, pa procesor, postavljanjem signala hlda na neaktivnu vrednost, ukida dozvolu korišćenja magistrale.

Page 269: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

263

U kontroleru se može dogoditi da se dobije dozvolu korišćenja magistrale iako kontroler nije postavio zahtev korišćenja magistrale. To se dešava kada je zahtev postavio neki od kontrolera uređaja koji su sledbenici u lancu, pa dozvolu treba proslediti sledećem uređaju u lancu. Kako kontroler nije postavio zahtev korišćenja magistrale flip-flop FFhold nije postavljen. Međutim, zbog zahteva korišćenja magistrale koji je postavio neki od kontrolera uređaja koji su sledbenici u lancu, signal hldr je aktivan. Kada procesor reagujući na dati zahtev da dozvolu korišćenja magistrale, signal hlda na liniji hldain postaje aktivan. Aktivna vrednost ovog signala dolazi u kontroler i to od procesora, ukoliko je uređaj prvi u lancu, ili od kontrolera uređaja prethodnika, ukoliko uređaj nije prvi u lancu, pa se na signal takta i flip-flop FFhlda postavlja na aktivnu vrednost. Kako je signal FFhold neaktivan, signal hldas ostaje neaktivan, a signal hlda na liniji hldaout postaje aktivan. Neaktivnom vrednošću signala hldas se obezbeđuje da kontroler ne realizuje ciklus na magistrali, a aktivnom vrednošću signala hlda na liniji hldaout se dozvola korišćenja magistrale prosleđuje sledećem uređaju u lancu.

Treba uočiti da tokom prosleđivanja dozvole korišćenja magistrale od kontrolera do kontrolera uređaja koji su u lancu, flip-flop FFhlda ostaje postavljem sve dok svi kontroleri u lancu ne ukinu zahteve korišćenja magistrale i signal hldr pređe u stanje visoke impedanse. Tada se zbog neaktivne vrednosti signala hldr na prvi signal takta u svim kontrolerima uređaja flip-flop FFhlda postavlja na neaktivnu vrednost. U međuvremenu se može dogoditi da se flip-flop Phold postavi na aktivnu vrednost zbog toga što je upravljačka jedinica uprav_jed_mem prošla kroz korak u kome se generiše aktivna vrednost signala sthold trajanja jedna perioda signala takta. Time se pamti da kontroler treba kao gazda da realizuje ciklus na magistrali i da zbog toga treba da generiše aktivnu vrednost signala hldr. Međutim kako je dozvola korišćenja magistrale prosleđena sledećim uređajima u lancu, na šta ukazuje aktivna vrednost signala FFhlda, i kako svi uređaji sledbenici u lancu još uvek nisu realizovali svoje cikluse na magistrali, na šta ukazuje aktivna vrednos signala hldr, signal enhold ostaje neaktivan. S toga flip-flop Phold ostaje aktivan, a flip-flop FFhold neaktivan. Tek kada redom svi kontroleri uređaja sledbenika u lancu, koji su postavili zahtev korišćenja magistrale, prosleđivanjem dobiju dozvolu korišćenja magistrale, realizuju ciklus na magistrali i ukinu zahtev korišćenja magistrale, signal hldr prelazi u stanje visoke impedanse, čime i signal hldr u kontrolerima svih uređaja postaje neaktivan. Prelazak signala hldr u stanje visoke impedanse je za procesor indikacija da je zahtev korišćenja magistrale ukinut od strane kontrolera svih uređaja u lancu, pa procesor, postavljanjem signala hlda na neaktivnu vrednost, ukida dozvolu korišćenja magistrale. S druge strane formiranje neaktivne vrednosti signala hldr u kontrolerima svih uređaja u lancu izaziva da svi flip-flopovi FFhlda koji su postavljeni na aktivnu vrednost budu postavljeni na neaktivnu vrednost. Čim signal FFhlda postane neaktivan, signal enhold postaje aktivan, pa se na sledeći signal takta flip-flop FFhold postavlja na aktivnu, a flip-flop Phold na neaktivnu vrednost. Pri aktivnoj vrednosti signala FFhold izlaz bafera sa tri stanja koji daje signal hldr prelazi iz stanja visoke impedanse na aktivnu vrednost, čime se procesoru šalje zahtev korišćenja magistrale.

Kombinacione i sekvencijalne mreže za realizaciju ciklusa na magistrali kada je kontroler gazda formiraju signale RDBUS i WRBUS magistrale BUS i enFFC upravljačke jedinice uprav_jed_mem (slika 87). Ovi signali se formiraju na osnovu signala read i write, koje generiše upravljačka jedinica uprav_jed_mem, i signala FCBUS, koji dolazi sa magistrale.

Page 270: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

264

write

14

44

44

24

44

44

3

upra

v_je

d_m

em

CLKCLK

read

CLK CLK

S

R

CLK

Q

QRd

mr

Drdbus

S

R

CLK

Q

QRd

mr

enFFCuprav_jed_mem

DRinregistri

S

R

CLK

Qwrbus

Rd

mr

S

R

CLK

Qrdbus

Rd

mr

rdbus

CLK

D

CLK

Q

QRd

mr

DFFC

DFFC

WRBUSBUS

OEwrite

RDBUS

OEreadBUS

readuprav_jed_mem

strdbus

stwrbus Dwrbus

Drdbus

Dwrbus

Q

Q

hldas

FFC

FFC

D

CLK

Q

Q

CLK

Rd

mr

fcFCBUS

BUS

Slika 87 Blok interfejs (četvrti deo)

Pri realizaciji ciklusa čitanja na magistrali kontroler kao gazda najpre procesoru šalje zahtev korišćenja magistrale. Po dobijanju dozvole korišćenja magistrale kontroler prvo izbacuje adresu na adresne linije ABUS15...0 magistrale i potom, generisanjem aktivne vrednosti upravljačkog signala RDBUS magistrale, startuje u memoriji kao slugi čitanje iz adresirane memorijske lokacije Memorija po završenom čitanju izbacuje sadržaj memorijske lokacije na linije podataka DBUS15...0 magistrale i formira aktivnu vrednost upravljačkog signala FCBUS magistrale. Posle toga kontroler upisuje sadržaj sa linija podataka magistrale u registar podatka i postavlja signal RDBUS na neaktivnu vrednost. Zatim memorija uklanja podatak sa linija podataka magistrale i postavlja signal FCBUS na neaktivnu vrenost. Na kraju kontroler ukida zahtev korišćenja magistrale procesoru.

Pri realizaciji ciklusa upisa na magistrali kontroler kao gazda najpre procesoru šalje zahtev korišćenja magistrale. Po dobijanju dozvole korišćenja magistrale kontroler prvo izbacuje adresu na adresne linije ABUS15...0 i podatak na linije podataka DBUS15...0 magistrale i potom, generisanjem aktivne vrednosti upravljačkog signala WRBUS magistrale, startuje upis u memoriju. Memorija po završenom upisu formira aktivnu vrednost upravljačkog signala FCBUS magistrale. Posle toga kontroler uklanja adresu i podatak sa adresnih linija i linija

Page 271: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

265

podatak magistrale i postavlja signal WRBUS na neaktivnu vrednost. Zatim memorija postavlja signal FCBUS na neaktivnu vrednost. Na kraju kontroler ukida zahtev korišćenja magistrale procesoru.

Aktivna vrednost signala hldas bloka interfejs je indikacija da je dozvola koriiščenja magistrale dobijena i da operacija čitanja može da se realizuje (slika 86). Na signal takta na koji signal hldas postaje aktivan upravljačka jedinica uprav_jed_mem generiše aktivne vrednosti signala AR1out i read. Signalom AR1out se sadržaj adresnog registra kontrolera AR1 pušta na adresne linije magistrale (slika 83). Aktivnim vrednostima signala hldas i read se formira aktivna vrednost signalla OEread, pa se na liniji RDBUS pojavljuje neaktivna vrednost signala rdbus. Aktivne vrednosti signala hldas, read i Drdbus daju aktivnu vrednost signala strdbus. Zbog toga se na sledeći signal takta flip-flop rdbus postavlja na aktivnu vrednost, pa i signal RDBUS postaje aktivan. Time se ostvaruje zahtevani vremenski pomak od jedne periode signala takta između trenutka pojavljivanja adrese na adresnim linijama ABUS15...0 magistrale i aktivne vrednosti signala na upravljačkoj liniji RDBUS magistrale. Na sledeći signal takta flip-flop Drdbus postaje aktivan, pa se formira neaktivna vrednost signala strdbus.

Sledeća promena se dešava kada memorija kao sluga postavljanjem signala na upravljačkoj liniji magistrale FCBUS na aktivnu vrednost pošalje indikaciju kontroleru kao gazdi da je čitanje obavljeno i da se podatak nalazi na linijama podataka DBUS15...0 magistrale. Na sledeća dva signala takta, najpre se flip-flop FFC postavlja na aktivnu vrednost, a zatim flip-flop rdbus na neaktivnu i flip-flop DFFC na aktivnu vrednost. Postavljanjem signala rdbus na neaktivnu vrednost i signal RDBUS postaje neaktivnan. Signalima read, FFC i DFFC se u slučaju čitanja pri prelasku signala FFC sa neaktivne na aktivnu vrednost formira aktivna vrednost signala DRin trajanja jedna perioda signala takta. Ovim signalom se obezbeđuje upisivanje očitanog sadržaja sa linija podataka magistrale u registar podataka kontrolera DR (slika 83).

Na postavljanje signala RDBUS na neaktivnu vrednost reaguje memorija postavljanjem signala FCBUS na neaktivnu vrednost. Na sledeća dva signala takta, najpre se se flip-flop FFC, a zatim i flip-flop DFFC postavlja na neaktivnu vrednost. Signalima hldas, FFC i DFFC se pri prelasku signala FFC sa aktivne na neaktivnu vrednost formira aktivna vrednost signala enFFC trajanja jedna perioda signala takta. Aktivnom vrednošću signala enFFC se na signal takta upisuje neaktivna vrednost u flip-flop Drdbud i upravljačkoj jedinici uprav_jed_bus omogućuje prelazak na sledeći korak. U njemu se signal read postavlja na neaktivnu vrednost, što izaziva formiranje neaktivnih vrednosti signala OEread i prelazak upravljačke linije RDBUS u stanje visoke impedanse, i ukida zahtev korišćenja magistrale, zbog čega se formira neaktivna vrednost signala hldas.

Realizacija ciklusa upisa u memoriju kao slugi na strani kontrolera kao gazdi je veoma slična sa realizacijom ciklusa čitanja. Razlika je u tome što upravljačke jedinica uprav_jed_mem generiše signale write i AR2out umesto signala read i AR1out i signal DRout. Time se sadržaji adresnog registra AR2 i registra podatka DR kontrolera puštaju na adresne linije ABUS15...0 i linije podataka DBUS15...0 magistrale, respekivno. Pored toga, umesto upravljačkog signala RDBUS magistrale formira se upravljački signala WRBUS magistrale i time realizuje upis u memoriju.

6.3.2 Upravljačka jedinica

Upravljačka jedinica uprav_jed se sastoji iz tri dela: • upravljačke jedinice magistrale uprav_jed_bus, • upravljačke jedinice periferije uprav_jed_per i

Page 272: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

266

• upravljačke jedinice memorije uprav_jed_mem. Upravljačke jedinice uprav_jed_bus, uprav_jed_per i uprav_jed_mem rade istovremeno i omogućuju paralelan rad kontrolera periferije KP kao sluge sa magistralom BUS, kontrolera periferije KP sa periferijon PER i kontrolera periferije KP kao gazde sa magistralom BUS.

Upravljačka jedinica uprav_jed_bus omogućuje da procesor CPU kao gazda u kontroleru kao slugi realizuje upisivanje sadržaja u registre, čitanje sadržaja iz registara i prihvatanje broja ulaza u tabelu sa adresama prekidnih rutina. Upisivanjem odgovarajućeg sadržaja u upravljački registar startuje se kontroler za prenos podataka iz periferije u memoriju, iz memorije u periferiju i iz memoriju u memoriju.

Prilikom startovanja kontrolera za prenos podataka iz periferije u memoriju aktiviraju se upravljačke jedinice uprav_jed_per i uprav_jed_mem. Upravljačka jedinica uprav_jed_per prvo startuje periferiju da pročita podatak i smesti ga u registar podatka periferije, a zatim podatak prenosi iz registra podatka periferije, najpre, u pomoćni registar podatka kontrolera, a potom u registar podatka kontrolera. Tada upravljačka jedinica uprav_jed_mem podatak prenosi iz registra podatka kontrolera u memoriju. Prenošenje podatka iz registra podatka kontrolera u memoriju od strane upravljačke jedinice uprav_jed_mem i čitanje novog podatka iz periferije sa prenošenjem iz registra podatka periferije u pomoćni registar podatka kontrolera od strane upravljačke jedinice uprav_jed_per su preklopljeni. Upravljačka jedinica uprav_jed_per novi podatak prenosi iz pomoćnog registra podatka kontrolera u registar podatka kontrolera tek pošto upravljačka jedinica uprav_jed_mem prethodni podatak prenese iz registra podatka kontrolera u memoriju. Prenošenje podataka iz periferije u memoriju traje dok se ne prenesu sve reči bloka podataka na šta ukazuje sadržaj nula registra broja reči za prenos kontrolera. Po prenošenju zadnjeg podatka iz registra podatka kontrolera u memoriju bit spremnost statusnog registra se postavlja na aktivnu vrednost i generiše prekid ukoliko je pri startovanju zadat režim rada sa generisanjem prekida.

Prilikom startovanja kontrolera periferije za prenos podataka iz memorije u periferiju aktiviraju se upravljačke jedinice uprav_jed_mem i uprav_jed_per. Upravljačka jedinica uprav_jed_mem najpre prenosi podatak iz memorije u registar podatka kontrolera. Tada upravljačka jedinica uprav_jed_per podatak prenosi iz registra podatka kontrolera u pomoćni registar podatka kontrolera i startuje upis podatka u periferiju. Upis podatka iz pomoćnog registra podatka u periferiju od strane upravljačke jedinice uprav_jed_per i prenošenje novog podatka iz memorije u registar podatka kontrolera od strane upravljačke jedinice uprav_jed_mem su preklopljeni. Upravljačka jedinica uprav_jed_per novi podatak prenosi iz registra podatka kontrolera u pomoćni registar podatka kontrolera tek pošto prethodni podatak iz pomoćnog registra podatka kontrolera upiše u periferiju. Prenošenje podataka iz memorije u periferiju traje dok se ne prenesu sve reči bloka podataka na šta ukazuje sadržaj nula registra broja reči za prenos kontrolera. Po prenošenju zadnjeg podatka iz memorije u periferiju bit spremnost statusnog registra se postavlja na aktivnu vrednost i generiše prekid ukoliko je pri startovanju zadat režim rada sa generisanjem prekida.

Prilikom startovanja kontrolera periferije za prenos podataka iz memorije u memoriju aktivira se upravljačka jedinica uprav_jed_mem. Upravljačka jedinica uprav_jed_mem, najpre, podatak prenosi iz memorije u registar podatka kontrolera, a zatim podatak iz registra podatka kontrolera prenosi u memoriju. Prenošenje podataka iz memorije u memoriju traje dok se ne prenesu sve reči bloka podataka na šta ukazuje sadržaj nula registra broja reči za prenos kontrolera. Po prenošenju zadnjeg podatka iz memorije u memoriju bit spremnost statusnog registra se postavlja na aktivnu vrednost i generiše prekid ukoliko je pri startovanju zadat režim rada sa generisanjem prekida.

Page 273: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

267

Struktura i opis upravljačkih jedinica uprav_jed_bus, uprav_jed_per i uprav_jed_mem se daju u daljem tekstu.

6.3.2.1 Upravljačka jedinica magistrale

U ovom odeljku se daju dijagram toka operacija, algoritam generisanja upravljačkih signala, sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije i struktura upravljačke jedinice uprav_jed_bus.

6.3.2.1.1 Dijagram toka operacija

Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 88). U operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim blokovima se nalaze opisi logičkih uslova koji definišu grananja algoritma.

U početnom koraku dijagrama toka operacija vrši se provera da li je procesor startovao u kontroleru ciklus čitanja, ciklus upisa ili ciklus prihvatanja broja ulaza, pri čemu se procesor ponaša kao gazda, a kontroler kao sluga. Ako nije startovan ni ciklus čitanja ni ciklus upisa ni ciklus prihvatanja broja ulaza ostaje se u početnom koraku. Ako je startovan jedan od ova tri ciklusa prelazi se na sledeći korak.

Ako je startovan ciklus čitanja ulazi se u petlju u kojoj se, saglasno protokolu za ciklus čitanja, procesoru kao gazdi šalje sadržaj očitanog registra kontrolera i indikacija da je kontroler kao sluga završio čitanje i čeka da procesor kao gazda pošalje indikaciju da je prihvatio očitani sadržaj i završio ciklus čitanja. Po dobijanju date indikacije izlazi se iz petlje i vraća se na početni korak.

Ako je startovan ciklus upisa ulazi se u petlju u kojoj se, saglasno protokolu za ciklus upisa, procesoru kao gazdi šalje indikacija da je kontroler kao sluga završio upis i čeka da procesor kao gazda pošalje indikaciju da je završio ciklus upisa. Po dobijanju date indikacije izlazi se iz petlje i vraća se na početni korak.

Ako je startovan ciklus prihvatanja broja ulaza ulazi se u petlju u kojoj se, saglasno protokolu za ciklus prihvatanja broja ulaza, procesoru kao gazdi šalje sadržaj očitanog registra broja ulaza i indikacija da je kontroler kao sluga završio prihvatanje broja ulaza i čeka da procesor kao gazda pošalje indikaciju da je prihvatio broj ulaza i završio ciklus prihvatanja broja ulaza. Po dobijanju date indikacije izlazi se iz petlje i vraća na početni korak.

6.3.2.1.2 Algoritam generisanja upravljačkih signala

Algoritam generisanja upravljačkih signala je formiran na osnovu dijagrama toka operacija (slika 88) i dat u obliku dijagrama toka upravljačkih signala (slika 89), sekvence upravljačkih signala po koracima (tabela 81) i vremenskih oblika signala (slike 90, 91 i 92).

Dijagram toka upravljačkih signala je predstavljen operacionim i uslovnim blokovima (slika 89). U operacionim blokovima se nalaze upravljački signali i uslovi pod kojima se oni generišu. U uslovnim blokovima se nalaze signali logičkih uslova.

U sekvenci upravljačkih signala po koracima se koriste iskazi za signale i skokove. Iskazi za signale su oblika

signali i if uslov then signali.

Prvi iskaz sadrži spisak upravljačkih signala blokova operacione jedinice oper_jed i određuje koji se signali bezuslovno generišu. Drugi iskaz sadrži uslov i spisak upravljačkih signala blokova operacione jedinice oper_jed i određuje koji signali i pod kojim uslovima treba da budu generisani. Iskazi za skokove su oblika

br (if uslov then stepA).

Page 274: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

268

Da

li je

gaz

da st

arto

vao

cikl

us u

pisa

?

Da

li je

gaz

da st

arto

vao

cikl

us č

itanj

a ?

0

1

0

1

Da

li je

gaz

da st

arto

vao

cikl

us p

rihva

tanj

a br

oja

ulaz

a ?

0

Slan

je sa

drža

ja re

gist

ra b

roja

ulaz

a ga

zdi

1

Da

li je

gaz

da z

avrš

ioci

klus

prih

vata

nja

broj

aul

aza

?

0

1

Indi

kaci

ja g

azdi

da

je c

iklu

spr

ihva

tanj

a br

oja

ulaz

a za

vrše

n

Upi

s sad

ržaj

a u

adre

sira

nire

gist

ar

Da

li je

gaz

da z

avrš

ioci

klus

upi

sa ?

0

1

Indi

kaci

ja g

azdi

da

je c

iklu

sup

isa

zavr

šen

Slan

je sa

drža

ja a

dres

irano

gre

gist

ra g

azdi

Da

li je

gaz

da z

avrš

ioci

klus

čita

nja

?0

1

Indi

kaci

ja g

azdi

da

je c

iklu

sči

tanj

a za

vrše

n

Slika 88 Dijagram toka operacija

Ovaj iskaz sadrži uslov i korak i određuje na koji korak i pod kojim uslovima treba preći.

Objašnjenja vezana za generisanje upravljačkih signala su data zajednički za dijagram toka upravljačkih signala i sekvencu upravljačkih signala po koracima i to u okviru sekvence upravljačkih signala po koracima.

Page 275: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

269

if rd

s the

n O

Efcb

us,

if w

rs th

en O

Efcb

us,

if in

tas t

hen

OEf

cbus

step

0

step

3

0rds

wrs

1

inta

s0

1

OEf

cbus

,if

inta

s the

n (fc

bus,

IERo

ut),

if in

tas t

hen

clin

tr

1

0

0

OEf

cbus

,if

wrs

then

fcbu

s,if

(wrs

* se

lCR)

then

CRi

n,if

(wrs

* se

lIER)

then

IERi

n,if

(wrs

* se

lWC

R) th

en W

CRi

n,if

(wrs

* se

lAR1

) the

n A

R1in

,if

(wrs

* se

lAR2

) the

n A

R2in

step

2

wrs

1

0

OEf

cbus

,if

rds t

hen

fcbu

s,if

(rds

* se

lCR)

then

CRo

ut,

if (r

ds *

selS

R) th

en S

Rout

,if

(rds

* se

lIER)

then

IERo

ut,

if (r

ds *

selW

CR)

then

WC

Rout

step

1

rds

0

1

inta

s1

0

Slika 89 Dijagram toka upravljačkih signala

Tabela 81 Sekvenca upravljačkih signala po koracima ! U koraku step0 se ostaje i ne generiše se aktivna vrednost ni jednog od upravljačkih signala sve dok su sva tri signala rds, wrs i intas bloka interfejs neaktivni. Signal rds postaje aktivan kada procesor CPU prebaci adresne linije ABUS15..0 magistrale iz stanja visoke impedanse na vrednost adrese nekog od programski dostupnih registara CR15..0, SR15..0, IER15..0 ili WCR15..0 bloka registri i započne ciklus čitanja. Signal wrs postaje aktivan kada processor prebaci adresne linije ABUS15..0 i linije podataka DBUS15..0 magistrale iz stanja visoke impedanse na vrednost adrese registra i sadržaja za upis u neki od programski dostupnih registara CR15..0, IER15..0, WCR15..0, AR115..0 ili AR215..0 i započne ciklus upisa. Signal intas postaje aktivan kada processor započne ciklus prihvatanja broja ulaza u tabelu sa

Page 276: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

270

adresama prekidnih rutina iz registra IER15..0. Pri aktivnoj vrednosti jednog od signala rds, wrs i intas generiše se signal OEfcbus bloka interfejs i prelazi na korak step1, step2 ili step3, respektivno. Signalom OEfcbus se obezbeđuje da upravljačka linija FCBUS magistrale pređe iz stanja visoke impedanse na neaktivnu vrednost signala fcbus upravljačke jedinice uprav_jed_bus. Koraci step1, step2 i step3 odgovaraju ciklusima čitanja, upisa i prihvatanja broja ulaza, respektivno. !

step0 if (rds+wrs+intas) then OEfcbus, br (if rds then step1), br (if wrs then step2), br (if intas then step3);

! U korak step1 se dolazi iz koraka step0. U ovom koraku se generiše signal OEfcbus, čime se obezbeđuje da se i dalje preko bafera sa tri stanja na upravljačku liniju FCBUS magistrale prosleđuje vrednost signala fcbus. U ovom koraku se ostaje sve vreme dok je signal rds aktivan. Dok je signal rds aktivan, generiše se aktivna vrednost signala fcbus. Time je i na upravljačkoj liniji FCBUS magistrale aktivna vrednost. Pri aktivnoj vrednosti signala rds, a u zavisnosti od toga koji od signala selCR, selSR, selIER i selWCR bloka interfejs ima aktivnu vrednost, generiše se aktivna vrednost jednog od signala CRout, SRout, IERout i WCRout bloka registri, respektivno. Signalima CRout, SRout, IERout i WCRout se obezbeđuje da linije podataka DBUS15…0 magistrale pređu iz stanja visoke impedanse na vrednost sadržaja jednog od registara CR15..0, SR15..0, IER 15..0 ili WCR15..0, respektivno. Kada signal rds postane neaktivan i signali fcbus, CRout, SRout, IERout i WCRout postanu neaktivni. Na liniji FCBUS se pojavljuje neaktivna vrednost, jer je signal OEfcbus još uvek aktivan, dok linije DBUS15…0 prelaze u stanje visoke impedanse. Pri neaktivnoj vrednosti signala rds prelazi se u korak step0. Time i signal OEfcbus postaje neaktivan, čime se obezbeđuje da linija FCBUS pređe sa neaktivne vrednosti na stanje visoke impedanse. !

step1 OEfcbus, if rds then fcbus, if (rds*selCR) then CRout, if (rds*selSR) then SRout, if (rds*selIER) then IERout, if (rds*selWCR) then WCRout, br (if rds then step0);

! U korak step2 se dolazi iz koraka step0. U ovom koraku se generiše signal OEfcbus, čime se obezbeđuje da se i dalje preko bafera sa tri stanja na upravljačku liniju FCBUS magistrale prosleđuje vrednost signala fcbus. U ovom koraku se ostaje sve vreme dok je signal wrs aktivan. Dok je signal wrs aktivan, generiše se aktivna vrednost signala fcbus. Time je i na upravljačkoj liniji FCBUS magistrale aktivna vrednost. Pri aktivnoj vrednosti signala wrs, a u zavisnosti od toga koji od signala selCR, selIER, selWCR, selAR1 ili selAR2 bloka interfejs ima aktivnu vrednost, generiše se aktivna vrednost jednog od signala CRin, IERin, WCRin, AR1in ili AR2in bloka registri, respektivno. Signalima CRin, IERin, WCRin, AR1in i AR2in se obezbeđuje da se sadržaj sa linija podataka DBUS15…0 magistrale upiše u jedan od registara CR15..0, IER15..0, WCR15..0, AR115..0 ili AR215..0, respektivno. Kada signal wrs postane neaktivan i linije linije DBUS15…0 prelaze u stanje visoke impedanse. Pri neaktivnoj vrednosti signala wrs generišu se neaktivne vrednosti signala fcbus, CRin, IERin, WCRin, AR1in i AR2in. Na liniji FCBUS se pojavljuje neaktivna vrednost, jer je signal OEfcbus još uvek aktivan. Pri neaktivnoj vrednosti signala wrs prelazi se u korak step0. Time i signal OEfcbus postaje neaktivan, čime se obezbeđuje da linija FCBUS pređe sa neaktivne vrednosti na stanje visoke impedanse. !

step2 OEfcbus, if wrs then fcbus), if (wrs*selCR) then CRin, if (wrs*selIER) then IERin, if (wrs*selWCR) then WCRin, if (wrs*selAR1) then AR1in, if (wrs*selAR2) then AR2in, br (if wrs then step0);

Page 277: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

271

! U korak step3 se dolazi iz koraka step0. U ovom koraku se generiše signal OEfcbus, čime se obezbeđuje da se i dalje preko bafera sa tri stanja na upravljačku liniju FCBUS magistrale prosleđuje vrednost signala fcbus. U ovom koraku se ostaje sve vreme dok je signal intas aktivan. Dok je signal intas aktivan, generiše se aktivna vrednost signala fcbus. Time je i na upravljačkoj liniji FCBUS magistrale aktivna vrednost. Pri aktivnoj vrednosti signala intas generiše se aktivna vrednost i signala IERout bloka registri. Signalom IERout se obezbeđuje da linije podataka DBUS15…0 magistrale pređu iz stanja visoke impedanse na vrednost sadržaja registra IER15..0. Kada signal intas postane neaktivan i signali fcbus i IERout postanu neaktivni. Na liniji FCBUS se pojavljuje neaktivna vrednost, jer je signal OEfcbus još uvek aktivan, dok linije DBUS15…0 prelaze u stanje visoke impedanse. Pri neaktivnoj vrednosti signala intas generiše se signal clintr bloka interfejs. Signalom clintr se flip-flop FFintr bloka interfejs postavlja na neaktivnu vrednost. Time se i signal prekida intr bloka interfejs postavlja na neaktivnu vrednost u slučaju kada se zahtev za prekid šalje kao nivo. Pri neaktivnoj vrednosti signala intas prelazi se u korak step0. Time i signal OEfcbus postaje neaktivan, čime se obezbeđuje da linija FCBUS pređe sa neaktivne vrednosti na stanje visoke impedanse. !

step3 OEfcbus, if intas then (fcbus, IERout), if intas then clintr, br (if intas then step0);

Vremenski oblici signala su dati posebno za ciklus čitanja iz kontrolera periferije, za ciklus upisa u kontroler periferije i ciklus prihvatanja broja ulaza kontrolera periferije. Prilikom ciklus čitanja iz kontrolera periferije se mogu čitati sadržaji registara CR15…0, SR15…0, IER15…0 i WCR15…0. Vremenski oblici signala su veoma slični za ciklus čitanja sadržaja sva četiri registra, pa su dati samo za registar SR15…0 (slika 90). Prilikom ciklusa upisa u kontroler periferije sadržaj se može upisati u registre CR15…0, IER15…0, WCR15…0, AR115…0 i AR215…0. Vremenski oblici signala su veoma slični za ciklus upisa sadržaja u svih pet registara, pa su dati samo za registar CR15…0 (slika 91). Prilikom ciklusa prihvatanja broja ulaza kontrolera periferije čita se sadržaj registra IER15…0, pri čemu su vremenski oblici signala veoma slični vremenskim oblicima signala za ciklus čitanja (slika 92). U koraku step0 se ostaje sve dok su neaktivne vrednosti signala rds, wrs i intas.

CLK

step0step1step0

ABUS

DBUS

selSR

rdsRDBUS

OEfcbusfcbus, SRout

FCBUS

LLLL

LLLLLLL

LLL

L

Slika 90 Vremenski oblici signala za ciklus čitanja iz kontrolera periferije

Ciklus čitanja započinje procesor postavljanjem adrese registra SR15…0 na adresne linije ABUS15…0 magistrale, pa ove linije prelaze iz stanja visoke impedanse na odgovarajuću kombinaciju aktivnih i neaktivnih vrednosti. Kao rezultat u kontroleru se formira aktivna vrednost signala selSR. Nešto kasnije procesor startuje ciklus čitanja postavljanjem upravljačkog signala RDBUS magistrale na aktivnu vrednost. Ovaj signal sinhronizovan na signal takta kontrolera periferije daje aktivnu vrednost signal rds. Aktivna vrednost signala rds daje aktivnu vrednost signala OEfcbus, pa se na liniji FCBUS umesto stanja visoke impedanse pojavljuje neaktivna vrednost signala fcbus. Na osnovu aktivne vrednosti signala rds prelazi se iz koraka step0 u korak step1. U koraku step1 signal OEfcbus je aktivan, pa se

Page 278: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

272

na liniji FCBUS pojavljuje vrednost koja prati vrednost signala fcbus. U koraku step1 se pri aktivnoj vrednosti signala rds generišu aktivne vrednosti signala fcbus i SRout. Aktivna vrednost signala fcbus daje aktivnu vrednost signala FCBUS. Aktivna vrednost signala SRout obezbeđuje puštanje sadržaja registra SR15…0 na linije podataka DBUS15…0 magistrale, pa ove linije prelaze iz stanja visoke impedanse na odgovarajuću kombinaciju aktivnih i neaktivnih vrednosti. U koraku step1 se ostaje sve dok je aktivna vrednost signala rds. Pošto signal RDBUS postane neaktivan, na prvi signal takta i signal rds postane neaktivan. Tada i signali fcbus i SRout postanu neaktivni. Neaktivna vrednost signala fcbus daje i neaktivnu vrednost signala FCBUS. Neaktivna vrednost signala SRout daje stanje visoke impedanse na linijama DBUS15…0. Pri neaktivnoj vrednosti signala rds prelazi se u korak step0. Tada i signal OEfcbus postane neaktivan, pa linija FCBUS prelazi u stanje visoke impedanse. Procesor, pošto konstatuje da je signal FCBUS postao neaktivan, ukida adresu registra SR15…0 sa adresnih linija ABUS15…0 magistrale, pa ove linije prelaze u stanja visoke impedanse.

Vremenski oblici signala za ciklus čitanja sadržaja registara CR15…0, IER15…0 i WCR15…0 su veoma slični vremenskim oblicima signala za ciklus čitanja sadržaja registra SR15…0 (slika 90). Da bi se do njih došlo potrebno je u vremenskim oblicima signala za registar SR15…0 uzeti da se na adresnim linijama ABUS15…0 magistrale umesto adrese registra SR15…0 nalazi adresa jednog od registara CR15…0, IER15…0 i WCR15…0. Zbog toga treba uzeti i da se u kontroleru umesto aktivne vrednosti signala selSR formira aktivna vrednost jednog od signala selCR, selIER ili selWCR. Takođe, umesto signala SRout traba generisati jedan od signala CRout, IERout ili WCRout.

CLK

step0step2step0

ABUS, DBUSselCR

wrsWRBUS

OEfcbusfcbus, CRin

FCBUS

LLLL

L

L

L

L

L

L

L

L

L

Slika 91 Vremenski oblici signala za ciklus upisa u kontroler periferije

Ciklus upisa započinje procesor postavljanjem adrese registra CR15…0 na adresne linije ABUS15…0 magistrale i sadržaja za upis u registar CR15…0 na linije podataka DBUS15…0 magistrale, pa ove linije prelaze iz stanja visoke impedanse na odgovarajuću kombinaciju aktivnih i neaktivnih vrednosti. Kao rezultat u kontroleru se formira aktivna vrednost signala selCR. Nešto kasnije processor startuje ciklus upisa postavljanjem upravljačkog signala WRBUS magistrale na aktivnu vrednost. Ovaj signal sinhronizovan na signal takta kontrolera periferije daje aktivnu vrednost signal wrs. Aktivna vrednost signala wrs daje aktivnu vrednost signala OEfcbus, pa se na liniji FCBUS umesto stanja visoke impedanse pojavljuje neaktivna vrednost signal fcbus. Na osnovu aktivne vrednosti signala wrs prelazi se iz koraka step0 u korak step2. U koraku step2 signal OEfcbus je aktivan, pa se na liniji FCBUS pojavljuje vrednost koja prati vrednost signala fcbus. U koraku step2 se pri aktivnoj vrednosti signala wrs generišu aktivne vrednosti signala fcbus i CRin. Aktivna vrednost signala fcbus daje aktivnu vrednost signala FCBUS. Aktivna vrednost signala CRin obezbeđuje upis sadržaja sa linija podataka DBUS15…0 magistrale u registar CR15…0. U koraku step2 se ostaje sve dok je aktivna vrednost signala wrs. Pošto signal WRBUS postane neaktivan, na prvi signal takta i signal wrs postane neaktivan. Tada i signali fcbus i CRin postanu neaktivni.

Page 279: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

273

Neaktivna vrednost signala fcbus daje i neaktivnu vrednost signala FCBUS. Pri neaktivnoj vrednosti signal wrs prelazi se u korak step0. Tada i signal OEfcbus postane neaktivan, pa linija FCBUS prelazi u stanje visoke impedanse. Procesor, pošto konstatuje da je signal FCBUS postao neaktivan, ukida adresu registra CR15…0 sa adresnih linija ABUS15…0 magistrale i sadržaj upisan u registar CR15…0 sa linija podataka DBUS15…0 magistrale, pa ove linije prelaze u stanje visoke impedanse.

Vremenski oblici signala za ciklus upisa sadržaja u registare IER15…0, WCR15…0, AR115…0 i AR215…0 su veoma slični vremenskim oblicima signala za ciklus upisa sadržaja u registar CR15…0 (slika 91). Da bi se do njih došlo potrebno je u vremenskim oblicima signala za registar CR15…0 uzeti da se na adresnim linijama ABUS15…0 magistrale umesto adrese registra CR15…0 nalazi adresa jednog od registara IER15…0, WCR15…0, AR115…0 i AR215…0. Zbog toga treba uzeti i da se u kontroleru umesto aktivne vrednosti signala selCR formira aktivna vrednost jednog od signala selIER, selWCR, selAR1 ili selAR2. Takođe, umesto signala CRin traba generisati jedan od signala IERin, WCRin, AR1in ili AR2in.

DBUS

intasintain

OEfcbusfcbus, IERout

FCBUS

clintr

CLK

step0step3step0

LLLLLLL

LLL

L

LL

Slika 92 Vremenski oblici signala za ciklus prihvatanja broja ulaza kontrolera periferije

Ciklus prihvatanja broja ulaza započinje procesor postavljanjem signala inta na aktivnu vrednost. Ovaj signal, koji se pojavljuje na liniji intain, sinhronizovan na signal takta kontrolera periferije daje aktivnu vrednost signal intas. Aktivna vrednost signala intas daje aktivnu vrednost signala OEfcbus, pa se na liniji FCBUS umesto stanja visoke impedanse pojavljuje neaktivna vrednost signala fcbus. Na osnovu aktivne vrednosti signala intas prelazi se iz koraka step0 u korak step3. U koraku step3 signal OEfcbus je aktivan, pa se na liniji FCBUS pojavljuje vrednost koja prati vrednost signala fcbus. U koraku step3 se pri aktivnoj vrednosti signala intas generišu aktivne vrednosti signala fcbus i IERout. Aktivna vrednost signala fcbus daje aktivnu vrednost signala FCBUS. Aktivna vrednost signala IERout obezbeđuje puštanje sadržaja registra IER15…0 na linije podataka DBUS15…0 magistrale, pa ove linije prelaze iz stanja visoke impedanse na odgovarajuću kombinaciju aktivnih i neaktivnih vrednosti. U koraku step3 se ostaje sve dok je aktivna vrednost signala intas. Pošto signal inta na liniji intain postane neaktivan, na prvi signal takta i signal intas postane neaktivan. Tada i signali fcbus i IERout postanu neaktivni. Neaktivna vrednost signala fcbus daje i neaktivnu vrednost signala FCBUS. Neaktivna vrednost signala IERout daje stanje visoke impedanse na linijama DBUS15…0. Pri neaktivnoj vrednosti signala intas generiše se signal clintr, koji se koristi da se i signal zahteva za prekid intr postavi na neaktivnu vrednost u slučaju kada se zahtev za prekid šalje kao nivo procesoru. Pri neaktivnoj vrednosti signal intas prelazi se u korak step0. Tada i signal OEfcbus postane neaktivan, pa linija FCBUS prelazi u stanje visoke impedanse.

6.3.2.1.3 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije

Upravljačka jedinica ožičene realizacije generiše dve vrste upravljačkih signala i to:

Page 280: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

274

• upravljačke signale blokova operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed_bus.

Upravljački signali blokova operacione jedinice oper_jed se koriste u blokovima operacione jedinice oper_jed radi izvršavanja mikrooperacija. Upravljački signali upravljačke jedinice uprav_jed_bus se koriste u upravljačkoj jedinici uprav_jed_bus radi inkrementiranja brojača koraka ili upisa nove vrednosti u brojač koraka.

Upravljački signali blokova operacione jedinice oper_jed se mogu generisati na osnovu sekvence upravljačkih signala po koracima (tabela 81). Za svaki upravljački signal blokova operacione jedinice oper_jed treba krenuti kroz sekvencu upravljačkih signala po koracima i tražiti korake sa iskazima za signale u kojima se pojavljuje dati signal. Za svaki takav korak treba uzeti signal dekodovanog stanja brojača koraka, ukoliko se signal bezuslovno generiše, i logički proizvod signala dekodovanog stanja brojača koraka i signala uslova, ukoliko se signal uslovno generiše, i formirati njihovu uniju.

Upravljački signali upravljačke jedinice uprav_jed_bus se ne mogu formirati na osnovu sekvence upravljačkih signala po koracima (tabela 81), jer se u njoj ne pojavljuju upravljački signali upravljačke jedinice uprav_jed_bus, već samo iskazi za skok. Zbog toga je potrebno na osnovu sekvence upravljačkih signala po koracima, najpre, formirati sekvencu upravljačkih signala za upravljačku jedinicu ožičene realizacije. Prilikom njenog formiranja primenjuje se različiti postupak za upravljačke signale blokova operacione jedinice oper_jed i za upravljačke signale upravljačke jedinice uprav_jed_bus. Za upravljačke signale blokova operacione jedinice oper_jed treba staviti iskaze za signale onako kako se javljaju u sekvenci upravljačkih signala po koracima. Za upravljačke signale upravljačke jedinice uprav_jed_bus treba u sekvenci upravljačkih signala po koracima tražiti iskaze

br (if uslov then stepA) i umesto njih staviti

if uslov then (ldCNT, bv1,bv0) ili if uslov then incCNT.

Iskaz if uslov then (ldCNT, bv1,bv0)

se stavlja u onim koracima u kojima stepA nije prvi sledeći korak. U svakom takvom iskazu pored signala ldCNT, koji je obavezan, pojavljuje se i kombinacija aktivnih i neaktivnih vrednosti signala bv1 i bv0 koja odgovara binarnoj vrednosti A koraka stepA na koji treba preći ukoliko je signal uslov aktivan. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 82. Iskaz

if uslov then incCNT se stavlja u onim koracima u kojima je stepA prvi sledeći korak na koji treba preći ukoliko je signal uslov aktivan. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 83.

Po opisanom postupku se, na osnovu sekvence upravljačkih signala po koracima (tabela 81), formira sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 84). Ona ima sledeću formu:

• na levoj strani nalaze se dekodovani signali stanja brojača koraka, • u sredini je iskaz tipa

signali, if uslov then signali, if uslov then (ldCNT, bv1,bv0) ili if uslov then incCNT,

Page 281: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

275

• dok komentar, u koracima gde se to radi lakšeg razumevanja smatralo korisnim, uvek počinje uskličnikom (!) i proteže se do sledećeg uskličnika (!).

Tabela 82 Signali ldCNT, bv1 i bv0

stepA br (if uslov then stepA) if uslov then (ldCNT, bv1,bv0) step0 br (if wrs then step2) if wrs then (ldCNT, bv1) step0 br (if intas then step3) if intas then (ldCNT, bv1,bv0) step1 br (if rds then step0) if rds then ldCNT step2 br (if wrs then step0) if wrs then ldCNT step3 br (if intas then step0) if intas then ldCNT

Tabela 83 Signali incCNT

stepA br (if uslov then stepA) if uslov then incCNT step0 br (if rds then step1 if rds then incCNT

Iz izloženog se vidi da su upravljački signali za upravljačku jedinicu ožičene realizacije ldCNT, bv1, bv0 i incCNT. Oni se formiraju na osnovu dobijene sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije na identičan način kao i upravljački signali blokova operacione jedinice oper_jed.

Tabela 84 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije ! U koraku T0 se ostaje sve dok su i signal rds i signal wrs i signal intas neaktivni. Tada su neaktivne vrednostu signala incCNT i ldCNT, pa nema promene vrednosti brojača koraka CNT. Ukoliko je aktivna vrednost signala rds prelazi se u korak T1. Pri aktivnoj vrednosti signala rds generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 1. Ukoliko je aktivna vrednost signala wrs prelazi se u korak T2. Pri aktivnoj vrednosti signala wrs generišu se aktivne vrednosti signala ldCNT i bv1, pa se u brojač koraka CNT upisuje vrednost 2. Ukoliko je aktivna vrednost signala intas prelazi se u korak T3. Pri aktivnoj vrednosti signala intas generišu se aktivne vrednosti signala ldCNT, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 3. !

T0 if (rds+wrs+intas) then OEfcbus, if rds then incCNT, if wrs then (ldCNT, bv1), if intas then (ldCNT, bv1, bv0);

! U koraku T1 se ostaje sve dok je signal rds aktivan. Tada su neaktivne vrednostu signala incCNT i ldCNT, pa nema promene vrednosti brojača koraka CNT. Ukoliko je neaktivna vrednost signala rds prelazi se u korak T0. Pri aktivnoj vrednosti signala rds generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. !

T1 OEfcbus, if rds then fcbus, if (rds*selCR) then CRout, if (rds*selSR) then SRout, if (rds*selIER) then IERout, if (rds*selWCR) then WCRout, if rds then ldCNT;

! U koraku T2 se ostaje sve dok je signal wrs aktivan. Tada su neaktivne vrednostu signala incCNT i ldCNT, pa nema promene vrednosti brojača koraka CNT. Ukoliko je neaktivna vrednost signala rds prelazi se u korak T0. Pri aktivnoj vrednosti signala wrs generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. !

T2 OEfcbus,

Page 282: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

276

if wrs then fcbus, if (wrs*selCR) then CRin, if (wrs*selIER) then IERin, if (wrs*selWCR) then WCRin, if (wrs*selAR1) then AR1in, if (wrs*selAR2) then AR2in, if wrs then ldCNT;

! U koraku T3 se ostaje sve dok je signal intas aktivan. Tada su neaktivne vrednostu signala incCNT i ldCNT, pa nema promene vrednosti brojača koraka CNT. Ukoliko je neaktivna vrednost signala intas prelazi se u korak T0. Pri aktivnoj vrednosti signala intas generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. !

T3 OEfcbus, if intas then (fcbus, IERout), if intas then clintr, if intas then ldCNT;

6.3.2.1.4 Struktura upravljačke jedinice

Struktura upravljačke jedinice ožičene realizacije je prikazana na slici 93. Upravljačka jedinica se sastoji od sledećih blokova:

• blok brojač koraka, • blok dekoder koraka i • blok generisanje upravljačkih signala.

Blok brojač koraka sadrži brojač CNT1...0. Brojač CNT1...0 svojom trenutnom vrednošću obezbeđuje aktivne vrednosti određenih upravljačkih signala. Brojač Brojač CNT1...0 može da radi u sledećim režimima:

• režim inkrementiranja, • režim skoka i • režim čekanja.

U režimu inkrementiranja pri pojavi signala takta vrši se uvećavanje sadržaja brojača CNT1...0 za jedan čime se obezbeđuje sekvencijalno generisanje upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 84). Ovaj režim rada se realizuje neaktivnom vrednošću signala ldCNT i aktivnom vrednošću signala incCNT (tabela 83).

U režimu skoka pri pojavi signala takta vrši se upis nove vrednosti u brojač CNT1...0 čime se obezbeđuje odstupanje od sekvencijalnog generisanja upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 84). Ovaj režim rada se realizuje aktivnom vrednošću signala ldCNT, neaktivnom vrednošću signala incCNT i kombinacijom aktivnih i neaktivnih vrednosti signala bv1 i bv0 koja odgovara vrednosti koju treba upisati u brojač CNT1...0 (tabela 82).

U režimu čekanja pri pojavi signala takta ne menja se vrednost brojača CNT1...0. Ovaj režim rada se obezbeđuje neaktivnim vrednostima signala ldCNT i incCNT.

Blok dekoder koraka sadrži dekoder DC. Na ulaze dekodera DC vode se izlazi brojača CNT1...0. Dekodovana stanja brojača CNT1...0 pojavljuju se kao signali T0 do T3 na izlazima dekodera DC. Svakom koraku iz sekvence upravljačkih signala po koracima (tabela 81) dodeljeno je po jedno stanje brojača CNT1...0 određeno vrednošću signala T0 do T3 i to koraku step0 signal T0, koraku step1 signal T1, itd.

Page 283: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

277

CNT1...0 INC

LDCLK

1 0

D C

T3 T0

CNT0

1 0mr

MRCLK

...

...

0

3 0

... ...

bv0

ldCNTincCNT

bv1

CNT1

1bl

ok re

gist

ri

blok

inte

rfej

s

generisanjeupravljačkih

signalablokova

operacionejedinice

ldC

NT

generisanjeupravljačkih

signalaupravljačke

jedinice

incC

NT

bv1

bv0

brojačkoraka

dekoderkoraka

generisanjeupravljačkih signala

inte

rfej

s1

44

44

24

44

43

selAR1selAR2rds

selIERselWCR

selSRselCR

wrsintas

Slika 93 Struktura upravljačke jedinice uprav_jed_bus

Blok generisanje upravljačkih signala sadrži kombinacione mreže koje pomoću signala T0 do T3, koji dolaze sa bloka dekoder koraka, signala logičkih uslova selCR do intas, koji dolaze iz bloka interfejs operacione jedinice oper_jed i saglasno sekvenci upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 84) generišu dve grupe upravljačkih signala i to:

• upravljačke signale blokova operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed_bus.

Upravljački signali blokova operacione jedinice oper_jed se daju posebno za blok registri i blok interfejs.

Upravljački signali bloka registri se generišu na sledeći način: • CRout = rds*selCR*T1 • SRout = rds*selSR*T1 • IERout = rds*selIER*T1 + intas*T3 • WCRout = rds*selWCR*T1 • CRin = wrs*selCR*T2 • IERin = wrs*selIER*T2

Page 284: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

278

• WCRin = wrs*selWCR*T2 • AR1in = wrs*selAR1*T2 • AR2in = wrs*selAR2*T2

Upravljački signali blok interfejs se generišu na sledeći način: • OEfcbus = (rds + wrs + intas)*T0 + T1 + T2 + T3 • fcbus = rds*T1 + wrs*T2 + intas*T3 • clintr = intas *T3

Upravljački signali upravljačke jedinice uprav_jed_bus se generišu na sledeći način: • ldCNT = wrs*T0 + intas*T0 + rds*T1 + wrs*T2 + intas*T3 • bv1 = wrs*T0 + intas*T0 • bv0 = intas*T0 • incCNT = rds*T0

Pri njihovom generisanju koriste se sledeći signali logičkih uslova koji dolaze iz bloka interfejs operacione jedinice oper_jed i to:

• rds — blok interfejs. • wrs — blok interfejs • intas — blok interfejs • selCR — blok interfejs • selSR — blok interfejs • selIER — blok interfejs • selWCR — blok interfejs • selAR1 — blok interfejs i • selAR2 — blok interfejs.

6.3.2.2 Upravljačka jedinica periferije

U ovom odeljku se daju dijagram toka operacija, algoritam generisanja upravljačkih signala, sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije i struktura upravljačke jedinice uprav_jed_per.

6.3.2.2.1 Dijagram toka operacija

Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 94). U operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim blokovima se nalaze opisi logičkih uslova koji definišu grananja algoritma.

U početnom koraku dijagrama toka operacija vrši se provera da li je kontroler startovan ili ne. Ako kontroler nije startovan ostaje se u početnom koraku i čeka startovanje kontrolera. Ako je kontroler startovan prelazi se na korak u kome se vrši provera da li je zadat prenos iz periferije u memoriju ili iz memorije u periferiju. Ukoliko nije zadat ni jedan od ova dva prenosa ostaje se u početnom koraku.

Ako je zadat prenos iz periferije u memoriju prelazi se na prenošenje podatka iz periferije u kontroler. Najpre se postavlja indikacija da je registar podatka raspoloživ da se u njega prenese podatak iz pomoćnog registra podatka. Zatim se postavlja zahtev periferiji da pročita podatak. Potom se u petlji vrši provera da li je kontroler zaustavljen upisivanjem neaktivne vrednosti u razred start upravljačkog registra i da li je periferija završila čitanje podatka. Ukoliko se utvrdi da je kontroler zaustavljen, prekida se prenošenje podataka iz periferije u kontroler, vraća se u početni korak i čeka da se ponovo programskim putem upisivanjem aktivne vrednosti u razred start upravljačkog registra startuje kontroler. Ukoliko se utvrdi da

Page 285: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

279

je periferija očitala podatak i upisala ga u registar podatka periferije izlazi se iz petlje i podatak prenosi iz registra podatka periferije u pomoćni registar podatka kontrolera.

Da li je kontrolerstartovan ?

0

Da li je zadat prenos izperiferije u memoriju ?

0

1

1

Da li je zadat prenos izmemorije u periferiju ?

1

0

Indikacija da u registrupodatka nema podatka zaprenos u pomoćni registar

podatka

Da li podatak može dase prenese iz registrapodatka u pomoćniregistar podatka ?

Da li je kontrolerzaustavljen ?

Prenos podatka iz registrapodatka u pomoćni registar

podatka

0

1

0

1

Indikacija da u registrupodatka nema podatka zaprenos u pomoćni registar

podatka

Da li je kontrolerzaustavljen ?

1

Da li je periferija završilaupis podatka ?

1

Zahtev periferiji za upispodatka iz pomoćnog registra

podatka

Da li je kontrolerzaustavljen ?

0

0

1

0

Indikacija da u registarpodatka može da se prenosi

podatak iz pomoćnog registrapodatka

Zahtev periferiji za čitanjepodatka

Da li je periferija završilačitanje podatka ?

Da li je kontrolerzaustavljen ?

0

Prenos podatka iz registrapodatka periferije u pomoćni

registar podatka

1

1

0

Indikacija da u registarpodatka ne može da se prenosipodatak iz pomoćnog registra

podatka

Prenos podatka iz pomoćnogregistra podatka u registar

podatka

Da li u registar podatkamože da se prenese

podatka iz pomoćnogregistra podatka ?

Da li je kontrolerzaustavljen ?

1

0

1

Da li je prenoskompletiran ?

1

0 Da li je prenoskompletiran ?

0

0

1

Slika 94 Dijagram toka operacija

Potom se u petlji vrši provera da li je kontroler zaustavljen i da li je registar podatka kontrolera raspoloživ da se u njega prenese novi podatak iz pomoćnog registra podatka

Page 286: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

280

kontrolera. Ukoliko se utvrdi da je kontroler zaustavljen, prekida se prenošenje podataka iz periferije u kontroler, vraća se u početni korak i čeka da se ponovo programskim putem startuje kontroler. Ukoliko se utvrdi da je registar podatka kontrolera raspoloživ izlazi se iz petlje i podatak prenosi iz pomoćnog registra podatka kontrolera u registar podatka kontrolera. Istovremeno se postavlja indikacija da registar podatka nije raspoloživ da se u njega prenese novi podatak iz pomoćnog registra podatka sve dok se podatak ne prenese iz registra podatka u memoriju. Potom se vrši provera da li je prenos kompletiran. Ukoliko nije vraća se na korak u kome se postavlja zahtev periferiji da pročita sledeći podatak i time kreće sa ponavljanjem opisanih aktivnosti. Ukoliko jeste vraća se na početni korak i zaustavlja prenos.

Ako je zadat prenos iz memorije u periferiju prelazi se na prenošenje podatka iz kontrolera u periferiju. Najpre se postavlja indikacija da registar podatka nije raspoloživ da se iz njega prenosi podatak u pomoćni registar podatka sve dok se podatak ne prenese iz memorije u registar podatka. Potom se u petlji vrši provera da li je kontroler zaustavljen i da li je registar podatka raspoloživ da se iz njega prenese novi podatak u pomoćni registar podatka. Ukoliko se utvrdi da je kontroler zaustavljen, prekida se prenošenje podataka iz kontrolera u periferiju, vraća se u početni korak i čeka da se ponovo programskim putem startuje kontroler. Ukoliko se utvrdi da je registar podatka raspoloživ izlazi se iz petlje i podatak prenosi iz registra podatka u pomoćni registar podatka. Istovremeno se postavlja indikacija da registar podatka nije raspoloživ da se iz njega prenosi novi podatak u pomoćni registar podatka sve dok se novi podatak ne prenese iz memorije u registar podatka.

Zatim se vrši provera da li je kontroler zaustavljen. Ukoliko se utvrdi da je kontroler zaustavljen, prekida se prenošenje podataka iz kontrolera u periferiju, vraća se u početni korak i čeka da se ponovo programskim putem startuje kontroler. Ukoliko se utvrdi da kontroler nije zaustavljen, periferiji se postavlja zahtev da upiše sledeći podatak. Potom se u petlji vrši provera da li je kontroler zaustavljen i da li je periferija završila upis padatka. Ukoliko se utvrdi da je kontroler zaustavljen, prekida se prenošenje podataka iz kontrolera u periferiju, vraća se u početni korak i čeka da se ponovo programskim putem startuje kontroler. Ukoliko se utvrdi da je periferija završila upis podatka iz pomoćnog registra podatka kontrolera, izlazi se iz ove petlje. Potom se vrši provera da li je prenos kompletiran. Ukoliko nije vraća se u kojoj se vrši provera da li je kontroler zaustavljen i da li je registar podatka kontrolera raspoloživ da se iz njega prenese novi podatak u pomoćni registar podatka kontrolera. Ukoliko jeste vraća se na početni korak i zaustavlja prenos.

6.3.2.2.2 Algoritam generisanja upravljačkih signala

Algoritam generisanja upravljačkih signala je formiran na osnovu dijagrama toka operacija (slika 94) i dat u obliku dijagrama toka upravljačkih signala (slika 95), sekvence upravljačkih signala po koracima (tabela 85) i vremenskih oblika signala (slike 96 i 97).

Dijagram toka upravljačkih signala je predstavljen operacionim i uslovnim blokovima (slika 95). U operacionim blokovima se nalaze upravljački signali i uslovi pod kojima se oni generišu. U uslovnim blokovima se nalaze signali logičkih uslova.

U sekvenci upravljačkih signala po koracima se koriste iskazi za signale i skokove. Iskazi za signale su oblika

signali i if uslov then signali.

Prvi iskaz sadrži spisak upravljačkih signala periferije PER i blokova operacione jedinice oper_jed i određuje signale koji se bezuslovno generišu. Drugi iskaz sadrži uslov i spisak

Page 287: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

281

upravljačkih signala periferije PER i blokova operacione jedinice oper_jed i određuje koji signali i pod kojim uslovima treba da budu generisani. Iskazi za skokove su oblika

br (if uslov then stepA). Ovaj iskaz sadrži uslov i korak i određuje na koji korak i pod kojim uslovima treba preći.

1step5

if (CR2*WRDR) then DRAUXin,if (CR2*WRDR) then clWRDRper

reqwrstep6

step7

CR2

CR2

WRDR

CR20

01

1

0

1

1

0

0

pm 1

0

mp0

reqrdstep1

step2

step4

ldDRAUXstep3

CR2

CR2

reqrd_done

CR2

if (CR2*RDDR) then ldDR,if (CR2*RDDR) then clRDDRper

0

1

01

1

0

0

1

CR2

RDDR

0

10

1

if (CR2*done*pm) then stRDDRper,if (CR2*done*mp) then clWRDRper

step0

CR20

1

done1

reqwr_done1

0

done1

0

done1

0

Slika 95 Dijagram toka upravljačkih signala

Objašnjenja vezana za generisanje upravljačkih signala su data zajednički za dijagram toka upravljačkih signala i sekvencu upravljačkih signala po koracima i to u okviru sekvence upravljačkih signala po koracima.

Tabela 85 Sekvenca upravljačkih signala po koracima ! U koraku se step0 se ostaje i ne generiše se aktivna vrednost ni jednog od upravljačkih signala sve dok je ili signal CR2 bloka registri neaktivan ili signal done bloka registri aktivan. Signal CR2 je neaktivan ukoliko kontroler periferije nije startovan. Kontroler periferije se startuje programskom putem upisivanjem u upravljački registar CR15…0 bloka registri sadržaja koji na poziciji razreda CR2 ima aktivnu vrednost. Signal done je aktivan ukoliko je sadržaj registra WCR15…0 bloka registri nula. Ovo se dešava ili po kompletiranju prenosa ili ukoliko se programskim putem upisivanjem u registar WCR15…0 za veličini bloka zada vrednost nula. Za korak step0 su bitni i razredi CR4 i CR0 registra CR15…0. Na poziciji razreda CR4 je neaktivna vrednost jer se radi o prenosu iz periferije u memorije ili iz memorije u periferiju. Na poziciji razreda CR0 je aktivna ili neaktivna vrednost i zavisnosti od toga da li se radi o prenosu iz periferije u memoriju ili iz memorije u periferiju, respektivno. Ukoliko je

Page 288: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

282

zadat prenos iz periferije u memoriju razred CR4 je neaktivan a CR0 aktivan, pa signal pm bloka registri ima aktivnu vrednost. Ukoliko je zadat prenos iz memorije u periferiju razredi CR4 i CR0 su neaktivni, pa signal mp bloka registri ima aktivnu vrednost. Pri aktivnim vrednostima signala CR2, done i pm generiše se signal stRDDRper bloka registri i prelazi na korak step1 koji odgovara prenosu iz periferije u memoriju. Signalom stRDDRper se upisuje aktivna vrednost u flip-flop RDDR bloka registri. Ova vrednost je indikacija da je registar podatka DR15…0 raspoloživ da se u njega prenese podatak iz pomoćnog registra podatka DRAUX15…0 bloka registri. Pri aktivnim vrednostima signala CR2, done i mp generiše se signal clWRDR bloka registri i prelazi se na korak step5, koji odgovara prenosu iz memorije u periferiju. Signalom clWRDR se upisuje neaktivna vrednost u flip-flop WRDR bloka registri. Ova vrednost je indikacija da je registar podatka DR15…0 raspoloživ da se u njega prenese podatak iz memorije. !

step0 if (CR2*done*pm) then stRDDRper, if (CR2*done*mp) then clWRDRper, br (if (CR2*done*pm) then step1), br (if (CR2*done*mp) then step5);

! U korak step1 se dolazi iz koraka step0 ili koraka step4. U ovom koraku se generiše signal reqrd, koji predstavlja zahtev periferiji da pročita sledeći podatak. Ukoliko je neaktivna vrednost signala CR2, što znači da je upisivanjem neaktivne vrednosti u razred CR2 upravljačkog registra CR zaustavljen rad kontrolera, prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2 prelazi se u korak step2. !

step1 reqrd, br (if CR2 then step0), br (if CR2 then step2);

! U korak step2 se dolazi iz koraka step1. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2, ili se ostaje u koraku step2 ili se prelazi u korak step3 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal reqrd_done periferije PER, respektivno. Neaktivna vrednost signala reqrd_done je indiakcija da čitanje podatka u periferiji još uvek traje, a aktivna vrednost da je podatak očitan i da se nalazi u registru PRP15...0 periferije. !

step2 br (if CR2 then step0), br (if (CR2*reqrd_done) then step3);

! U korak step3 se dolazi iz koraka step2. U ovom koraku se generiše signal ldDRAUX. Ovim signalom se sadržaj registra PRP15...0 periferije, koji u kontroler periferije dolazi po linijama DIN15...0, propušta kroz multiplekser MP2 bloka registri i upisuje u pomoćni registar podatka DRAUX15...0 bloka registri. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2 prelazi se u korak step4. !

step3 ldDRAUX, br (if CR2 then step0), br (if CR2 then step4);

! U korak step4 se dolazi iz koraka step3. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2, ili se ostaje u koraku step4 ili se prelazi u korake step1 ili step0. Ukoliko je neaktivna vrednost signala RDDR ostaje se u koraku step4. Ukoliko je aktivna vrednost signala RDDR prelazi se u korak step1 ili step0 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal done bloka registri, respektivno. Neaktivna vrednost signala RDDR je indikacija da registar DR15...0 nije raspoloživ, jer upravljačka jedinica uprav_jed_mem prethodni podatak još uvek nije prenela iz registra DR15...0 u memoriju. Aktivna vrednost signala RDDR je indikacija da je registar DR15...0 raspoloživ, pa se generišu signali ldDR i clRDDRper. Signalom ldDR se sadržaj registra DRAUX15...0 propušta kroz multiplekser MP1 bloka registri i upisuje u registar DR15...0. Signalom clRDDRper se u flip-flop RDDR upisuje neaktivna vrednost. Neaktivna vrednost signala RDDR je indikacija da registar DR15...0 nije raspoloživ da se u njega prenese novi podatak iz registra DRAUX15...0 sve dok upravljačka jedinica uprav_jed_mem prethodni podatak ne prenese iz registra DR15...0 u memoriju. Neaktivna vrednost signala done je indikacija da prenos nije kompletoran, a aktivna da jeste. !

step4 if (CR2*RDDR) then ldDR, if (CR2*RDDR) then clRDDRper, br (if CR2 then step0),

Page 289: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

283

br (if (CR2*RDDR*done) then step1); br (if (CR2*RDDR*done) then step0);

! U korak step5 se dolazi iz koraka step0 ili koraka step7. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2, ili se ostaje u koraku step5 ili se prelazi u korak step6 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signala WRDR bloka registri, respektivno. Neaktivna vrednost signala WRDR je indikacija da registar DR15...0 nije raspoloživ, jer upravljačka jedinica uprav_jed_mem novi podatak još uvek nije prenela iz memorije u registar DR15...0. Aktivna vrednost signala WRDR je indikacija da je upravljačka jedinica uprav_jed_mem novi podatak prenela iz memorije u registar podatka DR15...0 i da je registar DR15...0 raspoloživ. Po upisu podatka u registar DR15...0 upravljačka jedinica uprav_jed_mem signalom stWRDRmem postavlja flip-flop WRDR na aktivnu vrednost. Pri aktivnoj vrednosti signala WRDR generišu se aktivne vrednosti signala DRAUXin i clWRDRper. Neaktivnom vrednošću signala ldDRAUX se sadržaj registra DR15...0 propušta kroz multiplekser MP2 bloka registri, a aktivnom vrednošću signala DRAUXin upisuje u pomoćni registar podatka DRAUX15...0 bloka registri. Signalom clWRDRper se u flip-flop WRDR upisuje neaktivna vrednost. Ova vrednost je indikacija da registar DR15...0 nije raspoloživ i da njegov sadržaj ne može da se prenese u registar DRAUX15...0 sve dok upravljačka jedinica uprav_jed_mem novi podatak ne prenese iz memorije u registar DR15...0. !

step5 if (CR2*WRDR) then DRAUXin, if (CR2*WRDR) then clWRDRper, br (if CR2 then step0), br (if (CR2*WRDR) then step6);

! U korak step6 se dolazi iz koraka step5. U ovom koraku se generiše signal reqwr, koji predstavlja zahtev periferiji da upiše podatak iz registra DRAUX15…0. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2 prelazi se u korak step7. !

step6 reqwr, br (if CR2 then step0), br (if CR2 then step7);

! U korak step7 se dolazi iz koraka step6. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2 ili se ostaje u koraku step7 ili se prelazi u korake step5 ili step0. Ukoliko je neaktivna vrednost signala reqwr_done periferije ostaje se u koraku step7. Ukoliko je aktivna vrednost signala reqwr_done prelazi se u korak step5 ili step0 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signala done bloka registri, respektivno. Neaktivna vrednost signala reqwr_done je indikacija da upis podatka iz registra DRAUX15...0 u periferiju još uvek traje, a aktivna vrednost da je podatak upisan. Neaktivna vrednost signala done je indikacija da prenos nije kompletoran, a aktivna da jeste.!

step7 br (if CR2 then step0), br (if (CR2*reqwr_done*done) then step5); br (if (CR2*reqwr_done*done) then step0);

Vremenski oblici signala su dati posebno za prenos podataka iz periferije u memoriju (slika 96) i prenos podataka iz memorije u periferiju (slika 97). Uzeto je da se posmatra deo u kome se ne završava prenos pa je signal done bloka registri sve vreme neaktivan. U oba slučaja ostaje se u koraku step0 sve dok kontroler periferije nije startovan (CR2=0).

Nakon startovanja kontrolera periferije (CR2=1) za prenos iz periferije u memoriju (CR0=1, CR4=0) formiraju se aktivne vrednosti signala pm i stRDDRper. Zbog aktivne vrednosti signala stRDDRper na sledeći signal takta se flip-flop RDDR postavlja na aktivnu vrednost. Na isti signal takta se prelazi iz koraka step0 u korak step1. U koraku step1 se generiše aktivna vrednost signala reqrd i prelazi u korak step2. U koraku step2 se ostaje sve dok je neaktivna vrednost signala reqrd_done. Kada podatak postane raspoloživ i signal reqrd_done postane aktivan. Tada se prelazi u korak step3. U koraku step3 se generiše aktivna vrednost signala ldDRAUX, čime se sa ulaznih linija podataka PIN15...0 iz periferije preuzima podatak i upisuje u pomoćni registar podatka DRAUX15...0 i prelazi u korak step4. U koraku step4 se ostaje jedna perioda signala takta ukoliko je signal RDDR aktivan i više perioda

Page 290: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

284

signala takta ukoliko je neaktivan. Aktivna vrednost signala RDDR je indikacija da je upravljačka jedinica uprav_jed_mem prenela prethodni podatak iz registra podatka DR15...0 u memoriju i da je registar DR15...0 raspoloživ. Neaktivna vrednost signala RDDR je indikacija da upravljačka jedinica uprav_jed_mem još uvek nije prenela prethodni podatak iz registra DR15...0 u memoriju i da u registar DR15...0 ne sme da se upisuje novi podatak iz registra DRAUX15...0. Pri prenosu prvog podatka registar DR15...0 je raspoloživ, pa je zato i flip-flop RDDR postavljen na aktivnu vrednost. Pri aktivnoj vrednosti signala RDDR u koraku step4 se generišu aktivne vrednosti signala ldDR i clRDDRper. Signalom ldDR se novi podatak prenosi iz registra DRAUX15...0 u registar DR15...0. Signalom clRDDRper se flip-flop RDDR postavlja na neaktivnu vrednost. Pri aktivnoj vrednosti signala RDDR se prelazi iz koraka step4 u korak step1. Time je prenos jednog podatka iz periferije završen i započinje prenos sledećeg podatka. Pri tome je uzeta situacija koja se javlja ukoliko se radi o brzoj periferiji. Novi podatak je prenet iz periferije u pomoćni registar podatka DRAUX15...0, a da prethodni podatak nije prenet iz registra podatka DR15...0 u memoriju. Zbog toga se po prelasku u korak step4 u flip-flopu RDDR zatiče neaktivna vrednost. Kada upravljačka jedinica uprav_jed_mem prenese prethodni podatak iz registra podatka DR15...0 u memoriju i generiše aktivnu vrednost signala stRDDRmem, flip-flop RDDR se postavlja na aktivnu vrednost. Aktivna vrednost signala RDDR omogućuje generisanje aktivnih vrednosti signala ldDR i clRDDRper. Signalom ldDR se novi podatak prenosi iz registra DRAUX15...0 u registar DR15...0. Signalom clRDDRper se flip-flop RDDR postavlja na neaktivnu vrednost. Pri aktivnoj vrednosti signala RDDR se prelazi iz koraka step4 u korak step1. Time je prenos još jednog podatka iz periferije u završen i započinje prenos sledećeg podatka.

CLK

step1step0

CR2, CR0pm

ldDRAUXldDR, clRDDRper

reqrdreqrd_done

stRDDRperRDDR

step2

L

step3

L

L

LLL

L

L

L

L

L

L

step4step1 step2 step4

L

step3

L

L

L

L

L L

L L

LL

L

L

LL

L L

L L

L

L

step1

stRDDRmem

L

step2

L

L L

L

L

LLLL

L

L

L

L

L

L

L Slika 96 Vremenski oblici signala pri prenosu iz periferije u memoriju

Nakon startovanja kontrolera periferije (CR2=1) za prenos iz memorije u periferiju (CR0=0, CR4=0) formiraju se aktivne vrednosti signala mp i clWRDRper. Zbog aktivne vrednosti signala clWRDRper na sledeći signal takta se flip-flop WRDR postavlja na neaktivnu vrednost. Na isti signal takta se prelazi iz koraka step0 u korak step5. U koraku step5 se ostaje jedna perioda signala takta ukoliko je signal WRDR aktivan i više perioda signala takta ukoliko je neaktivan. Aktivna vrednost signala WRDR je indikacija da je upravljačka jedinica uprav_jed_mem prenela podatak iz memorije u registar podatka DR15...0 i da je registar DR15...0 raspoloživ. Neaktivna vrednost signala WRDR je indikacija da registar DR15...0 nije raspoloživ, jer upravljačka jedinica uprav_jed_mem još uvek nije prenela novi podatak iz memorije u registar DR15...0 i da iz registra DR15...0 podatak ne sme da se prenosi u pomoćni registar podatka DRAUX15...0. Pri prenosu prvog podatka registar DR15...0 nije raspoloživ, pa je zato i flip-flop WRDR postavljen na neaktivnu vrednost. Po upisu podatka u registar DR15...0 upravljačka jedinica uprav_jed_mem signalom stWRDRmem postavlja flip-flop WRDR na aktivnu vrednost. Pri aktivnoj vrednosti signala WRDR u koraku step5 se

Page 291: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

285

generišu aktivne vrednosti signala DRAUXin i clWRDRper. Signalom DRAUXin se novi podatak prenosi iz registra DR15...0 u registar DRAUX15...0. Signalom clWRDRper se flip-flop WRDR postavlja na neaktivnu vrednost. Pri aktivnoj vrednosti signala WRDR se prelazi iz koraka step5 u korak step6. U koraku step6 se generiše aktivna vrednost signala reqwr, čime se startuje upis u periferiju sadržaja registra DRAUX15...0, raspoloživog na izlaznim linijama podataka POUT15...0, i prelazi u korak step7. Dok upravljačke jedinica uprav_jed_per upisuje prvi podatak iz registra DRAUX15...0 u periferiju, upravljačka jedinica uprav_jed_mem prenosi sledeći podatak iz memorije u registar DR15...0. Pri tome je uzeta situacija koja se javlja ukoliko se radi o sporoj periferiji. Novi podatak je prenet iz memorije u registar DR15...0, a da prethodni podatak nije prenet iz registra DRAUX15...0 u periferiju. Kada upravljačka jedinica uprav_jed_mem prenese novi podatak iz memorije u registar DR15...0 i generiše aktivnu vrednost stWRDRmem, flip-flop WRDR se postavlja na aktivnu vrednost. U koraku step7 se ostaje sve dok je neaktivna vrednost signala reqrd_done. Sa završetkom upisa podatka u periferiju i signal reqrd_done postane aktivan. Tada se prelazi u korak step5. Po prelasku u korak step5 u flip-flopu WRDR se zatiče aktivna vrednost. Aktivna vrednost signala WRDR omogućuje generisanje aktivnih vrednosti signala DRAUXin i clWRDRper. Signalon DRAUXin se novi podatak prenosi iz registra DR15...0 u registar DRAUX15...0. Signalom clWRDRper se flip-flop WRDR postavlja na neaktivnu vrednost. Zbog aktivne vrednosti signala WRDR iz koraka step5 se odmah prelazi u korak step6. U koraku step6 se generiše aktivna vrednost signala reqwr, čime se startuje upis u periferiju sadržaja registra DRAUX15...0, i prelazi u korak step7. Dok upravljačka jedinica uprav_jed_per upisuje dati podatak iz registra DRAUX15...0 u periferiju, upravljačka jedinica uprav_jed_mem započinje prenos sledećeg podatka iz memorije u registar DR15...0.

CLK

step5step0

CR2mp

L

LL

L

step5step6 step7

LLLLL

LLLL L

step6 step7

LLL

DRAUXinreqwr

reqwr_done

L

L

L

L

L

L

L

L

L L L LL L

LclWRDRper L

L

L

L

L

WRDR L L L L

stWRDRmem L L LL

L L L L Slika 97 Vremenski oblici signala pri prenosu iz memorije u periferiju

6.3.2.2.3 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije

Upravljačka jedinica ožičene realizacije generiše dve vrste upravljačkih signala i to: • upravljačke signale periferije PER i blokova operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed_per.

Upravljački signali periferije PER i blokova operacione jedinice oper_jed se koriste u periferiji PER i u blokovima operacione jedinice oper_jed radi izvršavanja mikrooperacija. Upravljački signali upravljačke jedinice uprav_jed_per se koriste u upravljačkoj jedinici uprav_jed_per radi inkrementiranja brojača koraka ili upisa nove vrednosti u brojač koraka.

Upravljački signali periferije PER i blokova operacione jedinice oper_jed se mogu generisati na osnovu sekvence upravljačkih signala po koracima (tabela 85). Za svaki upravljački signal periferije PER i blokove operacione jedinice oper_jed treba krenuti kroz sekvencu upravljačkih signala po koracima i tražiti korake sa iskazima za signale u kojima se

Page 292: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

286

pojavljuje dati signal. Za svaki takav korak treba uzeti signal dekodovanog stanja brojača koraka, ukoliko se signal bezuslovno generiše, i logički proizvod signala dekodovanog stanja brojača koraka i signala uslova, ukoliko se signal uslovno generiše, i formirati njihovu uniju.

Upravljački signali upravljačke jedinice uprav_jed_per se ne mogu formirati na osnovu sekvence upravljačkih signala po koracima (tabela 85), jer se u njoj ne pojavljuju upravljački signali upravljačke jedinice uprav_jed_per, već samo iskazi za skok. Zbog toga je potrebno na osnovu sekvence upravljačkih signala po koracima, najpre, formirati sekvencu upravljačkih signala za upravljačku jedinicu ožičene realizacije. Prilikom njihovog formiranja primenjuje se različiti postupak za upravljačke signale periferije PER i blokove operacione jedinice oper_jed i za upravljačke signale upravljačke jedinice uprav_jed_per. Za upravljačke signale periferije PER i blokove operacione jedinice oper_jed treba staviti iskaze za signale onako kako se javljaju u sekvenci upravljačkih signala po koracima. Za upravljačke signale upravljačke jedinice uprav_jed_per treba u sekvenci upravljačkih signala po koracima tražiti iskaze

br (if uslov then stepA) i umesto njih staviti

if uslov then (ldCNT, bv2, bv1,bv0) ili if uslov then incCNT.

Iskaz if uslov then (ldCNT, bv2, bv1,bv0)

se stavlja u onim koracima u kojima stepA nije prvi sledeći korak. U svakom takvom iskazu pored signala ldCNT, koji je obavezan, pojavljuje se i kombinacija aktivnih i neaktivnih vrednosti signala bv2, bv1 i bv0 koja odgovara binarnoj vrednosti A koraka stepA na koji treba preći ukoliko je signal uslov aktivan. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 86. Iskaz

if uslov then incCNT se stavlja u onim koracima u kojima je stepA prvi sledeći korak na koji treba preći ukoliko je signal uslov aktivan. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 87.

Po opisanom postupku je na osnovu sekvence upravljačkih signala po koracima (tabela 85) formirana sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 88). Ona ima sledeću formu:

• na levoj strani nalaze se dekodovani signali stanja brojača koraka, • u sredini je iskaz tipa

signali, if uslov then signali, if uslov then (ldCNT, bv2, bv1,bv0) ili if uslov then incCNT,

• dok komentar, u koracima gde se to radi lakšeg razumevanja smatralo korisnim, uvek počinje uskličnikom (!) i proteže se do sledećeg uskličnika (!).

Iz izloženog se vidi da su upravljački signali za upravljačku jedinicu ožičene realizacije ldCNT, bv2, bv1, bv0 i incCNT. Oni se formiraju na osnovu dobijene sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije na identičan način kao i upravljački signali periferije PER i blokova operacione jedinice oper_jed.

Page 293: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

287

Tabela 86 Signali ldCNT, bv2, bv1 i bv0

stepA br (if uslov then stepA) if uslov then (ldCNT, bv2, bv1,bv0) step0 br (if (CR2*done*mp)

then step5) if (CR2*done *mp)

then (ldCNT, bv2, bv0) step1 br (if CR2 then step0) if CR2 then ldCNT step2 br (if CR2then step0) if CR2then ldCNT step3 br (if CR2 then step0) if CR2 then ldCNT step4 br (if CR2 then step0) if CR2 then ldCNT step4 br (if (CR2*RDDR*done)

then step1) if (CR2*RDDR*done)

then (ldCNT, bv0) step4 br (if (CR2*RDDR*done)

then step0) if (CR2*RDDR*done)

then ldCNT step5 br (if CR2 then step0) if CR2 then ldCNT step6 br (if CR2 then step0) if CR2 then ldCNT step7 br (if CR2 then step0) if CR2 then ldCNT step7 br (if (CR2*reqwr_done*done)

then step5) if (CR2*reqwr_done*done)

then (ldCNT, bv2, bv0) step7 br (if (CR2*reqwr_done*done)

then step0) if (CR2*reqwr_done*done)

then ldCNT

Tabela 87 Signali incCNT

stepA br (if uslov then stepA) if uslov then incCNT step0 br (if (CR2*done*pm) then step1) if (CR2*done*pm) then incCNT step1 br (if CR2 then step2) if CR2 then incCNT step2 br (if (CR2*reqrd_done)

then step3) if (CR2*reqrd_done)

then incCNT step3 br (if CR2 then step4) if CR2 then incCNT step5 br (if (CR2*WRDR) then step6) if (CR2*WRDR) then incCNT step6 br (if CR2 then step7) if CR2 then incCNT

Tabela 88 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije ! U koraku se T0 se ostaje sve dok je signal CR2 neaktivan ili signal done aktivan. Tada su neaktivne vrednostu signala incCNT i ldCNT, pa nema promene vrednosti brojača koraka CNT. Ukoliko je aktivna vrednost signala CR2 i neaktivna vrednost signala done ili se ostaje u koraku T0 ili se prelazi u korak T1 ili korak T5 u zavisnosti od vrednosti signala pm i mp. Pri neaktivnim vrednostima signala pm i mp ostaje se u koraku T0. Tada su neaktivne vrednostu signala incCNT i ldCNT, pa nema promene vrednosti brojača koraka CNT. Ukoliko je aktivna vrednost signala pm prelazi se u korak T1. Pri aktivnoj vrednosti signala pm generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na vrednost 1. Ukoliko je aktivna vrednost signala mp prelazi se u korak T5 Pri aktivnoj vrednosti signala mp generišu se aktivne vrednosti signala ldCNT, bv2 i bv0, pa se u brojač koraka CNT upisuje vrednost 5. !

T0 if (CR2*done*pm) then stRDDRper, if (CR2*done*mp) then clWRDRper, if (CR2*done*pm) then incCNT,

Page 294: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

288

if (CR2*done*mp) then (ldCNT, bv2, bv0); ! U korak T1 se dolazi iz koraka T0 ili koraka T4. Iz koraka T1 se prelazi se u korak T0 ili korak T2 u zavisnosti od toga da li je vrednost signala CR2 neaktivna ili aktivna, respektivno. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Pri aktivnoj vrednosti signala CR2 generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 2. !

T1 reqrd, if CR2 then ldCNT, if CR2 then incCNT;

! U korak T2 se dolazi iz koraka T1. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak T0. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala CR2 ili se ostaje u koraku T2 ili se prelazi u korak T3 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal reqrd_done, respektivno. Pri neaktivnoj vrednosti signala reqrd_done generiše se neaktivna vrednost signala incCNT, pa se vrednost 2 brojača koraka CNT ne menja. Pri aktivnoj vrednosti signala reqrd_done generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 3. !

T2 if CR2 then ldCNT, if (CR2*reqrd_done) then incCNT;

! U korak T3 se dolazi iz koraka T2. Iz koraka T3 se prelazi se u korak T0 ili korak T4 u zavisnosti od toga da li je vrednost signala CR2 neaktivna ili aktivna, respektivno. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Pri aktivnoj vrednosti signala CR2 generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 4. !

T3 ldDRAUX, if CR2 then ldCNT), if CR2 then incCNT);

! U korak T4 se dolazi iz koraka T3. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak T0. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala CR2 ili se ostaje u koraku T4 ili se prelazi u korak T1 ili T0 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal RDDR, respektivno. Pri neaktivnoj vrednosti signala RDDR generiše se neaktivna vrednost signala ldCNT, pa se vrednost 4 brojača koraka CNT ne menja. Pri aktivnoj vrednosti signala RDDR prelazi se u korak T1 ili T0 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal done, respektivno. Pri neaktivnoj vrednosti signala done generišu se aktivne vrednosti signala ldCNT i bv0, pa se u brojač koraka CNT upisuje vrednost 1. Pri aktivnoj vrednosti signala done generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. !

T4 if (CR2*RDDR) then ldDR, if (CR2*RDDR) then clRDDRper, if CR2 then ldCNT, if (CR2*RDDR*done) then (ldCNT, bv0), if (CR2*RDDR*done) then ldCNT;

! U korak T5 se dolazi iz koraka T0 ili koraka T7. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak T0. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala CR2 ili se ostaje u koraku T5 ili se prelazi u korak T6 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal WRDR, respektivno. Pri neaktivnoj vrednosti signala WRDR generiše se neaktivna vrednost signala incCNT, pa se vrednost 5 brojača koraka CNT ne menja. Pri aktivnoj vrednosti signala WRDR generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 6. !

T5 if (CR2*WRDR) then DRAUXin, if (CR2*WRDR) then clWRDRper, if CR2 then ldCNT,

Page 295: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

289

if (CR2*WRDR) then incCNT; ! U korak T6 se dolazi iz koraka T5. Iz koraka T6 se prelazi se u korak T0 ili korak T7 u zavisnosti od toga da li je vrednost signala CR2 neaktivna ili aktivna, respektivno. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Pri aktivnoj vrednosti signala CR2 generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 7. !

T6 reqwr, if CR2 then ldCNT, if CR2 then incCNT;

! U korak T7 se dolazi iz koraka T6. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak T0. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala CR2 ili se ostaje u koraku T7 ili se prelazi u korak T5 ili T0 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal reqwr_done, respektivno. Pri neaktivnoj vrednosti signala reqwr_done generiše se neaktivna vrednost signala ldCNT, pa se vrednost 4 brojača koraka CNT ne menja. Pri aktivnoj vrednosti signala reqwr_done prelazi se u korak T5 ili T0 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signal done, respektivno. Pri neaktivnoj vrednosti signala done generišu se aktivne vrednosti signala ldCNT, bv2 i bv0, pa se u brojač koraka CNT upisuje vrednost 5. Pri aktivnoj vrednosti signala done generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. !

T7 br (if CR2 then ldCNT, if (CR2*reqwr_done*done) then (ldCNT, bv2, bv0),

if (CR2*reqwr_done*done) then ldCNT;

6.3.2.2.4 Struktura upravljačke jedinice

Struktura upravljačke jedinice ožičene realizacije je prikazana na slici 98. Upravljačka jedinica se sastoji od sledećih blokova:

• blok brojač koraka, • blok dekoder koraka i • blok generisanje upravljačkih signala.

Blok brojač koraka sadrži brojač CNT2...0. Brojač CNT2...0 svojom trenutnom vrednošću obezbeđuje aktivne vrednosti određenih upravljačkih signala. Brojač Brojač CNT2...0 može da radi u sledećim režimima:

• režim inkrementiranja, • režim skoka i • režim čekanja.

U režimu inkrementiranja pri pojavi signala takta vrši se uvećavanje sadržaja brojača CNT2...0 za jedan čime se obezbeđuje sekvencijalno generisanje upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 88). Ovaj režim rada se realizuje neaktivnom vrednošću signala ldCNT i aktivnom vrednošću signala incCNT (tabela 87).

U režimu skoka pri pojavi signala takta vrši se upis nove vrednosti u brojač CNT2...0 čime se obezbeđuje odstupanje od sekvencijalnog generisanja upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 88). Ovaj režim rada se realizuje aktivnom vrednošću signala ldCNT, neaktivnom vrednošću signala incCNT i kombinacijom aktivnih i neaktivnih vrednosti signala bv2, bv1 i bv0 koja odgovara vrednosti koju treba upisati u brojač CNT1...0 (tabela 86).

U režimu čekanja pri pojavi signala takta ne menja se vrednost brojača CNT2...0. Ovaj režim rada se obezbeđuje neaktivnim vrednostima signala ldCNT i incCNT.

Page 296: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

290

CNT2...0 INC

LDCLK

2 0CNT2

D C

T7 T0

CNT0

2 0mr

MRCLK

...

...

2 0

7 0

reqr

d

reqw

r

generisanjeupravljačkih

signalaperiferije

PER

generisanjeupravljačkih

signalablokova

operacionejedinice

... ...

brojač koraka

dekoder koraka

generisanjeupravljačkih signala

bv2 bv0

ldCNTincCNT

bv1

CNT1

1

ldC

NT

bv2

generisanjeupravljačkih

signalaupravljačke

jedinice

...

incC

NT

bv1

bv0

mp

reqwr_done

regi

stri

PER

14

24

31

23

WRDR

reqrd_done

CR2pmRDDR

1

1

blok

regi

stri

Slika 98 Struktura upravljačke jedinice uprav_jed_per

Blok dekoder koraka sadrži dekoder DC. Na ulaze dekodera DC vode se izlazi brojača CNT2...0. Dekodovana stanja brojača CNT2...0 pojavljuju se kao signali T0 do T7 na izlazima dekodera DC. Svakom koraku iz sekvence upravljačkih signala po koracima (tabela 85) dodeljeno je po jedno stanje brojača CNT2...0 određeno vrednošću signala T0 do T7 i to koraku step0 signal T0, koraku step1 signal T1, itd.

Blok generisanje upravljačkih signala sadrži kombinacione mreže koje pomoću signala T0 do T7, koji dolaze sa bloka dekoder koraka, signala logičkih uslova reqrd_done i reqwr_done, koji dolaze iz periferije PER, i CR2 do WRDR, koji dolaze iz bloka registri operacione jedinice oper_jed, i saglasno sekvenci upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 88) generišu tri grupe upravljačkih signala i to:

• upravljačke signale periferije PER, • upravljačke signale blokova operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed_per.

Upravljački signali periferije PER se generišu na sledeći način: • reqrd = T1 • reqwr = T6

Page 297: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

291

Upravljački signali blokova operacione jedinice oper_jed se generišu samo za blok registri i to na sledeći način:

• stRDDRper = CR2*done*pm*T0 • clRDDRper = CR2*RDDR*T4 • clWRDRper = CR2*done*mp*T0 + CR2*WRDR*T5 • ldDR = CR2*RDDR*T4 • DRAUXin = CR2*WRDR*T5 • ldDRAUX = T3

Upravljački signali upravljačke jedinice uprav_jed_per se generiše na sledeći način: • ldCNT = CR2*done*mp*T0 + CR2*RDDR*done*T4 + CR2*RDDR*done*T4 +

CR2*reqwr_done*done*T7 + CR2*reqwr_done*done*T7 + CR2*(T1 + T2 + T3 + T4 + T5 + T6 + T7)

• bv2 = CR2*done*mp*T0 + CR2*reqwr_done*done*T7 • bv1 = 0 • bv0 = CR2*done*mp*T0 + CR2*RDDR*done *T4 + CR2*reqwr_done*done *T7 • incCNT = CR2*done*pm*T0 + CR2*T1 + CR2*reqrd_done*T2 + CR2*T3

+ CR2*WRDR*T5 + CR2*T6

Pri njihovom generisanju koriste se sledeći signali logičkih uslova koji dolaze iz periferije PER i bloka registri operacione jedinice oper_jed i to:

• reqrd_done — periferija PER, • reqwr_done — periferija PER, • CR2 — blok registri, • done — blok registri • mp — blok registri • pm — blok registri • RDDR — blok registri i • WRDR — blok registri.

6.3.2.3 Upravljačka jedinica memorije

U ovom odeljku se daju dijagram toka operacija, algoritam generisanja upravljačkih signala, sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije i struktura upravljačke jedinice uprav_jed_mem.

6.3.2.3.1 Dijagram toka operacija

Dijagram toka operacija je predstavljen operacionim i uslovnim blokovima (slika 99). U operacionim blokovima se nalaze opisi mikrooperacija koje treba realizovati. U uslovnim blokovima se nalaze opisi logičkih uslova koji definišu grananja algoritma.

U početnom koraku dijagrama toka operacija vrši se provera da li je kontroler startovan ili ne. Ako kontroler nije startovan ostaje se u početnom koraku i čeka startovanje kontrolera. Ako je kontroler startovan vrši se provera da li zadat prenos iz periferije u memoriju ili iz memorije u periferiju i ukoliko jeste prelazi na odgovarajuće korake. Ukoliko nije zadat ni jedan od ova dva prenosa, zadat je prenos iz memorije u memoriju i prelazi se na odgovarajuće korake.

Page 298: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

292

Post

avlja

nje

indi

kaci

je d

a no

vipo

data

k m

ože

da se

pre

nese

izre

gist

ra p

odat

ka u

per

iferij

u

Post

avlja

nje

indi

kaci

je d

a no

vipo

data

k m

ože

da se

pre

nese

izpe

rifer

ije u

regi

star

pod

atka

Ažu

riran

je sa

drža

ja re

gist

ra b

roja

reči

za p

reno

s

Da

li je

zad

at p

reno

s iz

perif

erije

u m

emor

iju ?

1

Da

li je

kon

trole

r sta

rtova

n?0

Post

avlja

nje

zaht

eva

kor

išće

nja

mag

istra

le p

roce

soru

1

1D

a li

je z

adat

pre

nos i

zm

emor

ije u

per

iferij

u ?

0

1

0D

a li

je re

gist

ar p

odat

kara

spol

oživ

za

upis

pod

atka

izm

emor

ije ?

1

Da

li je

pos

tavl

jen

zaht

evko

rišće

nja

mag

istra

le p

roce

soru

?0

1

Post

avlja

nje

zaht

eva

kor

išće

nja

mag

istra

le p

roce

soru

Da

li je

pro

ceso

r pos

tavi

odo

zvol

u ko

rišće

nja

mag

istra

le ?

0

1

0

Ažu

riran

je sa

drža

ja a

dres

nog

regi

stra

i reg

istra

bro

ja reči

za

pren

os

Slan

je sa

drža

ja a

dres

nog

regi

stra

iin

dika

cije

mem

oriji

da

izvr

ši č

itanj

e

Da

li je

izvr

šeno

čita

nje

i upi

spo

datk

a u

regi

star

pod

atka

?0

1

Da

li je

regi

star

pod

atka

rasp

olož

iv z

a up

is p

odat

ka u

mem

oriju

?1

Post

avlja

nje

zaht

eva

kor

išće

nja

mag

istra

le p

roce

soru

Da

li je

pos

tavl

jen

zaht

evko

rišće

nja

mag

istra

le p

roce

soru

?0

10

Da

li je

pro

ceso

r pos

tavi

odo

zvol

u ko

rišće

nja

mag

istra

le ?

0

Ažu

riran

je sa

drža

ja a

dres

nog

regi

stra

i reg

istra

bro

ja reči

za

pren

os

Slan

je sa

drža

ja a

dres

nog

regi

stra

ire

gist

ra p

odat

ka i

indi

kaci

je m

emor

ijida

izvr

ši u

pis

1

Da

li je

izvr

šen

upis

?0

1

Slan

je sa

drža

ja a

dres

nog

regi

stra

iin

dika

cije

mem

oriji

da

izvr

ši č

itanj

e

1

Da

li je

izvr

šeno

čita

nje

i upi

spo

datk

a u

regi

star

pod

atka

?0

1

Da

li je

pro

ceso

r pos

tavi

odo

zvol

u ko

rišće

nja

mag

istra

le ?

0

Da

li je

pro

ceso

r pos

tavi

odo

zvol

u ko

rišće

nja

mag

istra

le ?

0

Slan

je sa

drža

ja a

dres

nog

regi

stra

ire

gist

ra p

odat

ka i

indi

kaci

je m

emor

ijida

izvr

ši u

pis

Da

li je

izvr

šen

upis

?0

11

Slika 99 Dijagram toka operacija

Page 299: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

293

Da

li je

zad

at re

žim

rada

sapo

jedi

načn

im p

reno

som

?0

Da

li je

zad

at re

žim

rada

sapa

kets

kim

pre

noso

m ?

1

Da

li je

pre

nos z

avrš

en ?

0

1

Uki

danj

e za

htev

a ko

rišće

nja

mag

istra

le p

roce

soru

1 0

Da

li je

pro

ceso

r uki

nuo

dozv

olu

korišće

nja

mag

istra

le ?

0

1

Da

li je

zad

at re

žim

rada

sapo

jedi

načn

im p

reno

som

?0

Da

li je

pre

nos z

avrš

en ?

0

Da

li je

zad

at re

žim

rada

sapa

kets

kim

pre

noso

m ?

1

0

Da

li je

pro

ceso

r uki

nuo

dozv

olu

korišće

nja

mag

istra

le ?

0

1

Uki

danj

e za

htev

a ko

rišće

nja

mag

istra

le p

roce

soru

1

1

Da

li je

zad

at re

žim

rada

saaž

urira

njem

sadr

žaja

izvo

rišno

gad

resn

og re

gist

ra ?

Uki

danj

e za

htev

a ko

rišće

nja

mag

istra

le p

roce

soru

Da

li je

zad

at re

žim

rada

sapo

jedi

načn

im p

reno

som

?1

0

Ažu

riran

je sa

drža

ja iz

voriš

nog

adre

snog

regi

stra

1

Ažu

riran

je sa

drža

ja o

dred

išno

gad

resn

og re

gist

ra

0

Da

li je

pre

nos z

avrš

en ?

0

Da

li je

zad

at re

žim

rada

sapa

kets

kim

pre

noso

m ?

1 1

0

Da

li je

pro

ceso

r uki

nuo

dozv

olu

korišće

nja

mag

istra

le ?

0

1

Da

li je

zad

at re

žim

rada

saaž

urira

njem

sadr

žaja

izvo

rišno

gad

resn

og re

gist

ra ?

Post

avlja

nje

zaht

eva

korišće

nja

mag

istra

le p

roce

soru

0

Post

avlja

nje

bita

spre

mno

st st

atus

nog

regi

stra

Da

li je

zad

at re

žim

rada

sage

neris

anje

m p

reki

da?

0

Slan

je si

gnal

a pr

ekid

a pr

oces

oru

1

Da

li je

zad

at re

žim

rada

sapa

kets

kim

pre

noso

m ?

Uki

danj

e za

htev

a ko

rišće

nja

mag

istra

le p

roce

soru

1

0

Slika 99 Dijagram toka operacija (nastavak)

Page 300: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

294

Ako je zadat prenos iz periferije u memoriju prelazi se na prenošenje podataka iz registra podatka u memoriju. Najpre se čeka da registar podatka bude raspoloživ za upis podatka u memoriju. To će se dogoditi kada upravljačka jedinica uprav_jed_per podatak prenet iz periferije smesti u pomoćni registar podatka i iz njega prenese u registar podatka. Potom se vrši provera da li je već postavljen zahtev korišćenja magistrale procesoru. Pri prenosu prvog podatka zahtev nije postavljen bez obzira na to da li se radi o pojedinačnom ili paketskom prenosu. Zato se, prvo, prelazi na korak u kome se postavlja zahtev koriščenja magistrale procesoru, a zatim ulazi u petlju u kojoj se proverava da li je procesor postavio dozvolu korišćenja magistrale. Pri prenosu preostalih podataka mogu da nastanu sledeće dve situacije. Zahtev neće biti postavljen ukoliko se radi o pojedinačnom prenosu, pa se prvo prelazi na korak u kome se postavlja zahtev, a zatim ulazi u petlju u kojoj se proverava da li je procesor postavio dozvolu. Zahtev če biti postavljen ukoliko se radi o paketskom prenosu, pa se odmah ulazi u petlju u kojoj se proverava da li je procesor postavio dozvolu.

Kada se utvrdi da je procesor postavio dozvolu korišćenja magistrale izlazi se iz petlje i ulazi u sledeću petlju u kojoj se adresa, podatak i upravljački signal upisa po linijama magistrale šalju memoriji i čeka da memorija pošalje po liniji magistrale upravljački signal završetka upisa. Po završetku upisa izlazi se iz petlje i prelazi se na korak u kome se ažužiraju sadržaji adresnog registra i registra broja reči za prenos. Pored toga postavlja se indikacija da registar podatka nije raspoloživ za upis u memoriju. Ovo je indikacija da upravljačka jedinica uprav_jed_per startuje prenos sledećeg podatka iz periferije, smeštanje u pomoćni registar podatka i prenošenje u registar podatka. Time registar podatka ponovo postaje raspoloživ za upis u memoriju. Paralelno sa ovim upravljačka jedinica uprav_jed_mem odrađuje svoje korake. U slučaju da je zadat režim rada sa pojedinačnim prenosom ukida se zahtev koriščenja magistrale, dok se u slučaju da je zadat režim sa rada sa paketskim prenosom to ne čini. Ovo je zbog toga što se pri pojedinačnom prenosu zahtev korišćenja magistrale postavlja i ukida za svaki podatak, dok se pri paketskom prenosu postavlja na početku, a ukida na završetku kompletnog prenosa podataka.

Posle toga se vrši provera da li je prenos završen. Ako nije, produžava se sa prenosom. Ukoliko je zadat režim sa paketskim prenosom, odmah se prelazi na početni korak prenosa sledećeg podatka, a ukoliko nije, to se čini tek pošto se utvrdi da je procesor ukinuo dozvolu korišćenja magistrale. Ako je prenos završen, postavlja se bit spremnost statusnog registra i, ukoliko je zadat režim rada sa generisanjem prekida, šalje signal prekida procesoru. Pored toga, u slučaju da je zadat režim rada sa paketskim prenosom, ukida se i zahtev korišćenja magistrale. Na kraju se vraća u početni korak.

Ako je zadat prenos iz memorije u periferiju prelazi se na prenošenje podataka iz memorije u registar podatka. Najpre se vrši provera da li je registar podatka raspoloživ za upis podatka iz memorije. Pri prenosu prvog podatka registar podatka je raspoloživ. Pri prenosu sledećih podataka registar podatka neče biti raspoloživ sve dok upravljačka jedinica uprav_jed_per ne prenese prethodni podatak iz registra podatka u pomoćni registar podatka i startuje upis podatka u periferiju. Potom se vrši provera da li je već postavljen zahtev korišćenja magistrale procesoru. Pri prenosu prvog podatka zahtev nije postavljen bez obzira na to da li se radi o pojedinačnom ili paketskom prenosu. Zato se, prvo, prelazi na korak u kome se postavlja zahtev koriščenja magistrale procesoru, a zatim ulazi u petlju u kojoj se proverava da li je procesor postavio dozvolu korišćenja magistrale. Pri prenosu preostalih podataka mogu da nastanu sledeće dve situacije. Zahtev neće biti postavljen ukoliko se radi o pojedinačnom prenosu, pa se prvo prelazi na korak u kome se postavlja zahtev, a zatim ulazi u petlju u kojoj se proverava da li je procesor postavio dozvolu. Zahtev če biti postavljen

Page 301: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

295

ukoliko se radi o paketskom prenosu, pa se odmah ulazi u petlju u kojoj se proverava da li je procesor postavio dozvolu.

Kada se utvrdi da je procesor postavio dozvolu korišćenja magistrale izlazi se iz petlje i ulazi u sledeću petlju u kojoj se adresa i upravljački signal čitanja po linijama magistrale šalju memoriji i čeka da memorija pošalje po linijama magistrale podatak i upravljački signal završetka čitanja. Po izlasku iz ove petlje podatak očitan iz memorije se nalazi u registru podatka, pa se prelazi na korak u kome se ažuriraju sadržaji adresnog regisra i registra broja reči za prenos. Pored toga postavlja se indikacija da registar podatka nije raspoloživ za čitanje novog podatka iz memorije. Ovo je indikacija da upravljačka jedinica uprav_jed_per može da prenese podatak iz registra podatka u pomoćni registar podatka i startuje prenos podatka u periferiju. Time registar podatka ponovo postaje raspoloživ za čitanje novog podatka iz memorije. Paralelno sa ovim upravljačka jedinica uprav_jed_mem odrađuje svoje korake. U slučaju da je zadat režim rada sa pojedinačnim prenosom ukida se zahtev koriščenja magistrale, dok se u slučaju da je zadat režim sa rada sa paketskim prenosom to ne čini. Ovo je zbog toga što se pri pojedinačnom prenosu zahtev korišćenja magistrale postavlja i ukida za svaki podatak, dok se pri paketskom prenosu postavlja na početku, a ukida na završetku kompletnog prenosa podataka.

Posle toga se vrši provera da li je prenos završen. Ako nije, produžava se sa prenosom. Ukoliko je zadat režim sa paketskim prenosom, odmah se prelazi na početni korak prenosa sledećeg podatka, a ukoliko nije, to se čini tek pošto se utvrdi da je procesor ukinuo dozvolu korišćenja magistrale. Ukoliko se pri proveri da li je prenos završen utvrdi da jeste, prelazi se kroz već opisane korake za slučaj kada je završen prenos iz periferije u memoriju.

Ako je zadat prenos iz memorije u memoriju prelazi sa na prenošenje podataka iz jednog dela memorije u registar podatka, a zatim iz registra podatka u drugi deo memorije. Najpre se postavlja zahtev korišćenja magistrale procesoru, a zatim ulazi u petlju u kojoj se proverava da li je procesor postavio dozvolu korišćenja magistrale. Kada se utvrdi da je processor postavio dozvolu ulazi se u petlju u kojoj se adresa i upravljački signal čitanja po linijama magistrale šalju memoriji i čeka da memorija pošalje po linijama magistrale podatak i upravljački signal završetka čitanja. Po izlasku iz ove petlje podatak očitan iz memorije se nalazi u registru podatka. Potom se ulazi u petlju u kojoj se proverava da li je procesor postavio dozvolu korišćenja magistrale. Kada se utvrdi da je processor postavio dozvolu, ulazi se u petlju u kojoj se adresa, podatak i upravljački signal upisa po linijama magistrale šalju memoriji i čeka da memorija pošalje po liniji magistrale upravljački signal završetka upisa.

Po završetku upisa prelazi se na korak u kome se ažurira sadržaj registra broja reči za prenos. Ukoliko je zadat režim rada sa ažuriranjem sadržaja izvorišnog adresnog registra, što odgovara situaciji kada se vrši prenos bloka podataka iz jednog dela u drugi deo memeorije, najpre se vrši ažuriranje sadržaja izvorišnog, pa zatim i odredišnog adresnog registra. U suprotnom slučaju, koji odgovara situaciji kada se vrši prenos jednog podatka iz memorije u blok podataka drugog dela memorije, odmah se prelazi na ažuriranje sadržaja odredišnog adresnog registra. Posle toga se u slučaju da je zadat režim rada sa pojedinačnim prenosom ukida zahtev korišćenja magistrale, dok se u slučaju da je zadat režim rada sa paketskim prenosom to ne čini.

Page 302: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

296

if (C

R 2*W

RDR*

hlda

s) th

en st

hold

step

7

step

8

WRD

R

CR 2

0

11 0

if h

ldas

then

(rea

d, A

R1ou

t)

step

91hl

das

0

enFF

C0

decW

CR,

stW

RDRm

em,

if C

R 6 the

n in

cAR1

,if

CR 6 t

hen

decA

R1,

if C

R 7 the

n cl

hold

if (C

R 2*RD

DR*

hlda

s) th

en st

hold

step

1

step

2

RDD

R

CR 2

0

11 0

if h

ldas

then

(writ

e,A

R2ou

t,DRo

ut)

step

31hl

das

0

enFF

C0

decW

CR,

stRD

DRm

em,

if C

R 6 the

n in

cAR2

,if

CR 6 t

hen

decA

R2,

if C

R 7 the

n cl

hold

enFF

C0

if (C

R 2*do

ne) t

hen

stSR

0,if

(CR 2*

done

*CR 1)

then

stin

tr,

step

0

CR 2

1

0

step

13

step

15

if h

ldas

then

(rea

d, A

R1ou

t)

1hlda

s0

enFF

C0

step

14

if C

R 2 the

n st

hold CR 2

0

1

if h

ldas

then

(writ

e,A

R2ou

t,DRo

ut)

hlda

s0

1 11

11

done

1

0 pm1

0 0mp

1

Slika 100 Dijagram toka upravljačkih signala

Page 303: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

297

step

10if

(don

e*C

R 7) th

en c

lhol

dst

ep4

if (d

one*

CR 7)

then

clh

old

step

16

decW

CR,

if (C

R 5*C

R 6) th

en in

cAR1

,if

(CR 5*

CR 6)

then

dec

AR1

,if

CR 6 t

hen

incA

R2,

if C

R 6 the

n de

cAR2

,if

CR 7 t

hen

clho

ld

if (d

one*

CR 7)

then

clh

old

step

17

done

0

1

CR 2

0

1CR 7

1 CR 5

0

1

0

hlda

s1

0 CR 5

0

1

step

18if

(CR 2*

hlda

s) th

en st

hold

0

CR 7

done

0

1

1

step

110 hl

das

CR 2

0

11 0

CR 7

done

0

1

1

step

50 hl

das

CR 2

0

11 0

Slika 100 Dijagram toka upravljačkih signala (nastavak)

Page 304: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

298

Potom se vrši provera da li je prenos završen. Ukoliko nije produžava se sa prenosom. Ukoliko je zadat režim rada sa paketskim prenosom odmah se prelazi na korak u kome se vrši provera da li je zadat režim rada sa ažuriranjem sadržaja izvorišnog adresnog registra. Ukoliko je zadat pojedinačni režim rada to se čini tek pošto se najpre utvrdi da je procesor ukinuo dozvolu korišćenja magistrale, a zatim ponovo postavi zahtev korišćenja magistrale. Kada je zadat režim rada sa ažuriranjem sadržaja izvorišnog adresnog registra prelazi se na korak od koga se kreće najpre sa čitanjem novog podatka iz memorije, a potom i upisom u memoriju. Kada nije zadat režim rada sa ažuriranjem sadržaja izvorišnog adresnog registra nema čitanja novog podatka, pa se odmah prelazi na korak od koga se kreće sa upisom prvog ranije očitanog podatka u memoriju. Ukoliko se pri proveri da li je prenos završen utvrdi da jeste, prelazi se kroz već opisane korake za slučaj kada je završen prenos iz periferije u memoriju.

6.3.2.3.2 Algoritam generisanja upravljačkih signala

Algoritam generisanja upravljačkih signala je formiran na osnovu dijagrama toka operacija (slika 99) i dat u obliku dijagrama toka upravljačkih signala (slika 100), sekvence upravljačkih signala po koracima (tabela 89) i vremenskih oblika signala (slike 101, 102, 103, 104, 105, 106, 107 i 108).

Dijagram toka upravljačkih signala je predstavljen operacionim i uslovnim blokovima (slika 100). U operacionim blokovima se nalaze upravljački signali i uslovi pod kojima se oni generišu. U uslovnim blokovima se nalaze signali logičkih uslova.

U sekvenci upravljačkih signala po koracima se koriste iskazi za signale i skokove. Iskazi za signale su oblika

signali i if uslov then signali.

Prvi iskaz sadri spisak upravljačkoh signala blokova operacione jedinice oper_jed i određuje signale koji se bezuslovno generišu. Drugi iskaz sadrži uslov i spisak upravljačkih signala blokova operacione jedinice oper_jed i određuje koji signali i pod kojim uslovima treba da budu generisani. Iskazi za skokove su oblika

br stepA i br (if uslov then stepA).

Prvi iskaz sadrži korak na koji treba bezuslovno preći. Drugi iskaz sadrži uslov i korak i određuje na koji korak i pod kojim uslovima treba preći.

Objašnjenja vezana za generisanje upravljačkih signala su data zajednički za dijagram toka upravljačkih signala i sekvencu upravljačkih signala po koracima i to u okviru sekvence upravljačkih signala po koracima.

Tabela 89 Sekvenca upravljačkih signala po koracima ! U koraku step0 se ostaje sve dok je ili signal CR2 bloka registri neaktivan ili signal done bloka registri aktivan. Signal CR2 je neaktivan ukoliko kontroler periferije nije startovan. Kontroler periferije se startuje programskim putem tako što upravljačka jedinica uprav_jed_bus upisuje u upravljački registar CR15…0 bloka registri sadržaj koji na poziciji razreda CR2 ima aktivnu vrednost. Signal done je aktivan ukoliko je sadržaj registra WCR15…0 bloka registri nula. Ovo se dešava kada se programskim putem upisivanjem u registar WCR15…0 za veličini bloka zada vrednost nula ili po završetku prenosa. Pri aktivnim vrednostima signala CR2 i done generiše se signal stSR0 bloka registri. Signalom stSR0 se upisuje aktivna vrednost u razred SR0 statusnog registra SR15…0 bloka registri. Ovaj razred odgovara bitu spremnost i njegova aktivna vrednost služi kao indikacija procesoru da je prenos kompletiran i da procesor može programskim putem da zaustavi kontroler periferije. Ukoliko je pri aktivnim vrednostima signala CR2 i done i signal CR1 aktivan, generiše se signal stintr bloka interfejs. Ovim signalom se pokreće generisanje signala prekida, da bi processor

Page 305: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

299

skočio na odgovarajuću prekidnu rutinu i u okvuru nje programskim putem zaustavio kontroler periferije.Iz koraka step0 se izlazi kada je kontroler periferije startovan i kada je zadata veličina bloka različita od nule na šta ukazuju aktivna i neaktivna vrednost signala CR2 i done, respektivno. Od preostalih razreda registra CR15…0 za korak step0 su bitni razredi CR4 i CR0. Na poziciji razreda CR4 je neaktivna vrednost ako je zadat prenos iz periferije i memoriju ili iz memorije u periferiju i aktivna vrednost ako je zadat prenos iz memorije u memoriju. Ukoliko je na poziciji razreda CR4 neaktivna vrednost bitan je i razred CR0. Na poziciji razreda CR0 je aktivna ili neaktivna vrednost u zavisnosti od toga da li je zadat prenos iz periferije i memoriju ili iz memorije i periferiju, respektivno. Korak na koji se prelazi zavisi od toga koji od signala pm, mp i mm bloka registri ima aktivnu vrednost, pri čemu u nekom trenutku samo jedan od ovih signala može da ima aktivnu vrednost i to signal pm za prenos iz periferije u memoriju, signal mp za prenos iz memorije u periferiju i signal mm za prenos iz memorije u memoriju. Pri aktivnoj vrednosti signala pm prelazi se na korak step1, signala mp na korak step7 i signala mm na korak step13. !

step0 if (CR2*done) then stSR0, if (CR2*done*CR1) then stintr, br (if (CR2*done*pm) then step1), br (if (CR2*done*mp) then step7), br (if (CR2*done*mm) then step13);

! U korak step1 se dolazi iz koraka step0, step4 ili step5. Ukoliko je neaktivna vrednost signala CR2, što znači da je programskim putem upisivanjem neaktivne vrednosti u razred CR2 upravljačkog registra CR15…0 zaustavljen rad kontrolera, prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2, ili se ostaje u koraku step1 ili se prelazi u korak step2 u zavisnosti od toga da li je aktivna ili neaktivna vrednost signal RDDR bloka registri. Aktivna vrednost signala RDDR je indikacija da upravljačka jedinica uprav_jed_per još uvek nije prenela podatak iz registra DRAUX15…0 bloka registri u registar DR15…0 bloka registri i da upravljačka jedinica uprav_jed_mem ne može da krene sa prenošenjem podatka iz registra DR15…0 u memoriju. Prilikom startovanja kontrolera periferije pokrenute su upravljačke jedinice uprav_jed_mem već i uprav_jed_per. Na isti signal takta na koji je upravljačka jedinica uprav_jed_mem prelazi iz koraka step0 u korak step1 upravljačka jedinica uprav_jed_per signalom stRDDRper postavlja flip-flop RDDR na aktivnu vrednost i prelazi na korake u kojima čita podatak iz periferije. Time se obezbeđuje da upravljačka jedinica uprav_jed_mem zbog aktivne vrednosti signala RDDR čeka u koraku step1. Tek kada upravljačka jedinica uprav_jed_per prenese podatak, najpre, iz periferije u registar DRAUX15…0, a zatim iz registra DRAUX15…0 u registar DR15…0 i na kraju signalom clRDDRper postavi flip-flop RDDR na neaktivnu vrednost, upravljačka jedinica uprav_jed_mem prelazi iz koraka step1 u korak step2. Kada signal RDDR postane neaktivan generiše se aktivna vrednost signala sthold bloka interfejs ukoliko je neaktivna vrednost signala hldas bloka interfejs. Signalom sthold se aktiviraju kombinacione i sekvencijalne mreže koje generišu signal zahteva korišćenja magistrale hldr bloka interfejs. Signal hldas je neaktivan na početku pri prenosu prvog podatka kada se u korak step1 dolazi iz koraka step0, pa se tada i signal hldr uvek generiše. Pri prenosu preostalih podataka u korak step1 se dolazi iz koraka step4, ako je zadat paketski prenos, i koraka step5, ako je zadat pojedinačni prenos. Pri paketskom prenosu signal hldr se postavlja na aktivnu vrednost na početku prenosa, a na neaktivnu po obavljenom kompletnom prenosu. S toga je pri dolasku u korak step1 iz koraka step4, aktivna vrednost signala hldas, pa u koraku step1 nema generisanja signala sthold. Pri pojedinačnom prenosu signal hldr se postavlja na aktivnu vrednost pre a na neaktivnu po obavljenom prenosu svakog podatka. S toga je pri dolasku u korak step1 iz koraka step5, neaktivna vrednost signala hldas, pa u koraku step1 ima generisanja signala sthold. !

step1 if (CR2*RDDR*hldas) then sthold, br (if CR2 then step0), br (if (CR2*RDDR) then step2);

! U korak step2 se dolazi iz koraka step1. U koraku step2 se obavlja prenos podatka iz registra DR15…0 u memoriju.U koraku step2 se ostaje dok najpre signal hldas bloka interfejs a zatim i signal enFFC bloka interfejs ne postanu aktivni. Neaktivna vrednost signala hldas označava da kontroler još uvek nije dobio dozvolu korišćenja magistrale, a aktivna da jeste. Pri aktivnoj vrednosti signala hldas generiše se signal write bloka interfejs i signali AR2out i DRout bloka registri. Signalom write se pokreće logika za generisanje upravljačkog signala WRBUS magistrale, signalom AR2out se otvaraju

Page 306: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

300

baferi sa tri stanja i na adresne linije ABUS15…0 magistrale BUS propušta sadržaj registra AR215…0 i signalom DRout se otvaraju baferi sa tri stanja i na linije podataka DBUS15…0 magistrale propušta sadržaj registra DR15…0. Ovim se započinje ciklus upisa na magistrali pri čemu je kontroler gazda a memorija sluga. Ciklus upisa na magistrali traje sve dok memorija postavljanjem upravljačkog signala FCBUS magistrale na aktivnu vrednost ne signalizira kontroleru da je upis podatka završen. Na aktivnu vrednost signala FCBUS kontroler odgovara neaktivnom vrednošću signala WRBUS. Na neaktivnu vrednost signala WRBUS memorija odgovara neaktivnom vrednošću signala FCBUS. Na promenu signala FCBUS sa aktivne na neaktivne vrednost kontroler generiše aktivnu vrednost signala enFFC bloka interfejs trajanja jedna perioda signala takta. Pri aktivnim vrednostima signala hldas i enFFC se prelazi iz koraka step2 u korak step3. !

step2 if hldas then (write, AR2out, DRout), br (if (hldas*enFFC) then step3);

! U korak step3 se dolazi iz koraka step2, ostaje jedna perioda signala takta i prelazi u korak step4. U koraku step3 se generišu aktivne vrednosti signala decWR i stRDDRmem. Signalom decWR se dekrementira sadržaj brojača WCR15…0. Njegova trenutna vrednost ukazuje koliko još podataka treba preneti. Signalom stRDDRmem se flip-flop RDDR postavlja na aktivnu vrednost. Aktivna vrednost signala flip-flopa RDDR je indikacija da je upravljačka jedinica uprav_jed_mem prenela sadržaj registra DR15…0 u memoriju i da upravljačka jedinica uprav_jed_per može novi podatak da prenese iz registra DRAUX15…0 u registar DR15…0. Pored signala decWR i stRDDRmem u koraku step3 se mogu generisati i signali incAR2, decAR2 i clhold, pri čemu njihovo generisanje zavisi od toga koje su vrednosti upisane u razrede CR6 i CR7 registra CR15...0 prilikom startovanja i zadavanja režima rada kontrolera periferije. Neaktivna i aktivna vrednost signala CR6 određuju da li je zadat režim rada sa prenosom u rastuće ili opadajuće memorijske lokacije, respektivno. Pri neaktivnoj i aktivnoj vrednosti signala CR6 generišu se signali incAR2 i decAR2, kojima se inkrementira i dekrementira sadržaj brojača AR215…0, respektivno. Neaktivna i aktivna vrednost signala CR7 određuju da li je zadat režim rada sa pojedinačnim ili paketskim prenosom podataka, respektivno. Pri neaktivnoj vrednosti signala CR7 generiše se signal clhold bloka interfejs. Ovim signalom pokreće se logika koja postavlja na neaktivnu vrednost signal zahteva korišćenja magistrale hldr bloka interfejs. !

step3 decWCR, stRDDRmem, if CR6 then incAR2, if CR6 then decAR2, if CR7 then clhold, br step4;

! U korak step4 se dolazi iz koraka step3, ostaje jedna perioda signala takta i prelazi u korak step5, step1 ili step0. U koji će se od ovih korak preći zavisi od vrednosti signala done bloka interfejs i CR7 bloka registri. Neaktivna i aktivna vrednost signala done se formiraju u zavisnosti od toga da li je sadržaj registra WCR15…0 bloka registri različit od nule ili je nula i služe kao indikacija da prenos podataka nije ili jeste kompletiran, respektivno. Pri neaktivnoj vrednosti signala done prenos podataka se produžava prelaskom na korak step5, ako je signal CR7 neaktivan, i korak step1, ako je signal CR7 aktivan. Pri aktivnoj vrednosti signala done prenos podataka se završava prelaskom na korak step0. Ukoliko je pri aktivnoj vrednosti signala done i signal CR7 aktivan, generiše se signal clhold bloka interfejs. Ovim signalom se pokreću kombinacione i sekvencijalne mreže za dobijanje dozvole korišćenja magistrale, koje postavljaju na neaktivnu vrednost signal zahteva korišćenja magistrale hldr bloka interfejs. !

step4 if (done*CR7) then clhold, br (if (done*CR7) then step5), br (if (done *CR7) then step1), br (if done then step0);

! U korak step5 se dolazi iz koraka step4 jedino kada je zadat režim rada sa pojedinačnim prenosom. Ukoliko je neaktivna vrednost signala CR2, što znači da je programskim putem upisivanjem neaktivne vrednosti u razred CR2 upravljačkog registra CR15…0 zaustavljen rad kontrolera, prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2, ili se ostaje u koraku step5 ili se prelazi u korak step1 u zavisnosti od toga da li je aktivna ili neaktivna vrednost signal hldas bloka interfejs. Aktivna i

Page 307: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

301

neaktivna vrednost signala hldas služe kao indikacija da još uvek nije ili jeste dobijena neaktivna vrednost signal dozvole korišćenja magistrale hlda na liniji hldain bloka interfejs. !

step5 br (if CR2 then step0), br (if (CR2*hldas) then step1);

! U korak step7 se dolazi iz koraka step0, step10 ili step11. Ukoliko je neaktivna vrednost signala CR2, što znači da je programskim putem upisivanjem neaktivne vrednosti u razred CR2 upravljačkog registra CR15…0 zaustavljen rad kontrolera, prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2, ili se ostaje u koraku step7 ili se prelazi u korak step8 u zavisnosti od toga da li je aktivna ili neaktivna vrednost signal WRDR bloka registri. Aktivna vrednost signala WRDR je indikacija da upravljačka jedinica uprav_jed_per još uvek nije prenela prethodni podatak iz registra DR15…0 bloka registri u registar DRAUX15…0 bloka registri i da upravljačka jedinica uprav_jed_mem ne može da pređe na korak step8 radi prenošenja sledećeg podatka iz memorije u registar DR15…0. Tek kada upravljačka jedinica uprav_jed_per prihvati podatak iz registra DR u registar DRAUX15…0, krene sa njegovim prenošenjem iz registra DRAUX15…0 u periferiju i signalom clWRDRper postavi flip-flop WRDR na neaktivnu vrednost, upravljačka jedinice uprav_jed_mem prelazi iz koraka step7 u korak step8. Na početku u registru DR15…0 još uvek nema podatka i signal WRDR je neaktivan, pa upravljačka jedinica uprav_jed_mem odmah prelazi iz koraka step7 u korak step8. Pri neaktivnoj vrednosti signala WRDR generiše se aktivna vrednost signala sthold bloka interfejs ukoliko je neaktivna vrednost signala hldas bloka interfejs. Signalom sthold se aktiviraju kombinacione i sekvencijalne mreže koje generišu signal zahteva korišćenja magistrale hldr bloka interfejs. Signal hldas je neaktivan na početku pri prenosu prvog podatka kada se u korak step7 dolazi iz koraka step0, pa se tada i signal hldr uvek generiše. Pri prenosu preostalih podataka u korak step7 se dolazi iz koraka step10, ako je zadat paketski prenos, i koraka step11, ako je zadat pojedinačni prenos. Pri paketskom prenosu signal hldr se postavlja na aktivnu vrednost na početku a na neaktivnu po obavljenom kompletnom prenosu. S toga je pri dolasku u korak step7 iz koraka step10, aktivna vrednost signala hldas, pa u koraku step7 nema generisanja signala sthold. Pri pojedinačnom prenosu signal hldr se postavlja na aktivnu vrednost pre a na neaktivnu po obavljenom prenosu svakog podatka. S toga je pri dolasku u korak step7 iz koraka step11, neaktivna vrednost signala hldas, pa u koraku step7 ima generisanja signala sthold. !

step7 if (CR2*WRDR*hldas) then sthold, br (if CR2 then step0), br (if (CR2*WRDR) then step8);

! U korak step8 se dolazi iz koraka step7. U koraku step8 se obavlja prenos podatka iz memorije u registar DR15…0. U koraku step8 se ostaje dok najpre signal hldas bloka interfejs a zatim i signal enFFC bloka interfejs ne postanu aktivni. Neaktivna vrednost signala hldas označava da kontroler još uvek nije dobio dozvolu korišćenja magistrale. Pri aktivnoj vrednosti signala hldas generiše se signal read bloka interfejs i signal AR1out bloka registri. Signalom read se pokreće logika za generisanje upravljačkog signala RDBUS magistrale, signalom AR1out se otvaraju baferi sa tri stanja i na adresne linije ABUS magistrale propušta sadržaj registra AR115…0. Ciklus čitanja na magistrali traje sve dok memorija postavljanjem upravljačkog signala FCBUS magistrale na aktivnu vrednost ne signalizira kontroleru da je čitanje podatka završeno i da se podatak nalazi na linijama podataka DBUS15…0 magistrale. Na aktivnu vrednost signala FCBUS kontroler upisuje sadržaja se linija podataka DBUS15…0 magistrale u registar DR15…0 i odgovara neaktivnom vrednošću signala WRBUS. Na neaktivnu vrednost signala WRBUS memorija odgovara neaktivnom vrednošću signala FCBUS. Na promenu signala FCBUS sa aktivne na neaktivne vrednost kontroler generiše aktivnu vrednost signala enFFC bloka interfejs trajanja jedna perioda signala takta. Pri aktivnim vrednostima signala hldas i enFFC se prelazi iz koraka step8 u korak step9. !

step8 if hldas then (read, AR1out), br (if (hldas*enFFC) then step9);

! U korak step9 se dolazi iz koraka step8, ostaje jedna perioda signala takta i prelazi u korak step10. U koraku step9 se generišu aktivne vrednosti signala decWR i stRDDRmem. Signalom decWCR se dekrementira sadržaj brojača WCR15…0. Njegova trenutna vrednost ukazuje koliko još podataka treba preneti. Signalom stWRDRmem se flip-flop WRDR postavlja na aktivnu vrednost. Aktivna vrednost signala WRDR je indikacija da je upravljačka jedinica uprav_jed_mem prenela podatak iz memorije u

Page 308: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

302

registar DR15…0 i da upravljačka jedinica uprav_jed_per može da prihvati podatak iz registra DR15…0 u registar DRAUX15…0 i krene sa njegovim slanjem iz registra DRAUX15…0 u periferiju. U koraku step9 se mogu generisati i signali incAR1, decAR1 i clhold, pri čemu njihovo generisanje zavisi od toga koje su vrednosti upisane u razrede CR6 i CR7 registra CR15...0 prilikom startovanja i zadavanja režima rada kontrolera periferije. Neaktivna i aktivna vrednost signala CR6 određuju da li je zadat režim rada sa čitanjem iz rastućih ili opadajućih memorijskih lokacija, respektivno. Pri neaktivnoj i aktivnoj vrednosti signala CR6 generišu se signali incAR1 i decAR1, kojima se inkrementira i dekrementira sadržaj brojača AR115…0, respektivno. Neaktivna i aktivna vrednost signala CR7 određuju da li je zadat režim rada sa pojedinačnim ili paketskim prenosom podataka, respektivno. Pri neaktivnoj vrednosti signala CR7 generiše se signal clhold bloka interfejs. Ovim signalom pokreće se logika koja postavlja na neaktivnu vrednost signal zahteva korišćenja magistrale hldr bloka interfejs. !

step9 decWCR, stWRDRmem, if CR6 then incAR1, if CR6 then decAR1, if CR7 then clhold, br step10;

! U korak step10 se dolazi iz koraka step9, ostaje jedna perioda signala takta i prelazi u korak step11, step7 ili step0. U koji će se od ovih korak preći zavisi od vrednosti signala done bloka interfejs i CR7 bloka registri. Neaktivna i aktivna vrednost signala done se formiraju u zavisnosti od toga da li je sadržaj registra WCR15…0 bloka registri različit od nule ili je nula i služe kao indikacija da prenos bloka podatak nije ili jeste kompletiran, respektivno. Pri neaktivnoj vrednosti signala done prenos bloka podataka se produžava prelaskom na korak step12, ako je signal CR7 neaktivan, i korak step7, ako je signal CR7 aktivan. Pri aktivnoj vrednosti signala done prenos bloka podataka se završava prelaskom na korak step0. Ukoliko je pri aktivnoj vrednosti signala done i signal CR7 aktivan, generiše se signal clhold bloka interfejs. Ovim signalom pokreće se logika koja postavlja na neaktivnu vrednost signal zahteva korišćenja magistrale hldr bloka interfejs. !

step10 if (done*CR7) then clhold, br (if (done *CR7) then step11), br (if (done *CR7) then step7), br (if done then step0);

! U korak step11 se dolazi iz koraka step10 jedino kada je zadat režim rada sa pojedinačnim prenosom. Ukoliko je neaktivna vrednost signala CR2, što znači da je programskim putem upisivanjem neaktivne vrednosti u razred CR2 upravljačkog registra CR15…0 zaustavljen rad kontrolera, prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2, ili se ostaje u koraku step11 ili se prelazi u korak step7 u zavisnosti od toga da li je aktivna ili neaktivna vrednost signal hldas bloka interfejs. Aktivna i neaktivna vrednost signala hldas služe kao indikacija da procesor još uvek nije ili jeste postavio na neaktivnu vrednost signal dozvole korišćenja magistrale hlda na liniji hldain bloka interfejs. !

step11 br (if CR2 then step0), br (if (CR2*hlda) then step7);

! U korak step13 se dolazi iz koraka step0. Ukoliko je neaktivna vrednost signala CR2, što znači da je programskim putem upisivanjem neaktivne vrednosti u razred CR2 upravljačkog registra CR15…0 zaustavljen rad kontrolera, prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2 prelazi se u korak step14. Pri aktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala sthold bloka interfejs. Signalom sthold se aktiviraju kombinacione i sekvencijalne mreže koje generiše signal zahteva korišćenja magistrale hldr bloka interfejs. Postavljanje signala hldr na aktivnu i neaktivnu vrednost zavisi od toga da li se realizuje pojedinačni ili paketski prenos. Pri pojedinačnom prenosu signal hldr se postavlja na aktivnu vrednost pre a na neaktivnu po obavljenom prenosu svakog podatka. Pri paketskom prenosu signal hldr se postavlja na aktivnu vrednost na početku a na neaktivnu po obavljenom kompletnom prenosu. U oba slučaja kroz korak step13 se prolazi samo na početku prenosa i tada se signal hldr postavlja na aktivnu vrednost. Pri pojedinačnom prenosu se po obavljenom prenosu jednog podatka signal hldr postavlja na neaktivnu vrednost u koraku step16. Za svaki sledeći podatak najpre se u koraku step18 signal hldr ponovo postavlja na aktivnu vrednost, zatim se prelazi na korak step14 ili step15 radi prenosa sledećeg podatka pa se ponovo signal hldr postavlja na neaktivnu vrednost u koraku step16. Ovo se ponavlja do kompletiranja preonosa. Pri

Page 309: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

303

paketskom prenosu signal hldr se postavlja na aktivnu vrednost na početku prenosa, drži na aktivnoj vrednosti u toku celog prenosa i tek po obavljenom kompletnom prenosu postavlja na neaktivnu vrednost u koraku step17. !

step13 if CR2 then sthold), br (if CR2 then step0), br (if CR2 then step14);

! U korak step14 se dolazi iz koraka step13, step17 ili step18. U koraku step14 se obavlja prenos podatka iz memorije u registar DR15…0 na identičan način kao i u koraku step8. U koraku step14 se ostaje dok najpre signal hldas bloka interfejs a zatim i signal enFFC bloka interfejs ne postanu aktivni. Pri aktivnim vrednostima signala hldas i enFFC se prelazi iz koraka step14 u korak step15. !

step14 if hldas then (read, AR1out), br (if (hldas*enFFC) then step15);

! U korak step15 se dolazi iz koraka step14. U koraku step15 se obavlja prenos podatka iz registra DR15…0 u memoriju na identičan način kao i u koraku step2. U koraku step15 se ostaje dok najpre signal hldas bloka interfejs a zatim i signal enFFC bloka interfejs ne postanu aktivni. Pri aktivnim vrednostima signala hldas i enFFC se prelazi iz koraka step15 u korak step16. !

step15 if hldas then (write, AR2out, DRout), br (if (hldas*enFFC) then step16);

! U korak step16 se dolazi iz koraka step15, ostaje jedna perioda signala takta i prelazi u korak step17. U koraku step16 se generiše aktivna vrednosti signala decWR. Signalom decWR se dekrementira sadržaj brojača WCR15…0. Njegova trenutna vrednost ukazuje koliko još podataka treba preneti. U koraku step16 se mogu generisati i signali incAR1, decAR1, incAR2, decAR2 i clhold, pri čemu njihovo generisanje zavisi od toga koje su vrednosti upisane u razrede CR5, CR6 i CR7 registra CR15...0 prilikom startovanja i zadavanja režima rada kontrolera periferije. Neaktivna i aktivna vrednost signala CR5 određuju da li je zadat režim rada bez ili sa ažuriranjem sadržaja izvorišnog adresnog brojača AR115…0, respektivno. Odredišni adresni registar AR215…0 se uvek ažurira. Neaktivna i aktivna vrednost signala CR6 određuju da li je zadat režim rada sa čitanjem i upisom u rastuće ili opadajuće memorijske lokacije, respektivno. Pri neaktivnoj vrednosti signala CR5 ne generišu se signali incAR1 i decAR1, pa nema ažuriranja sadržaja brojača AR115…0. Pri aktivnoj vrednosti signala CR5 i zavisno od toga da li je neaktivna ili aktivna vrednost signala CR6 generišu se signali incAR1 i decAR1, kojima se inkrementira ili dekrementira sadržaj brojača AR115…0, respektivno. Pri neaktivnoj ili aktivnoj vrednost signala CR6 generišu se signali incAR2 i decAR2, kojima se inkrementira ili dekrementira sadržaj brojača AR215…0, respektivno. Neaktivna i aktivna vrednost signala CR7 određuju da li je zadat režim rada sa pojedinačnim ili paketskim prenosom podataka, respektivno. Pri neaktivnoj vrednosti signala CR7 generiše se signal clhold bloka interfejs. Ovim signalom pokreće se logika koja postavlja na neaktivnu vrednost signal zahteva korišćenja magistrale hldr bloka interfejs.!

step16 decWCR, if (CR5*CR6) then incAR1, if (CR5*CR6) then decAR1, if CR6 then incAR2, if CR6 then decAR2, if CR7 then clhold, br step17;

! U korak step17 se dolazi iz koraka step16, ostaje jedna perioda signala takta i prelazi u korak step18, step15, step14 ili step0. U koji će se od ovih korak preći zavisi od vrednosti signala done bloka interfejs i CR7 i CR5 bloka registri. Neaktivna i aktivna vrednost signala done se formiraju u zavisnosti od toga da li je sadržaj registra WCR15…0 bloka registri različit od nule ili je nula i služe kao indikacija da prenos bloka podatak nije ili jeste kompletiran, respektivno. Pri neaktivnoj vrednosti signala done prenos bloka podataka se produžava prelaskom na korak step18, ako je signal CR7 neaktivan, i korak step16 ili step14, ako je signal CR7 aktivan. Na korak step15 ili step14 se prelazi u zavisnosti od toga da li je signal CR5 neaktivan ili aktivan, respektivno. Pri aktivnoj vrednosti signala done prenos bloka podataka se završava prelaskom na korak step0. Ukoliko je pri aktivnoj vrednosti signala done i signal CR7 aktivan, generiše se signal clhold bloka interfejs. Ovim signalom pokreće se logika koja postavlja na neaktivnu vrednost signal zahteva korišćenja magistrale hldr bloka interfejs. !

Page 310: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

304

step17 if (done*CR7) then clhold, br (if (done*CR7) then step18), br (if (done*CR7*CR5) then step15, br (if (done*CR7*CR5) then step14), br (if done then step0);

! U korak step18 se dolazi iz koraka step17 jedino kada je zadat režim rada sa pojedinačnim prenosom. Ukoliko je neaktivna vrednost signala CR2, što znači da je programskim putem upisivanjem neaktivne vrednosti u razred CR2 upravljačkog registra CR15…0 zaustavljen rad kontrolera, prelazi se u korak step0. Ukoliko je aktivna vrednost signala CR2, ili se ostaje u koraku step18 ili se prelazi u korake step15 ili step14 u zavisnosti od toga da li je aktivna ili neaktivna vrednost signal hldas bloka interfejs. Aktivna vrednost signala hldas služi kao indikacija da procesor još uvek nije postavio na neaktivnu vrednost signal dozvole korišćenja magistrale hlda bloka interfejs. Kada signal hldas postane neaktivan prelazi se u korak step15 ili step14 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signala CR5. Tada se generiše i aktivna vrednost signala sthold bloka interfejs. Signalom sthold se aktiviraju kombinacione i sekvencijalne mreže koje generišu signal zahteva korišćenja magistrale hldr bloka interfejs. !

step18 if (CR2*hldas) then sthold, br (if CR2 then step0), br (if (CR2*hldas*CR5) then step15), br (if (CR2*hldas*CR5) then step14);

Vremenski oblici signala su dati posebno za pojedinačni prenos podataka iz periferije u memoriju (slika 101), paketski prenos podataka iz periferije u memoriju (slika 102), pojedinačni prenos podataka iz memorije u periferiju u (slika 103), paketski prenos podataka iz memorije u periferiju (slika 104), pojedinačni prenos podataka iz memorije u memoriju (slika 105), paketski prenos podataka iz memorije u memoriju (slika 106), pojedinačni prenos podatka iz memorije u deo memorije (slika 107) i paketski prenos podatka iz memorije u deo memorije (slika 108). Vremenski oblici signala su dati za slučaj da je zadata veličina bloka podataka koje treba preneti različita od nule, na šta ukazuje neaktivna vrednost signala done bloka registri. U svih osam slučajeva ostaje se u koraku step0 sve dok kontroler periferije nije startovan (CR2=0).

Nakon startovanja kontrolera periferije (CR2=1) za pojedinačni prenos podataka (CR7=0) iz periferije u memoriju (CR0=1, CR4=0) formira se aktivna vrednost signala pm bloka interfejs i prelazi iz koraka step0 u korak step1 (slika 101). Kontroler periferije je startovan od strane upravljačke jedinice uprav_jed_bus koja upisuje odgovarajuću vrednost u registar CR15…0 bloka registri. Startovanjem kontrolera periferije pokrenute su upravljačke jedinice uprav_jed_per i uprav_jed_mem. Upravljačka jedinica uprav_jed_per će prenositi podatke iz periferije u registar DR15...0, a upravljačka jedinica uprav_jed_mem iz registra DR15...0 u memoriju. Upravljačka jedinica uprav_jed_per po pokretanju u svom koraku step0 najpre generiše signal stRDDRper, kojim postavlja flip-flop RDDR na aktivnu vrednost, pa tek onda prelazi na korake u kojima se prenosi podatak iz periferije. Time se obezbeđuje da upravljačka jedinica uprav_jed_mem zbog aktivne vrednosti signala RDDR čeka u koraku step1. S toga se, tek kada upravljačka jedinica uprav_jed_per, najpre, prenese podatak iz periferije u registar DRAUX15...0, zatim ga prenese u registar DR15...0 i na kraju signalom clRDDRper postavi flip-flop RDDR na neaktivnu vrednost, generiše aktivna vrednost signal sthold bloka interfejs. Na prvi sledeći signal takta prelazi se iz koraka step1 u korak step2 i flip-flop Phold bloka interfejs postavlja na aktivnu vrednost.

Page 311: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

305

CLK

step

2st

ep1

step

0

clRD

DRp

er

CR 2

stRD

DRp

erRD

DR

stho

ld

hlda

inFF

hlda

hlda

sw

rite,

OEw

rite

AR2

out,

DRo

utw

rbus

WRB

US

ABU

S, D

BUS

FCBU

SFF

Cen

FFC

stRD

DRm

em

L L L L L L L L L L L L L L L L L L L L

L L L L L L L L L L L L L L L L L L L L LL

LL

clho

lddo

nest

SR0,

stin

tr

L L L

L L L

incA

R2L

L

decW

CR

LL

L

step

3st

ep4st

ep5

step

1st

ep2

L L L L L L L L L L L L L L L L L L L LLL L L L L L L L L L L L L L L L L L LL L L L L L L

L LL

L L L

L L L

LL

LL

step

3st

ep4

step

0

L L L L L L L L L L L L L L L L L L L L L L L L L L LLLLLLLLLLLLLLLLLLLLLL

LL

L L LLLL

LL

LL

L

Phol

d

hldr

FFho

ldL L L

L L L L

LL L L L

L L LLL L L L

LLLL

Lhl

drL L

LL L

L L

Slika 101 Vremenski oblici signala pri pojedinačnom prenosu podataka iz periferije u

memoriju

Na početku prenosa signal FFhlda bloka interfejs je neaktivan. S toga se na prvi signal takta u koraku step2 flip-flop FFhold postavlja na aktivnu, a flip-flop Phold na neaktivnu vrednost. Postavljanjem flip-flopa FFhold na aktivnu vrednost signal hldr bloka interfejs postaje aktivan, čime se od procesora traži dozvola korišćenja magistrale. Potom se prelazi na

Page 312: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

306

čekanje da se, pojavljivanjem aktivne vrednosti signala na liniji hldain, dobije dozvola korišćenja magistrale. Na prvi signal takta po pojavljivanju aktivne vrednosti signala na liniji hldain flip-flop FFhlda se postavlja na aktivnu vrednost. Aktivne vrednosti signala FFhold i FFhlda, koji ukazuju da postoji i zahtev i dozvola korišćenja magistrale, omogućuju formiranje aktivne vrednosti signala hldas bloka interfejs.

Aktivna vrednost signala hldas omogućuje da signali write, AR2out i DRout postanu aktivni. Aktivna vrednost signala write ima za posledicu da i signal OEwrite postane aktivan i da se na upravljačkoj liniji magistrale WRBUS pojavljuje signal wrbus bloka interfejs. Aktivne vrednosti signala AR2out i DRout omogućuju da se na adresnim linijama ABUS15...0 i linijama podataka DBUS15...0 magistrale pojavljuju sadržaji registara AR215...0 i DR15...0 bloka registri. Signal WRBUS najpre, saglasno neaktivnoj vrednosti signala wrbus, prelazi iz stanja visoke impedanse na neaktivnu vrednost, a zatim, kada na sledeći signal takta signal wrbus postane aktivan, prelazi na aktivnu vrednost. Kao reakcija na pojavljivanje aktivne vrednosti signala WRBUS memorija prebacuje signal FCBUS iz stanja visoke impedanse na neaktivnu vrednost i započinje svoj deo aktivnosti vezanih za realizaciju upisa.

Potom se prelazi na čekanje da memorija postavljanjem signala FCBUS na aktivnu vrednost indicira kontroleru da je završila upis i da kontroler pređe na svoj deo preostalih aktivnosti vezanih za realizaciju upisa. Na prvi signal takta po pojavljivanju aktivne vrednosti signala FCBUS i flip-flop FFC se postavlja na neaktivnu vrednost. Kao rezultat toga, na sledeći signal takta flip-flop wrbus se postavlja na neaktivnu vrednost, čime i signal WRBUS postaje neaktivan. Na pojavljivanje neaktivne vrednosti signala WRBUS memorija reaguje postavljanjem signala FCBUS, najpre na neaktivnu vrednost, a zatim i u stanje visoke impedanse. Na prvi signal takta po pojavljivanju neaktivne vrednosti signala FCBUS i flip-flop FFC se postavlja na neaktivnu vrednost. Na pojavljivanje neaktivne vrednosti signala FFC generiše se aktivna vrednost signala enFFC bloka interfejs trajanja jedna perioda signala takta, koja omogućuje prelazak iz koraka step2 u korak step3. Prelaskom u korak step3 signali write, AR2out i DRout postaju neaktivni. Neaktivna vrednost signala write daje neaktivnu vrednost signala OEwrite, čime signal WRBUS prelazi u stanje visoke impedanse. Neaktivne vrednost signala AR2out i DRout prebacuju u stanje visoke impedanse linije ABUS15...0 i DBUS15...0, respektivno.

U koraku step3 se ostaje samo jedna perioda signala takta i prelazi u korak step4. U koraku step3 se bezuslovno generišu signali decWCR i stRDDRmem bloka registri kojima se na signal takta brojač WCR15...0 dekrementira i flip-flop RDDR postavlja na aktivnu vrednost. Prilikom startovanja i zadavanja režima rada kontrolera u razrede CR6 i CR7 registra CR15...0 upisane su neaktivne vrednosti, čime je zadat režim rada sa upisom u rastuće memorijske lokacije i pojedinačnim prenosom, respektivno. Zato se u koraku step3 generišu i aktivne vrednosti signala incAR2 bloka registri i clhold bloka interfejs. Na signal takta se signalom incAR2 inkrementira brojač AR215...0, a signalom clhold flip-flop FFhold postavlja na neaktivnu vrednost. Na neaktivnu vrednost signala FFhold i signal hldr prelazi u stanje visoke impedanse, čime kontroler procesoru ukida zahtev korišćenja magistrale. Zbog neaktivne vrednosti signala FFhold formira se neaktivna vrednost signala hldas. Kako je signal hldr u stanju visoke impedanse, signal hldr je neaktivan, pa se na sledeći signal takta u flip-flop FFhlda upisuje neaktivna vrednost. Na prelazak signala hldr u stanje visoke impedanse procesor reaguje postavljanjem signala na liniji hldain na neaktivnu vrednost, čime je dozvola korišćenja magistrale ukinuta.

U koraku step4 se ostaje samo jedna perioda signala takta i vrši provera vrednosti signala done bloka registri. Pošto je signal done neaktivan, što je indikacija da treba produžiti sa

Page 313: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

307

prenosom, proverava se i vrednost signala CR7. Kako je signal CR7 neaktivan, jer je zadat pojedinačni prenos, prelazi se ne korak step5.

U koraku step5 je predviđeno da se sačeka da signal hldas postane neaktivan, pa da se tek onda pređe na korak step1. Za datu realizaciju dela bloka interfejs preko koga kontroler i procesor razmenjuju signale na linijama hldr i hldain, signal hldas je još u koraku step4 postavlja na neaktivnu vrednost. Zbog toga se u koraku step5 ostaje samo jedna perioda signala takta i prelazi na korak step1.

Pri ponovnom prolasku kroz korake step1, step2 i step3 situacija je identična kao i pri prethodnom prolasku.

U koraku step4 situacija je drugačija u odnosu na prethodni prolazak. Na signal takta na koji se prešlo iz koraka step3 u korak step4 dekrementiran je brojač WCR15...0 bloka registri na vrednost nula, pa je signal done bloka registri sada aktivan. Zbog toga se u koraku step4 ostaje jedna perioda signala takta i prelazi na korak step0. U koraku step0 se generiše aktivna vrednost signala stSR0 kojim se upisuje aktivna vrednost u razred SR0 statusnog registra SR15...0 bloka registri. Uzeto je da je pri startovanju kontrolera u razred SR1 upravljačkog registra CR15...0 upisana aktivna vrednost. Zbog toga se u koraku step0 generiše i aktivna vrednost signala stintr kojim se pokreće generisanje signala prekida intr bloka interfejs.

Nakon startovanja kontrolera periferije (CR2=1) za paketski prenos podataka (CR7=1) iz periferije u memoriju (CR0=1, CR4=0) formira se akrivna vrednost signala pm bloka interfejs i prelazi iz koraka step0 u korak step1 (slika 102).

U koracima step1 i step2 situacija je identična kao i kod pojedinačnog prenosa (slika 101).

U koraku step3 se pojavljuje razlika jer, zbog toga što je prilikom startovanja i zadavanja režima rada kontrolera u razred CR7 upravljačkog registra CR15...0 upisana neaktivna vrednost, nema generisanja aktivne vrednosti signala clhold bloka interfejs. Zbog toga se na sledeći signal takta ne ukida aktivna vrednost flip-flopa FFhold. Time se signal hldr ne prebacuje u stanje visoke impedanse, a signal hldas ne postavlja na neaktivnu vrednost. Kako kontroler ne ukida aktivnu vrednost signala hldr, flip-flop FFhlda se ne postavlja na neaktivnu vrednost. Kao rezultat signali FFhold, hldr, hlda na liniji hldain, FFhlda i hldas ostaju aktivni.

U koraku step4 se ostaje samo jedna perioda signala takta i vrši provera vrednosti signala done bloka registri. Pošto je signal done neaktivan, što je indikacija da treba produžiti sa prenosom, proverava se i vrednosti signala CR7. Kako je signal CR7 aktivan, jer je zadat paketski prenos, prelazi se na korak step1. U ovom koraku se kod paketskog prenosa javlja razlika u odnosu na pojedinačni prenos. Kod pojedinačnog prenosa se iz koraka step4 ide, najpre, na na korak step5, gde se eventualno čeka da signal hldas postane neaktivan, pa se tek tada prelazi na korak step1. U koraku step4 treba uočiti još jednu razliku. Ona je posledica pretpostavke da se radi o brzoj periferiji i da je, dok je u koraku step2 trajao upis prethodnog podataka u memoriju, upravljačka jedinica uprav_jed_per novi podatak prenela iz periferije u registar DRAUX15...0. S toga se na osnovu signala stRDDRmem na signal takta kojim se prelazi iz koraka step3 u korak step4 u flip-flop RDDR upisuje aktivna vrednost, upravljačka jedinica uprav_jed_per generiše aktivnu vrednost signala clRDDRper trajanja jedna perioda signala takta i na sledeći signal takta prenosi podatak iz registra DRAUX15...0 u registar DR15...0 i flip-flop RDDR postavlja na neaktivnu vrednost.

U koraku step1 se sada, za razliku od pojedinačnog prenosa, nailazi na neaktivnu vrednost signala RDDR. S toga se u koraku step1 ostaje samo jedna perioda signala takta i prelazi u korak step2.

Page 314: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

308

CLK

step

2st

ep1

step

0

clRD

DRp

er

CR 2

stRD

DRp

erRD

DR

stho

ld

hlda

inFF

hlda

hlda

sw

rite,

OEw

rite

AR2

out,

DRo

utw

rbus

WRB

US

ABU

S, D

BUS

FCBU

SFF

Cen

FFC

stRD

DRm

em

L L L L L L L L L L L L L L L L L L L L L L

L L L L L L L L L L L L L L L L L L L L L LL

clho

lddo

nest

SR0,

stin

tr

L L L

L L L

incA

R2L

L

decW

CR

LL

step

3st

ep4st

ep1

L L L L L L L L L L L L L L L L L L L LL L L L L L L

step

2st

ep3st

ep4

step

0

L L L L L L L L L L L L L L L L L L L L L L L L LL L L

L L L

L L L

LL

LLL

Phol

d

hldr

FFho

ldL L L

L L L L

LL L LL

L L L L

hldr

LL L

L LL L

Slika 102 Vremenski oblici signala pri paketskom prenosu podataka iz periferije u memoriju

U koraku step2 se za razliku od prethodnog prolaska kroz korak step2 nailazi na aktivnu vrednost signala hldas, pa se odmah kreće sa generisanjem signala write, AR2out i DRout. Ostatak koraka step2 je identičan sa prethodnim prolaskom kroz korak step2.

U koraku step3 situacija je identična kao i kod prethodnog prolaska kroz korak step3.

U koraku step4 situacija se razlikuje od prethodnog prolaska kroz korak step4 jer je na signal takta na koji se prešlo iz koraka step3 u korak step4 dekrementiran brojač WCR15...0 bloka registri na vrednost nula, pa je signal done bloka registri sada aktivan. Zbog toga se u koraku step4 ostaje jedna perioda signala takta i prelazi na korak step0. U koraku step0 se generiše aktivna vrednost signala stSR0 kojim se upisuje aktivna vrednost u razred SR0 statusnog registra SR15...0 bloka registri. Uzeto je da je pri startovanju kontrolera u razred SR1 upravljačkog registra CR15...0 upisana aktivna vrednost. Zbog toga se u koraku step0 generiše i aktivna vrednost signala stintr kojim se pokreće generisanje signala prekida intr bloka interfejs. Pored toga kako se radi o paketskom prenosu signal CR7 je aktivan, pa se generiše

Page 315: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

309

aktivna vrednost signala clhold trajanja jedna perioda signala takta. S toga se na sledeći signal takta ukida aktivna vrednost flip-flopa FFhold. Time se signal hldr prebacuje u stanje visoke impedanse, a signal hldas postavlja na neaktivnu vrednost. Kako kontroler ukida aktivnu vrednost signala hldr, flip-flop FFhlda se postavljanja na neaktivnu vrednost i ukida aktivna vrednost signala na liniji hldain.

Nakon startovanja kontrolera periferije (CR2=1) za pojedinačni prenos podataka (CR7=0) iz memorije u periferiju (CR0=0, CR4=0) formira se aktivna vrednost signala mp bloka interfejs i prelazi iz koraka step0 u korak step7 (slika 103). Kontroler periferije je startovan od strane upravljačke jedinice uprav_jed_bus koja upisuje odgovarajuću vrednost u registar CR15...0 bloka registri. Startovanjem kontrolera periferije pokrenute su upravljačke jedinice uprav_jed_mem i uprav_jed_per. Upravljačka jedinica uprav_jed_mem će prenositi podatke iz memorije u registar DR15...0, a upravljačke jedinica i uprav_jed_per iz registra DR15...0, u periferiju. Upravljačka jedinica uprav_jed_per po pokretanju u svom koraku step0 generiše signal clWRDRper, kojim postavlja flip-flop WRDR na neaktivnu vrednost, i prelazi u korak step5. Zbog neaktivne vrednosti signala WRDR upravljačka jedinica uprav_jed_per mora da čeka u koraku step5. Upravljačka jedinica uprav_jed_mem po pokretanju prelazi iz koraka step0 u korak step7. Zbog neaktivne vrednosti signala WRDR upravljačka jedinica uprav_jed_mem produžava sa radom tako što čita podatak iz memorije, smešta u registar DR15...0 i generisanjem signala stWRDRmem postavlja flip-flop WRDR na aktivnu vrednost. Kada signal WRDR postane aktivan upravljačka jedinica uprav_jed_per prenosi podatak iz registra DR15...0 u registar DRAUX15...0 i dalje u periferiju i generisanjem signala clWRDRper postavlja flip-flop WRDR na neaktivnu vrednost. Tek kada signal WRDR postane neaktivan upravljačka jedinica uprav_jed_mem čita sledeći podatak iz memorije i smešta u registar DR15...0. Pri prvom prolasku kroz korak step7 signal WRDR je neaktivan, pa se odmah generiše aktivna vrednost signal sthold bloka interfejs. Na prvi sledeći signal takta prelazi se iz koraka step7 u korak step8 i flip-flop Phold bloka interfejs postavlja na aktivnu vrednost.

Na početku prenosa signal FFhlda bloka interfejs je neaktivan. S toga se na prvi signal takta u koraku step8 flip-flop FFhold postavlja na aktivnu vrednost, a flip-flop Phold na neaktivnu vrednost. Postavljanjem flip-flopa FFhold na aktivnu vrednost signal hldr bloka interfejs postaje aktivan, čime se od procesora traži dozvola korišćenja magistrale. Potom se prelazi na čekanje da se postavljanjem aktivne vrednosti signala na liniji hldain dobije dozvola korišćenja magistrale. Na prvi signal takta po pojavljivanju aktivne vrednosti signala na liniji hldain flip-flop FFhlda se postavlja na aktivnu vrednost. Aktivne vrednosti signala FFhold i FFhlda, koji ukazuju da postoji i zahtev i dozvola korišćenja magistrale, omogućuju formiranje aktivne vrednosti signala hldas bloka interfejs.

Aktivna vrednost signala hldas omogućuje da signali read i AR1out postanu aktivni. Aktivna vrednost signala read ima za posledicu da i signal OEread postane aktivan i da se na upravljačkoj liniji magistrale RDBUS pojavljuje signal rdbus bloka interfejs. Aktivna vrednost signala AR1out omogućuje da se na adresnim linijama ABUS15...0 magistrale pojavljuje sadržaj registra AR115...0 bloka registri. Signal RDBUS najpre, saglasno neaktivnoj vrednosti signala rdbus, prelazi iz stanja visoke impedanse na neaktivnu vrednost, a zatim, kada na sledeći signala takta signal rdbus postane aktivan, prelazi na aktivnu vrednost. Kao reakcija na pojavljivanje aktivne vrednosti signala RDBUS memorija prebacuje signal FCBUS iz stanja visoke impedanse na neaktivnu vrednost i započinje svoj deo aktivnosti vezanih za realizaciju čitanja.

Page 316: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

310

CLK

step

0

CR 2

FFC

enFF

C

clW

RDRp

erW

RDR

stho

ld

hlda

inFF

hlda

hlda

sre

ad, O

Erea

dA

R1ou

trd

bus

RDBU

SA

BUS

stW

RDRm

em

FCBU

SD

BUS

step

8st

ep7

L L L L LL L L L L L L L L L L L L L L LL L

clho

lddo

nest

SR0,

stin

tr

L LL

incA

R1L

decW

CR

L

step

9ste

p 10st

ep11

L L L LL L L L L L L L L L L L L LL L L L L L L LL

step

7st

ep8

L LLLLL

step

9ste

p 10st

ep0

L L LLLL

L L L L L L L L L L L L L L L L L L LLLLLLLLLLLLLL

L LLL

LLL

L

LL

LL L

L

L L LLLL

LL

LL

L

Phol

d

hldr

FFho

ldL L LL

L L LLL L L

LLL LL

hldr

L LL

L LL

LL

Slika 103 Vremenski oblici signala pri pojedinačnom prenosu podataka iz memorije u

periferiju

Potom se prelazi na čekanje da memorija postavljanjem signala FCBUS na aktivnu vrednost indicira kontroleru da je završila čitanje, da se na linijam podataka DBUS15...0 magistrale nalazi očitani podatak i da kontroler pređe na svoj deo preostalih aktivnosti vezanih za realizaciju čitanja. Na prvi signal takta po pojavljivanju aktivne vrednosti signala FCBUS i flip-flop FFC se postavlja na neaktivnu vrednost. Kao rezultat toga, na sledeći signal takta flip-flop rdbus se postavlja na neaktivnu vrednost, čime i signal RDBUS postaje neaktivan. Na pojavljivanje neaktivne vrednosti signala RDBUS memorija reaguje postavljanjem signala FCBUS, najpre na neaktivnu vrednost, a zatim i u stanje visoke impedanse. Na prvi signal takta po pojavljivanju neaktivne vrednosti signala FCBUS i flip-flop FFC se postavlja na neaktivnu vrednost. Na pojavljivanje neaktivne vrednosti signala FFC generiše se aktivna vrednost signala enFFC bloka interfejs trajanja jedna perioda

Page 317: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

311

signala takta, koja omogućuje upis sadržaja sa linija podataka DBUS15...0 magistrale u registar podataka DR15...0 bloka registri i prelazak iz koraka step8 u korak step9. Prelaskom u korak step9 signali read i AR1out postaju neaktivni. Neaktivna vrednost signala read daje neaktivnu vrednost signala OEread, čime signal RDBUS prelazi u stanje visoke impedanse. Neaktivna vrednost signala AR1out prebacuje u stanje visoke impedanse linije ABUS15...0.

U koraku step9 se ostaje samo jedna perioda signala takta i prelazi u korak step10. U koraku step9 se bezuslovno generišu signali decWCR i stWRDRmem bloka registri kojima se na signal takta brojač WCR15...0 dekrementira i flip-flop WRDR postavlja na aktivnu vrednost. Prilikom startovanja i zadavanja režima rada kontrolera u razrede CR6 i CR7 registra CR15...0 upisane su neaktivne vrednosti, čime je zadat režim rada sa upisom u rastuće memorijske lokacije i pojedinačnim prenosom, respektivno. Zato se u koraku step9 generišu i aktivne vrednosti signala incAR1 bloka registri i clhold bloka interfejs. Na signal takta se signalom incAR1 inkrementira brojač AR115...0, a signalom clhold flip-flop FFhold postavlja na neaktivnu vrednost. Na neaktivnu vrednost signala FFhold i signal hldr prelazi u stanje visoke impedanse, čime kontroler procesoru ukida zahtev korišćenja magistrale. Zbog neaktivne vrednosti signala FFhold formira se neaktivna vrednost signala hldas. Kako je signal hldr u stanju visoke impedanse, signal hldr je neaktivan, pa se na sledeći signal takta u flip-flop FFhlda upisuje neaktivna vrednost. Na prelazak signala hldr u stanje visoke impedanse procesor reaguje postavljanjem signala hlda na neaktivnu vrednost, čime je dozvola korišćenja magistrale ukinuta.

U koraku step10 se ostaje samo jedna perioda signala takta i vrši provera vrednosti signala done bloka registri. Pošto je signal done neaktivan, što je indikacija da treba produžiti sa prenosom, proverava se i vrednost signala CR7. Kako je signal CR7 neaktivan, jer je zadat pojedinačni prenos, prelazi se ne korak step11.

U koraku step11 je predviđeno da se sačeka da signal hldas postane neaktivan, pa da se tek onda pređe na korak step7. Za datu realizaciju dela bloka interfejs preko koga kontroler i procesor razmenjuju signale hldr i hlda signal hldas se još u koraku step10 postao neaktivan. Zbog toga se u koraku step11 ostaje samo jedna perioda signala takta i prelazi na korak step7.

Pri ponovnom prolasku kroz korake step7, step8 i step9 situacija je identična kao i pri prethodnom prolasku kroz ove korake.

U koraku step10 situacija je drugačija u odnosu na prethodni prolazak. Na signal takta na koji se prešlo iz koraka step9 u korak step10 dekrementiran je brojač WCR15...0 bloka registri na vrednost nula, pa je signal done bloka registri sada aktivan. Zbog toga se u koraku step10 ostaje jedna perioda signala takta i prelazi na korak step0. U koraku step0 se generiše aktivna vrednost signala stSR0 kojim se upisuje aktivna vrednost u razred SR0 statusnog registra SR15...0 bloka registri. Uzeto je da je pri startovanju kontrolera u razred SR1 upravljačkog registra CR15...0 upisana aktivna vrednost. Zbog toga se u koraku step0 generiše i aktivna vrednost signala stintr kojim se pokreće generisanje signala prekida intr bloka interfejs.

Nakon startovanja kontrolera periferije (CR2=1) za paketski prenos podataka (CR7=1) iz memorije u periferiju u (CR0=1, CR4=0) formira se aktivna vrednost signala mp bloka interfejs i prelazi iz koraka step0 u korak step7 (slika 104).

U koracima step7 i step8 situacija je identična kao i kod pojedinačnog prenosa (slika 103).

Page 318: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

312

CLK

step

0

CR 2

FFC

enFF

C

clW

RDRp

erW

RDR

stho

ld

hlda

inFF

hlda

hlda

sre

ad, O

Erea

dA

R1ou

trd

bus

RDBU

SA

BUS

stW

RDRm

em

FCBU

SD

BUS

step

8st

ep7

L L L L LL L L L L L L L L L L L L L L LL L

clho

lddo

nest

SR0,

stin

tr

L LL

incA

R1L

decW

CR

L

step

9ste

p 10st

ep11

L L L LL L L L L L L L L L L L L LL L L L L L L LL

step

7st

ep8

step

9ste

p 10st

ep0

L L LL L L L L L L L L L L L L L L L L L L L LLLL

L LL

L L L

LL

LLL L L

L

Phol

d

hldr

FFho

ldL L LL

L L LLL L L L

hldr

LL

LL

LL

Slika 104 Vremenski oblici signala pri paketskom prenosu podataka iz memorije u periferiju

U koraku step9 se pojavljuje razlika jer, zbog toga što je prilikom startovanja i zadavanja režima rada kontrolera u razred CR7 upravljačkog registra CR15...0 upisana neaktivna vrednost, nema generisanja aktivne vrednosti signala clhold bloka interfejs. Zbog toga se na sledeći signal takta ne ukida aktivna vrednost flip-flopa FFhold. Time se signal hldr ne prebacuje u stanje visoke impedanse, a signal hldas ne postavlja na neaktivnu vrednost. Kako kontroler ne ukida aktivnu vrednost signala hldr, flip-flop FFhlda se ne postavlja na neaktivnu vrednost i procesor ne ukida aktivna vrednost signala hlda Kao rezultat signali FFhold, hldr, hlda na liniji hldain, FFhlda i hldas ostaju aktivni.

U koraku step10 se ostaje samo jedna perioda signala takta i vrši provera vrednosti signala done bloka registri. Pošto je signal done neaktivan, što je indikacija da treba produžiti sa prenosom, proverava se i vrednosti signala CR7. Kako je signal CR7 aktivan, jer je zadat paketski prenos, prelazi se na korak step7. U ovom koraku se kod paketskog prenosa javlja razlika u odnosu na pojedinačni prenos. Kod pojedinačnog prenosa se iz koraka step10 ide, najpre, na na korak step11, gde se eventualno čeka da signal hldas postane neaktivan, pa se tek tada prelazi na korak step7. U koraku step10 treba uočiti još jednu razliku. Ona je posledica pretpostavke da se radi o brzoj periferiji i da je, dok je u koraku step8 trajalo čitanje novog

Page 319: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

313

podataka iz memorije, upravljačka jedinica uprav_jed_per prethodni podatak prenela iz registra DRAUX15...0 u periferiju. S toga se na osnovu signala stWRDRmem na signal takta kojim se prelazi iz koraka step9 u korak step10 u flip-flop WRDR upisuje aktivna vrednost, upravljačka jedinica uprav_jed_per generiše aktivnu vrednost signala clWRDRper trajanja jedna perioda signala takta i na sledeći signal takta prenosi podatak iz registra DR15...0 u registar DRAUX15...0 i flip-flop WRDR postavlja na neaktivnu vrednost.

U koraku step7 se sada, za razliku od pojedinačnog prenosa, nailazi na neaktivnu vrednost signala WRDR. S toga se u koraku step7 ostaje samo jedna perioda signala takta i prelazi u korak step8.

U koraku step8 se za razliku od prethodnog prolaska kroz korak step8 nailazi na aktivnu vrednost signala hldas, pa se odmah kreće sa generisanjem signala read i AR1out. Ostatak koraka step8 je identičan sa prethodnim prolaskom kroz step8.

U koraku step9 situacija je identična kao i kod prethodnog prolaska kroz korak step9.

U koraku step10 situacija se razlikuje od prethodnog prolaska kroz korak step10 jer je na signal takta na koji se prešlo iz koraka step9 u korak step10 dekrementiran brojač WCR15...0 bloka registri na vrednost nula, pa je signal done bloka registri sada aktivan. Zbog toga se u koraku step10 ostaje jedna perioda signala takta i prelazi na korak step0. U koraku step0 se generiše aktivna vrednost signala stSR0 kojim se upisuje aktivna vrednost u razred SR0 statusnog registra SR15...0 bloka registri. Uzeto je da je pri startovanju kontrolera u razred SR1 upravljačkog registra CR15...0 upisana aktivna vrednost. Zbog toga se u koraku step0 generiše i aktivna vrednost signala stintr kojim se pokreće generisanje signala prekida intr bloka interfejs. Pored toga kako se radi o paketskom prenosu signal CR7 je aktivan, pa se generiše aktivna vrednost signala clhold trajanja jedna perioda signala takta. S toga se na sledeći signal takta ukida aktivna vrednost flip-flopa FFhold. Time se signal hldr prebacuje u stanje visoke impedanse, a signal hldas postavlja na neaktivnu vrednost. Kako kontroler ukida aktivnu vrednost signala hldr, flip-flop FFhlda se postavljanja na neaktivnu vrednost i ukida aktivna vrednost signala hlda na liniji hldain.

Nakon startovanja kontrolera periferije (CR2=1) za pojedinačni prenos podataka (CR7=0, CR5=1) iz memorije u memoriju (CR4=1) formira se aktivna vrednost signala mm bloka interfejs i prelazi iz koraka step0 u korak step13 (slika 105).

U koraku step13 se generiše aktivna vrednost signala sthold bloka interfejs. Na prvi sledeći signal takta prelazi se iz koraka step13 u korak step14 i flip-flop Phold bloka interfejs postavlja na aktivnu vrednost.

U koraku step14 se od procesora traži dozvola korišćenja magistrale, realizuje čitanje podatka iz memorije i upis očitanog podatka u registar DR15...0 i prelazi na korak step15. Ovo je realizovano na identičan način kao u koraku step8 pri pojedinačnom prenosu podataka iz memorije u periferiju (slika 103).

U koraku step15 se realizuje upis podatka iz registra DR15...0 u memoriju i prelazi na korak step16. Ovo je realizovano na sličan način kao u koraku step2 pri pojedinačnom prenosu podataka iz periferije u memoriju (slika 102). Razlika je samo u tome što se u koraku step2 prvo čeka da se dobije dozvola korišćenja magistrale od procesora i da signal hldas bloka interfejs postane aktivan, pa se onda prelazi na upis. Po ulasku u korak step15 signal hldas je već aktivan, pa se odmah prelazi na upis. Vremenski oblici signala u koracima step2 i step15 u delu u kome se realizuje upis su identični.

Page 320: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

314

CLK

step

0

CR 2

step

13

stho

ld

hlda

inFF

hlda

hlda

s

FFC

enFF

C

ABU

S

FCBU

SD

BUS

writ

e, O

Ewrit

eA

R2ou

t, D

Rout

wrb

usW

RBU

S

read

, OEr

ead

AR1

out

rdbu

sRD

BUS

step

14

L L L L L L LL L L LL LL L L L LL L L L LL

incA

R2cl

hold

done

stSR

0, st

intr

L LLLLin

cAR1

Lde

cWC

R

LLL L L L LL L L L LL L L LLL L L LL L L LL L LL

step

16st

ep17st

ep18

step

15

LL L L L LL L L L LL L L LL L L LL L LL L LL LLLL L LL

L LL

LL

LL

LLLL

step

14

L L L L L L LL L L LL LL L L L LL L L L LL

step

15

LL L L L L L L L L L L L L L L L L L L L L L L L L

step

16st

ep17

step

0

L L L L L

L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L LL

L LL

L L L

L L L

LL

L

LL

L

LL

L

LL

Phol

d

hldr

FFho

ldL L LL

L L LLL L LL

L L LLL L L L

L L L L

hldr

L LL L

L LL L

L LL L

Slika 105 Vremenski oblici signala pri pojedinačnom prenosu podataka iz memorije u

memoriju

U koraku step16 se ostaje samo jedna perioda signala takta i prelazi u korak step17. U koraku step16 se bezuslovno generiše signal decWCR bloka registri kojim se na signal takta brojač WCR15...0 dekrementira. Prilikom startovanja i zadavanja režima rada kontrolera, koji

Page 321: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

315

je realizovan upisom u registar CR15...0, u razred CR7 je upisana neaktivna, u CR5 aktivna i u CR6 neaktivna vrednost. Time je zadat pojedinačni prenos podataka iz jednog u drugi deo memorije sa inkrementiranjem adresnih registara. Zato se u koraku step16 generišu i aktivne vrednosti signala incAR1 i incAR2 bloka registri i clhold bloka interfejs. Na signal takta se signalima incAR1 i incAR2 inkrementiraju brojači AR115...0 i AR215...0, a signalom clhold flip-flop FFhold postavlja na neaktivnu vrednost. Na neaktivnu vrednost signala FFhold i signal hldr prelazi u stanje visoke impedanse, čime kontroler procesoru ukida zahtev korišćenja magistrale. Zbog neaktivne vrednosti signala FFhold formira se neaktivna vrednost signala hldas. Kako je signal hldr u stanju visoke impedanse, signal hldr je neaktivan, pa se na sledeći signal takta u flip-flop FFhlda upisuje neaktivna vrednost. Procesor je na prelazak signala hldr u stanje visoke impedanse reagovao postavljanjem signala hlda na neaktivnu vrednost, čime je dozvola korišćenja magistrale ukinuta.

U koraku step17 se ostaje samo jedna perioda signala takta i vrši provera vrednosti signala done bloka registri. Pošto je signal done neaktivan, što je indikacija da treba produžiti sa prenosom, proverava se i vrednost signala CR7. Kako je signal CR7 neaktivan, jer je zadat pojedinačni prenos, prelazi se ne korak step18.

U koraku step18 je predviđeno da se sačeka da signal hldas postane neaktivan. Za datu realizaciju dela bloka interfejs preko koga kontroler i procesor razmenjuju signale hldr i hlda, signal hldas je još u koraku step17 postavljen na neaktivnu vrednost. Zbog toga se u koraku step18 odmah generiše aktivna vrednost signala sthold bloka interfejs. Na prvi sledeći signal takta se, zbog toga što je zadat prenos podataka iz jednog u drugi deo memorije, iz koraka step18 prelazi na korak step14 i flip-flop Phold bloka interfejs postavlja na aktivnu vrednost.

Pri ponovnom prolasku kroz korake step14, step15 i step16 situacija je identična kao i pri prethodnom prolasku.

U koraku step17 situacija je drugačija u odnosu na prethodni prolazak. Na signal takta na koji se prešlo iz koraka step16 u korak step17 dekrementiran je brojač WCR15...0 bloka registri na vrednost nula, pa je signal done bloka registri sada aktivan. Zbog toga se u koraku step17 ostaje jedna perioda signala takta i prelazi na korak step0. U koraku step0 se generiše aktivna vrednost signala stSR0 kojim se upisuje aktivna vrednost u razred SR0 statusnog registra SR15...0 bloka registri. Uzeto je da je pri startovanju kontrolera u razred SR1 upravljačkog registra CR15...0 upisana aktivna vrednost. Zbog toga se u koraku step0 generiše i aktivna vrednost signala stintr kojim se pokreće generisanje signala prekida intr bloka interfejs.

Nakon startovanja kontrolera periferije (CR2=1) za paketski prenos podataka (CR7=1, CR5=1) iz memorije u memoriju (CR4=1) formira se aktivna vrednost signala mm bloka interfejs i prelazi iz koraka step0 u korak step13 (slika 106).

U koracima step13, step14 i step15 situacija je identična kao i kod pojedinačnog prenosa (slika 105).

U koraku step16 se pojavljuje razlika jer, zbog toga što je prilikom startovanja i zadavanja režima rada kontrolera u razred CR7 upravljačkog registra CR15...0 upisana neaktivna vrednost, nema generisanja aktivne vrednosti signala clhold bloka interfejs. Zbog roga se na sledeći signal takta ne ukida aktivna vrednost flip-flopa FFhold. Time se signal hldr ne prebacuje u stanje visoke impedanse, a signal hldas ne postavlja na neaktivnu vrednost. Kako kontroler ne ukida aktivnu vrednost signala hldr flip-flop FFhlda se ne postavlja na neaktivnu vrednost, pa se ne ukida aktivna vrednost signala hlda. Kao rezultat signali FFhold, hldr, hlda na liniji hldain, FFhlda i hldas ostaju aktivni.

Page 322: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

316

CLK

step

0

CR 2

step

13

stho

ld

hlda

inFF

hlda

hlda

s

FFC

enFF

C

ABU

S

FCBU

SD

BUS

writ

e, O

Ewrit

eA

R2ou

t, D

Rout

wrb

usW

RBU

S

read

, OEr

ead

AR1

out

rdbu

sRD

BUS

step

14

L L L L L L L LL L L LL LL L L L LL L L L LL

clho

lddo

nest

SR0,

stin

tr

L LLLLLde

cWC

Rin

cAR1

incA

R2

LL L L L LL L L L LL L L LLL L L LL L L LL L LL

step

16st

ep17

step

15

LL L L L LL L L L LL L L LL L L LL L LL L LL LL

step

14 LL

step

15 L

LLLL L L L L L L L L L L L L L L L L LL L L LL L L L L

step

16st

ep17

step

0

L L L L L L L L L L L L LL L L L L L L L L L L L L L L L L

L LL

L LL

L L L

L L L

LL

LL

LL

LL

LL

LL

LL

L L

L

L

Phol

d

hldr

FFho

ldL L LL

L L LLL L LL

L L L L

L LLL

hldr

L LL L

L LL L

L L

Slika 106 Vremenski oblici signala pri paketskom prenosu podataka iz memorije u memoriju

U koraku step17 se ostaje samo jedna perioda signala takta i vrši provera vrednosti signala done bloka registri. Pošto je signal done neaktivan, što je indikacija da treba produžiti sa prenosom, proverava se i vrednosti signala CR7. Kako je signal CR7 aktivan, jer je zadat paketski prenos, prelazi se na korak step14. U ovom koraku se kod paketskog prenosa javlja

Page 323: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

317

razlika u odnosu na pojedinačni prenos. Kod pojedinačnog prenosa se iz koraka step17 ide, najpre, na korak step18, gde se eventualno čeka da signal hldas postane neaktivan, pa se tek tada prelazi na korak step14.

U koraku step14 se za razliku od prethodnog prolaska kroz korak step14 nailazi na aktivnu vrednost signala hldas, pa se odmah kreće sa generisanjem signala write, AR2out i DRout. Ostatak koraka step2 je identičan sa prethodnim prolaskom kroz korak step214.

U koracima step15 i step16 situacija je identična kao i kod prethodnog prolaska kroz ove korake.

U koraku step17 situacija se razlikuje od prethodnog prolaska kroz korak step17 jer je na signal takta na koji se prešlo iz koraka step16 u korak step17 dekrementiran brojač WCR15...0 bloka registri na vrednost nula, pa je signal done bloka registri sada aktivan. Zbog toga se u koraku step17 ostaje jedna perioda signala takta i prelazi na korak step0. U koraku step0 se generiše aktivna vrednost signala stSR0 kojim se upisuje aktivna vrednost u razred SR0 statusnog registra SR15...0 bloka registri. Uzeto je da je pri startovanju kontrolera u razred SR1 upravljačkog registra CR15...0 upisana aktivna vrednost. Zbog toga se u koraku step0 generiše i aktivna vrednost signala stintr kojim se pokreće generisanje signala prekida intr bloka interfejs. Pored toga kako se radi o paketskom prenosu signal CR7 je aktivan, pa se generiše aktivna vrednost signala clhold trajanja jedna perioda signala takta. S toga se na sledeći signal takta flip-flop FFhold postavlja na neaktivnu vrednost. Na neaktivnu vrednost signala FFhold i signal hldr prelazi u stanje visoke impedanse, čime kontroler procesoru ukida zahtev korišćenja magistrale. Zbog neaktivne vrednosti signala FFhold formira se neaktivna vrednost signala hldas. Kako je signal hldr u stanju visoke impedanse, signal hldr je neaktivan, pa se na sledeći signal takta u flip-flop FFhlda upisuje neaktivna vrednost. Na prelazak signala hldr u stanje visoke impedanse procesor reaguje postavljanjem signala hlda na neaktivnu vrednost, čime je dozvola korišćenja magistrale ukinuta.

Nakon startovanja kontrolera periferije (CR2=1) za pojedinačni prenos jednog podatka (CR7=0, CR5=0) iz memorije u deo memorije (CR4=1) formira se aktivna vrednost signala mm bloka interfejs i prelazi iz koraka step0 u korak step13 (slika 107).

U koracima step13, step14, step15, step16 i step17 situacija je identična kao i kod pojedinačnog prenosa podataka iz jednog u drugi deo memorije (slika 105). U koraku step18 su, takođe, identični vremenski oblici signala, pri čemu se sada, zbog toga što nema potrebe za čitanjem novog podatka, odmah prelazi na korak step15.

Pri ponovnom prolasku kroz korak step15 situacija je identična kao i pri prethodnom prolasku.

Pri ponovnom prolasku kroz korake step16 i step17 situacija je identična kao i kod ponovnog prolaska kroz ove korake pri pojedinačnom prenosu podataka iz jednog u drugi deo memorije (slika 105).

Nakon startovanja kontrolera periferije (CR2=1) za paketski prenos jednog podatka (CR7=1, CR5=0,) iz memorije u deo memorije (CR4=1) formira se aktivna vrednost signala mm bloka interfejs i prelazi iz koraka step0 u korak step13 (slika 108).

U koracima step13, step14, step15 i step16 situacija je identična kao i kod paketskog prenosa podataka iz jednog u drugi deo memorije (slika 106). U koraku step17 su, takođe, identični vremenski oblici signala, pri čemu se sada, zbog toga što nema potrebe za čitanjem novog podatka, odmah prelazi na korak step15.

Page 324: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

318

CLK

step

0

CR 2

step

13

stho

ld

hlda

inFF

hlda

hlda

s

FFC

enFF

C

ABU

S

FCBU

SD

BUS

writ

e, O

Ewrit

eA

R2ou

t, D

Rout

wrb

usW

RBU

S

read

, OEr

ead

AR1

out

rdbu

sRD

BUS

step

14

L L L L L L LL L L LL LL L L L LL L L L LL

clho

lddo

nest

SR0,

stin

tr

L LL

dec

WC

RL

incA

R1L

incA

R2LL

LL L L L LL L L L LL L L LLL L L LL L L LL L LL

step

16st

ep17st

ep18

step

15

LL L L L LL L L L LL L L LL L L LL L LL L LL LL

step

15

L LL

L LL

LL

LL

LL

LL

L L

L L L L L L LL L L LL LL L L L LL L L L LL

step

16st

ep17

step

0

LL L L L L L L L L L L L L L L L L L L L L L L L L L L L L L

L LL

L L L

LL

LL

LL

L

L

Phol

d

hldr

FFho

ldL L LL

L L LLL L LL

L L LLL L L L

hldr

L LL L

L LL L

L L

Slika 107 Vremenski oblici signala pri pojedinačnom prenosu jednog podatka iz memorije u

deo memorije

Pri ponovnom prolasku kroz korake step15, step16 i step17 situacija je identična kao i kod ponovnog prolaska kroz ove korake pri paketskom prenosu podataka iz jednog u drugi deo memorije (slika 106).

Page 325: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

319

CLK

step

0

CR 2

step

13

stho

ld

hlda

inFF

hlda

hlda

s

FFC

enFF

C

ABU

S

FCBU

SD

BUS

writ

e, O

Ewrit

eA

R2ou

t, D

Rout

wrb

usW

RBU

S

read

, OEr

ead

AR1

out

rdbu

sRD

BUS

step

14

L L L L L L LL L L LL LL L L L LL L L L LL

clho

lddo

nest

SR0,

stin

tr

L LL

incA

R2L

incA

R1L

decW

CR

LLLL L L L LL L L L LL L L LLL L L LL L L LL L LL

step

16st

ep17

step

15

LL L L L LL L L L LL L L LL L L LL L LL L LL LL

step

16st

ep17

step

0st

ep15

LL L L L LL L L L LL L L LLL L L LL L LL LL L LL

L LL

L LL

LL

L

LL

L

LL

L

L L L

L L

LL

L

Phol

d

hldr

FFho

ldL L LL

L L LLL L LL

L L LL

hldr

L LL L

L LL L

Slika 108 Vremenski oblici signala pri paketskom prenosu jednog podatka iz memorije u deo

memorije

6.3.2.3.3 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije

Upravljačka jedinica ožičene realizacije generiše dve vrste upravljačkih signala i to: • upravljačke signale blokova operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed_mem.

Page 326: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

320

Upravljački signali blokova operacione jedinice oper_jed se koriste u blokovima operacione jedinice oper_jed radi izvršavanja mikrooperacija. Upravljački signali upravljačke jedinice uprav_jed_mem se koriste u upravljačkoj jedinici uprav_jed_mem radi inkrementiranja brojača koraka ili upisa nove vrednosti u brojač koraka.

Upravljački signali blokova operacione jedinice oper_jed se mogu generisati na osnovu sekvence upravljačkih signala po koracima (tabela 89). Za svaki upravljački signal blokova operacione jedinice treba krenuti kroz sekvencu upravljačkih signala po koracima i tražiti korake sa iskazima za signale u kojima se pojavljuje dati signal. Za svaki takav korak treba uzeti signal dekodovanog stanja brojača koraka, ukoliko se signal bezuslovno generiše, i logički proizvod signala dekodovanog stanja brojača koraka i signala uslova, ukoliko se signal uslovno generiše, i formirati njihovu uniju.

Upravljački signali upravljačke jedinice uprav_jed_mem se ne mogu formirati na osnovu sekvence upravljačkih signala po koracima (tabela 89) jer se u njoj ne pojavljuju upravljački signali upravljačke jedinice uprav_jed_mem već samo iskazi za skok. Zbog toga je potrebno na osnovu sekvence upravljačkih signala po koracima, najpre, formirati sekvencu upravljačkih signala za upravljačku jedinicu ožičene realizacije. Prilikom njenog formiranja primenjuje se različiti postupak za upravljačke signale blokova operacione jedinice oper_jed i za upravljačke signale upravljačke jedinice uprav_jed_mem. Za upravljačke signale blokova operacione jedinice oper_jed treba staviti iskaze za signale onako kako se javljaju u sekvenci upravljačkih signala po koracima. Za upravljačke signale upravljačke jedinice uprav_jed_mem treba u sekvenci upravljačkih signala po koracima tražiti iskaze

br stepA i br (if uslov then stepA).

Umesto iskaza br stepA

treba staviti ldCNT, bv3, bv2, bv1, bv0 ili incCNT.

Iskaz ldCNT, bv3, bv2, bv1,bv0

se stavlja u onim koracima u kojima stepA nije prvi sledeći korak. U svakom takvom iskazu pored signala ldCNT, koji je obavezan, pojavljuje se i kombinacija aktivnih i neaktivnih vrednosti signala bv3, bv2, bv1 i bv0 koja odgovara binarnoj vrednosti A koraka stepA na koji bezuslovno treba preći. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 90. Iskaz

incCNT se stavlja u onim koracima u kojima je stepA prvi sledeći korak na koji bezuslovno treba preći. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 91.

Umesto iskaza br (if uslov then stepA

treba staviti if uslov then (ldCNT, bv3, bv2, bv1, bv0) ili if uslov then incCNT.

Iskaz if uslov then (ldCNT, bv3, bv2, bv1,bv0)

Page 327: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

321

Tabela 90 Signali ldCNT, bv3, bv2, bv1 i bv0

stepA br (if uslov then stepA) if uslov then (ldCNT, bv3, bv2, bv1, bv0) step0 br (if (CR2*done*mp)

then step7) if (CR2*done*mp)

then (ldCNT, bv2, bv1, bv0) step0 br (if (CR2*done*mm)

then step13) if (CR2*done*mm)

then (ldCNT, bv3, bv2, bv0) step1 br (if CR2 then step0) if CR2 then ldCNT step4 br (if (done*CR7) then step1) if (done *CR7) then (ldCNT, bv0) step4 br (if done then step0) if done then ldCNT step5 br (if CR2then step0) if CR2 then ldCNT step5 br (if (CR2*hldas) then step1) if (CR2*hldas) then (ldCNT, bv0) step7 br (if CR2 then step0) if CR2 then ldCNT step10 br (if done then step0) if done then ldCNT step10 br (if (done*CR7) then step7) if (done*CR7) then (ldCNT, bv2, bv1, bv0) step11 br (if CR2then step0) if CR2 then ldCNT step11 br (if (CR2*hldas) then step7) if (CR2*hldas) then (ldCNT, bv2, bv1, bv0) step13 br (if CR2then step0) if CR2 then ldCNT step17 br (if done then step0) if done then ldCNT step17 br (if (done*CR7*CR5)

then step15) if (done*CR7*CR5)

then (ldCNT, bv3, bv2, bv1, bv0) step17 br (if (done*CR7*CR5)

then step14 if (done*CR7*CR5)

then (ldCNT, bv3, bv2, bv1) step18 br (if CR2 then step0) if CR2 then ldCNT step18 br (if (CR2*hldas*CR5)

then step15) if (CR2*hldas*CR5)

then (ldCNT, bv3, bv2, bv1, bv0) step18 br (if (CR2*hldas*CR5)

then step14) if (CR2*hldas*CR5)

then (ldCNT, bv3, bv2 i bv1)

se stavlja u onim koracima u kojima stepA nije prvi sledeći korak. U svakom takvom iskazu pored signala ldCNT, koji je obavezan, pojavljuje se i kombinacija aktivnih i neaktivnih vrednosti signala bv3, bv2, bv1 i bv0 koja odgovara binarnoj vrednosti A koraka stepA na koji treba preći ukoliko je signal uslov aktivan. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 90. Iskaz

if uslov then incCNT se stavlja u onim koracima u kojima je stepA prvi sledeći korak na koji treba preći ukoliko je signal uslov aktivan. Koraci u kojima to treba uraditi, iskazi koje treba zamenjivati i iskazi koje treba umesto njih staviti dati su u tabeli 91.

Po opisanom postupku je na osnovu sekvence upravljačkih signala po koracima (tabela 89) formirana sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 92). Ona ima sledeću formu:

• na levoj strani nalaze se dekodovani signali stanja brojača koraka, • u u sredini je iskaz tipa

signali,

Page 328: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

322

if uslov then signali, ldCNT, bv3, bv2, bv1,bv0, incCNT, if uslov then (ldCNT, bv3, bv2, bv1,bv0) ili if uslov then incCNT,

• dok komentar, u koracima gde se to radi lakšeg razumevanja smatralo korisnim, uvek počinje uskličnikom (!) i proteže se do sledećeg uskličnika (!).

Tabela 91 Signal incCNT

stepA br (if uslov then stepA) if uslov then incCNT step0 br (if (CR2*done*pm) then step1 if (CR2*done*pm) then incCNT step1 br (if (CR2*RDDR) then step2) if (CR2*RDDR) then incCNT step2 br (if (hldas*enFFC) then step3) if (hldas*enFFC) then incCNT step3 br step4 incCNT step4 br (if (done*CR7) then step5) if (done*CR7) then incCNT step7 br (if (CR2*WRDR) then step8) if (CR2*WRDR) then incCNT step8 br (if (hldas*enFFC) then step9) if (hldas*enFFC) then incCNT step9 br step10 incCNT step10 br (if (done*CR7) then step11), if (done*CR7) then incCNT step13 br (if CR2 then step14), if CR2 then incCNT step14 br (if (hldas*enFFC) then step15) if (hldas*enFFC) then incCNT step15 br (if (hldas*enFFC) then step16) if (hldas*enFFC) then incCNT step16 br step17 incCNT step17 br (if (done*CR7) then step18) if (done*CR7) then incCNT

Iz izloženog se vidi da su upravljački signali za upravljačku jedinicu ožičene realizacije ldCNT, bv3, bv2, bv1, bv0 i incCNT. Oni se formiraju na osnovu dobijene sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije na identičan način kao i upravljački signali blokova operacione jedinice oper_jed.

Tabela 92 Sekvenca upravljačkih signala za upravljačku jedinicu ožičene realizacije ! U koraku T0 se ostaje sve dok je ili signal CR2 neaktivan ili signal done aktivan. Tada su neaktivne vrednostu signala incCNT i ldCNT, pa nema promene vrednosti brojača koraka CNT. Ukoliko je aktivna vrednost signala CR2 i neaktivna vrednost signala done prelazi se u korak T1, T7 i T13 u zavisnosti od toga koji od signala pm, mp i mm ima aktivnu vrednost. Pri aktivnoj vrednosti signala pm generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 1. Ukoliko je aktivna vrednost signala mp prelazi se u korak T7. Pri aktivnoj vrednosti signala wrs generišu se aktivne vrednosti signala ldCNT, bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 7. Ukoliko je aktivna vrednost signala mm prelazi se u korak T13. Pri aktivnoj vrednosti signala mm generišu se aktivne vrednosti signala ldCNT, bv3, bv2 i bv0, pa se u brojač koraka CNT upisuje vrednost 13. !

T0 if (CR2*done) then stSR0, if (CR2*done*CR1) then stintr,

if (CR2*done*pm) then incCNT, if (CR2*done * mp) then (ldCNT, bv2, bv1, bv0), if (CR2*done *mm) then (ldCNT, bv3, bv2, bv0);

Page 329: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

323

! U korak T1 se dolazi iz koraka T0, T5 ili T6. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak T0. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv4, bv3, bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala CR2 ili se ostaje u koraku T1 ili se prelazi u korak T2 u zavisnosti od toga da li je aktivna ili neaktivna vrednost signala RDDR, respektivno. Pri aktivnoj vrednosti signala RDDR generiše se neaktivna vrednost signala incCNT, pa se vrednost 1 brojača koraka CNT ne menja. Pri neaktivnoj vrednosti signala RDDR generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 2. !

T1 if (CR2*RDDR*hldas) then sthold, if CR2 then ldCNT, if (CR2*RDDR) then incCNT;

! U korak T2 se dolazi iz koraka T1. Dok su oba ili jedan od signala hldas i enFFC neaktivni ostaje se u koraku T2. Kada najpre signal hldas a zatim i signal enFFC postanu aktivni prelazi se u korak T3. Pri neaktivnoj vrednosti najpre oba signala hldas i enFFC a zatim samo signala enFFC generiše se neaktivna vrednost signala incCNT, pa se vrednost 2 brojača koraka CNT ne menja. Pri aktivnoj vrednosti signala hldas i enFFC generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 3. !

T2 if hldas then (write, AR2out, DRout), if (hldas*enFFC) then incCNT;

! U korak T3 se dolazi iz koraka T2. Iz koraka T3 se bezuslovno prelazi u korak T4. U koraku T3 se bezuslovno generiše signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 4. !

T3 decWCR, stRDDRmem, if CR6 then incAR2, if CR6 then decAR2, if CR7 then clhold, incCNT;

! U korak T4 se dolazi iz koraka T3. Ukoliko je neaktivna vrednost signala done prelazi se u korak T5 ili T1 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signala CR7, respektivno. Pri neaktivnoj vrednosti signala CR7 generiše se signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 5. Pri aktivnoj vrednosti signala CR7 generišu se aktivne vrednosti signala ldCNT i bv0, pa se u brojač koraka CNT upisuje vrednost 1. Ukoliko je aktivna vrednost signala done prelazi se u korak T0. Pri aktivnoj vrednosti signala done generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv4, bv3, bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. !

T4 if (done*CR7) then clhold, if (done*CR7) then incCNT, if (done *CR7) then (ldCNT, bv0), if done then ldCNT;

! U korak T5 se dolazi iz koraka T4. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak T0. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv4, bv3, bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala CR2 ili se ostaje u koraku T5 ili se prelazi u korak T1 u zavisnosti od toga da li je aktivna ili neaktivna vrednost signal hldas, respektivno. Pri aktivnoj vrednosti signala hldas generiše se neaktivna vrednost signala ldCNT, pa se vrednost 5 brojača koraka CNT ne menja. Pri neaktivnoj vrednosti signala hldas generišu se aktuvne vrednosti signala ldCNT i bv0, pa se u brojač koraka CNT upisuje vrednost 1. !

T5 if CR2 then ldCNT, if (CR2*hldas) then (ldCNT, bv0);

! U korak T7 se dolazi iz koraka T0, T10 ili T11. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak T0. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv4, bv3, bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala CR2 ili se ostaje u koraku T7 ili se prelazi u korak T8 u zavisnosti od toga da li je aktivna ili neaktivna vrednost signal WRDR, respektivno. Pri aktivnoj vrednosti signala WRDR generiše se neaktivna vrednost signala incCNT, pa se vrednost 7 brojača koraka CNT ne menja. Pri

Page 330: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

324

neaktivnoj vrednosti signala WRDR generišu se aktuvna vrednosti signala incCNT, pa se inkrementira vrednost brojača koraka CNT na 8. !

T7 if (CR2*WRDR*hldas) then sthold, if CR2 then ldCNT, if (CR2*WRDR) then incCNT;

! U korak T8 se dolazi iz koraka T7. Dok su oba ili jedan od signala hldas i enFFC neaktivni ostaje se u koraku T8. Kada najpre signal hldas a zatim i signal enFFC postanu aktivni prelazi se u korak T9. Dok su oba ili jedan od signala hldas i enFFC neaktivni generiše se neaktivna vrednost signala incCNT, pa se vrednost 8 brojača koraka CNT ne menja. Pri aktivnim vrednostima signala hldas i enFFC generiše se signal incCNT, pa se inkrementira vrednost brojača koraka CNT na vrednost 9. !

T8 if hldas then (read, AR1out), if (hldas*enFFC) then incCNT;

! U korak T9 se dolazi iz koraka T8. Iz koraka T9 se bezuslovno prelazi u korak T10. U koraku T9 se bezuslovno generiše signal incCNT, pa se inkrementira vrednost brojača koraka CNT na 10. !

T9 decWCR, stWRDRmem, if CR6 then incAR1, if CR6 then decAR1, if CR7 then clhold, incCNT;

! U korak T10 se dolazi iz koraka T9. Ukoliko je neaktivna vrednost signala done prelazi se u korak T11 ili T7 u zavisnosti od vrednost signala CR7. Pri neaktivnoj vrednosti signala CR7 generiše se aktivna vrednosti signala incCNT, pa se inkrementira vrednosti brojača koraka CNT na 11. Pri aktivnoj vrednosti signala CR7 generišu se aktivne vrednosti signala ldCNT, bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 7. Ukoliko je aktivna vrednost signala done prelazi se u korak T0. Pri aktivnoj vrednosti signala done generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv4, bv3, bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. !

T10 if (done *CR7) then clhold, if (done *CR7) then incCNT, if (done *CR7) then (ldCNT, bv2, bv1, bv0), if done then ldCNT;

! U korak T11 se dolazi iz koraka T10. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak T0. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv4, bv3, bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala CR2 ili se ostaje u koraku T11 ili se prelazi u korak T7 u zavisnosti od toga da li je aktivna ili neaktivna vrednost signal hldas, respektivno. Pri aktivnoj vrednosti signala hldas generiše se neaktivna vrednost signala ldCNT, pa se vrednost 11 brojača koraka CNT ne menja. Pri neaktivnoj vrednosti signala hldas generišu se aktuvne vrednosti signala ldCNT, bv2, bv1 i bv0, pa se u u brojač koraka CNT upisuje vrednost 7. !

T11 if CR2 then ldCNT, if (CR2*hldas) then (ldCNT, bv2, bv1 i bv0);

! U korak T13 se dolazi iz koraka T0. Iz koraka T13 se prelazi u korak T0 ili T14 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signala CR2, respektivno. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv4, bv3, bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Pri aktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala incCNT, pa se inkrementira vrednost brojača koraka CNT na 14. !

T13 if CR2 then sthold, if CR2 then ldCNT, if CR2 then incCNT;

! U korak T14 se dolazi iz koraka T13. Dok su oba ili jedan od signala hldas i enFFC neaktivni ostaje se u koraku T14. Kada najpre signal hldas a zatim i signal enFFC postanu aktivni prelazi se u korak T15. Dok su oba ili jedan od signala hldas i enFFC neaktivni generiše se neaktivna vrednost signala incCNT, pa se vrednost 14 brojača koraka CNT ne menja. Pri aktivnim vrednostima signala hldas i enFFC generiše se signal incCNT, pa se inkrementira vrednost brojača koraka CNT na 15. !

T14 if hldas then (read, AR1out),

Page 331: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

325

if (hldas*enFFC) then incCNT; ! U korak T15 se dolazi iz koraka T14, T17 i T18. Dok su oba ili jedan od signala hldas i enFFC neaktivni ostaje se u koraku T15. Kada najpre signal hldas a zatim i signal enFFC postanu aktivni prelazi se u korak T16. Dok su oba ili jedan od signala hldas i enFFC neaktivni generiše se neaktivna vrednost signala incCNT, pa se vrednost 15 brojača koraka CNT ne menja. Pri aktivnim vrednostima signala hldas i enFFC generiše se signal incCNT, pa se inkrementira vrednost brojača koraka CNT na 16. !

T15 if hldas then (write, AR2out, DRout), if (hldas*enFFC) then incCNT;

! U korak T16 se dolazi iz koraka T15. Iz koraka T16 se bezuslovno prelazi u korak T17. U koraku T16 se bezuslovno generiše signal incCNT, pa se inkrementira vrednosti brojača koraka CNT na 17. !

T16 decWCR, if (CR5*CR6) then incAR1, if (CR5*CR6) then decAR1), if CR6 then incAR2, if CR6 then decAR2, if CR7 then clhold, incCNT;

! U korak T17 se dolazi iz koraka T16. Ukoliko je neaktivna vrednost signala done prelazi se u korak T18, T15 ili T14 u zavisnosti od vrednost signala CR7 i CR5. Pri neaktivnoj vrednosti signala CR7 generiše se aktivna vrednosti signala incCNT, pa se inkrementira vrednosti brojača koraka CNT na 18. Pri aktivnoj vrednosti signala CR7 prelazi se u korak T15 ili T14 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signala CR5, respektivno. Pri neaktivnoj vrednosti signala CR5 generišu se aktivne vrednosti signala ldCNT bv3, bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 15. Pri aktivnoj vrednosti signala CR5 generišu se aktivne vrednosti signala ldCNT, bv3, bv2 i bv1, pa se u brojač koraka CNT upisuje vrednost 14. Ukoliko je aktivna vrednost signala done prelazi se u korak T0. Pri aktivnoj vrednosti signala done generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv4, bv3, bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. !

T17 if (done*CR7) then clhold, br (if (done*CR7) then incCNT), br (if (done*CR7*CR5) then (ldCNT, bv3, bv2, bv1, bv0), br (if (done*CR7*CR5) then (ldCNT, bv3, bv2, bv1), br (if done then ldCNT);

! U korak T18 se dolazi iz koraka T17. Ukoliko je neaktivna vrednost signala CR2 prelazi se u korak T0. Pri neaktivnoj vrednosti signala CR2 generiše se aktivna vrednost signala ldCNT i neaktivne vrednosti signala bv4, bv3, bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 0. Ukoliko je aktivna vrednost signala CR2 ostaje se u koraku T18 ili se prelazi u korake T15 ili T14 u zavisnosti od vrednosti signala hldas i CR5. Pri aktivnoj vrednosti signala hldas generiše se neaktivna vrednosti signala ldCNT, pa se vrednost 18 brojača koraka CNT ne menja. Pri neaktivnoj vrednosti signala hldas prelazi se u korak T15 ili T14 u zavisnosti od toga da li je neaktivna ili aktivna vrednost signala CR5, respektivno. Pri neaktivnoj vrednosti signala CR5 generišu se aktivne vrednosti signala ldCNT, bv3, bv2, bv1 i bv0, pa se u brojač koraka CNT upisuje vrednost 15. Pri aktivnoj vrednosti signala CR5 generišu se aktivne vrednosti signala ldCNT, bv3, bv2 i bv1, pa se u brojač koraka CNT upisuje vrednost 14.

T18 if (CR2*hldas) then sthold, if CR2 then ldCNT, if (CR2*hldas *CR5) then (ldCNT, bv3, bv2, bv1, bv0), if (CR2*hldas*CR5) then (ldCNT, bv3, bv2 i bv1);

6.3.2.3.4 Struktura upravljačke jedinice

Struktura upravljačke jedinice ožičene realizacije je prikazana na slici 109. Upravljačka jedinica se sastoji od sledećih blokova:

• blok brojač koraka,

Page 332: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

326

• blok dekoder koraka i • blok generisanje upravljačkih signala.

CNT4...0 INC

LDCLK

4 0

D C

T31 T0

CNT0

4 0mr

MRCLK

...

...

0

31 0

... ...

bv0

ldCNTincCNT

bv4

CNT4

4

blok

regi

stri

blok

inte

rfej

s

generisanjeupravljačkih

signalablokova

operacionejedinice

ldC

NT

generisanjeupravljačkih

signalaupravljačke

jedinice

incC

NT

bv0

brojačkoraka

dekoderkoraka

generisanjeupravljačkih signala

regi

stri

14

42

44

3done

hldas

bv4

...

...

...

...

...

...

...

...

...

12

3

inte

rfej

senFFC

WRDR

Slika 109 Struktura upravljačke jedinice uprav_jed_mem

Blok brojač koraka sadrži brojač CNT4...0. Brojač CNT4...0 svojom trenutnom vrednošću obezbeđuje aktivne vrednosti određenih upravljačkih signala. Brojač Brojač CNT4...0 može da radi u sledećim režimima:

• režim inkrementiranja, • režim skoka i • režim čekanja.

U režimu inkrementiranja pri pojavi signala takta vrši se uvećavanje sadržaja brojača CNT4...0 za jedan čime se obezbeđuje sekvencijalno generisanje upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 92). Ovaj režim rada se realizuje neaktivnom vrednošću signala ldCNT i aktivnom vrednošću signala incCNT (tabela 91).

U režimu skoka pri pojavi signala takta vrši se upis nove vrednosti u brojač CNT4...0 čime se obezbeđuje odstupanje od sekvencijalnog generisanja upravljačkih signala iz sekvence upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 92). Ovaj režim rada se realizuje aktivnom vrednošću signala ldCNT, neaktivnom vrednošću signala incCNT i

Page 333: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

327

kombinacijom aktivnih i neaktivnih vrednosti signala bv4, bv3, bv2, bv1 i bv0 koja odgovara vrednosti koju treba upisati u brojač CNT4...0 (tabele 90).

U režimu čekanja pri pojavi signala takta ne menja se vrednost brojača CNT4...0. Ovaj režim rada se obezbeđuje neaktivnim vrednostima signala ldCNT i incCNT.

Blok dekoder koraka sadrži dekoder DC. Na ulaze dekodera DC vode se izlazi brojača CNT4...0. Dekodovana stanja brojača CNT4...0 pojavljuju se kao signali T0 do T31 na izlazima dekodera DC. Svakom koraku iz sekvence upravljačkih signala po koracima (tabela 89) dodeljeno je po jedno stanje brojača CNT4...0 određeno vrednošću signala T0 do T31 i to koraku step0 signal T0, koraku step1 signal T1, itd.

Blok generisanje upravljačkih signala sadrži kombinacione mreže koje pomoću signala T0 do T19, koji dolaze sa bloka dekoder koraka, signala logičkih uslova done do WRDR, koji dolaze iz bloka registri, i enFFC do hldas, koji dolaze iz bloka interfejs, i saglasno sekvenci upravljačkih signala za upravljačku jedinicu ožičene realizacije (tabela 92) generišu dve grupe upravljačkih signala i to:

• upravljačke signale blokova operacione jedinice oper_jed i • upravljačke signale upravljačke jedinice uprav_jed_mem.

Upravljački signali blokova operacione jedinice oper_jed se daju posebno za blok registri i blok interfejs.

Upravljački signali bloka registri se generišu na sledeći način: • stSR0 = CR2*done*T0 • DRout = hldas*(T2 + T15) • AR1out = hldas*(T8 + T14) • AR2out = hldas*(T2 + T15) • incAR1 = CR6*T9 + CR5*CR6*T16 • decAR1 = CR6*T9 + CR5* CR6*T16 • incAR2 = CR6*(T3 + T16) • decAR2 = CR6*(T3 + T16) • decWCR = T3 + T9 + T16 • stRDDRmem = T3 • stWRDRmem = T9

Upravljački signali bloka interfejs se generišu na sledeći način: • stintr = CR2*done*CR1*T1 • sthold = CR2*hldas*(RDDR*T1 + WRDR*T7) + CR2*T13 + CR2*hldas*T18 • clhold = CR7*(T3 + T9 + T16) + done*CR7*(T4 + T10 + T17) • read = hldas*( T8 + T14) • write = hldas*(T2 + T15)

Upravljački signali upravljačke jedinice uprav_jed_mem se generišu na sledeći način: • ldCNT = CR2*done*(mp+mm)*T0 + CR2*hldas *(T5 + T11 + T18)

+done *CR7*(T4 + T10 + T17) + done*(T4 + T10 + T17) +CR2*(T1 + T5 + T7 + T11 + T13 + T18)

• bv4 = 0 • bv3 = CR2*done *mm*T0 + done *CR7*T17 + CR2*hldas*T18 • bv2 = CR2*done*(mp+mm)*T0 + done*CR7*(T10+T17) + CR2*hldas*(T11+T18) • bv1 = CR2*done *mp*T0 + done * CR7*(T10 + T17) + CR2*hldas*(T11 + T18) • bv0 = CR2*done *(mp + mm)*T0 + done *CR7* (T4 + T10 + CR5*T17)

Page 334: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

328

+ CR2*hldas*(T5 + T11+ CR5*T18) • incCNT = CR2*done *pm*T0 + CR2*RDDR*T1

+ hldas*enFFC*(T2 + T8 + T14 + T15) + T3 + T9 + T16 +done*CR7*(T4 + T10 + T17) + CR2*WRDR*T7 + CR2*T13

Pri njihovom generisanju koriste se sledeći signali logičkih uslova koji dolaze iz blokova registri i interfejs operacione jedinice oper_jed i to:

• done — blok registri, • CR1 — blok registri, • CR2 — blok registri, • CR5 — blok registri, • CR6 — blok registri, • CR7 — blok registri, • pm — blok registri, • mp — blok registri, • mm — blok registri, • RDDR — blok registri, • WRDR — blok registri, • enFFC — blok interfejs i • hldas — blok interfejs.

Page 335: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

329

7 LITERATURA 1. Lazić, B., Logičko projektovanje računara, Nauka—Elektrotehnički fakultet, Beograd,

Srbija, Jugoslavija, 1994

2. Živković, D., Popović, D., Impulsna i digitalna elektronika, Nauka—Elektrotehnički fakultet, Beograd, Srbija, Jugoslavija, 1992.

3. Aleksić, T., Računari—organizacija i arhitektura, Naučna knjiga, Beograd, Srbija, Jugoslavija, 1985.

4. Stallings, W., Computer Organization and Architecture, Prentice-Hall, Englewood Cliffs, New Jersey, USA, 1996.

5. Patterson, D., Hennessy, J., Goldberg, D., Computer Architecture—A Quantitative Approach, Morgan Kaufmann Publishers Inc., San Francisco, California, USA, 1996.

6. Flynn, M., Computer Architecture: Pipelined and Parallel Processor Design, Jones and Bartlett, USA, 1995

7. J. Djordjevic, A. Milenkovic, N. Grbanovic, “An Integrated Educational Environment for Teaching Computer Architecture and Organisation,” IEEE MICRO, May 2000.pp. 66-74.

8. J. Djordjevic, M. Bojovic, A. Milenković, An Integrated Educational Environment for Computer Architecture and Organisation, Proceedings of the Symposium on Education and Employment, France, September, 1998.

9. J. Djordjevic, A. Milenkovic, S. Prodanovic “A Hierarchical Memory System Environment,” IEEE TC Computer Architecture Newsletter, March 1999.

10. J. Đorđević, B. Nikolić, Vizuelni simulator edukacionog računara, Zbornik radova IT 2001, Žabljak, Jugoslavija, Mart 2001.

11. J. Djordjevic, R. N. Ibbett, M. R. Barbacci, Evaluation of computer architectures using ISPS, Proc. of IEE, Vol. 127, Pt. E. No. 4, pp. 126-131, July 1980.

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

13. S. Miladinović, J. Đorđević, A. Milenković, Programski sistem za grafički opis i simulaciju digitalnih sistema, Zbornik radova ETRAN 1997, Zlatibor, Jugoslavija, Jun 1997.

14. N. Grbanovic, J. Djordjevic, B. Nikolić, The Software Package Of An Educational Computer System, prijavljen za objavljivanje u IJEEE, England, October, 2002.

15. J. Đorđević, B. Nikolić, Neki Aspekti Realizacije Vizuelnog Simulatora Edukacionog Računara, , Zbornik radova IT 2001, Žabljak, Jugoslavija, Mart 2001.

16. J. Đorđević, T. Borozan, B. Nikolić, Softversko okruženje za simulaciju računara, Zbornik radova ETRAN 2001, Bukovička Banja, Jugoslavija, Jun 2001.

17. J. Djordjevic, A. Milenkovic, I. Todorovic, D. Marinov, “CALCAS: A Computer Architecture Learning and Knowledge Assessment System,” IEEE TC Computer Architecture Newsletter, March 1999.

Page 336: final prir RISC nov2002 - University of Belgraderti.etf.bg.ac.rs/rti/oo2or/literatura/final_prir_2002.pdfArhitektura procesora od programski dostupnih registara ima registre opšte

330

18. A. Milenkovic, Nikolić, B., J. Djordjevic, “CASTLE, Computer Architecture Self-Testing and Learning System,” WCAE 2002, Workshop on Computer Architecture Education, Anchorage, Alaska, May 26, 2002.

19. Đorđević, J., Priručnik iz arhitekture računara, Elektrotehnički fakultet, Beograd, 1997.

20. Đorđević, J., Priručnik iz arhitekture i organizacije računara, Elektrotehnički fakultet, Beograd, 1997.

21. Đorđević, J., Grbanović, N., Nikolić, B., Arhitektura računara, Edukacioni računarski sistem, Priručnik za simulaciju sa zadacima, Elektrotehnički fakultet, Beograd, 2002.