Vous êtes sur la page 1sur 80

VJEBE IZ ARHITEKTURE I ORGANIZACIJE RAUNARA

ARHITEKTURA I ORGANIZACIJA PROCESORA


Zadatak 1.
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 2 bajta. Podaci u memoriji zauzimaju dvije susjedne memorijske lokacije, pri emu se stariji bajt nalazi na nioj a mlai bajt na vioj adresi. 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 4 bajta, akumulator A duine 2 bajta, prihvatni registar podatka B duine 2 bajta, registri opte namjene R0 i R31 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 1, 2, 3 ili 4 bajta.

Bit 7 prvog bajta instrukcije ima vrijednost 0 za instrukcije skoka. 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. Bitovima 6 do 0 prvog bajta instrukcije s pecificira se kod operacije za instrukcije skoka. Duina instrukcija je 3 bajta. Bit 7 prvog bajta instrukcije ima vrijednost 1 za ostale instrukcije. Bit 6 prvog bajta instrukcije ima vrijednost 0 za bezadresne instrukcije. Bezadresne instrukcije su instrukcija povratka iz potprograma (RTS) i povratka iz prekidne rutine (RTI). Bitovima 5 do 0 prvog bajta instrukcije specificira se kod operacije za bezadresne instrukcije. Duina instrukcija je 1 bajt.

Bit 6 prvog bajta instrukcije ima vrijednost 1 za adresne instrukcije. Adresne instrukcije su instrukcija prenosa u akumulator (LOAD), instrukcija prenosa iz akumulatora (STORE), aritmetika instrukcija sabiranja (ADD), logika instrukcija logiki proizvod (AND) i instrukcija aritmetikog pomeranja udesno za jedno mesto (ASR). Bitovima 5 do 0 prvog bajta instrukcija specificira se kod operacije za adresne instrukcije. Duina instrukcija je 2 ili 4 bajta i zavisi od specificiranog naina adresiranja. Naini adresiranja su specificirani bitovima 7, 6 i 5 drugog bajta instrukcije i to na sljededi nain: 000-registarsko direktno adresiranje, 001-registarsko indirektno adresiranje, 010registarsko indirektno adresiranje sa postdekrementiranjem, 011-registarsko indirektno adresiranje sa preinkrementiranjem, 100-memorijsko direktno adresiranje, 101-memorijsko indirektno adresiranje, 110-registarsko indirektno sa pomjerajem i 111-neposredno adresiranje. Adresiranja kod kojih bit 7 ima vrijednost 0 koriste neki od registara opte namjene R0 do R31 specificiran bitovima 4 do 0 drugog bajta instrukcije. Duina instrukcija je 2 bajta. Adresiranja kod kojih bit 7 ima vrijednost 1 imaju i tredi i etvrti bajt instrukcije. Kod memorijskog direktnog i memorijskog indirektnog adresiranja tredi i etvrti bajt instrukcije sadre adresu memorijske lokacije, pri emu je stariji bajt adrese memorijske lokacije dat tredim a mlai bajt etvrtim bajtom. Kod memorijskog indirektnog adresiranja adresa duine 16 bita zauzima dvije susjedne memorijske lokacije, pri emu

se stariji bajt nalazi na nioj a mlai bajt na vioj adresi. Bitovi 4 do 0 drugog bajta instrukcije se ne koriste. Kod registarskog indirektnog adresiranja sa pomjerajem tredi i etvrti bajt instrukcije sadre 16 bitni pomjeraj, pri emu je stariji bajt pomjeraja dat tredim a mlai bajt etvrtim bajtom. Jedan od registara opte namjene R0 do R31 koji se koristi specificiran je bitovima 4 do 0 drugog bajta instrukcije. Kod neposrednog adresiranja tredi i etvrti bajt instrukcije sadre 16 bitni podatak, pri emu je stariji bajt podatka dat tredim a mlai bajt etvrtim bajtom. Bitovi 4 do 0 drugog bajta instrukcije se ne koriste. Stek raste prema niim memorijskim lokacijama, a registar SP ukazuje na prvu slobodnu 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 prekidnih 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. Rjeenje:

Dijagram toka faza itanje instrukcije

Dijagram toka faza formiranje adrese i itanje operanda

Dijagram toka faza izvravanje operacija

Dijagram toka faza opsluivanje prekida

Zadatak 2.
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 2 bajta. Podaci u memoriji zauzimaju dvije susjedne memorijske lokacije, pri emu se mlai bajt nalazi na nioj a stariji bajt na vioj adresi. 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 2 bajta, prihvatni registar podatka B duine 2 bajta, registri opte namjene R0 i R3 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 1 ili 3 bajta.

Bitovi 7, 6, 5 i 4 prvog bajta instrukcije su 0000 za sve instrukcije skoka, dok se bitovima 3 do 0 prvog bajta instrukcija specificira kod operacije za instrukcije skoka. Instrukcije skoka su instrukcija uslovnog skoka ukoliko je rezultat negativan (JZ), bezuslovnog skoka (JMP) i skoka na potprograma (JSR). Adresa skoka je data 2 i 3 bajtom instrukcije, pri emu je mlai bajt adrese skoka dat drugim a stariji bajt tredim bajtom. Duina instrukcija je 3 bajta. Bitovi 7, 6, 5 i 4 prvog bajta instrukcije su 1111 za bezadresne instrukcije, dok se bitovima 3 do 0 prvog bajta instrukcija specificira kod operacije za bezadresne instrukcije. Bezadresne instrukcije su instrukcija povratka iz potprograma (RTS) i povratka iz prekidne rutine (RTI). Duina in strukcija je 1 bajt.

Bitovi 7, 6, 5 i 4 prvog bajta instrukcije u opsegu vrijednosti 0001 do 1110 specificiraju kod operacije za adresne instrukcije. Adresne instrukcije su instrukcije prenosa u akumulator (LOAD), instrukcije prenosa iz akumulatora (STORE), aritmetika instrukcija oduzimanja (SUB), logika instrukcija logika suma (OR) i instrukcija aritmetikog pomeranja ulevo za jedno mesto (ASL). Naini adresiranja su specificirani bitovima 3 i 2 prvog bajta instrukcije i to na sljededi nain: 00neposredno adresiranje, 01-memorijsko direktno adresiranje, 10-registarsko indirektno adresiranje sa pomjerajem i 11-PC relativno adresiranje. Kod neposrednog adresiranja 16 bitni operand je dat drugim i tredim bajtom instrukcije, pri emu je mlai bajt podatka dat drugim a stariji bajt tredim bajtom. Bitovi 1 i 0 prvog bajta instrukcije se ne koriste. Kod memorijskog direktnog adresiranja 16 bitna adresa memorijske lokacije je data drugim i tredim bajtom instrukcije, pri emu je mlai bajt adrese dat drugim a stariji bajt tredim bajtom. Bitovi 1 i 0 prvog bajta instrukcije se ne koriste. Kod registarskog indirektnog adresiranja sa pomjerajem 16 bitni pomjeraj je dat drugim i tredim bajtom instrukcije, pri emu je mlai bajt pomjeraja dat drugim a stariji bajt tredim bajtom. Bitovi 1 i 0 prvog bajta instrukcije se koriste za adresiranje jednog od registara opte namjene R0 do R3. Kod PC relativnog adresiranja 16 bitni pomjeraj je dat drugim i tredim bajtom instrukcije, pri emu je mlai bajt pomjeraja dat drugim a stariji bajt tredim bajtom. Bitovi 1 i 0 prvog bajta instrukcije se ne koriste. Duina instrukcija je 3 bajta.

Stek raste prema niim memorijskim lokacijama, a registar SP ukazuje na zadnju 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 mlai bajt nalazi na nioj a stariji bajt na vioj adresi Sadraj registra BP predstavlja broj ulaza u tabelu sa adresama prekidnih rutina. Poetna adresa tabele sa adresama prekidnih 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, SUB, OR, ASL, JN, JMP, JSR, RTS i RTI i faze opsluivanja zahtjeva za prekid. Rjeenje:

Dijagram toka faza itanje instrukcije

Dijagram toka faza formiranje adrese i itanje operanda

Dijagram toka faza izvravanje operacija

Dijagram toka faza opsluivanje prekida

Zadatak 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 instrukc ija 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 adresiranj a 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 starij i 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 zadnju 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 prekidnih 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.

Rjeenje:

Dijagram toka faza itanje instrukcije, formiranje adrese i itanje operanda

Dijagram toka faza izvravanje operacija

Dijagram toka faza opsluivanje prekida

Zadatak 4.
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 memor ije MBR duine 1 bajt, prihvatni registar instrukcije IR duine 3 bajta, akumulator A duine 1 bajt, prihvatni registar podatka B duine 1 bajt, registar podatka DR duine 1 bajt, adresni registar AR duine 2 bajta, bazni registar BR duine 2 bajta, indeksni registar XR 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 1 ili 3 bajta.

Bitovi 7 do 3 prvog bajta instrukcije su 00000 za sve instrukcije skoka, dok se bitovima 2 do 0 prvog bajta instrukcija specificira kod operacije za instrukcije skoka. Instrukcije skoka su instrukcija uslovnog skoka ukoliko rezultat nije nula (JNZ), bezuslovnog skoka (JMP) i skoka na potprograma (JSR). Adresa skoka je data 2 i 3 bajtom instrukcije, pri emu je mlai bajt adrese skoka dat drugim a stariji bajt tredim bajtom. Duina instrukcija je 3 bajta.

Bitovi 7 do 3 prvog bajta instrukcije su 11111 za bezadresne instrukcije, dok se bitovima 2 do 0 prvog bajta instrukcija specificira kod operacije za bezadresne instrukcije. Bezadresne instrukcije su instrukcija povratka iz potprograma (RTS) i povratka iz pre kidne rutine (RTI). Duina instrukcija je 1 bajt.

