Anda di halaman 1dari 16

Univerzitet u Bihau Tehniki Fakultet Biha Elektrotehnika-informatika

Arhitektura raunara
Zadatak br.3 Studenti: Kovaevi Kasim Nani Ibrahim Feti Ervin

Vii asistent: Mr. Arnautovi Mehmed

Zadatak br. 3. Posmatra se dio raunara koji ine memorija i procesor. Memorija je kapaciteta 216 bajtova. irina memorijske rijei je 1 bajt. Procesor je sa jednoadresnim formatom instrukcija. Podaci su cijelobrojne veliine bez znaka duine 1 bajt. U procesoru postoji programski broja PC duine 2 bajta, adresni registar memorije MAR duine 2 bajta, prihvatni registar podatka memorije MBR duine 1 bajt, prihvatni registar instrukcije IR duine 3 bajta, akumulator A duine 1 bajt, prihvatni registar podatka B duine 1 bajt, registri opte namjene R0 i R1 duine 2 bajta, programska statusna rije PSW duine 1 bajt, ukaziva na vrh steka SP duine 2 bajta, registar broja ulaza u tabelu sa adresama prekidnih rutina BR duine 2 bita i ukaziva na tabelu sa adresama prekidnih rutina IVTP duine 2 bajta. Instrukcije su duine jedan, dva ili tri bajta. Bit 7 prvog bajta instrukcije ima vrijednost 0 za bezadresne instrukcije i instrukcije skoka, dok bit 6 prvog bajta instrukcije ima vrijednost 0 za bezadresne instrukcije i vrijednost 1 za instrukcije skoka. Bezadresne instrukcije su instrukcija povratka iz potprograma (RTS) i povratka iz prekidne rutine (RTI). Duina instrukcija je 1 bajt. Instrukcije skoka su instrukcija uslovnog skoka ukoliko je rezultat nula (JZ), bezuslovnog skoka (JMP) i skoka na potprograma (JSR). Adresa skoka je data 2 i 3 bajtom instrukcije, pri emu je stariji bajt adrese skoka dat drugim a mlai bajt tredim bajtom.

Duina instrukcija je 3 bajta. Bitovima 5 do 0 prvog bajta instrukcija specificira se kod operacije za bezadresne instrukcije i instrukcije skoka. Bit 7 prvog bajta instrukcije ima vrijednost 1 za adresne instrukcije. Adresne instrukcije su instrukcije prenosa u akumulator (LOAD) i iz akumulatora (STORE), aritmetika instrukcija sabiranja (ADD), logika instrukcija ekskluzivno ILI (XOR) i instrukcija logikog pomeranja udesno za jedno mesto (LSR). Bitovima 6 do 3 prvog bajta instrukcija specificira se kod operacije, bitovima 2 i 1 nain adresiranja i bitom 0 registar opte namjene ukoliko se koristi u zadatom nainu adresiranja za adresne instrukcije. Bitovima 2 i 1 nain adresiranja se zadaje na sljededi nain: 00 -registarsko indirektno adresiranje, 01-neposredno adresiranje, 10-PC relativno adresiranje sa pomjerajem i 11-memorijsko direktno adresiranje. Kod registarskog indirektnog adresiranja registar opte namjene R0 ili R1 se specificira bitom 0 prvog bajta instrukcije. Duina instrukcije je 1 bajt. Kod neposrednog adresiranja drugi bajt instrukcije sadre 8 bitni podatak, dok se bit 0 prvog bajta instrukcije se ne koristi. Duina instrukcije je 2 bajta. Kod PC relativnog adresiranja sa pomjerajem drugi i tredi bajt instrukcije sadre 16 bitni pomjeraj, pri emu je stariji bajt pomjeraja dat drugim a mlai bajt tredim bajtom, dok se bit 0 prvog bajta instrukcije se ne koristi. Duina instrukcije je 3 bajta. Kod memorijskog direktnog adresiranja drugi i tredi bajt instrukcije sadre adresu memorijske lokacije, pri emu je stariji bajt adrese memorijske lokacije dat drugim a mlai

