-
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