Bitovi 7 do 3 prvog bajta instrukcije u opsegu vrijednosti 00001 do 11110 specificiraju kod operacije za adresne instrukcije. Adresne instrukcije su instrukcija prenosa u akumulator (LOAD), instrukcija prenosa iz akumulatora (STORE), aritmetika instrukcija oduzimanja (SUB), logika instrukcija komplementiranja (NOT) i instrukcija logikog pomeranja ulevo za jedno mesto (LSL). Naini adresiranja su specificirani bitovima 2 do 0 prvog bajta instrukcije i to na sljededi nain: 000registarsko direktno adresiranje, 001-registarsko indirektno adresiranje, 010-registarsko indirektno adresiranje sa postinkrementiranjem, 011-registarsko indirektno adresiranje sa predekrementiranjem, 100-memorijsko direktno adresiranje, 101-bazno adresiranje sa pomjerajem, 110-indeksno adresiranje sa pomjerajem i 111-bazno indeksno adresiranje sa pomjerajem. Adresiranja kod kojih bit 2 ima vrijednost 0 implicitno koriste registar DR(000-registarsko direktno adresiranje) ili AR(001-registarsko indirektno adresiranje, 010-registarsko indirektno adresiranje sa postinkrementiranjem, 011-registarsko indirektno adresiranje sa predekrementiranjem). Duina instrukcija je 1 bajt. Adresiranja kod kojih bit 2 ima vrijednost 1 imaju i drugi i tredi bajt instrukcije. Kod memorijskog direktnog adresiranja (100) drugi i tredi bajt instrukcije sadre adresu memorijske lokacije, pri emu je mlai bajt adrese memorijske lokacije dat drugim a stariji bajt tredim bajtom.

Kod baznog adresiranja sa pomjerajem (101) implicitno se koristi registar BR, a drugi i tredi bajt instrukcije sadre 16 bitni pomjeraj, pri emu je mlai bajt pomjeraja dat drugim a stariji bajt tredim bajtom. Kod indeksnog adresiranja sa pomjerajem (110) implicitno se koristi registar XR, a drugi i tredi bajt instrukcije sadre 16 bitni pomjeraj, pri emu je mlai bajt pomjeraja dat drugim a stariji bajt tredim bajtom. Kod bazno indeksnog adresiranja sa pomjerajem (111) implicitno se koristi registri BR i XR, a drugi i tredi bajt instrukcije sadre 16 bitni pomjeraj, pri emu je mlai bajt pomjeraja dat drugim a stariji bajt tredim bajtom.

Stek raste prema viim memorijskim lokacijama, a registar SP ukazuje na prvu slobodnu 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 mlai bajt nalazi na nioj a stariji bajt na vioj adresi Sadraj registra BR predstavlja broj ulaza u tabelu sa adresama prekidnih rutina. Poetna adresa tabele sa adresama prekidnih 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 itanje instrukcije, faze formiranja adrese i itanja operanda, faze izvravanja operacija LOAD, STORE, SUB, NOT, LSL, JNZ, JMP, JSR, RTS i RTI i faze opsluivanje zahtjeva za prekid.

Rjeenje:

Dijagram toka faza itanje instrukcije

Dijagram toka faza formiranje adrese i itanje operanda

Dijagram toka faza izvravanje operacija

Dijagram toka faza opsluivanje prekida

Zadatak 5.
Nacrtati dijagram toka faza itanja naredbe, odreivanja adrese i itanja operanda u raunaru sa sljededim karakteristikama: Broja naredbi PC: 2 bajta; Adresni registar memorije MAR: 2 bajta; Prihvatni registar memorije MDR: 1 bajt; Registar naredbe IR: 3 bata; Akumulator A: 2 bajta; Registar B: 2 bajta; Indeksni registri X1 i X2: 2 bajta; Pokaziva steka SP: 2 bajta; Indikatori N, V, C i Z. Memorija je kapaciteta 64KB i iz memorije se ita i u memoriju upisuje bajt po bajt. Naredbe su duine 1 i 3 bajta. Naredbe duine 1 bajt su bezadresne. Naredbe duine 3 bajta su jednoadresne. Na duinu naredbe ukazuje bit 7 prvog bajta naredbe i to vrijednost 0 oznaava 1 bajt a vrijednost 1 3 bajta. Na nain adresiranja ukazuju biti 6 i 5 prvog bajta naredbe: 00 - memorijsko direktno, 01 memorijsko indirektno, 10 indeksno sa autoinkrementiranjem, 11 neposredno. Na korideni indeks registar ukazuje bit 4 prvog bajta naredbe: 0 X0, 1 X1.

Rjeenje:

Zadatak 6.
Neki jednoadresni raunar ima sve naredbe duine 3 bajta. Prvi bajt naredbe sadri kd operacije (biti 7 do 3), kd naina adresiranja (biti 2 i 1) i kd koridenog registra (bit 0) i to vrijednost 0 za registar R0, a vrijednost 1 za registar R1. Svi operandi i adrese su duine 2 bajta i smetaju se vii (stariji) bajt na nioj, a nii (mlai) bajt na vioj adresi u memoriji. Registri R0, R1, B i akumulator su duine 2 bajta. Iz memorije se ita i u nju upisuje bajt po bajt. Prvi operand se nalazi u akumulatoru, a drugi, adresirani operand se smeta u registar B.

a) Nacrtati dijagram toka faza itanja naredbe, odreivanja adrese i itanja operanda. b) U kom opsegu se nalazi operand kod ovog raunara ako su operandi prikazani u potpunom (drugom) komplementu? c) Koliki je kapacitet memorije, a kolika duina registara PC, MAR i MDR? Rjeenje: a)

b) Operandi su u opsegu (-32768, 32767). c) Adresni prostor je 64KB, duina registara PC i MAR je 16 bita, a registra MDR 8 bita.

Zadatak 7.
Nacrtati dijagram toka faza itanja naredbe, odreivanja adrese i itanja operanda u raunaru sa sljededom konfiguracijom: Naredbe su duine 1 i 3 bajta. Naredbe duine 1 bajt su bezadresne. Naredbe duine 3 bajta su jednoadresne. Na duinu naredbe ukazuje bit 7 prvog bajta naredbe i to vrijednost 0 oznaava 1 bajt, a vrijednost 1 3 bajta. Na nain adresiranja ukazuje bit 6 prvog bajta naredbe: 0 - memorijsko direktno, 1 relativno. Preostali biti prvog bajta naredbe predstavljaju kod operacije. Druga dva bajta slue za adresiranje. Iz memorije se ita i u nju upisuje bajt po bajt. Prvi operand se nalazi u akumulatoru A, a drugi, adresirani operand se smeta u registar B. Duina registara A i B je 2 bajta, tj. Operacije se obavljaju nad operandima duine 2 bajta. Memorija je kapaciteta 64KB. a) Koliki je kapacitet memorije, a kolika duina registara PC, MAR i MDR? b) Koliko najvie moe biti naredbi duine 1 bajt a koliko duine 3 bajta. Rjeenje:

a) Adresni prostor je 64KB, duina registara PC i MAR je 16 bita, a registra MDR 8 bita.

b) 128 naredbi duine 1 bajt i 64 naredbi duine 3 bajta.

Zadatak 8.
Kod nekog jednoadresnog raunara prvi bajt naredbe sadri kd operacije u via etiri bita i kd naina adresiranja u nia 4 bita. U tabelama je dat podskup kodova operacija i naina adresiranja:

Podaci su jednobajtni, a adrese dvobajtne. Iz memorije se ita i u nju upisuje bajt po bajt. Kod dvobajtne adrese nii bajt je na vioj, a vii na nioj adresi. Sadraj dijela memorije dat je sljededom tablicom:

Operandi se predstavljaju u potpunom komplementu. Kolika je decimalna vrijednost akumulatora, indeks registra i svih flegova po izvrenju tri naredbe i koliki je broj pristupa memoriji u fazama itanja naredbe, odreivanja adresa i itanja operanada ako su poetne vrijednosti registara: a) PC=7, XR=9, ACC=1F16 b) PC=1, XR=7, ACC=FC16 Rjeenje: a) Legenda: IR instrukcijski registar, MN mnemonik naredbe, AO adresa operanda (adresa skoka), O operand, N itanje naredbe, OA odreivanje adrese, O itanje operanda.

b)

Zadatak 9.
Kod nekog jednoadresnog raunara prvi bajt naredbe sadri kd operacije (biti 5 do 0) i kd naina adresiranja(biti 7 i 6).

Svi operandi su jednobajtni, prikazani u drugom komplementu. Sve adrese su dvobajtne i smetaju se nii bajt na nioj, a vii na vioj adresi. Stek raste od niih ka viim adresama u memoriji, a SP ukazuje na prvu slobodnu lokaciju na steku. Sve naredbe koriste jednobajtni akumulator, u kome ostaje rezultat. Naredba oduzimanja oduzima operand od sadraja akumulatora. Sadraj dijela memorije je:

a) Ako je PC=02(hex), SP=0E(hex) i ACC=7C(hex), odrediti decimalnu vrijednost sadraja akumulatora i SP, kao i sadraj indikatora N, Z, V i C po izvrenju svake od 4 sukcesivne naredbe. Naredbe PUSH i POP koriste jednobajtni akumulator i ne menjaju vrijednosti indikatora. Odgovor na ovo pitanje treba da bude u formi tabele koja sadri po jednu vrstu za svaku od 4 sukcesivne naredbe, a ima sljedede zaglavlje:

b) Koliki je broj pristupa memoriji u svakoj od faza itanja naredbe, odreivanja adrese, itanja operanda i izvrenja svake od 4 sukcesivne naredbe?

Rjeenje:

a)

b)