bajt tredim bajtom, dok se bit 0 prvog bajta instrukcije se ne koristi. Duina instrukcije je 3 bajta. Stek raste prema viim memorijskim lokacijama, a registar SP ukazuje na zadn ju zauzetu memorijsku lokaciju. Zahtjevi za prekid dolaze od 4 ulazno/izlazna ureaja po linijama oznaenim od 0 do 3. Po liniji 0 stie zahtjev za prekid najnieg, a po liniji 3 najvieg prioriteta. Broj linije najvieg prioriteta po kojoj je stigao zahtjev za prekid nalazi se u binarnom obliku u registru BR duine 2 razreda. Adrese prekidnih rutina4 ulazno/izlazna ureaja koji po linijama oznaenim od 0 do 3 alju zahtjeve za prekid nalaze se u ulazima 0 do 3 tabele sa adresama prekidnih rutina. Adrese duine 16 bita zauzimaju po dvije susjedne memorijske lokacije, pri emu se stariji bajt nalazi na nioj a mlai bajt na vioj adresi Sadraj registra BR predstavlja broj ulaza u tabelu sa adresama prekidnih rutina. Poetna adresa tabele sa adresama prekidn ih rutina se nalazi u registru IVTP duine 2 bajta. U okviru hardverskog dijela opsluivanja zahtjeva za prekid na stek sa stavljaju samo registri PC i PSW. Nacrtati dijagram toka faza izvravanja instrukcije i to: faze itanja instrukcije, faze formiranja adrese i itanja operanda, faza izvravanja operacija LOAD, STORE, ADD, AND, ASR, JZ, JMP, JSR, RTS i RTI i faze opsluivanja zahtjeva za prekid.

Registar sadri: eng. Program Counter (PC) - an incrementing counter that keeps track of the memory address of which instruction is to be executed next... Memory Address Register (MAR) - the address in main memory that is currently being read or written Memory Buffer Register (MBR) - a two-way register that holds data fetched from memory (and ready for the CPU to process) or data waiting to be stored in memory Current Instruction register (CIR) - a temporary holding ground for the instruction that has just been fetched from memory Control Unit (CU) - decodes the program instruction in the CIR, selecting machine resources such as a data source register and a particular arithmetic operation, and coordinates activation of those resources Arithmetic logic unit (ALU) - performs mathematical and logical operations

Prijevod:

(PC) broja koji pokaziva na memorijsku adresu instrukcije koja sljededa treba biti izvrena (MAR) adresa u glavnoj memoriji koja se trenutno ita ili se u nju upisuje (MBR) - dvosmjerni registar koji sadri podatke preuzete iz memorije (i spreman CPU za proces) ili podatke koji ekaju da budu pohranjeni u memoriji (CIR) privremeno zadrzava osnovu za naredbu koja je upravo preuzeta iz memorije (CU) - dekodira program upute u CIR, odabirom resursa ureaja kao to su registar izvora podataka i odreenih aritmetikih operacija, te koordinira aktiviranjem ovih sredstava (ALU) - obavlja matematike i logike operacije

Parametar
Memorija irina memorijske rijei Podaci : cjelobrojni veliine bez znaka Programski broja Adresni registar memorije MAR Prihvatni registar podataka memorije MBR Prihvatni registar instrukcije IR Akumulator A Prihvatni registar podataka B Registri opte namjene R1 i R0 PSW (programska statusna rije) Pokaziva na vrh steka(SP stack pointer) Registar broja ulaza sa adresama prekidnih rutina BR
Pokaziva na tabelu sa adresama prekidnih rutina IVTP

Memorija
216 B 1B 1B 2B 2B 1B 3B 1B 1B 2B 1B 2B 2B 2B 1,2 ili 3 B

Duina instrukcija

Dijagram toka- faza itanja instrukcije,formiranja adrese i itanja operanda

Dijagram toka- faza izvravanja operacije

Instrukcija se ita iz memorije poev od adrese na koju pokazuje trenutna vrijednost programskog brojaa PC. Nakon svake proitane rijei vrijednost programskog brojaa se povedava za 1. Iz memorije M sa adrese odreene sadrajem registra MAR se ita rije i upisuje u prihvatni registar podataka memorije MBR. Sadraj memorije MBR se prebacuje u registre IR23...16(od 16 do 23).

