Top Banner
UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET KATEDRA ZA ELEKTRONIKU TROADRESNI 16-BITNI PROCESOR SA MIKROPROGRAMSKIM UPRAVLJANJEM Mentor: Studenti: Prof. Dr Mile Stojčev Slađan Ljubenov 9969 Aleksandar Dinić 9890 Nikola Djordjević 10472 Dejan Stamenković 10645 Niš, jun 2006.
97

TROADRESNI 16-BITNI PROCESOR SA MIKROPROGRAMSKIM …es.elfak.ni.ac.rs/Papers/troadresni16bprocesor.pdf · -upravljačka jedinica (eng. control unit), -izvršna jedinica (execute unit)

Oct 23, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET KATEDRA ZA ELEKTRONIKU

    TROADRESNI 16-BITNI PROCESOR SA MIKROPROGRAMSKIM UPRAVLJANJEM

    Mentor: Studenti: Prof. Dr Mile Stojčev Slađan Ljubenov 9969

    Aleksandar Dinić 9890

    Nikola Djordjević 10472

    Dejan Stamenković 10645

    Niš, jun 2006.

  • 2

    Sadržaj

    1. Uvod 3 2. Opis strukture procesora-opsti pristup.................................................................

    2.1. Izvršna jedinica-execute unit......................................................................... 2.2. Upravljačka jedinica-control unit.................................................................. 2.3. Tipovi arhitektura sa aspekta izvršenja......................................................... 2.4. Opis načina adresiranja ................................................................................ 2.5. Skup instrukcija CPU-a.................................................................................

    3. Opis hardvera procesora....................................................................................... 3.1. Struktura hardvera izvršne jedinice............................................................... 3.2. Struktura hardvera upravljačke jedinice........................................................

    4. Izvršavanje instrukcija.......................................................................................... 4.1. Analiza skupa instrukcija.............................................................................. 4.2. Instrukcije...................................................................................................... 4.3. Sadržaj mikroprogramerske memorije..........................................................

    5. Realizacija u VHDL-u.......................................................................................... 5.1. VHDL opis osnovnih komponenata..............................................................

    5.1.1. Adresni registar.................................................................................. 5.1.2. Registat podataka............................................................................... 5.1.3. Instrukcijski registar........................................................................... 5.1.4. Programski brojač.............................................................................. 5.1.5. PSW registar....................................................................................... 5.1.6. Shifter-pomerač..................................................................................

    5.2. VHDL opis složenih jedinica........................................................................ 5.2.1. Opis aritmetičko –logičke jedinice..................................................... 5.2.2. Opis bloka RAM................................................................................ 5.2.3. Opis bloka ROM................................................................................ 5.2.4. Opis bloka upravljačka jedinica......................................................... 5.2.5. Opis bloka procesor............................................................................ 5.2.6. Blok mikroprocesor............................................................................

    6. VHDL kod test bench-a procesora i prikaz rezultata simulacije.......................... 6.1. Prikaz talasnih oblika signala za testnu sekvencu instrukcija.......................

    7. Rezultati sinteze i implementacije........................................................................ 8. Laboratorijska vežba............................................................................................

    8.1. Zadatak.......................................................................................................... 9. Literatura..............................................................................................................

    4 5

    6 8 8 10 11 12 15 18 18 20 45 51 51 51 51 52 53 54 54 55 55 60 61 62 68 70 71 72 80 84 88 97

  • 3

    1. Uvod Ogromna ekspanzija na polju razvoja, usavršavanja i primene poluprovodničkih tehnologija je prisutna u poslednjih pedesetak godina. Broj tranzistora po kvadratnom centimetru silikonskog čipa je iz godinu u godinu rasato, da bi danas težio broju od nekoliko stotina miliona tranzistora. Sa povećanjem broja tranzistora i usložnjavanjem čipova dolazi i do razvoja i promena tehnika i alata, koje se koriste pri projektovanju. U procesu projektovanja koristimo dve osnovne grupe alata. Prvu grupu čine hardverski, a drugu softverski alati. Kao primer hardverskih alata možemo navesti radne stanice za projektovanje hardvera, emulatore, logičke analizatore, instrumente itd. Alati koji se koriste pri projektovanju, a spadaju u grupu softverskih alata su bazirani na skupu različitih softverskih paketa. Softverski paketi se razvijaju i nadograđuju godinama, i sadrže grupu kompleksnih programa koji se koriste u svim fazama opisivanja, simulacije, sinteze i implementacije sistema. Jezici za opis hardvera se danas uveliko proučavaju na svim elektrotehničkim fakultetima i pri tom se sam opis može bazirati na strukturnom nivou ili na nivou ponašanja. Oba načina opisivanja se koriste kombinovano na datom projektu u zavisnosti od potreba i ideje samog projektanta. Kao primere paketa za opis hardvera možemo navesti: VHDL ( Very-High-Speed-Integrated-Circuit Hadrware Description Language), zatim njemu slični VERYLOG, itd. Pored funkcije opisivanja, ovim paketima je data i moćunost simulacije opisanog sistema i prikaz talasnih oblika simulacije u odgovarajućem grafičkom editoru. U okviru ovog rada će se koristiti VHDL kao alat koji će se upotrebiti za opis hardvera jednostavnog procesora.

    Korišćenje alata ovog tipa omogućava sledeće prednosti u oblasti projektovanja:

    - preglednost pri projektovanju koja je izuzetno važna kada se radi o projektovanju kompleksnih sistema;

    -efikasnost pri projektovanju; -kraće vreme obučavanja budućih projektanata; -jeftina proizvodnja, koja je jedna od najbitnijih faktora na današnjem sve konkurentnijem tržištu.

    Predmet proučavanja u ovom projektu je: -generisanje opisa troadresnog 16-bitnog procesora sa mikroprogramskim

    upravljanjem korišćenjem VHDL-a, -simulacija opisanog hardvera i prikaz talasnih oblika koji se dobijaju kao rezultat

    simulacije, -sinteza procesora na osnovu formiranog opisa.

  • 4

    2. Opis strukture procesora – opšti pristup

    Struktura procesora predstavlja skup gradivnih blokova koji: ulaze u sastav

    procesora, hijerarhiski su organizovani i omogućavaju izvršavanje skupa instrukcija, koji je definisan za posmatrani procesor. Obzirom na širok spektar procesora koji danas postoje zaočekivati je veliku raznolikost u pogledu strukture. Međutim, neki od primarnih blokova koji ulaze u sastav procesora su karakterisični za većinu današnjih procesora, tako da ovi blokovi trebaju biti navedeni kada je u pitanju opšti pristup.

    Kao dve osnovne gradivne jedinice svakog procesora na najvišem hijerarhiskom nivou javljaju se:

    -upravljačka jedinica (eng. control unit ), -izvršna jedinica (execute unit ) ili staza podataka (data path).

    Ove dve osnovne jedinice su međusobno povezane preko odgovarajuće interne magistrale. Tu možemo razlikovati deo interne magistrale koji se koristi za prenos upravljačkih signala od upravljačke jedinice ka izvršnoj, kao i deo kojim se prenose ulazni podaci iz izvršne jedinice ka upravljačkoj. Osnovni princip funkcionisanja procesora se zasniva na sekvencijanom učitavanju instrukcija iz glavne memorije u procesor, posle čega sledi niz mikrooperacija u samom procesoru u cilju obavljanja zadatka koji je specificiran instrukcijom. Broj i tip mikroopracija koje se izvršavaju za učitanu instrukciju određene su odgovarajućim bitovima u okviru same instrukcije. Prikaz strukture procesora na ovom nivou je dat na slici 1. Nadalje će biti opisana i predstavljena svaka od ovih jedinica posebno.

    Slika 1 – Osnovna struktura procesora

  • 5

    2.1 Izvršna jedinica – execute unit

    Izvršna jedinica je gradivni blok u kome se obavljaju sve aritmetičke operacije, logičke operacije, operacije generisanja adresa itd. Izvršavanje svake od pomenutih operacija se obavlja na osnovu specificiranih upravljačkih signala, koji se generišu u upravljačkoj jedinici. Neki od najčešćih blokova koji ulaze u sastav izvršne jedinice su:

    -ALU, pomerači, sabirači, množači itd.; -generator adresa; -registri koji se koriste u različite svrhe npr. čuvanje podataka, čuvanje adresa, smeštaj

    instrukcije; -odgovarajuće veze između gore pomenutih blokova. U zavisnosti od hardverske opremljenosti množačima, brojačima, jedinicama za

    obavljanje različitih aritmetičko-logičkih operacija, procesor je u stanju da korisniku pruži brže ili sporije izvršavanje složenijih operacija. Naime, ako deo izvršne jedinice ne obiluje hardverskim potencijalom složenije operacije će se izvršavati sporo. Opet složeniji hardver zahteva i veću cenu tako da se treba tražiti neki kompromis.

    Što se tiče registara koji ulaze u sastav izvršne jedinice možemo ih podeliti na: - korisnički vidljive registre tj. one koji su vidljivi programeru na mašinskom i

    asemblerskom nivou; - upravljačke i statusne registre tj. one koji nisu vidljivi programeru i imaju

    specificiranu funkciju u procesu izvršavanja instrukcija. Nadalje ćemo posebno ukazati na svaku od pomenutih grupa registara i predstaviti njihovu funkciju. U korisničko vidljive registre spadaju:

    - registri opšte namene, kojima sam programer dodeljuje različite funkcije; - registri za podatke, koji se mogu koristiti za čuvanje podataka, ali ne i adresa; - adresni registri, koji se koriste za specificiranje određenog adresnog načina rada; - marker registri, koji su delimično vidljivi korisniku i u kojima hardver CPU-a postavlja sam vrednosti na osnovu obavljanja različitih operacija.

    Obim korisničko vidljivih registara i njihov broj predstavljaju neke od osnovnih

    atributa na koje projektant treba obratiti pažnju. Tako, na osnovu obima korisničkih registara razlikujmo 8 -bitne, 16 – bitne, 32 – bitne, 64 – bitne, 128 -bitne procesore. Dalje, broj dostupnih registra utiče na performanse procesora kod konkurentnog izvršavanja instrukcija. Kao upravljačke i statusne registre nožemo navesti sledeće registre: -programski

    brojač (PC – Program Counter), koji čuva adresu naredne instrukcije; -registar naredbi ( IR – Instruction Register), koji čuva kod instrukcije koja se trenutno izvršava; -memorijsko adresni registar (MAR – Memory Address Register), koji čuva adresu memorijske lokacije koja se adresira; -memorijsko baferski registar (MBR – Memory Buffer Register), koji sadrži podatak koji je poslednji upisan ili poslednji pročitan iz memorije; -CCR (Condition Code Register) služi da čuvanje markera uslova. U markere

  • 6

    uslova spadaju prenos – carry, znak – sign, bit parnosti – parity bit, nula bit – zero, preoračenje – overflow, supervizor bit, koji ukazuje da se izvršava naredbe u supervizorskom načinu rada itd. Na slici 2 su prikazani jedan od načina organizacije izvršne jedinice.

    Slika 2. Organizacija izvršne jedinice

    2.2 Upravljačka jedinica – control path

    Upravljačka jedinica služi za generisanje upravljačkih signala. Upravljački signali koje generiše upravljačka jedinica se mogu podeliti u dve osnovne grupe: -interni upravljački signali, koji se vode na izvršnu jedinicu; -spoljni upravljački signali, uz pomoć kojih se upravlja radom spoljnih komponenata kao što su memorija ( čitanje i upis), U/I uređaji itd.

    Vrednosti upravljačkih signala na izlazu upravljačke jedinice zavise od: -bitova na ulazu upravljačke jedinice koji specificiraju instrukciju koja se trenutno izvršava; -spoljnih ulaznih upravljčkih signala, koji ukazuju na stanje spoljnih uređaja, npr. Reset signal, Ready signal itd; -bitova koji specificiraju rezultat predhodne operacije (CCR).

    Na slici 3. je prikazana strategija upravljanja.

  • 7

    Slika 3. Osnovna strategija upravljanja

    Postoje dva osnovna koncepta realizacije upravljačke jedinice. To su: -koncept upravljačke jedinice sa direktnim upravljanjem – hardwired control; -koncept upravljačke jedinice sa mikroprogramskim upravljanjem – microprogrammed control.

    Ako se opredelimo za upravljačku jedinicu sa direktnim upravljanjem, upravljačka jedinica će biti realizovana kao sekvencijalno logičko kolo. Glavna prednost ovakve upravljačke jedinice je velika brzina rada sa minimalnim hardverom, a nedostatak u tome što kada se jednom isprojektuje, ne dozvoljava dodatne izmene. Zato se ovaj tip upravljačke jedinice često sreće kod RISC procesora i neprogramabilnih kontrolera.

    Prihvatanje koncepta procesorske jedinice sa mikroprogramskim upravljanjem u konkretnom slučaju zahteva realizaciju upravljačke jedinice na bazi ROM ili RAM memorije u kojoj se smeštaju vrednosti upravljačkih signala, koji će biti aktivirani u odgovarajućem trenutku. Glavne prednosti ovakvog načina realizacije upravljačke jedinice su: -lako uvođenje dodatnih instrukcija; -greške se brže i lakše otklanjaju; -ukupno projektovanje procesora je pojednostavljeno; -korišćenjem mikroprogramske emulacije moguće je ostvarivanje kompatibilnosti sa drugom mašinom. Glavni nedostatak ovog pristupa je manja brzina rada u odnosu na direktno

    upravljanje. Ipak je ovaj način realizacije upravljačke jedinice široko rasprostranjen, gotovo u svim slučajevima kada brzina rad nije od presudnog značaja. Kod upravljačkih jedinica ovog tipa, pri projektovanju se često pravi kompromis između nivoa dekodiranja i kapaciteta memorije koji je upotrebljen za pamćenje upravljačkih signala. Najekstremniji slučaj po pitanju zauzeća memorije je kada nema kodiranja, tj. kada se upravljački signali direktno pamte u memoriji. U slučaju složenih procesora broj upravljačkih signala može biti veliki tako da bi bio potreban popriličan RAM u okviru procesora. Zato se koristi kodiranje kombinacija upravljačkih signala. To dodatno usložnjava kontrolnu jedinicu, ali štedi mikroprogramsku memoriju. Maksimalno kodiranje takođe utiče negativno na aspekt uvođenja novih instrukcija, jer uvođenje novih instrukcija zahteva potpuni redizajn dekodera.

  • 8

    2.3. Tipovi arhitektura sa aspekta izvršenja

    U okviru razmatranja jednog opšteg pogleda na strukturu procesora, treba napomenuti raspoložive arhitekture procesora kada govorimo o izvršenju instrukcija. Tu se pre svega misli na specifikaciju operanada pri izvršavanju instrukcija. U tom pogledu razlikujemo:

    - L/S (Load –Store) arhitekturu; - R/M ( Register – Memory) arhitekturu; - R+M ( Register plus Memory) arhitekturu. Kod L/S arhitekture imamo da svi operandi pri izvršavanju instrukcije moraju da

    se nađu u registrima procesora. Kod R/M arhitekture jedan od izvornih operanada mora da se nađe u nekom od registru procesora, dok drugi može biti specificiran preko memorije. I na kraju, R+M arhitektura procesora se odlikuje time da se operandi nalaze i u memoriji i u registrima procesora. Konačno treba napomenuti da u širokom spektru različitih arhitektura procesora

    na osnovu broja operanada koji se specificiraju direktno ili indirektno u okviru same instrukcije imamo: nulto–adresne, jedno–adresne, dvo–adresne i tro–adresne procesore. Kod tro-adresnih se u samoj instrukciji specificira adresa dva izvorna operanda i adresa odredišnog operanda. Kod dvo-adresnih procesora se u samoj instrukciji specificira adresa oba izvorišna operanda eksplicitno, a adresa odredišnog se implicitno podrazumeva kao adresa jednog od izvornih operanada. Kod jedno-adresnih mašina se specificira eksplicitno adresa jednog od izvornih operanada dok se rezultat i drugi izvorni nalaze u specificiranom registru koji se često naziva akumulator (ACC). Nulto-adresne mašine podrazumevaju rad sa magacinom pri čemu se vidi samo jedna adresa i za operande i za rezultat, a to je vrh magacina (TOS-Top Of Stack).

    2.4. Opis načina adresiranja

    Ovde možemo reći da se radi o troadresnoj mašini sa mikroprogramskim upravljanjem koji podržava pet načina adresiranja:

    - neposredno adresiranje; - direktno adresiranje; - memorisko-indirektno adresiranje; - registarsko-indirektno adresiranje; - registarsko adresiranje.

    Kod neposrednog adresiranja imamo da je sam operand koji se koristi sadržan u samoj instrukciji. Dobra osobina ovog načina adresiranja je značajno smanjenje broja obraćanja memoriji, dok je nedostatak jako mali broj bitova koji se koristi za prenos operanada, što uzrokuje jako uzak opseg. Na slici 4. je da prikaz formata instrukcije kod neposrednog adresiranja. Ovde opkod specificira tip operacije, a modifikator način adresiranja.

  • 9

    15 11 10 8 7 4 3 0

    opkod mod=000 odredišni reg. Rd izvorni reg. Rs1 15 0

    operand Rs2

    Slika 4. Format instrukcije kod neposrednog adresiranja

    Osnovna karakteristika direktnog adresiranja je da se u okviru instrukcije pored opkoda i modifikatora nalazi još i memorijska adresa operanda. Na ovaj način povećavamo broj obraćanja memoriji s jedne strane, dok s druge omogućavamo korišćenje 16 – bitnog operanda. Format instrukcije za ovaj način adresiranja je prikazan na slici 5.

    15 11 10 8 7 4 3 0 opkod mod=001 odredišni reg. Rd izvorni reg. Rs1

    15 0 adresa operanda Rs2

    Slika 5. Format instrukcije kod direktnog adresiranja

    Kada se radi o indirektnom adresiranju, imamo da je u okviru instrukcije data memorijska adresa na kojoj se nalazi memorijska adresa operanda. Postiže se na ovaj način progresija u kapacitetu memorije koja se može adresirati, dok se gubi na brzini izvršavanja instrukcije, jer se obavlja višestruko obraćanje memoriji. Format instrukcije za ovaj način adresiranja dat je na slici 6.

    15 11 10 8 7 4 3 0 opkod mod=010 odredišni reg. Rd izvorni reg. Rs1

    15 0 adresa gde je adresa operanda Rs2

    Slika 6. Format instrukcije kod memoriskog- indirektnog adresiranja

    Kod registarskog adresiranja u okviru instrukcije je specificiran registar opšte namene u kome se nalazi operand nad kojim se izvršava odgovarajuća operacija. Ovaj procesor raspolaže sa 16 registara opšte manene, što znači da se za adresiranje registra koristi 4 bitova. Ostali bitovi u samoj instrukciji su neiskorišćeni. Format za ovaj način adresiranja je prikazan na slici 7. Treba još reći da se za adresiranje registra koriste LS bitovi instrukcije.

  • 10

    15 11 10 8 7 4 3 0 opkod mod=011 odredišni reg. Rd izvorni reg. Rs1

    15 12 11 0 izvorni reg. Rs2 - - - - - - - - - - - - - -

    Slika 7. Format instrukcije kod registarskog adresiranja

    I na kraju, kada se radi o registarskom-indirektnom adresiranju, u registru Rs2 nalazi se adresa memorijske lokacije u kojoj je smešten operand. Registar Rs2 je deklarisan sa 4-bita jer se adresira jedan od 16 registara, registarskog polja. Na slici 8. prikazan je format instrukcije za ovaj tip adresiranja. 15 11 10 8 7 4 3 0

    opkod mod=100 odredišni reg. Rd izvorni reg. Rs1 15 12 11 0

    reg sa adr.op. Rs2 - - - - - - - - - - - - - - Slika 8. Format instrukcije kod registarskog-indirektnog adresiranja

    2.5. Skup instrukcija CPU-a

    Ovaj jednostavni procesor je struktuiran tako da može da obavlja više tipova instrukcija. Shodno tome, sve instrukcije možemo podeliti u sledeće grupe:

    -instrukcije za obavljanje osnovnih aritmetičkih operacija; -instrukcije za obavljanje osnovnih logičkih operacija; -instrukcije prenos podataka; -instrukcije za promenu toka izvršenja programa.

    Svaka od ovih instrukcija se realizuje preko pet načina adresiranja, tako da se ukupan broj

    instrukcija može odrediti kao petostruka vrednost broja instrukcija koje obavljaju različite operacije. Treba naravno naglasiti da je ovaj skup instrukcija moguće i proširiti, jer se radi o mikroprogramskom upravljanju. Postupak proširavanja biće kasnije dat. U tabeli na slici 9. prikazan je skup instrukcija i odgovarajući prefiksi za određeni tip adresiranja, koje će biti posmatrane nadalje kroz svih pet načina adresiranja.

  • 11

    instrukcija kod instrukcije

    opis instrukcije tip instrukcije

    - operacija OR 00001 OR operacija logička AND 00010 AND operacija logička NOT 00011 NOT operacija logička XOR 00100 ExOR operacija logička SHL 00101 pomeranje u levo logička SHR 00110 pomeranje u desno logička ADD 00111 operacija sabiranja aritmetička SUB 01000 aritmetička operacija oduzimanja aritmetička MUL 01001 aritmetička operacija množenja aritmetička NEG 01010 izračunavanje negativne vrednosti aritmetička LD 01011 kopiranje iz memorije u Rx prenos podataka JMP 01100 bezuslovno grananje (skok) grananje JZ 01101 grananje ako je nula grananje JNZ 01110 gananje ako nije nula grananje ST 01111 kopiranje iz Rx u memoriju prenos podataka

    SETC 10001 setovanje bita prenosa RESC 10010 resetovanje bita prenosa NOP 11111 operacija bez efekta

    Način adresiranja Modifikator Oznaka u instrukciji

    neposredno 000 # direktno 001 nema oznake

    memorijsko - indirektno 010 @ registarsko 011 $

    registarsko - indirektno 100 ? Slika 9. Tabela instrukcija 3. Opis hardvera procesora

    U ovom podpoglavlju će biti opisan hardver procesora na onom nivou koji može obezbediti dovoljnu preglednost strukture hardvera radi razumevanja njegovog funkcionisanja. Najpre, naglasimo da sam procesor možemo podeliti na dva esencijalna dela tj. jedinice: - upravljačka jedinica; - izvršna jedinica. Funkcije ovih jedinica smo opisali u predhodnom poglavlju tako da ih ovde nećemo ponavljati. Radi preglednosti sada ćemo navesti neke bazične osobine konkretno proučavanog procesora, sa napomenom da smo ih već u predhodnim poglavljima spomenuli i objasnili. -Procesor je 16–bitni. - Procesor ima mikroprogramsko upravljalnje. - Radimo sa 5 načina adresiranja. - Proučavamo skup od 18 instrukcija u svim modovima adresiranja. - Procesor predstavlja troa–adresnu mašinu.

  • 12

    3.1. Struktura hardvera izvršne jedinice

    Opisu strukture hradvera ćemo pristupiti preko slike na kojoj je prikazana struktura na nivou registara. Nadalje će biti opisana funkcija svakog od njih u procesu izvršenja instrukcija. Slika koja nam prezentuje strukturu izvršne jedinice označena je brojem 10.

    Slika 10. Struktura izvršne jedinice procesora

    Svi registri i gradivni blokovi komuniciraju preko 16–bitnih magistrala S1,S2 i D_bus. Vidimo da ova jedinica procesora sadrži adresni registar – AR, programski brojač – PC, registar podataka – DR, aritmetičko – logičku jedinicu koja izvršava operacije specificirane opkodom – ALU, instrukcijski registar, sastavljen iz dva 16-bitna registra IRH i IRL, registarsko polje sa šesnaest 16 – bitnih registara i dekoderom, PSW – registar i bafere koji kontrolišu pristup magistrali, multipleksere - MUX, shift registar - SHIFT.

    Adresni registar AR služi da čuva adresu memorijske lokacije koja se adresira i obima je 16 bitova. Programski brojač PC sadrži adresu naredne instrukcije koja će se izvršavati i poseduje port za inkrementiranje, a obima je 16 bitova. Registar podataka se koristi kao registar u kome se privremeno smeštaju željeni podaci pri izvršavanju instrukcija, kao što su adrese ili operandi (obim 16 bitova). Instrukcijski registar IRH je obima 16 bitova i sadrži

  • 13

    opkod, modifikator i izvorni i odredišni operand instrukcije, zavisno od načina adresiranja, čije je izvršavanje u toku. Instrukcijski registar IRL je iste veličine kao i registar IRH. Izlazi oba registra vode se na obe magistrale S1 i S2. PSW registar je 5 – bitni i sadrži bit prenosa (carry bit), bit znaka (sign bit), bit nule (zero bit), bit parnosti (parity bit) i bit prekoračenja (overflow bit). Ovi bitovi se koriste za procenu uslova grananja pri izvršavanju instrukcije grananja, a postavljaju se od strane ALU – a.

    Struktura registarskog polja prikazana je na slici 11. Imamo demultiplekser (dekoder) koji na osnovu adrese selektuje odgovarajući registar u koji se upisuje i multipleksere koji selektuju registre iz kojih se isčitava sadržaj. Ovo polje sadrži 16 registrara opšte namene koji se koriste za privremeno smeštanje rezultata i operanada i koji su vidljivi programeru na asemblerskom i mašinskom nivou. Prikazani drajveri omogućavaju da opterećenje logičkim kolima odgovarajućih ulaza ne bude veće od 5.

  • 14

    ClkRegLd

    in out

    ClkRegLd

    in out

    ClkRegLd

    in out

    ClkRegLd

    in out

    ClkRegLd

    in out

    ClkRegLd

    in out

    ClkRegLd

    in out

    ClkRegLd

    in out

    ClkRegLd

    in out

    ClkRegLd

    in out

    ClkRegLd

    in out

    ClkRegLd

    in out

    ClkRegLd

    in out

    ClkRegLd

    in out

    ClkRegLd

    in out

    ClkRegLd

    in out

    RegLdDataIn

    16

    4

    4

    AdrA

    Adr

    AdrB

    4

    16

    16

    Iz_B

    Iz_A

    Dekoder4 u 16

    MUX16x16bits1x16bits

    MUX16x16bits1x16bits

    REGISTAR 1

    REGISTAR 2

    REGISTAR 3

    REGISTAR 4

    REGISTAR 5

    REGISTAR 6

    REGISTAR 7

    REGISTAR 8

    REGISTAR 9

    REGISTAR 10

    REGISTAR 11

    REGISTAR 12

    REGISTAR 13

    REGISTAR 14

    REGISTAR 15

    REGISTAR 16

    Slika 11. Struktura registarskog polja

    Na kraju prikazaćemo strukturu aritmetičko – logičke jedinice. Ova jedinica, kao što i samo ime kaže, sadrži kombinacionu logiku koja omogućava da se izvrše specificirane aritmetičko-logičke operacije. Ova jedinica je u stanju da obavi 8 operacija: NOT - logička operacija invertovanja operanda, AND - logička I operacija, OR – logička ILI operacija, XOR - logička isključivo ILI operacija, NEG - aritmetička operacija promene znaka operanda, ADD - aritmetička operacija sabiranja, SUB - aritmetička operacija oduzimanja i MUL - aritmetička operacija množenja. Pored ovih osnovnih funkcija, ALU služi i za generisanje bitova parnosti, znaka, prenosa i nula bita. Odgovarajući blokovi su formirani za generisanje ovih bitova, koji se kasnije upisuju u PSW registar. Pored toga omogućava i jednostavnu transparentnost

  • 15

    podatka na ulazu, što nam je bitno za primenjenu arhitekturu procesora. Struktura ALU-a je data na slici 12.

    Slika 12. Struktura ALU-a

    3.2. Struktura hardvera upravljačke jedinice

    Druga osnovna jedinica svakog procesora pa i ovog je upravljačka jedinica. Njena funkcija je da generisanje upravljačkih signala koji omogućavaju izvršavanje instrukcije kao niz mikrooperacija. Za svaku mikrooperaciju je karakterističan skup upravljačkih signala koji trebaju biti aktivni u cilju njenog izvršenja. Ova jedinica se može realizovati hardverski ili preko mikroprogramske memorije. U ovom konkretnom slučaju ćemo se baviti procesorom sa mikroprogramskim upravljanjem. Osnovna tehnika ovog načina

  • 16

    upravljanja je opisana u poglavlju 2, ali ćemo tehniku detaljnije proučiti na ovom primeru. Na slici 13. prikazana je blok šema ovog tipa upravljačke jedinice koji se primenjuje u slučaju našeg procesora. Kao osnovne gradivne blokove ove upravljačke jedinice izdvajamo: - MAP – logiku koja na osnovu opkoda instrukcije generiše početnu adresu rutine koja treba biti izvršena radi obavljanja operacije specificirane opkodom. - Multiplekser 3 u 1 koji na osnovu kontrolnih signala s0 i s1 kanališe jednu od dostupnih adresa na ulazu multipleksera ka izlazu multipleksera. - Registar tekuće adrese sadrži adresu lolacije u samoj mikroprogramskoj memoriji koja je trenutno adresirana. - Mikroprogramsku memoriju, koja sadrži skup nizova vrednosti upravljačkih signala od kojih svaki niz odgovara jednoj mikrooperaciji. Nizovi su dalje organizovani u rutine, gde svaka rutina odgovara jednoj instrukciji. Poslednji niz svake rutine adresira rutinu pribavljanja instrukcija (fetch rutine). - Multiplekser 16 u 1 na osnovu kontrolnih signala iz mikroprogramske reči (niza) određuje koji će kontrolni bit uticati na izbor naredne adrese. Postojeći skup instrukcija ne iscrpljuje sve mogućnosti za formiranje instrukcija na osnovu kontrolnih signala (kao i njihovih kombinacija) na ulazu ovog bloka. Na taj način je dat prostor za proširenje postojećeg skupa instrukcija. -Blok inkrementer (” + 1”) inkrementira tekuću mikroprogramsku adresu za jedan radi pristupa narednoj mikroprogramskoj reči u rutini. Naredna adresa mikroprogramske memorije je određena: - sadržajem bitova uslova (condition bits - cond) tekuće mikroprogramske reči, - vrednošću bita koji označava tip skoka (branch type – BT), - tekućim vrednstima kontrolnih bitova, - adresom naredne mikroprogramske reči koja je sadržana u tekućoj mikroprogramskoj reči (address – add).

  • 17

    Slika 13. Struktura upravljačke jedinice

  • 18

    4. Izvršavanje instrukcija Kada se radi o procesu izvršavanja instrukcija, treba reći da se izvršavanje svake instrukcije može posmatrati kao niz mikrooperacija tj. rutina. Svaka mikrooperacija se odvija na RTL nivou tj. na nivou prenosa podataka među registrima (register transfer level). Svakoj instrukciji odgovara posebna rutina, a predhodi rutina pribavljanja instrukcije tj. fetch rutina. Fetch rutina obuhvata tri mikrooperacije. Ove mikrooperacije omogućavaju smeštanje opkoda modifikatora u instrukcioni registar, a samim tim i adresiranje prve mikrooperacije odgovarajuće rutine. Na osnovu rečenog možemo zaključiti da se sadržaj mikroprogramske memorije može posmatrati kao skup sekvencijano raspoređenih rutina, od kojih svaka odogovara određenoj instrukciji i određenom načinu adresiranja. Da bi formirali sadržaj mikroprogramske memorije neophodno je izvršiti analizu svake od instrukcija na nivou mikrooperacija i utvrditi koje upravljačke signale treba aktivirati za svaku mikrooperaciju. Radi preglednosti ova analiza biće predstavljena tabelarnim putem. 4.1 Analiza skupa instrukcija Najpre je u tabeli na slici 14. dat pregled instrukcija prema načinu adresiranja, a nakon toga su prikazane tabele ciklusa izvršavanja instrukcija razvrstanih u tri grupe: - instrukcije Load/Store - aritmetičko - logičke instrukcije - instrukcije skoka

  • 19

    Slika 14. Tabela instrukcija prema načinima adresiranja

    Tip adresiranja

    neposredno direktno memorijsko indirektno

    registarsko registarsko indirektno

    OR OR OR OR OR AND AND AND AND AND NOT NOT NOT NOT NOT XOR XOR XOR XOR XOR SHL SHL SHL SHL SHL SHR SHR SHR SHR SHR AND AND AND AND AND ADD ADD ADD ADD ADD instrukcije SUB SUB SUB SUB SUB MUL MUL MUL MUL MUL NEG NEG NEG NEG NEG LD LD JMP JMP JMP JZ JZ JZ JNZ JNZ JNZ ST ST SETC RESC NOP

  • 20

    4.2. Instrukcije Aritmetičko - logičke operacije 1. Neposredno adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    OR1N D_bus← S1 or S2 IRL1Bus,RegBusBS2, ALUSel=0000,Reg_ld,PSWLd,ALUen,Dir="00"

    Tabela mikrooperacija za instrukciju OR za neposredno adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" AND1N D_bus← S1 and S2 IRL1Bus,RegBusBS2,

    ALUSel=0001,Reg_ld,PSWLd,ALUen,Dir="00" Tabela mikrooperacija za instrukciju AND za neposredno adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" NOT1N D_bus← not(S1) IRL1Bus, ALUSel=0010, Reg_ld, PSWLd, ALUen,

    Dir="00" Tabela mikrooperacija za instrukciju NOT za neposredno adresiranje

  • 21

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" XOR1N D_bus← S1 xor S2 IRL1Bus,RegBusBS2,

    ALUSel=0011,Reg_ld,PSWLd,ALUen, Dir="00" Tabela mikrooperacija za instrukciju EXOR za neposredno adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" SHL1N D_bus← shl(S1) IRL1Bus, ALUSel=1111, Reg_ld, Dir="01", ALUen

    Tabela mikrooperacija za instrukciju SHL za neposredno adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" SHR1N D_bus← shr(S1) IRL1Bus, ALUSel=1111, Reg_ld, Dir="10", ALUen

    Tabela mikrooperacija za instrukciju SHR za neposredno adresiranje

    nemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" ADD1N D_bus← S1 + S2 IRL1Bus,RegBusBS2,

    ALUSel=0110,Reg_ld,PSWLd,ALUen, Dir="00" Tabela mikrooperacija za instrukciju ADD za neposredno adresiranje

  • 22

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" SUB1N D_bus← S1 - S2 IRL1Bus,RegBusBS2,

    ALUSel=0111,Reg_ld,PSWLd,ALUen, Dir="00" Tabela mikrooperacija za instrukciju SUB za neposredno adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" MUL1N D_bus← S1 * S2 IRL1Bus,RegBusBS2,

    ALUSel=1000,Reg_ld,PSWLd,ALUen, Dir="00" Tabela mikrooperacija za instrukciju SUB za neposredno adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" NEG1N D_bus← -S1 IRL1Bus,ALUSel=1001,Reg_ld,PSWLd,ALUen,

    Dir="00" Tabela mikrooperacija za instrukciju NEG za neposredno adresiranje

  • 23

    Tabela mikrooperacija za instrukciju SETC

    Tabela mikrooperacija za instrukciju RESC

    2. Direktno adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    OR1D AR ←IRL IRL1bus ,ADRld OR2D DR←M RD,MR,DRld,DRin OR3D D_bus ← S1 or S2 Bus_sel, PSWLd,

    ALUSel=0000,RegBusBS2, ,ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju OR za direktno adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    SETC Carry←1 SRCarry=1

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    RESC Carry←0 SRCarry=0

  • 24

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" AND1D AR ←IRL IRLlbus ,ADRld AND2D DR←M RD,MR,DRld,DRin AND3D D_bus← S1 and S2 Bus_sel, PSWLd,

    ALUSel=0001, RegBusBS2,ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju AND za direktno adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" NOT1D AR ←IRL IRLlbus ,ADRld NOT2D DR←M RD,MR,DRld,DRin NOT3D D_bus ← notS2 Bus_sel,ALUSel=0010,Reg_ld,PSWLd,ALUen,Dir="00"

    Tabela mikrooperacija za instrukciju NOT za direktno adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" XOR1D AR ←IRL IRLlbus ,ADRld XOR2D DR←M RD,MR,DRld,DRin XOR3D D_bus ← S1xorS2 Bus_sel, PSWLd,

    ALUSel=0011, RegBusBS2,ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju XOR za direktno adresiranje

  • 25

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" SHL1D AR ←IRL IRLlbus ,ADRld SHL2D DR←M RD,MR,DRld,DRin SHL3D D_bus ← shl(S2) Bus_sel,ALUSel=1111,Reg_ld,PSWLd,ALUen,Dir="01"

    Tabela mikrooperacija za instrukciju NOT za direktno adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" SHR1D AR ←IRL IRLlbus ,ADRld SHR2D DR←M RD,MR,DRld,DRin SHR3D D_bus ← notS2 Bus_sel,ALUSel=1111,Reg_ld,PSWLd,ALUen,Dir="10"

    Tabela mikrooperacija za instrukciju NOT za direktno adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" ADD1D AR ←IRL IRLlbus ,ADRld ADD2D DR←M RD,MR,DRld,DRin ADD3D D_bus ← S1+S2 Bus_sel, PSWLd,

    ALUSel=0110, RegBusBS2,ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju ADD za direktno adresiranje

  • 26

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" SUB1D AR ←IRL IRLlbus ,ADRld SUB2D DR←M RD,MR,DRld,DRin SUB3D D_bus ← S1-S2 Bus_sel, PSWLd,

    ALUSel=0111, RegBusBS2, ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju SUB za direktno adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" MUL1D AR ←IRL IRLlbus ,ADRld MUL2D DR←M RD,MR,DRld,DRin MUL3D D_bus ← S1 * S2 Bus_sel, PSWLd,

    ALUSel=1000, RegBusBS2, ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju MUL za direktno adresiranje

    3. Memorijsko-indirektno adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    OR1I AR ← Rx RegBusA,ADRld OR2I DR←M RD,MR,DRld,DRin OR3I AR ← DR Bus_sel,ADRsel,ADRld OR4I DR←M RD,MR,DRld,DRin OR5I D_bus ← S1 or S2 Bus_sel, PSWLd,

    ALUSel=0000, RegBusBS2,ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju OR za memorijsko- indirektno adresiranje

  • 27

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" AND1I AR ← Rx RegBusA,ADRld AND2I DR←M RD,MR,DRld,DRin AND3I AR ← DR Bus_sel,ADRsel,ADRld AND4I DR←M RD,MR,DRld,DRin AND5I D_bus ← S1 and

    S2 Bus_sel, PSWLd,

    ALUSel=0001, RegBusBS2,ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju AND za memorijsko- indirektno adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" NOT1I AR ← Rx RegBusA,ADRld NOT2I DR←M RD,MR,DRld,DRin NOT3I AR ← DR Bus_sel,ADRsel,ADRld NOT4I DR←M RD,MR,DRld,DRin NOT5I D_bus ←not(S2) Bus_sel, ALUSel=0010,Reg_ld,PSWLd,ALUen, Dir="00"

    Tabela mikrooperacija za instrukciju NOT za memorijsko- indirektno adresiranje

  • 28

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IR ← DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" XOR1I AR ← Rx RegBusA,ADRld XOR2I DR←M RD,MR,DRld,DRin XOR3I AR ← DR Bus_sel,ADRsel,ADRld XOR4I DR←M RD,MR,DRld,DRin XOR5I D_bus ← S1 xor S2 Bus_sel, PSWLd,

    ALUSel=0011, RegBusBS2, ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju XOR za memorijsko- indirektno adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IR ← DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    SHL1I AR ← Rx RegBusA,ADRld SHL2I DR←M RD,MR,DRld,DRin SHL3I AR ← DR Bus_sel,ADRsel,ADRld SHL4I DR←M RD,MR,DRld,DRin SHL5I D_bus ← shl(S2) Bus_sel, PSWLd,

    ALUSel=1111, RegBusBS2, ALUen,Reg_ld, Dir="01" Tabela mikrooperacija za instrukciju SHL za memorijsko- indirektno adresiranje

  • 29

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IR ← DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" SHR1I AR ← Rx RegBusA,ADRld SHR2I DR←M RD,MR,DRld,DRin SHR3I AR ← DR Bus_sel,ADRsel,ADRld SHR4I DR←M RD,MR,DRld,DRin SHR5I D_bus ← shr(S2) Bus_sel, PSWLd,

    ALUSel=1111, RegBusBS2,ALUen,Reg_ld, Dir="10" Tabela mikrooperacija za instrukciju SHR za memorijsko- indirektno adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IR ← DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" ADD1I AR ← Rx RegBusA,ADRld ADD2I DR←M RD,MR,DRld,DRin ADD3I AR ← DR Bus_sel,ADRsel,ADRld ADD4I DR←M RD,MR,DRld,DRin ADD5I D_bus ← S1 + S2 Bus_sel, PSWLd,

    ALUSel=0110, RegBusBS2,ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju ADD za memorijsko- indirektno adresiranje

  • 30

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IR ← DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    SUB1I AR ← Rx RegBusA,ADRld SUB2I DR←M RD,MR,DRld,DRin SUB3I AR ← DR Bus_sel,ADRsel,ADRld SUB4I DR←M RD,MR,DRld,DRin SUB5I D_bus ← S1 - S2 Bus_sel, PSWLd,

    ALUSel=0111, RegBusBS2, ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju SUB za memorijsko- indirektno adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IR ← DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" MUL1I AR ← Rx RegBusA,ADRld MUL2I DR←M RD,MR,DRld,DRin MUL3I AR ← DR Bus_sel,ADRsel,ADRld MUL4I DR←M RD,MR,DRld,DRin MUL5I D_bus ← S1 - S2 Bus_sel, PSWLd,

    ALUSel=1000, RegBusBS2, ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju MUL za memorijsko- indirektno adresiranje

  • 31

    4. Registarsko adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    OR1R D_bus ← S1 or S2 RegBusA,RegBusBS2, PSWLd,ALUSel=0000,Reg_ld,ALUen, Dir="00"

    Tabela mikrooperacija za instrukciju OR za registarsko adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" AND1R D_bus ← S1 and S2 RegBusA,RegBusBS2,PSWLd,

    ALUSel=0001,Reg_ld,ALUen, Dir="00" Tabela mikrooperacija za instrukciju AND za registarsko adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" NOT1R D_bus ←not(S1) RegBusA,PSWLd,

    ALUSel=0010,Reg_ld,ALUen, Dir="00" Tabela mikrooperacija za instrukciju NOT za registarsko adresiranje

  • 32

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" XOR1R D_bus ← S1 xor S2 RegBusA,RegBusBS2, PSWLd,

    ALUSel=0011,Reg_ld,ALUen, Dir="00" Tabela mikrooperacija za instrukciju XOR za registarsko adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" SHL1R D_bus ← shl(S2) RegBusA, PSWLd,

    ALUSel=1111,Reg_ld,ALUen,Dir="01" Tabela mikrooperacija za instrukciju SHL za registarsko adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" SHR1R D_bus ← S1 xor S2 RegBusA, PSWLd,

    ALUSel=1111,Reg_ld,ALUen, Dir="00" Tabela mikrooperacija za instrukciju SHR za registarsko adresiranje

  • 33

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" ADD1R D_bus ← S1 + S2 RegBusA,RegBusB,PSWLd,

    ALUSel=0110,Reg_ld,ALUen, Dir="00" Tabela mikrooperacija za instrukciju ADD za registarsko adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=111, IRld, ALUen, Bus_sel, Dir="00" SUB1R D_bus ← S1 - S2 RegBusA,RegBusB, PSWLd,

    ALUSel=0111,Reg_ld,ALUen, Dir="00" Tabela mikrooperacija za instrukciju SUB za registarsko adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=111, IRld, ALUen, Bus_sel, Dir="00" MUL1R D_bus ← S1 * S2 RegBusA,RegBusBS2, PSWLd,

    ALUSel=1000,Reg_ld,ALUen, Dir="00" Tabela mikrooperacija za instrukciju SUB za registarsko adresiranje

  • 34

    5. Registarsko-indirektno adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    OR1R AR ← Rx RegBusA, ADRld OR2R DR←M RD, MR, DRin, DRld OR3R D_bus← S1 or S2 Bus_sel, PSWLd,

    ALUSel=0000,RegBusBS1, ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju OR za registarsko-indirektno adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" AND1R AR ← Rx RegBusA,ADRld AND2R DR←M RD, MR, DRin, DRld AND3R D_bus← S1 and S2 Bus_sel, PSWLd,

    ALUSel=0001, RegBusBS1,ALUen,Reg_ld,Dir="00" Tabela mikrooperacija za instrukciju AND za registarsko-indirektno adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" NOT1R AR ← Rx RegBusA, ADRld NOT2R DR←M RD, MR, DRin, DRld NOT3R D_bus← not(S2) Bus_sel,ALUSel=0010,

    Reg_ld,PSWLd,ALUen, Dir="00" Tabela mikrooperacija za instrukciju NOT za registarsko-indirektno adresiranje

  • 35

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" XOR1R AR ← Rx RegBusA, ADRld XOR2R DR←M RD, MR, DRin, DRld XOR3R D_bus← S1 xor S2 Bus_sel, PSWLd,

    ALUSel=0011, RegBusBS1,ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju XOR za registarsko-indirektno adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" ADD1R AR ← Rx RegBusA, ADRld ADD2R DR←M RD, MR, DRin, DRld ADD3R D_bus← S1 + S2 Bus_sel, PSWLd,ALUSel=0110, RegBusBS1,

    ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju ADD za registarsko-indirektno adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" SUB1R AR ← Rx RegBusA, ADRld SUB2R DR←M RD, MR, DRin, DRld SUB3R D_bus← S1 - S2 Bus_sel, PSWLd,ALUSel=0111, RegBusBS1,

    ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju SUB za registarsko-indirektno adresiranje

  • 36

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" MUL1R AR ← Rx RegBusA, ADRld MUL2R DR←M RD, MR, DRin, DRld MUL3R D_bus← S1 * S2 Bus_sel, PSWLd,ALUSel=1000, RegBusBS1,

    ALUen,Reg_ld, Dir="00" Tabela mikrooperacija za instrukciju MUL za registarsko-indirektno adresiranje

    Instrukcije skoka

    Tabela mikrooperacija za instrukciju JMP za neposredno adresiranje

    Tabela mikrooperacija za instrukciju JZ za neposredno adresiranje

    kada nije ispunjen uslov (n-neispunjen uslov)

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" JMP1N PC←IRL IRL1bus, Dir="00",ALUSel=1111,ALUen,PCld

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" JZ1Nn Nema promene Nema aktivnih signala

  • 37

    Tabela mikrooperacija za instrukciju JZ za neposredno adresiranje

    kada je ispunjen uslov (i-ispunjen uslov)

    Tabela mikrooperacija za instrukciju JNZ za neposredno adresiranje

    kada nije ispunjen uslov (n-neispunjen uslov)

    Tabela mikrooperacija za instrukciju JNZ za neposredno adresiranje(i-ispunjen)

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" JMP1Ni PC←IRL IRL1bus,Dir="00",ALUSel=1111,ALUen,PCld

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" JNZ1Nn Nema promene Nema aktivnih signala

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" JNZ1Ni PC←IRL IRL1bus,Dir="00",ALUSel=1111,ALUen,PCld

  • 38

    Tabela mikrooperacija za instrukciju NOP

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" JMP1D AR ←IRL IRLlbus, ADRld JMP2D DR←M RD,MR,DRld,DRin JMP3D PC← DR Bus_sel,ALUen,ALUSel=1111,PCld,Dir="00"

    Tabela mikrooperacija za instrukciju JMP za direktno adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    JZ1Di AR ←IRL IRLlbus, ADRld JZ2Di DR←M RD,MR,DRld,DRin JZ3Di PC← DR Bus_sel,ALUen,ALUSel=1111,PCld,Dir="00"

    Tabela mikrooperacija za instrukciju JZ za direktno adresiranje kada je ispunjen uslov (i-ispunjen uslov)

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    NOP Nema promene Nema aktivnih signala

  • 39

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" JZ1Dn PC←PC+1 PCInc

    Tabela mikrooperacija za instrukciju JZ za direktno adresiranje kada nije ispunjen uslov (n-neispunjen uslov)

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" JNZ1Di AR ←IRL IRLlbus, latchA,ADRld JNZ2Di DR←M RD,MR,DRld,DRin JNZ3Di PC← DR Bus_sel,ALUen,ALUSel=1111,PCld,Dir="00"

    Tabela mikrooperacija za instrukciju JNZ za direktno adresiranje kada je ispunjen uslov (i-ispunjen uslov)

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" JNZ1Dn PC←PC+1 PCInc

    Tabela mikrooperacija za instrukciju JNZ za direktno adresiranje kada nije ispunjen uslov (n-neispunjen uslov)

  • 40

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" JMP1I AR ← Rx RegBusA,ADRld JMP2I DR←M RD,MR,DRld,DRin JMP3I AR ← DR Bus_sel,ADRsel,ADRld JMP4I DR←M RD,MR,DRld,DRin JMP5I PC← DR Bus_sel,ALUen,ALUSel=1111,PCld,Dir="00"

    Tabela mikrooperacija za instrukciju JMP za memorijsko- indirektno adresiranje

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    JZ1Ii AR ← Rx IRLlbus, ADRld JZ2Ii DR←M RD1,MR1,DR1ld JZ3Ii AR ← DR DR1Bus, ADR1ld JZ4Ii DR←M PCLd,MR1,RD1 JZ5Ii PC← DR Bus_sel,ALUen,ALUSel=1111,PCld,Dir="00"

    Tabela mikrooperacija za instrukciju JZ za memorijsko- indirektno adresiranje kada je ispunjen uslov (i-ispunjen uslov)

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    JZ1In PC←PC+1 PCInc Tabela mikrooperacija za instrukciju JZ za memorijsko-indirektno adresiranje

    kada nije ispunjen uslov (n-neispunjen uslov)

  • 41

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" JNZ1Ii AR ← Rx RegBusA,ADRld JNZ2Ii DR←M RD,MR,DRld,DRin JNZ3Ii AR ← DR Bus_sel,ADRsel,ADRld JNZ4Ii DR←M RD,MR,DRld,DRin JNZ5Ii PC← DR Bus_sel,ALUen,ALUSel=1111,PCld,Dir="00"

    Tabela mikrooperacija za instrukciju JNZ za memorijsko- indirektno adresiranje kada je ispunjen uslov (i-ispunjen uslov)

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    JZ1In PC←PC+1 PCInc Tabela mikrooperacija za instrukciju JNZ za memorijsko- indirektno adresiranje

    kada nije ispunjen uslov (n-neispunjen uslov)

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" JMP1I AR ← Rx RegBusA, ADRld JMP2I DR←M RD, MR, DRin, DRld JMP3I PC← DR Bus_sel,ALUen,ALUSel=1111,PCld,Dir="00"

    Tabela mikrooperacija za instrukciju JMP za registarsko-indirektno adresiranje

  • 42

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    JZ1Ii AR ← Rx RegBusA,ADRld JZ2Ii DR←M RD, MR, DRin, DRld JZ3Ii PC← DR Bus_sel,ALUen,ALUSel=1111,PCld,Dir="00"

    Tabela mikrooperacija za instrukciju JZ za registarsko-indirektno adresiranje kada je ispunjen uslov (i-ispunjen uslov)

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    JZ1In PC←PC+1 PCInc Tabela mikrooperacija za instrukciju JZ za registarsko-indirektno adresiranje

    kada nije ispunjen uslov (n-neispunjen uslov)

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00" JNZ1Ii AR ← Rx RegBusA, ADRld JNZ2Ii DR←M RD, MR, DRin, DRld JNZ3Ii PC← DR Bus_sel,ALUen,ALUSel=1111,PCld,Dir="00"

    Tabela mikrooperacija za instrukciju JNZ za registarsko-indirektno adresiranje kada je ispunjen uslov (i-ispunjen uslov)

  • 43

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    JZ1In PC←PC+1 PCInc Tabela mikrooperacija za instrukciju JNZ za registarsko-indirektno adresiranje

    kada nije ispunjen uslov (n-neispunjen uslov) Load/Store operacije

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    LD1N D_bus← S1 IRLlbus,ALUSel=1111,Reg_ld,ALUen,Dir="00",Bus_sel Tabela mikrooperacija za instrukciju LD za neposredno adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    LD1D AR ←IR IRL1bus, ADRld LD2D DR←M RD,MR,DRld,DRin LD3D D_bus ← S2 Bus_sel,ALUSel=1111,Reg_ld,ALUen, Dir="00"

    Tabela mikrooperacija za instrukciju LD za direktno adresiranje

  • 44

    Mnemonik mikrooperacije

    Mikrooperacija na RTL-u

    Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    ST1D AR←IRL, DR←Rx IRLlbus, ADRld,RegBusB, ALUSel=1111,DRin,DRld,Dir="00"

    ST2D M← DR DRout,MW,RW Tabela mikrooperacija za instrukciju ST za direktno adresiranje

    Mnemonik

    mikrooperacije Mikrooperacija

    na RTL-u Aktivni (na *1*) kontrolni signali

    FETCH1 AR ← PC PC1Bus, ADRld FETCH2 DR←M,PC←PC+1 RD,MR, PCInc, DRin,DRld FETCH3 IRH←DR,AR←PC ALUSel=1111,IRHld,ALUen,Bus_sel,PC1Bus,ADRld,

    Dir="00" FETCH4 DR←M,PC←PC+1 RD, MR, PCInc, DRin, DRld FETCH5 IRL←DR ALUSel=1111, IRld, ALUen, Bus_sel, Dir="00"

    LD1I AR ← Rx RegBusA, ADRld LD2I DR←M RD,MR,DRld,DRin LD3I AR ← DR Bus_sel,ADRsel,ADRld LD4I DR←M RD,MR,DRld,DRin LD5I D_bus←DR Bus_sel,ALUSel=1111,Reg_ld,ALUen,Dir="00"

    Tabela mikrooperacija za instrukciju LD za memorijsko- indirektno adresiranje 4.3. Sadržaj mikroprogramske memorije Izvršenju svake instrukcije odgovara rutina u mikroprogramskoj memoriji koja predstavlja skup nizova kontrolnih signala, od kojih svaki niz odgovara izvršenju jedne mikrooperacije. Na slici 15. je predstavljena format niza koji odgovara jednoj mikrooperaciji. condition branch target-

    BT control signals address

    Slika 15. Format mikroinstrukcije

    condition – određuje da li će se naredna adresa mikroinstrukcije biti uzeta sa ulaza 0 ( tekuća adresa + 1) ili će biti uzeta sa ulaza 1 (addr) multipleksera u okviru mikrosekvencera. Sadrži 2 bita.

  • 45

    branch target (BT) – određuje da li se adresa naredne mikroinstrukcije uzima sa ulaza 2 ( koji se snabdeva adresom iz mapera) ili ne. Sadrži 1 bit. control signals –predstavlja kontrolne signale koji se direktno vode na hardver izvršne jedinice. address – ovo polje specificira prvu adresu naredne rutine. Sadrži 11 bitova jer se adresira 2KB mikroprogramske memorije. Ovo polje se koristi na kraju svake rutine kako bi se adresirala fetch rutina.

    Mne

    mon

    ic

    adre

    sa

    mik

    roin

    s.

    (hex

    )

    cond

    ition

    BT

    SR

    Car

    ry

    AD

    Rld

    Dir

    DR

    Ld

    DR

    in

    DR

    Bus

    D

    Rou

    t IR

    Lld

    IR

    Hld

    IR

    L1b

    us

    IRL

    2bus

    IR

    H1b

    us

    IRH

    2bus

    PC

    inc

    PCld

    PC

    1bus

    PC

    2bus

    R

    eg_l

    d R

    egB

    usA

    R

    egB

    usB

    S1

    Reg

    Bus

    BS2

    R

    D

    MR

    R

    W

    MW

    PS

    Wld

    A

    LU

    en

    Bus

    _sel

    A

    DR

    sel

    AL

    USe

    l

    addr

    ess

    (h

    ex)

    Fetch1 000 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx Fetch2 001 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 xxx Fetch3 002 0 0 0 0 0 0 1 00 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 xxx Fetch4 003 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 xxx Fetch5 004 0 0 0 0 1 0 0 00 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 1 xxx OR1N 040 0 0 0 1 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 000

    AND1N 080 0 0 0 1 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 000 NOT1N 0C0 0 0 0 1 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 000 XOR1N 100 0 0 0 1 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 000 SHL1N 140 0 0 0 1 0 0 0 01 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 000 SHR1N 180 0 0 0 1 0 0 0 10 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 000 ADD1N 1C0 0 0 0 1 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 000 SUB1N 200 0 0 0 1 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 000 MUL1N 240 0 0 0 1 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 000 NEG1N 280 0 0 0 1 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 000 LD1N 2C0 0 0 0 1 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 000

    JMP1N 300 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 000 JZ1N 340 0 0 1 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 342

    JZ2Nn 341 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 JZ3Ni 342 0 0 0 1 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 000 JNZ1N 380 0 0 1 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 382

    JNZ2Nn 381 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 JNZ3Ni 382 0 0 0 1 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 000 RESC 480 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 000 SETC 440 0 0 0 0 0 1 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 000 NOP 7C0 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000

    OR1D 048 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 OR2D 049 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 OR3D 050 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 000

    AND1D 088 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 AND2D 089 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 AND3D 090 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 000 NOT1D 0C8 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 NOT2D 0C9 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 NOT3D 0CA 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 000 XOR1D 108 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 XOR2D 109 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 XOR3D 10A 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 000 SHL1D 148 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 SHL2D 149 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 SHL3D 14A 0 0 0 1 0 0 0 01 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 000 SHR1D 188 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 SHR2D 189 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000

  • 46

    SHR3D 18A 0 0 0 1 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 000 ADD1D 1C8 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 ADD2D 1C9 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 ADD3D 1CA 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 000 SUB1D 208 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 SUB2D 209 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 SUB3D 20A 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 000 MUL1D 248 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 MUL2D 249 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 MUL3D 24A 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 000

    Mne

    mon

    ic

    adre

    sa

    mik

    roin

    s.

    (hex

    )

    cond

    ition

    BT

    SR

    Car

    ry

    AD

    Rld

    Dir

    DR

    Ld

    DR

    in

    DR

    Bus

    D

    Rou

    t IR

    Lld

    IR

    Hld

    IR

    L1b

    us

    IRL

    2bus

    IR

    H1b

    us

    IRH

    2bus

    PC

    inc

    PCld

    PC

    1bus

    PC

    2bus

    R

    eg_l

    d R

    egB

    usA

    R

    egB

    usB

    S1

    Reg

    Bus

    BS2

    R

    D

    MR

    R

    W

    MW

    PS

    Wld

    A

    LU

    en

    Bus

    _sel

    A

    DR

    sel

    AL

    USe

    l

    addr

    ess

    (h

    ex)

    NEG1D 288 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 NEG2D 289 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 NEG3D 28A 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 000 JMP1D 308 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 JMP2D 309 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 JMP3D 30A 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 000 JZ1D 348 0 0 1 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34A

    JZ1Dn 349 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 JZ1Di 34A 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 JZ2Di 34B 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 JZ3Di 34C 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 000 JNZ1D 388 0 0 1 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 38A

    JNZ1Dn 389 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 JNZ1Di 38A 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 JNZ2Di 38B 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 JNZ3Di 38C 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 000 LD1D 2C8 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 LD2D 2C9 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 LD3D 2CA 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 000 ST1D 3C8 0 0 0 0 0 0 1 00 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 000 ST2D 3C9 0 0 0 1 0 0 0 00 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 000 OR1I 050 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 OR2I 051 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 OR3I 052 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 000 OR4I 053 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 OR5I 054 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 000

    AND1I 090 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 AND2I 091 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 AND3I 092 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 000 AND4I 093 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 AND5I 094 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 000 NOT1I 0D0 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 NOT2I 0D1 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 NOT3I 0D2 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 000 NOT4I 0D3 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 NOT5I 0D4 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 000 XOR1I 110 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 XOR2I 111 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 XOR3I 112 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 000 XOR4I 113 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 XOR5I 114 0 0 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 000 SHL1I 150 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 SHL2I 151 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 SHL3I 152 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 000 SHL4I 153 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000

  • 47

    SHL5I 154 0 0 0 1 0 0 0 01 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 000 SHR1I 190 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 SHR2I 191 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 SHR3I 192 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 000 SHR4I 193 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 000 SHR5I 194 0 0 0 1 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 000

    Mne

    mon

    ic

    adre

    sa

    mik

    roin

    s.

    (hex

    )

    cond

    ition

    BT

    SR

    Car

    ry

    AD

    Rld

    Dir

    DR

    Ld

    DR

    in

    DR

    Bus

    D

    Rou

    t IR

    Lld

    IR

    Hld