Zadatak 10.
Neki jednoadresni raunar ima sve naredbe duine 3 bajta. Sve adrese i operandi su duine dva bajta. Iz memorije se ita i u memoriju upisuje bajt po bajt. Vii bajt operanada, odnosno adrese, se smeta na niu adresu, a nii bajt na viu adresu. Bitovi 7 i 6 prvog bajta naredbe ukazuju na nain adresiranja i to: 00 memorijsko direktno; 01 memorijsko indirektno; 10 neposredno; 11 ideksno adresiranje sa autoinkrementiranjem. Ostalih 6 bitova prvog bajta naredbe koristi se za kod operacije. Sadraj prvih delija memorije je:

a) Ako je prije itanja naredbe broja naredbi PC=03(hex) a indeks registar XR=05(hex) koji sadraj treba da se nalazi u lokacijama sa adresama 3, 4 i 5 za svaki od navedenih naina adresiranja, da bi vrijednost operanda ove naredbe bila AC05(hex)? Binarna vrijednost koda operacije naredbe na adresi 3 je 011010(bin). Traeni sadraj prikazati heksadecimalno.

b) Koliki je broj pristupa memoriji u svakoj od faza itanja naredbe, odreivanja adrese i itanja operanda zasvaki od navedenih naina adresiranja? Rjeenje:

a)

b)

Zadatak 11.
Jednoadresni procesor poseduje akumulator A i adresni registar memorije MAR duine 2B (bajta). Operandi su duine 2B, adresiranje je na nivou bajta, a operandi se smetaju u memoriju tako to se nii bajt smeta na niu adresu. Nacrtati dijagrame toka faza izvrenja instrukcija POP i PUSH ako stek raste ka niim adresama, a registar SP ukazuje na poslijednju popunjenu lokaciju na vrhu steka. Rjeenje:

MEHANIZAM PREKIDA
Zadatak 1.
Posmatra se procesor sa vektorisanim mehanizmom prekida. Adrese prekidnih rutina se uvaju u tabeli adresa prekidnih rutina (IV tabeli) koja poinje na adresi 0 i ima 256 ulaza. Kapacitet operativne memorije je 64KB, irina rijei memorije je jedan bajt, a 16-bitni podaci se u memoriju smetaju tako da se na nioj adresi nalazi vii bajt, a na vioj adresi nii bajt. Prekidne rutine za periferije PER1, PER2 i PER3 poinju na adresama 5678h, 3456h i 1234h, respektivno. Ulazi 5, 3 i 1 u IV tabeli su dodijeljeni periferijama PER1, PER2 i PER3, respektivno.

a) Nacrtati dio operativne memorije na kojima se nalaze ulazi 0 do 5 u IV tabeli, oznaiti adrese relevantnih memorijskih lokacija i popuniti ih odgovarajudim vrijednostima.

b) Nabrojati korak po korak ta se sve deava u procesoru od trenutka kada je stigao zahtjev za prekid od periferije do trenutka kada se u registru PC nalazi poetna adresa prekidne rutine.

c) Objasniti za svaki korak nabrojan u taki b) da li ga obavlja hardver ili softver.

d) Objasniti kako se obavlja povratak iz prekidne rutine i nabrojati korake koji se tom prilikom izvode.

Rjeenje:

a) Sadraj dijela operativne memorije je prikazan na slici.

b) Kada stigne zahtjev za prekid najprije se zavri sa izvravanjem tekude instrukcije. Nakon toga se nastavlja sa izvravanjem dodatnih koraka koji su potrebni da bi se sauvao kontekst procesora i izraunala adresa prekidne rutine. Kontekst procesora (PC, PSW i programski dostupni registri) se uva na vrhu steka. Adresa prekidne rutine se rauna sljededom sekvencom akcija: procesor alje inta signal (interrupt acknowledge) periferiji, periferija odgovara tako to procesoru poalje svoj broj ulaza u IV tabelu, procesor izrauna adresu ulaza u IV tabelu (broj ulaza se pretvori u pomjeraj i doda se na sadraj IVTP registra) i proita se adresa prekidne rutine iz IV tabele i smesti se u PC. Treba dodati da veoma esto nakon koraka i procesor obavlja i korak. U ovom koraku: bit I (maskirajudi prekidi dozvoljeni) u registru PSW se resetuje, bit T (prekid poslije svake instrukcije) u registru PSW se resetuje i u bitove L (prioritet tekudeg programa) u registru PSW se upisuje prioritet prekidne rutine na koju se skae.

c) Odgovor u taki b) podrazumeva da se svi koraci izvode HARDVERSKI. Meutim, neko id koraka pod mogu da se izvedu softverski. Ovo je sluaj kod programski dostupnih registara i ponekad kod registra PSW koje u tom sluaju treba programski sauvati na poetku prekidne rutine. Programski dostupni registri se obino uvaju softverski ako ih je mnogo. U suprotnom, oni se uvaju HARDVERSKI. Registar PSW se mora uvati HARDVERSKI ako postoji korak. U suprotnom, moe se uvati ili HARDVERSKI ili softverski. U vedinu sluajeva registar PSW se uva HARDVERSKI. Koraci se uvek izvode HARDVERSKI.

d) Povratak iz prekidne rutine se izvodi posebnom instrukcijom RTI (return from interrupt). Ova instrukcija restaurira sa steka kontekst procesora: programski dostupni registri se restauriraju ako su sauvani HARDVERSKI, registar PSW se restaurira ako je sauvan HARDVERSKI i registar PC je

restauriran. Ako se programski dostupni registri i PSW ne restauriraju instrukcijom RTI, moraju se restaurirati softverski na kraju prekidne rutine prije instrukcije RTI.

Zadatak 2.
Memorija nekog raunara je kapaciteta 4G (giga) 16-bitnih rijei. Adresibilna jedinica je 16bitna rije, a 32-bitni brojevi se u memoriju smetaju tako da je na nioj adresi niih 16 bita. Procesor je jednoadresni, ulazno-izlazni i memorijski adresni prostori su razdvojeni, a mehanizam prekida je vektorisan. Interapt vektor (IV) tabela zauzima najnii dio memorijskog adresnog prostora. Na procesor su vezane tri periferije, PER1, PER2 i PER3 kojima treba dodeliti ulaze 3, 5 i 7 u vektor tabeli, i kojima odgovaraju prekidne rutine na adresama 12345678h, 23456789h i 3456789Ah, respektivno. Adrese 16-bitnih registara u kojima se uvaju brojevi ulaza su 0h, 4h i 8h, respektivno. a) Napisati dio programa kojim se dodjeljuju brojevi ulaza navedenim periferijama.

b) Nacrtati izgled prvih 8 ulaza u vektor tabeli, oznaiti adrese relevantnih lokacija i upisati sadraje u njih.

c) Napisati dio programa kojim se inicijalizuje ulaz 5 u vektor tabeli.

d) Koju vrijednost alje procesoru periferija PER2 kada joj procesor odobri zahtjev za prekidom?

e) Opisati i predstaviti programom postupak kojim se i periferiji PER2 dodjeluje ista prekidna rutina kao i periferiji PER3.

f) Koliko ulaza ima IV tabela?

Rjeenje: a) LOAD #3 OUT 0h LOAD #5 OUT 4h

LOAD #7 OUT 8h b)

c) LOAD #2345h STORE 11 LOAD #6789h STORE 10 d) 5 e) LOAD #3456h STORE 11 LOAD #789Ah STORE 10 Ili: LOAD #7 OUT 4h f) 64K ulaza

Zadatak 3.
Adresni prostor nekog raunara je veliine 16GB (giga bajta). Adresibilna jedinica je 32 -bitna rije, a vierijeni brojevi se u memoriju smetaju tako da je na nioj adresi nia rije. Procesor je jednoadresni, ulazno-izlazni i memorijski adresni prostori su razdvojeni, a mehanizam prekida je vektorisan. Magistrala je asinhrona, a ciklus na magistrali moe da traje proizvoljno dugo vreme. Procesor prihvata podatak sa magistrale podataka kada signal FC postane 1. IV (Interrupt Vector) tabela ima 4 ulaza i poinje od adrese 0. Procesor poseduje dva ulaza za spoljne maskirajude prekide, IRQ0 i IRQ1, pri emu je IRQ1 vieg prioriteta, na koje su vezane periferije PER0 i PER1, respektivno. U PSW postoji bit I (Interrupt Enable) u razredu 1 koji se brie u mikrop rogramu za obradu prekida i bit L u razredu 0 koji sadri nivo prioriteta tekudeg izvravanja. Ne postoji selektivno maskiranje prekida. Procesor prihvata prekid istog nivoa kao to je tekudi. Instrukcije INTE i RTI ne reaguju na prekid. Pri prekidu se na steku uvaju PC i PSW tim redom. Adrese registara u kojima se uvaju brojevi ulaza PER0 i PER1 su 02h i 04h, respektivno. Sadraj dijela memorijskog adresnog prostora poev od adrese 0 dat je na Slici 1. Prekidna rutina za PER0 data je na Slici 2, a za PER1 na Slici 3. Posmatra se sljededi scenario izvravanja: u toku izvravanja instrukcije INCA duine jedne rijei na adresi 100h glavnog programa stie zahtjev za prekid od PER0 i prihvata se. Instrukcija na adresi A00Ah oznaena je kao 1. (prva) po redosledu izvravanja, a svaka sljededa instrukcija koja se izvrava oznaena je sljededim rednim brojem. U toku izvravanja 2. instrukcije stie zahtjev za prekid od PER1, u toku 6. ponovo zahtjev od PER0. Sve vrijednosti na slikama su heksadecimalne. Napomena na adresi 101h se nalazi instrukcije INCA duine jedne rijei.

a) Nacrtati vremenski oblik svih relevantnih signala na magistrali raunara (A, D, RD, WR, M/IO, FC) i signala INTA1, od trenutka kada procesor odobrava zahtjev za prekid preko IRQ1, do zavretka tog ciklusa na magistrali.

b) Koja vrijednost se nalazi na magistrali podataka u ciklusu iz take a)?

c) Napisati sekvencu instrukcija kojom se periferiji PER0 dodjeluje broj ulaza u IVT.