Ako sadraj registra IR23 ima vrijednost 0 za bezadresnu instrukciju,slijedi provjera registra IR22,ako je vrijednost 1 slijedi provjera registra IR18.

Ako je u registru IR22 vrijednost 0 ,instrukcija se ita iz memorije ,poev od adrese na koju pokazuje trenutna vrijednost programskog brojaa PC. Nakon svake proitane rijei vrijednost brojaa se povedava za 1. Iz memorije M sa adrese odreene sadrajem registra

MAR se ita rije i upisuje u prihvatni registar podataka memorije MBR. Sadraj MBR registra se prebacuje u registre IR15...8. Isto se ponavlja i u drugom dijelu instrukcija ,samo to se pune registri od 0 do 7. Ako je IR22 1,ovaj dio se preskae i odmah se prelazi na korak 2.

Ako je vrijednost registra IR18 0,provjerava se sadraj registra IR17. Ako je vrijednost registra IR18 1 deava se isti proces kao i kad je IR22 0(prethodni slide). Jedina razlika da se nakon zavretka instrukcija ne prelazi na korak 2 ved se provjerava IR17 . Ako je vrijednost IR17 1,iz memorije se itaju instrukcije iz registara IR15...0 ,a ako je registar IR17 vrijednosti 0,iz memorije se dita vrijednost programskog brojaa PC,uvedanog za vrijednosti registara IR15...0 nakon svakog ponovnog itanja.

Kada je registar IR17 vrijednosti 1,iz memorije se ita trenutna vrijednost programskog brojaa PC. Nakon svake proitane rijei vrijednost brojaa se poveda za 1. Iz memorije M sa adrese odreene sadrajem registra MAR se ita rije i upisuje u prihvatni registar podataka memorije MBR. Sadraj memorije MBR se prebacuje u registre IR ,od IR8 do IR15 . Zatim se prihvatni registar podataka B puni sa vrijednostima IR registara od 8 do 15. Nakon toga se prelazi na korak 2. Za IR17 vrijednost 0 iz prihvatnog registra memorije MAR se ita vrijednost koja se nalazi u registru opte namjene Ri.

Ako je adresna intrukcija IZ akumulatora (STORE) 1, prelazi se na korak 2, a ako je 0,prihvatni registar podataka MBR upisuje vrijednosti iz memorije M sa adrese odreene sadrajem registra MAR. Zatim se ta vrijednost upisuje u prihvatni registar podataka B. Poslije toga se prelazi na korak 2.

Ako je adresna instrukcija U akumulatora (LOAD) 1, u akumulator A se uitava vrijednost iz prihvatnog registra podataka B. Nakon toga se prelazi na korak 4. Ako je (LOAD) 0 nastupa adresna instrukcija IZ akumulatora.

Ako je adresna instrukcija IZ akumulatora 1, provjerava se signal logikog uslova. Ako se radi o bezadresnoj instrukciji, signal je aktivan i prelazi se na korak 4. Ako se radi o instrukciji skoka, prihvatni registar MBR uitava vrijednost akumulatora A od 0 do 7 , onda se u memoriju M adrese pune sa vrijednostima MBR, odnosno akumulatora A. Slijedi korak 4. Ako je adresna instrukcija IZ akumulatora 0 , slijedi aritmetika instrukcija sabiranja.

Ako je aritmetika instrukcija sabiranja 1, vrijednost akumulatora A se uveda za vrijednost prihvatnog registra podataka B. Zatim slijedi korak 4. Ako je aritmetika instrukcija sabiranja (ADD) 0 slijedi logika instrukcija ekskluzivno ILI (XOR).

Ako je vrijednost logike instrukcije XOR 1, vrijednosti akumulatora A se ekskluzivno dodaje vrijednost prihvatnog registra podataka B. Nakon toga se nastavlja sa korakom 4. Ako je vrijednost logike instrukcije XOR 0, slijedi instrukcija logikog pomjeranja udesno za jedno mjesto (LSR).

Ukoliko je signal instrukcije aritmetikog pomjeranja udesno za jedno mjesto LSR aktivan, sadraj prihvatnih registara B0 do B15 se aritmetiki pomjeraju ulijevo za jedno mjesto i upisuju u registar A, i prelazi se na korak 4.