d) Prikazati sadraj svih poznatih lokacija na vrhu steka neposredno poslije izvravanja 5. instrukcije. Za sauvanu vrijednost PSW dati samo vrijednost dva bita najmanje teine. Oznaiti vrh steka.

e) Dati sekvencu adresa instrukcija koje se redom izvravaju po datom scenariju, zakljuno sa 9. (devetom).

Rjeenje: a)

b) 2 c) LOAD #3; OUT 2 d)

e) A00Ah, A00Bh, 0A0Ah, 0A0Bh, 0A0Ch, 0A0Dh, A00Ch, 101h, A00Ah

Zadatak 4:

Memorija nekog raunara je kapaciteta 64 KB. Adresibilna jedinica je bajt, a 16 -bitni brojevi se u memoriju smetaju tako da je na nioj adresi vii bajt. Procesor je jednoadresni i ima naredbe koje

obavljaju prenos samo jednog bajta ka/iz memorije, ulazno/izlazni i memorijski adresni prostori su razdvojeni, a mehanizam prekida je vektorisan. Interapt vektor tabela ima 8 ulaza i poinje od adrese 0 operativne memorije. Procesor ima 4 ulazne linije IRQ0 do IRQ3 za maskirajude prekide koji se prioritiraju, pri emu je ulaz IRQ0 najvieg prioriteta. Ovim linijama dodijeljeni su fiksno ulazi 4 do 7 u vektor tabeli, respektivno. Nemaskirajudi i interni prekidi su vieg prioriteta od maskirajudih, i zauzimaju ulaze 0 do 3 u tabeli. U PSW procesora postoji bit I (I nterrupt Enable) koji se brie u mikroprogramu za obradu prekida, a programski kontrolie naredbama INTE (Interrupt Enable, postavlja I na 1) i INTD (Interrupt Disable, brie I), kao i biti L20 koji sadre nivo prekida koji se trenutno opsluuje. Takoe postoji 4-bitni registar IMR (Interrupt Mask Register) kod koga jedinica na bitu i znai da je dozvoljen prekid sa linije IRQi. Ovaj registar inicijalno sadri sve jedinice. Na linije IRQ1 i IRQ3 su vezane periferije PER1 i PER3, respektivno, a ostale linije su slobodne. Treba vezati jo ureaj Tvremenski broja koji periodino generie signal zahtjeva za prekid. Potrebno je obezbijediti da se prekid od vremenskog brojaa moe opsluiti i u toku izvravanja neke od prekidnih rutina za periferije PER1 i PER3. Ove rutine poinju na adresama 100h i 300h, respektivno. a) Na koji ulaz IRQ30 treba vezati signal zahtjeva za prekid vremenskog brojaa? b) Napisati dio programa kojim se inicijalizuje ulaz periferije PER1 u vektor tabeli. c) Prekidna rutina periferije PER1 je prikazana na slici. INTH1: IN FF00h STORE (Dest)+ RTI Ako u toku izvravanja instrukcije STORE stigne signal prekida od vremenskog brojaa, da li de se ovaj prekid odmah opsluiti? Obrazloiti odgovor. d) Izmijeniti datu prekidnu rutinu periferije PER1 tako da odgovor na prethodno pitanje bude suprotan. e) ta treba uraditi u prekidnoj rutini periferije PER3 tako da se obezbijedi da ona ne bude prekidana od zahtjeva sa periferije PER1, ali da bude prekidana od zahtjeva sa vremenskog brojaa? Rjeenje: a) IRQ0

b) LOAD #01 STORE 0Ah LOAD #00 STORE 0Bh c) Ne

d) INTH1: INTE IN FF00h STORE (Dest)+ ... RTI

e) Postavljanja bita I na 1, u IMR treba upisati bb01 (binarno, b oznaava bilo koju vrijednost).

Zadatak 5.

Adresni prostor procesora je veliine 16GB, adresibilna jedinica je 32 -bitna rije, a 64-bitni brojevi se smetaju tako da je na nioj adresi nia rije. Procesor je jednoadresni, a mehanizam prekida je vektorisan. Interapt vektor (IV) tabela ima 4 fiksna ulaza i poinje od adrese 2h. Procesor ima jednu ulaznu liniju IRQM za spoljne maskirajude prekide i jednu ulaznu liniju IRQN za spoljne nemaskirajude prekide. Njima su pridrueni ulazi 0 i 1 u IV tabelu, respektivno. Nemaskirajudi prekidi su vieg prioriteta od maskirajudih. Ulaz 2 u IV tabeli se upotrebljava u sluaju prekida poslije svake instrukcije (TRAP), a ulaz 3 u svim ostalim sluajevima. PSW postoji bit I (Interrupt Enable) koji se brie u mikroprogramu za obradu prekida. Pri prekidu se na steku uvaju PSW i PC tim redom. Stek raste prema niim lokacijama. Akumulator je 32-bitni. Instrukcije INTE, INTD, RTI i TRPE ne reaguju na prekide. Dat je dio glavnog programa na slici 1, prekidne rutine na slici 2, izgled dijela memorije poev od adrese 0 dat je na slici 3. Instrukcija INTE na adresi 0100h oznaena je kao 1. (prva) po redosledu izvravanja, a svaka sljededa instrukcija koja se izvrava oznaena je sljededim rednim brojem. U toku izvravanja 2. instrukcije stie zahtjev za prekid po liniji IRQN, a u toku 5. po liniji IRQM. Na poetku su svi biti PSW-a postavljeni na 0.

a) Na kojim adresama zapoinju prekidne rutine za linije IRQM i IRQN, respektivno? b) Napisati sekvencu adresa naredbi koje se redom izvravaju, poev od adrese 0100h. c) Prikazati sadraj svih poznatih lokacija na vrhu steka nakon izvravanja 7. instrukcije. Za sauvanu vrijednost PSW dati samo vrijednost bita I. Naznaiti u kome smeru raste stek. d) Koja de se vrijednost nalaziti na lokaciji 1h nakon izvrenja sekvence pod b)?

Rjeenje a) IRQM 1000h, IRQN 1004h b) 0100h, 0101h, 1004h, 1005h, 1006h, 1007h, 0102h, 1000h, 1001h, 1002h, 1003h, 0103h, 1008h, 1009h, 100Ah, 100Bh, 0104h, 0105h c)

d) MEM[1] = 10FFh

Zadatak 6.

Adresni prostor procesora je veliine 16GB, adresibilna jedinica je 32 -bitna rije, a 64-bitni brojevi se smetaju tako da je na nioj adresi nia rije. Procesor je jednoadresni, a mehanizam prekida je vektorisan. Interapt vektor (IV) tabela ima 4 fiksna ulaza i poinje od adrese 2h. Procesor ima dvije ulazne liniju IRQM1 i IRQM2 za spoljne maskirajude prekide, pri emu je IRQM2 vieg prioriteta, i jednu ulaznu liniju IRQN za spoljne nemaskirajude prekide. Njima su pridrueni ulazi 0, 1 i 2 u IV tabelu, respektivno. Nemaskirajudi prekidi su vieg prioriteta od maskirajudih. Ulaz 3 se koristi u svim ostalim sluajevima. U PSW-u postoje biti I (Interrupt Enable) i T (Trap) koji se briu u mikroprogramu za obradu prekida, kao i odreen broj L bita. Pri prekidu se na steku uvaju PSW i PC tim redom. Stek raste prema niim lokacijama. Akumulator je 32-bitni. Instrukcije INTE, INTD, RTI, TRPE i TRPD ne reaguju na prekide. Ne prihvata se prekid istog nivoa prioriteta. Ne postoji registar maske IMR. Dat je dio glavnog programa na slici 1, prekidne rutine na slici 2, izgled dijela memorije poev od adrese 0 dat je na slici 3. Instrukcija TRPE na adresi 0100h oznaena je kao 1. (prva) po redosledu izvravanja, a svaka sljededa instrukcija koja se izvrava oznaena je sljededim rednim brojem. U toku izvravanja 2. instrukcije stie zahtjev za prekid po liniji IRQM1, u toku 5. po liniji IRQN, a u toku 9. po liniji IRQM2. Na poetku su svi biti PSW-a postavljeni na 0.

a) Na kojim adresama zapoinju prekidne rutine za linije IRQM1, IRQM2 i IRQN, respektivno?

b) Napisati sekvencu adresa naredbi koje se redom izvravaju, poev od adrese 0100h.

c) Prikazati sadraj svih poznatih lokacija na vrhu steka nakon izvravanja 6. instrukcije. Za sauvanu vrijednost PSW dati samo vrijednosti bita I, T i L. Naznaiti u kome smeru raste stek.

d) Koja de se vrijednost nalaziti na lokaciji 1h nakon izvrenja sekvence pod b)?

e) Nacrtati strukturnu emu mree za razreavanje zahtjeva za maskirajudim prekidom u procesoru. Ova mrea treba da generie signal INTRQ logikog uslova koji govori da postoji maskirajudi prekid koji treba opsluiti, a pomodu vrijednosti bita iz registara PSW i vrijednosti sa ulaza IRQM1 i IRQM2.

Rjeenje a) IRQM1 1009h, IRQM2 1006h, IRQN 1004h

b) 0100h, 0101h, 0102h, 1009h, 100Ah, 1004h, 1005h, 100Bh, 0103h, 0104h, 1000h, 1001h, 0105h c)

d) MEM[1] = 2h

e) Vidi prirunik za laboratorijske vebe

Zadatak 7.

Adresni prostor nekog raunara je veliine 64 KB, adresibilna jedinica je bajt, a 16 -bitni brojevi se u memoriju smetaju tako da je na nioj adresi nii bajt. Mehanizam prekida je vektorisan. IV (Interrupt Vector) tabela poinje od adrese na koju ukazuje registar IVTP. Trap prekidu pripada fiksno ulaz 2 u IVT. Pri prekidu se na steku uvaju PSW i PC tim redom. Stek raste prema niim lokacijama. Svi registri opte namjene (Ri) su 8-bitni. Procesor poseduje instrukcije TRPE (Trap Enable) i TRPD (Trap Disable) za dozvolu, odnosno zabranu trap-a. Instrukcije TRPE i TRPD ne reaguju na prekide (ni na trap). Dat je dio programa na slici 1, trap prekidna rutina na slici 2, i dio memorije poev od adrese 0 na slici 3. Za vreme izvravanja datog dijela programa, nema drugih prekida osim trap-a.

a) Koja se vrijednost nalazi na adresi FF07h?

b) Koja se vrijednost nalazi u registru IVTP (ta vrijednost je veda ili jednaka od 0, a manja od 7)? c) Napisati sekvencu adresa naredbi koje se redom izvravaju, poev od FF00h, zakljuno sa FF08h.

d) Koja se vrijednost nalazi u registru R1 neposredno prije prvog izvravanja naredbe RTI na adresi 00A2h?

e) Napisati sekvencu adresa naredbi koje se redom izvravaju, poev od FF00h, sve dok su adrese poznate, ako se umesto trap rutine sa slike 2 koristi rutina sa slike 4. adresa instrukcija

Rjeenje:

a) FF07h sadraj FFh. b) IVTP jednako 1. c) adrese objanjenje FF00, FF01, FF03, Instrukcije TRPD, MOV i TRPE FF04, 00A0, 00A1, 00A2, DEC pa zatim trap prekidna rutina

FF05, 00A0, 00A1, 00A2, JNZ pa zatim trap prekidna rutina FF03, TRPE instrukcija (ne reaguje na trap) FF04, 00A0, 00A1, 00A2, DEC pa zatim trap prekidna rutina FF05, 00A0, 00A1, 00A2, JNZ pa zatim trap prekidna rutina FF08 TRPD instrukcija. Slika 5. d) R1 jednaka 5. e) Sekvenca adresa je tako: FF00, FF01, FF03, FF04, 00A0, 00A1, 00A3, FF02, dalje nepoznato

Zadatak 8.
Adresni prostor procesora je veliine 128KB, adresibilna jedinica je 16 -bitna rije, a vierijeni brojevi se smetaju tako da je na vioj adresi nia rije. Procesor je jednoadresni sa razdvojenim memorijskim i ulazno/izlaznim adresnim prostorima, a mehanizam prekida je vektorisan. IV (Interrupt Vector) tabela poinje od adrese na koju ukazuje registar IVTP (Interrupt Vector Table Pointer), a registar IVTP ima vrijednost 2. Procesor ima tri ulazne linije IRQ0, IRQ1 i IRQ2 za spoljne maskirajude prekide, pri emu je IRQ0 najvieg prioriteta, a IRQ2 najnieg prioriteta, na koje su vezane periferije PER0, PER1 i PER2, respektivno. Njima su pridrueni ulazi 2, 3 i 4 u IV tabelu, respektivno. Ne prihvata se prekid istog nivoa prioriteta. Adrese 16-bitnih registara u kojima se uvaju brojevi ulaza su 10h, 20h i 30h, respektivno. U PSW-u postoji bit I (Interrupt Enable) koji se brie u mikroprogramu za obradu prekida, kao i odreen broj L bita. Pri prekidu se na steku uvaju PSW i PC tim redom. Stek raste prema niim lokacijama. Akumulator je 16-bitni. Instrukcije INTE, INTD, RTI i INT ne reaguju na prekide. Instrukcija INT ne menja nivo prioriteta tekudeg programa. Dat je dio glavnog programa na slici 1, prekidne rutine na slici 2, izgled dijela memorije poev od adrese 0 dat je na slici 3. Instrukcija na adresi 0100h oznaena je kao 1. (prva) po redosledu izvravanja, a svaka sljededa instrukcija koja se izvrava oznaena je sljededim rednim brojem. U toku izvravanja 2. instrukcije stie zahtjev za prekid po liniji IRQ2, a u toku 5. po liniji IRQ0. Na poetku su svi biti PSW-a postavljeni na 0. Ne postoji IMR registar.

a) Na kojim adresama zapoinju prekidne rutine za linije IRQ0, IRQ1 i IRQ2, respektivno?

b) Napisati dio programa kojim se inicijalizuje ulaz 3 u vektor tabeli.

c) Napisati dio programa kojim se dodjeljuju brojevi ulaza navedenim periferijama.

d) Dati sekvencu adresa instrukcija koje se redom izvravaju po datom scenariju.

e) Prikazati sadraj svih poznatih lokacija na vrhu steka nakon izvravanja 6. instrukcije. Za sauvanu vrijednost PSW dati samo vrijednosti bita I i L. Naznaiti u kome smeru raste stek.

Rjeenje: a) IRQ0 1000h, IRQ1 100Ch, IRQ2 1009h b) LOAD #100Ch STORE 5h c) LOAD #2h OUT 10h LOAD #3h OUT 20h LOAD #4h OUT 30h d) 100h, 102h, 103h, 1009h, 100Ah, 1000h, 1001h, 1002h, 1004h, 1005h, 1007h, 1008h, 100Bh, 104h, 106h, 100Ch, 100Dh, 108h, 109h

e)

MEMORIJA
Zadatak 1.
Adresni prostor jednoadresnog procesora je 1MB, a adresiranje je bajtovsko. Procesor poseduje 16-bitni akumulator. Spreni dio procesora prema magistrali sadri registar MAR i 8-bitni registar MDR. Ulazno/izlazni i memorijski adresni prostori su razdvojeni. Procesor je povezan sa memorijom MEM i periferijom PER preko sinhrone magistrale. Veliina fizike memorije je 256KB i zauzima najvii dio adresnog prostora. a) Nacrtati sve relevantne linije sistemske magistrale i precizno naznaiti irine adresne i mag istrale podataka.

b) Prikazati realizaciju fizike memorije ako na raspolaganju stoje memorijski moduli 128Kx4 bita.

c) Nacrtati internu strukturu kontrolera periferije i vezu kontrolera sa sistemskom magistralom. Kontrolni registar CR se nalazi na adresi 10h, statusni registar SR se nalazi na adresi 11h, registar podataka DR na adresi 12h, a registar IE u kome se uva broj ulaza u tabelu prekidnih rutina nalazi se na adresi 13h. Sadraj registra IE se iznosi na magistralu podataka ako je aktivan signal i ntack.

Rjeenje

a)

b)

c)

Zadatak 2.
Posmatra se dvoadresni procesor sa razdvojenim memorijskim i ulazno/izlaznim adresnim prostorima. Adresibilna jedinica je 16-bitna rije (W). Magistrala je asinhrona, a mehanizam prekida vektorisan. Kapacitet memorijskog adresnog prostora je 8GB, pri emu je najviih 2GB rezervisano za ROM memoriju. Za adresiranje ulazno/izlaznih ureaja rezervisana je 1GW poev od adrese 0h.

a) Nacrtati sve relevantne linije sistemske magistrale i precizno naznaiti irin e adresne i magistrale podataka.

b) Naznaiti opsege adresa memorijskog (naznaiti posebno adresne opsege adresnih prostora rezervisanih za ROM i RAM memorije) i ulazno-izlaznog adresnog prostora, redom.

c) Prikazati realizaciju fizike RAM memorije koja zauzima najviih 4GB adresa u adresnom prostoru rezervisanom za RAM memoriju, ako su na raspolaganju memorijski SRAM ipovi kapaciteta 512Mx8 bita (kontrolni ulazi su RD i WR).

d) Prikazati realizaciju fizike ROM memorije koja zauzima najniih 1GB adres a u adresnom prostoru rezervisanom za ROM memoriju, ako su na raspolaganju ROM memorijski ipovi kapaciteta 256Mx8bita.

e) Navesti relevantne registre DMA kontrolera koji je preko sistemske magistrale vezan u posmatrani sistem. Precizno naznaiti duinu svakog registra; svakom registru pridruiti adrese, ako se zna da je za ovaj kontroler rezervisano prvih 10 adresa u adresnom prostoru. Napomena: nije potrebno crtati vezu DMA kontrolera sa sistemskom magistralom.

Rjeenje a)

b) Memorijski adresni prostor (RAM + ROM): 0000 0000h - FFFF FFFFh RAM: 0000 0000h BFFF FFFFh ROM: C000 0000h FFFF FFFFh UI adresni prostor: 0000 0000h 3FFF FFFFh

c)

d)

e)

Zadatak 3.

Jednoadresni procesor sa razdvojenim adresnim prostorima komunicira sa memorijom preko sinhrone magistrale prikazane na slici. Upravljaka linija W ima vrijednost 1 kada se obavlja transfer 16-bitne rijei. Instrukcija STOREB prenosi sadraj registra MDRL u memoriju na adresu koja se nalazi u regisrtru MAR. Instrukcija STOREW prenosi sadraj iz registara MDRH (vii bajt) i MDRL (nii bajt) u memoriju na adresu koja se nalazi u registru MAR. 16-bitna rije se smeta tako da se nii bajt smeta na niu adresu. Pretpostaviti da ciklus upisa u memoriju traje jedan ciklus takta.

a) Kolika je veliina cijelog memorijskog adresnog prostora? Kolika je veliina memorijskih modula ML i MH?

b) Koje adrese obuhvata memorijski modul ML, a koje memorijski modul MH?

c) Koliko ciklusa takta traje faza izvrenja sljededih instrukcija: (i) STOREW 8h, (ii) STOREW 5h.

Rjeenje a) 4MB, 512KB, 512KB b) ML: 0h, 2h, ... (parne adrese), MH: 1h, 3h,... (neparne adrese). c) 1; 2.

MAGISTRALA
Zadatak 1.

Adresni prostor raunara je 64 KB, a adresibilna jedinica je bajt. Komunikacija procesora sa memorijom je asinhrona i kontrolisana je upravljakim signalima RD (itanje), WR (upis) i FC (kraj operacije). Procesor je jedini master na magistrali, pa ne postoji potreba za arbitracijom.