Ukoliko je signal JC aktivan, radi uslovni skok na osnovu vrijednosti indikatora C. Ako signal vrijednosti indikatora C ima vrijednost 1, uslov za skok je ispunjen, pa se sadraj prihvatnih registara instrukcije IR0 do IR15 upisuje u registar podprogramskog brojaa PC i prelazi se ponovo na korak 4.

Ukoliko je signal skoka na potprogram JSR aktivan, sadrzaj registra PC se stavlja na stek. Prvo se sadrzaj pokazivaca na crh steka uveca za jedan i prebacuje se u adresni registar memorije MAR. Potom prebacuje sadrzaj registra PC8 do PC15 u prihvatni registar podataka memorije

MBR, te sadrzaj registra MBR upisuje u memorijsku lokaciju odredjenu sadrzajem registra MAR. Onda sadrzaj ukazivaca na vrh steka SP poveca za jedan i ponavlja postupak za sadrzaj registra PC0 do PC7. Zatim sadrzaje prihvatni registara instrukcija IR0 do IR15 prebacuje u registar programskog brojaca PC. Po zavrsetku toga vraca se na korak 4.

Ako je signal RTI aktivan, povratak iz prekidne rutine se realizuje. Prvo se sadrzaj registra ukazivaca na vrh steka SP prebacuje u adresni registar memorije MAR. Zatim se sadrzaj registra SP umanjuje za jedan. Onda se iz memorijske lokacije odreene sadrzajem adresnog registra memorije MAR cita sadrzaj i upisuje u prihvatni registar podataka memorije MBR. Na kraju se sadrzaj registra MBR upisuje u registar programske statusne rijeci PSW.

Ako je signal RTS aktivan, povratak iz potprograma se realizuje. Ovo se realizuje na identican nacin kao i slucaju RTI s tom razlikom sto se vrijednost prihvatnog registra podataka sprema u registre programskog brojaca PC0 do PC7, pa sa smanjenjem sadrzaja ukazivaca na vrh steka , citanjem sadrzaja adresnog registra memorije MAR i upisivanjem u prihvatni registar podataka memorije MBR, te njegovim upisivanjem u registre programskog brojaca PC8 do PC 15 zavrsava ciklus i vraca se na pocetak koraka 4.

Dijagram toka faza opsluivanje prekida

Opsluivanje prekida se realizuje poevi od koraka 5. Ukoliko je signal PREKID 0 faza opsluivanja prekida se zavrava i vrada se na korak 1 i fazu itanje instrukcije. Ukoliko je signal PREKID 1, u toku izvravanja prethodnih faza dolo je do generiranja signala prekida, pa se sadraj ukazivaa na vrh steka SP uveda za jedan i prebacuje u adresni registar memorije MAR Potom, prebacuje sadraj registara PC8 do PC15 u prihvatni registar podataka memorije MBR, te sadraj registra MBR upisuje u memorijsku lokaciju odreenu sadrajem registra MAR. Onda sadraj ukazivaa na vrh steka SP uveda za jedan i ponavlja postupak za sadraj registara PC0 do PC7.

Na isti nain se na stek stavlja i sadraj registra PSW. Adrese prekidnih rutina se nalaze u ulazima tabele sa adresama prekidnih rutina. Broj ulaza u tabelu je dat sadrajem registra BR, a poetna adresa tabele sadrajem registra ukazivaa na tabelu sa adresama prethodnih ruta IVTP. Najprije se sadraj registra BR prebacuje u registar B, pa se sabiranjem sadraja registara IVTP i B smjeta u registar MAR. Potom se vrijednost prihvatnog registra podataka spremaju u registre programskog brojaa PC8 do PC15. Onda se vri uvedanje vrijednosti adresnog registra memorije MAR i iz memorije M se sa adrese slijedeeg adresnog registra memorije MAR ita rije i upisuje u prihvatni registar podatka memorije MBR. I na kraju se vrijednost prihvatnog registra podataka spremaju u registre programskog brojaa PC8 do PC12 i faza opsluivanje prekida je time zavrena vraa se na korak 1 i fazu itanje instrukcije.

Anda mungkin juga menyukai