a) Nacrtati vremenski oblik svih signala na magistrali (adresnih, upravljakih i linija podataka) za sluaj operacije itanja bajta iz operativne memorije.

b) Nacrtati vremenski oblik svih signala na magistrali (adresnih, upravljakih i linija podataka) za sluaj operacije upisa bajta u operativnu memoriju.

c) Ko postavlja adresne signale, ko signale podataka, a ko upravljake signale na magistralu u oba prethodna sluaja? Za upravljake signale dati odgovore za svaki signal pojedinano.

d) Koliko linija ima adresna magistrala?

Rjeenje:

a) Vremenski oblik signala na magistrali za ciklus itanja prikazan je na sljededoj slici.

Procesor najprije na adresnu magistralu postavlja adresu lokacije koju ita. To se fiziki izvodi tako to procesor otvara trostatike bafere vezane izmeu registra adrese MAR (Memory Address Register) u procesoru i linija adresne magistrale. Prije nego to se to dogodi, dakle, adresne linije su u stanju visoke impendanse, pa nemaju vrijednost ni logike jedinice ni logike nule. Zatim procesor postavlja upravljaki signal RD (Read) na aktivnu vrijednost (u ovom primeru svi signali su aktivni kada imaju vrijednost logike jedinice). Tek kada primi obe vrijednosti, i adresu i signal RD, i kada proe dovoljno vremena da dekoduje adresu i proita podatak, memorija na magistralu podataka postavlja proitani podatak. To se fiziki opet postie time to memorija otvara svoje

trostatike bafere vezane na magistralu podataka. Prije nego to se to dogodi, linije podataka su u stanju visoke impendanse. Kada postavi podatke, memorija postavlja signal FC (Function Complete) na aktivnu vrijednost, kako bi obavestila procesor da su podaci na linijama podataka validni (linije su stabilne i na njima je ba proitani podatak, trostatiki baferi su otvoreni). Kada detektuje aktivan signal FC, procesor upisuje podatak sa magistrale podataka u svoj prihvatni registar podatka MBR (Memory Buffer Register). Poslije toga, ili istovremeno sa upisom u MBR, procesor obara signal RD. Kada detektuje pad signala RD, memorija obara signal FC i zatvara svoje trostatike bafere na magistrali podataka. Procesor zatim zatvara svoje bafere prema adresnoj magistrali. Ovim je zavren ciklus itanja.

b) Vremenski oblik signala na magistrali za ciklus upisa prikazan je na sljededoj slici:

Zadatak 2.

Jednoadresni procesor, memorija i periferija povezani su 16-bitnom adresnom i 8-bitnom magistralompodataka. Sadraj dijela operativne memorije dat je na slici 1.

Procesor poseduje 16-bitne registre PC (programski broja), SP (pokaziva na prvu slobodnu lokaciju steka koji raste prema niim adresama), A (akumulator), i AR (adresni registar). Pri pozivu potprograma na steku se uva samo PC. Prvi bajt instrukcije uvek sadri samo kd operacije, a drugi nain adresiranja. Glavni program i potprogram koji se izvrava pozivom JSR dati su na slici 2. Pretpostaviti da je prije poetka izvravanja glavnog programa SP = DEE0h i AR = 9, a da se vii bajt 16-bitne rijei smeta na niu adresu.

a) emu je jednako X? b) Napisati sekvencu sadraja na adresnoj magistrali i magistrali podataka kao i tip transfera (itanje ili upis) za svaki ciklus na magistrali.

Rjeenje a) 000Ah b)

Zadatak 3.
Posmatra se dvoadresni procesor koji je povezan sa memorijom i ulazno/izlaznim ureajima preko asinhrone magistrale. Adresni prostor je kapaciteta 32MB, a adresabilna jedinica je 16-bitna rije (W). Ulazno/izlazni adresni prostor je memorijski razdvojen. Napisati sekvencu sadraja na adresnoj magistrali i magistrali podataka kao i tip transfera za svaki ciklus na magistrali koje procesor generie tokom izvravanja sljededeg segmenta koda. Prva rije naredbe sadri kod operacije i nain adresiranja, a registri opte namjene su duine 16 bita.

Rjeenje:

Zadatak 4.
Dvoadresni procesor sa 4 16-bitna registra opte namjene (R0-R3) povezan je sa memorijom preko asinhrone magistrale sa 16 adresnih linija, 8 linija za podatke i odgova rajudim upravljakim linijama. Adresibilna jedinica je bajt. Sadraj dijela operativne memorije dat je na sljededoj slici.

Pri pozivu potprograma ili prekidne rutine na steku se uva samo PC. Stek raste ka viim memorijskim adresama a SP ukazuje na prvu slobodnu lokaciju na vrhu steka. Pretpostaviti da je prije poetka izvravanja segmenta programa sa slike, SP=4000h, IVTP=0h, PC=3000h.

Napisati sekvencu sadraja na adresnoj magistrali i magistrali podataka kao i tip transfera (itanje ili upis) za svaki ciklus na magistrali tokom izvravanja segmenta koda sa slike. Rjeenje: Sekvenca adresa je data na slici.

ULAZ/IZLAZ
Zadatak 1.
Adresne linije i linije podataka magistrale posmatranog raunara su iroke po 16 bita. Procesor je jednoadresni i operie samo nad 16 -bitnim podacima. Ulazno-izlazni i memorijski adresni prostori su razdvojeni. Periferije PER0 i PER1 imaju upravljake, statusne i registre podataka redom na sljededim adresama: FF00h, FF01h, FF02h (PER0) i FF10h, FF11h, FF12h (PER1). U upravljakim registrima najmlai bit je bit Enable Interrupt kojim se dozvoljava prekid, najstariji je bit Start kojim se dozvoljava poetak operacije, a bit 1 je bit smera operacije (0ulaz, 1izlaz). U statusnim registrima najmlai bit je bit spremnosti Ready. Napisati program kojim se blok od 200h podataka uitava sa PER0, smeta u memoriju od lokacije F000h, obrauje proceduro m Obrada, i rezultat alje na PER1. Operacije ulaza i izlaza realizovati ispitivanjem bita spremnosti. Procedura

Obrada ne menja mesto ni duinu bloka podataka. Ovu proceduru ne treba realizovati, ved je samo pozvati na odgovarajudem mestu u programu pomodu naredbe CALL Obrada.

Rjeenje: LOAD #200h ;broja u MemCnt STORE MemCnt LOAD #F000h ;adresa u MemDst STORE MemDst LOAD #8000h ;Start=1, Enable=0, Direction=0 OUT FF00h ;pokreni kontroler LOOP1:IN FF01h ;ispitivanje bita spremnosti AND #1 JZ LOOP1 ;ako nije spreman, ekaj IN FF02h ;ulaz podatka STORE (MemDst) ;i smetanje u memoriju LOAD MemDst ;auriranje pokazivaa INC STORE MemDst LOAD MemCnt ;i brojaa DEC STORE MemCnt JNZ LOOP1 ;ako nije poslijednji, ponovi LOAD #0 ;zaustavi kontroler OUT FF00h ;Stop PER0 CALL Obrada ;obrada LOAD #200h ;broja u MemCnt STORE MemCnt LOAD #F000h ;pokaziva u MemSrc STORE MemSrc LOAD #8002h ;Start=1, Enable=0, Direction=1 OUT FF10h ;pokretanje kontrolera LOOP2:IN FF11h ;ispitivanje bita spremnosti AND #1 JZ LOOP2 ;ako nije spreman, ekaj LOAD (MemSrc) ;podatak na izlaz OUT FF12h LOAD MemSrc ;auriranje pokazivaa INC STORE MemSrc LOAD MemCnt ;i brojaa DEC STORE MemCnt JNZ LOOP2 ;ako nije poslijednji, ponovi LOAD #0 ;zaustavi kontroler OUT FF10h ;Stop PER1

Zadatak 2.
Jednoadresni procesor sa memorijski preslikanim ulazno/izlaznim adresnim prostorom, memorija, periferija PER0 sa pridruenim kontrolerom za direktan pristup memoriji DMA, i periferije PER1 i PER2 povezani su sitemskom magistralom sa 16-bitnom adresnom i 16-bitnom magistralom podataka. Adresiranje je na nivou 16-bitnih rijei. Adrese relevantnih registara su: DMA_CONTROL FF00h DMA_ADDRESS FF01h DMA_COUNT FF02h DMA_DATA FF03h DMA_STATUS FF04h PER0_CONTROL FF10h PER0_STATUS FF11h PER0_DATA FF12h U upravljakim registrima bit 0 je Start kojim se dozvoljava poetak operacije, bit 1 odreuje smer operacije (0-ulaz, 1-izlaz), bit 2 je Enable kojim se dozvoljava prekid, a u statusnim registrima bit 4 je Ready koji signalizira spremnost kontrolera. Bit 3 upravljakog registra DMA kontrolera zadaje reim rada (0-Burst, 1-ciklus po ciklus). Napisati glavni program i odgovarajude prekidne ruti ne kojima se: blok 200h rijei uitava sa PER0 i smeta u memoriju poev od adrese 1000h, zatim izvri obrada unetih podataka pozivom procedure Obrada i potom istovremeno vri prenos obraenog bloka (duina i poetna adresa bloka ostaju iste) iz memorije u PER1 i PER2. Ulaz realizovati koridenjem DMA kontrolera u Burst reimu, izlaz na periferiju PER1 mehanizmom prekida, a izlaz na periferiju PER2 ispitivanjem bita spremnosti. PER1_CONTROL FF20h PER1_STATUS FF21h PER1_DATA FF22h PER2_CONTROL FF30h PER2_STATUS FF31h PER2_DATA FF32h

Rjeenje: LOAD #200h STORE FF02h LOAD #1000h STORE FF01h LOAD #0 STORE MemSem0 LOAD #1 STORE FF10h ; Start PER0 LOAD #5 STORE FF00h ; Start DMA ... Wait: LOAD memSem0 CMP #1

JNZ Wait CALL Obrada LOAD #200h STORE MemCnt1 STORE MemCnt2 LOAD #1000h STORE MemAdr1 STORE MemAdr2 LOAD #0 STORE MemSem1 LOAD #7 STORE FF20h ; Start PER1 LOAD #3 STORE FF30h ; Start PER2 Loop2: LOAD FF31h AND #10h JZ Loop2 LOAD (MemAdr2) STORE FF32h INC MemAdr2 DEC MemCnt2 JNZ Loop2 LOAD #0 STORE FF30h End: LOAD MemSem1 CMP #1 JNZ End HALT Dma_Int: PUSH LOAD #0 STORE FF00h STORE FF10h LAOD #1 STORE MemSem0 POP RTI Per1_Int: PUSH LOAD (MemAdr1) STORE FF22h INC MemAdr1 DEC MemCnt2 JNZ Back LOAD #0 STORE FF20h LOAD #1 STORE MemSem1 Back: POP RTI

Zadatak 3.

Jednoadresni procesor sa razdvojenim adresnim prostorima, memorija, periferije PER0 i PER1 povezani su sitemskom magistralom sa 16 adresnih linija i 16 linija za podatke. Adresiranje je na nivou 16-bitnih rijei. Mehanizam prekida je vektorisan a broj ulaza u IV tabelu je odreen fiksno (0 za PER0, 1 za PER1). Adrese relevantnih registara su: PER0_CONTROL PER0_STATUS PER0_DATA FF00h FF01h FF02h PER1_CONTROL PER1_STATUS PER1_DATA FF10h FF11h FF12h

U upravljakim registrima bit 0 je Start kojim se dozvoljava poetak operacije, bit 1 odreuje smer operacije (0-ulaz, 1-izlaz), bit 4 je Enable kojim se dozvoljava prekid, a u statusnim registrima bit 0 je Ready koji signalizira spremnost kontrolera. Napisati glavni program i odgovarajudu prekidnu r utinu kojima se: uporedo vri uitavanje niza A(i) (i=0FFh) sa PER0 u memorijiski blok koji poinje od adrese 1000h, i niza B(i) (i=0,..99) sa PER1 u memorijski blok poev od adrese 1100h, zatim izvri sabiranje unetih nizova (B(i) = A(i) + B(i)) i rezult ujudi niz alje na periferiju PER0. Ulaz sa PER0 realizovati koridenjem mehanizma prekida, ulaz sa PER1 realizovati ispitivanjem bita spremnosti, a izlaz na PER0 koridenjem mehanizma prekida. Kontrolni registar PER0 moe da se ita. Rjeenje Glavni program: LOAD #100h STORE MemCnt0 STORE MemCnt1 LOAD #1000h STORE MemAdr0 LOAD #1100h STORE MemAdr1 LOAD #0 STORE MemSem0 LOAD #0 ; smer: ulaz STORE MemDir LOAD #11h OUT FF00h LOAD #01h OUT FF10h Crdy: IN FF11h AND #01h JZ Crdy IN FF12h STORE (MemAdr1) INC MemAdr1 DEC MemCnt1 JNZ Crdy LOAD #0 OUT FF10h Wait: LOAD MemSem0

CMP #1 JNZ Wait LOAD #100h STORE MemCnt LOAD #1000h STORE MemA LOAD #1100h STORE MemB Loop: LOAD (MemA) ADD (MemB) STORE (MemB) INC MemA INC MemB DEC MemCnt JNZ Loop LOAD #100h STORE MemCnt0 LOAD #1100h STORE MemAdr0 LOAD #0 STORE MemSem0 LOAD #1 ; smer: izlaz STORE MemDir LOAD #13h OUT FF00h Wait1:LOAD MemSem0 CMP #1 JNZ Wait1 HALT Prekidna rutina: PUSH LOAD MemDir ; koji smer? CMP #1 JZ Out ; input IN FF02h STORE (MemAdr0) Inc: INC MemAdr0 DEC MemCnt0 JNZ Back LOAD #1 STORE MemSem0 LOAD #0 OUT FF00h JMP Back ;output Out: LOAD (MemAdr0) OUT FF02h JMP Inc

Back: POP RTI

Zadatak 4.
Jednoadresni procesor sa razdvojenim adresnim prostorima, periferije PER0 i PER1, i memorija povezani su magistralom sa 16 adresnih linija i 16 linija za podatke. Adresiranje je na nivou 16-bitnih rijei. Adrese relevantnih registara date su:

PER0_CONTROL PER0_STATUS PER0_DATA

FF00h FF01h FF02h

PER1_CONTROL PER1_STATUS PER1_DATA

FF10h FF11h FF12h

Bit 0 kontrolnih registara je Start bit, bit 1 definie smer operacije (0ulaz, 1izlaz), a bit 2 je Enable kojim se omoguduje prekid. Bit 4 statusnih registara je Ready bit. Napisati program i odgovarajude prekidne rutine kojima se realizuje: uitavanje niza A(i), i = 0, , 999 sa PER0 u memorijski blok koji poinje od adrese 2000h i slanje kvadriranog niza (A(i)*A(i)) na PER1. Prijem sa PER0 i slanje na PER1 realizovati uporedo, tj. omoguditi slanje elementa niza na PER1 im je to mogude. Ulaz realizovati mehanizmom prekida, a izlaz ispitivanjem bita spremnosti.

Rjeenje Glavni program: LOAD #2000h ;poetna adresa ulaznog bafera STORE MemWP ;pokaziva koji prati uitavanje sa PER0 STORE MemRP ;pokaziva koji prati slanje na PER1 LOAD #1000 ;broj elemenata niza STORE CntW STORE CntR LOAD #5 OUT FF00h ;start PER0 LOAD #3 OUT FF10h ;start PER1

Chck: IN FF11h AND #10h JZ Chck ;provera da li postoji element spreman za slanje LOAD MemWP SUB MemRP JLE Chck ;skok ako je rezultat oduzimanja =< 0 LOAD (MemRP) MUL (MemRP) ;kvadriranje elementa niza OUT FF12h ;slanje rezultujueg elementa na PER1 INC MemRP DEC CntR JNZ Chck LOAD #0 OUT FF10h ;Stop PER1 HALT Prekidna rutina periferije PER0: Per1: PUSHA IN FF02h STORE (MemWP) INC MemWP DEC CntW JNZ Back LOAD #0 OUT FF00h ;Stop PER0 Back: POPA RTI

Zadatak 5.

Dvoadresni procesor sa 16 registara opte namjene poseduje memorijski preslikan ulazno/izlazni adresni prostor. Procesor, memorija, periferije PER0, PER1 i PER2 povezani su sistemskom magistralom sa 16 adresnih linija i 16 linija za podatke. Adresiranje je na nivou 16bitnih rijei. Adrese relevantnih registara su:

PER0_CONTROL PER0_STATUS PER0_DATA

FF00h PER1_CONTROL FF01h PER1_STATUS FF02h PER1_DATA

FF10h PER2_CONTROL FF11h PER2_STATUS FF12h PER2_DATA

FF20h FF21h FF22h

U upravljakim registrima bit 15 je Start kojim se dozvoljava poetak operacije, bit 0 odreuje smer operacije (0 ulaz, 1izlaz), bit 7 je Enable kojim se dozvoljava prekid, a u statusnim registrima bit 0 je Ready koji signalizira spremnost kontrolera periferije. Napisati glavni program i odgovarajude prekidne rutine kojima se uporedo: vri uitavanje niza A(i) (i = 0, , 99) sa PER0 u memorijski blok koji poinje od adrese 1000, i niza B(i) (i = 0, , 99) sa PER1 u memorijski blok poev od adrese 2000, formiranje rezultujudeg niza C(i) (C(i) = A(i) + B(i), i = 0, , 99) koji se smeta u memorijski blok poev od adrese 3000, i slanje rezultujudeg niza C na periferiju PER2. Formiranje niza C tee uporedo sa uitavanjem, tj. im se uita i-ti element niza A(B) formira se i-ti element niza C pod uslovom da je uitan i-ti element niza B(A). Takoe, slanje niza C na PER2 treba zapoeti prije nego to je ceo niz C formiran, tj. im je neki element niza C formiran treba omoguditi njegovo slanje na PER2. Ulaz sa PER0 i PER1 realizovati koridenjem mehanizma prekida, a izlaz na PER2 ispitivanjem bita spremnosti.

Rjeenje: MOV R0, #-1 MOV mcA, R0 MOV mcB, R0 MOV mwcC, R0 MOV R1, R0 ;R1 is read pointer MOV FF00h, #8080h ;start PER0 MOV FF10h, #8080h ;start PER1 MOV FF20h, #8001h ;start PER2 Wait: MOV R0, FF21h ;read status AND R0, #1 JZ Wait MOV R2, mwcC

CMP R2, R1 BLE Wait INC R1 MOV FF22h, 3000[R1] CMP R1, #99 JNZ Wait MOV FF20h, #0 HALT Prekidna rutina za PER0: CLI PUSH R0 PUSH R1 PUSH R2 MOV R0, FF02h MOV R1, mcA INC R1 MOV mcA, R1 MOV 1000[R1], R0 CMP R1, mcB BGT SkipA ADD R0, 2000[R1] MOV R2, mwcC INC R2 MOV mwcC, R2 MOV 3000[R2], R0 SkipA: CMP R1, #99 JNZ BackA MOV FF00h, #0 BackA: POP R2 POP R1

POP R0 RTI Prekidna rutina za PER1: CLI PUSH R0 PUSH R1 PUSH R2 MOV R0, FF12h MOV R1, mcB INC R1 MOV mcB, R1 MOV 2000[R1], R0 CMP R1, mcA BGT SkipB ADD R0, 1000[R1] MOV R2, mwcC INC R2 MOV mwcC, R2 MOV 3000[R2], R0 SkipB: CMP R1, #99 JNZ BackB MOV FF10h, #0 BackB: POP R2 POP R1 POP R0 RTI

Zadatak 6.

Dvoadresni procesor sa razdvojenim I/O i memorijsko adresnim prostorima vezan je na 16bitnu adresu i 8-bitnu magistralu podataka. Na magistralu su vezana dva kontrolera periferije, iji se registri nalaze na sljededim adresama: Data (0026h, 0028h), Control (0030h, 0032h) i Status (0020h, 0022h). Svi registri su 8-bitni, adresiranje je bajtovsko. U statusnim registrima bit 2 je Ready, a u upravljakim registrima bit 0 je Start. Napisati program koji uitava vrijednosti sa obe periferije, tehnikom ispitivanja bita Ready, i pristigle vrijednosti sumira, posebno za svaku periferiju u lokacijama SUM1 i SUM2. Ulaz se prekida kada sa bilo koje periferije stigne vrijednost 0. Ureaji alju podatke razliitim brzinama, a podatak koji je pristigao treba uitati to prije.

Rjeenje: MOV SUM1, #0 MOV SUM2, #0 OUT 30h, #1 ; Start PER1 OUT 32h, #1 ; Start PER2 LOOP: IN R0, 20h ; Test PER1 AND R0, #4 JNZ PER1 TSTP2: IN R0, 22h ; Test PER2 AND R0, #4 JZ LOOP PER2: IN R0, 28h ;Input from PER2 OR R0, R0 JZ END ADD SUM2, R0 JMP LOOP PER1: IN R0, 26h ;Input from PER1 OR R0, R0 JZ END ADD SUM1, R0 JMP TSTP2 END: OUT 30h, #0; Stop PER1

OUT 32h, #0; Stop PER2 ...

Zadatak 7.
Jednoadresni procesor sa memorijski mapiranim ulazno/izlaznim adresnim prostorom, memorija, periferija PER0 (adrCR=ff10h, adrSR=ff11h, adrDR=ff12h), periferija PER1 (adrCR=ff20h, adrSR=ff21h, adrDR=ff22h) sa pridruenim kontrolorom periferije DMA1 (adrCR=f f00h, adrSR=ff01h, adrDR=ff02h, adrCNT=ff03h, adrAs=ff04h, adrAd=ff05h) i periferija PER2 (adrCR=ff30h, adrSR=ff31h, adrDR=ff32h) povezani su sistemskom magistralom sa 16-bitnom adresnom i 16-bitnom magistralom podataka. Adresiranje je na nivou 16-bitnih rijei. U upravljakim registrima bit 0 je Start kojim se dozvoljava poetak operacije, bit 1 odreuje smer operacije (0-ulaz, 1-izlaz), bit 2 je Enable kojim se dozvoljava prekid, a u statusnim registrima bit 4 je Ready koji signalizira spremnost kontrolera. Bit 3 upravljakog registra DMA kontrolera zadaje reim rada (0-Burst, 1-ciklus po ciklus).

a) Napisati glavni program i odgovarajude prekidne rutine kojima se obavlja sljededi prenos. Sa periferije PER1 uitava se niz podataka A(i) duine 80h i smeta u memoriju poev od adrese 1000h koridenjem DMA kontrolera u burst reimu rada, pa se po zavretku prenosa uita niz podataka B(i) iste duine sa periferije PER1 i smeta u memoriju poev od adrese 2000 koridenjem DMA kontrolera u ciklus po ciklus reimu rada. Po zavretku unosa nizova vri se uporedo slanje podataka na periferije PER0 i PER2, i to tako to se na bru periferiju alje podatak A(i)/B(i), a na sporiju A(i) B(i) (i=1, ..., 80h). Izlaz na periferiju PER0 realizovati koridenjem mehanizma pre kida, a izlaz na periferiju PER2 ispitivanjem bita spremnosti.

b) Da li procesor moe pristupiti registru podataka periferije PER1 tokom uitavanja niza podataka A(i) sa ove periferije? Obrazloiti odgovor.

Rjeenje: a) Glavni program: LOAD #0 STORE MemSem STORE MemSem0 STORE MC0

STORE MC2 LOAD #80h STORE FF03h LOAD #1000h STORE FF05h STORE MAA0 STORE MAA2 LOAD #1h STORE FF20h LOAD #5h STORE FF00h Wait: LOAD MemSem CMP #1 JZ Wait LOAD #0 STORE MemSem LOAD #80h STORE FF03h LOAD #2000h STORE FF05h STORE MAB0 STORE MAB2 LOAD #1h STORE FF20h LOAD #13h STORE FF00h Wait2: LOAD MemSem CMP #1 JZ Wait2 LOAD #3h

STORE FF30h LOAD #7h STORE FF10h ChRd: LOAD FF31h JMP IncMa0 Skip0: LOAD (MAA0) SUB (MAB0) IncMa0: STORE FF12h INC MC0 INC MAA0 INC MAB2 AND #10h JZ ChRd INTD LOAD (MC2) SUB (MC0) JL Skip LOAD (MAA2) DIV (MAB2) JMP IncMa Skip: LOAD (MAA2) SUB (MAB2) IncMa: STORE FF32h INC MC2 INC MAA2 INTE INC MAB2 LOAD MC2 CMP #80h JNZ ChRd

STORE FF30h ... ChPer0: LOAD MemSem0 CMP #1 JZ ChPer0 HALT DMA_Int: PUSHA LOAD 0 STORE FF20h STORE FF00h INC STORE MemSem POPA RTI PER0_Int:PUSHA LOAD (MC0) SUB (MC2) JL Skip0 LOAD (MAA0) DIV (MAB0) LOAD MC0 CMP #80h JNZ Back INCA STORE MemSem0 Back: POPA RTI b) NE. Procesor ne moe izvriti ciklus itanja na magistrali jer Dma kontroler radi u burst reimu i dri magistralu zauzetu do zavretka prenosa cijelog bloka podataka

Zadatak 8.
Jednoadresni procesor sa razdvojenim adresnim prostorima, memorija, periferija PER0, periferije PER1 i PER2 sa pridruenim kontrolerima za direktan p ristup memoriji DMA1 i DMA2, redom, povezani su sistemskom magistralom sa 16-bitnom adresnom i 16-bitnom magistralom podataka. Adresiranje je na nivou 16-bitnih rijei.

Adrese relevantnih registara su: PER0_CONTROL PER0_STATUS PER0_DATA PER1_CONTROL PER1_STATUS DMA1_CONTROL DMA1_ADDRESS DMA1_COUNT DMA1_DATA DMA1_STATUS FF1h FF11h FF12h FF2h FF21h FF0h FF01h FF02h FF03h FF04h DMA2_CONTROL DMA2_ADDRESS DMA2_COUNT DMA2_DATA DMA2_STATUS FF06h FF07h FF08h FF09h FF0Ah PER1_DATA PER2_CONTROL PER2_STATUS PER2_DATA FF22h FF3h FF31h FF32h

U upravljakim registrima bit 0 je Start kojim se dozvoljava poetak operacije, bit 1 odreuje smer operacije (0-ulaz, 1-izlaz), bit 2 je Enable kojim se dozvoljava prekid, a u statusnim registrima bit 4 je Ready koji signalizira spremnost kontrolera. Bit 3 upravljakog registra DMA kontrolera zadaje reim rada (0-Burst, 1-ciklus po ciklus). Napisati glavni program i odgovarajude prekidne rutine kojima se obavlja sljededi prenos. Sa periferije PER0 se prihvata beskonani niz podataka i uporedo prosleuje periferijima PER1 i PER2. Na raspolaganju su dva bafera BP0 i BP1 koji se pune naizmenino podacima sa periferije PER0. Naime, uporedo sa punjenjem bafera BP0 odvija se pranjenje bafera BP1 slanjem podataka na periferije PER1 i PER2 i obratno, dok se puni bafer BP1 prazni se bafer BP0 slanjem podataka na periferije PER1 i PER2. Veliine bafera su 100h rijei a poetne adrese bafera BP0 i BP1 su 1000h i 1100h, redom. Ulaz sa periferije PER0 realizovati koridenjem mehanizma prekida, izlaz na periferiju PER1 koridenjem DMA kontrolera koji radi u ciklus-po-ciklus reimu, a izlaz na periferiju PER2 koridenjem DMA kontrolera koji radi u Burst reimu. Rjeenje ; initialize input from PER0 (fill BP0) LOAD #0

STORE Mfin LOAD #1000h SOTRE Ain LOAD #100h STORE Cntin LOAD #5 OUT FF10h ; ... Wait1: LOAD Mfin AND #1 JZ Wait1 ; initialize output from BP0 and input to BP1 Swap: LOAD #1000h STORE Aout LOAD #1100h STORE Ain LOAD #1 STORE Dir Init: LOAD #0 ; .... Wait2: LOAD Mfin AND MFout1 AND MFout2 JZ Wait2 LOAD Dir AND #1 JZ Swap ; initialize output from BP1 and input to BP0 LOAD #1100 STORE Aout LOAD #1000h STORE Ain LOAD #0 STORE Dir JMP Init Prekidna rutine: DMA1Int: PUSH LOAD #0 OUT FF20h STORE Mfin STORE MFout1 STORE MFout2 LOAD #100 STORE Cntin ; init DMAs LOAD Aout OUT FF01h

OUT FF07h LOAD #100h OUT FF02h OUT FF08h ; start controllers LOAD #5 OUT FF10h LOAD #Fh OUT FF00h LOAD #7 OUT FF06h LOAD #3h OUT FF20h LOAD #3h OUT FF30h OUT FF00h INC STORE MFout1 POP RTI DMA2Int: PUSH LOAD #0 OUT FF30h OUT FF06hh INC STORE MFout2 POP RTI Per0Int: PUSH IN FF12h STORE (Ain) INC Ain DEC Cntin JNZ Back0 LOAD #0 OUT FF10h ;stop PER0 INC STORE MFin Back0: POP RTI

Vous aimerez peut-être aussi