vezbe aor 2002_2003

28
Vežbe iz Arhitekture i organizacije računara

Upload: emir-imamovic

Post on 15-Jan-2016

71 views

Category:

Documents


1 download

DESCRIPTION

Vežbe iz Arhitekture i organizacije računara

TRANSCRIPT

Page 1: Vezbe AOR 2002_2003

Vežbe iz Arhitekture i organizacije računara

Page 2: Vezbe AOR 2002_2003

ProcesorZadatak 1

Opis arhitekture procesora

Procesor je jednoadresni i ima samo jedan registar za podatke (akumulator, ACC) i po jedan bazni (B), indeksni (X) i adresni (A) registar. Svi registri su 16-bitni. Pored ovih registara, postoji registar PSW sa uobičajenim značenjem i indikatorima N, Z, C i V. Registar SP je pokazivač steka. Stek raste prema višim adresama, a SP pokazuje na prvu slobodnu lokaciju.

Memorijske adrese su širine 16 bita, adresiranje je bajtovsko, a operandi su celobrojni 16-bitni brojevi (niži bajt je na nižoj adresi). Širina magistrale podataka je 8 bita. Vreme odziva memorije je neodređeno, magistrala je asinhrona.

Instrukcije su dužine jedan ili tri bajta. U prvom bajtu nalazi se kôd operacije i način adresiranja. U drugom i trećem bajtu je eventualni pomeraj ili konstanta. Na postojanje pomeraja ukazuje bit 0 instrukcijske reči.

Obradu prekida ne treba realizovati u zadatku. U nastavku su opisani načini adresiranja i naredbe koje treba realizovati u zadatku. Format naredbe dat je na slici.

7 3 2 1 0

OpCode AM D

Način adresiranja definisan je bitima 2 i 1 instrukcijske reči. Bit D u instrukcijskoj reči određuje da li postoji pomeraj za dati način adresiranja (D = 1—postoji pomeraj). Ako postoji pomeraj, adresa operanda određuje se sabiranjem sadržaja odgovarajućeg adresnog registra i pomeraja.

AM Vrednost Oznaka Značenje00h #konstanta Neposredno01h A Memorijsko (preko A)02h B Bazno (preko B)03h X Indeksno (preko X)

Na primer, navedene naredbe imaju značenje prikazano na slici.

ADD #5 dodavanje konstante 5 na ACC;SUBA oduzimanje operanda sa adrese [A] od ACC;CMPB poređenje ACC sa op. na koji ukazuje B;ANDB 0Fh logičko I operanda sa adrese [B]  0Fh i operanda iz ACC;ORX logičko ILI operanda na koji ukazuje X i operanda iz ACC;XORX 0Eh logičko ILI operanda sa adrese [X]  0Eh i operanda iz ACC.Vrednost Oznaka Značenje

0h LD Load Accumulator1h ST Store Accumulator2h LAEA Load A with Effective Address3h LBEA Load B with Effective Address4h LXEA Load X with Effective Address5h ADD Add to Accumulator6h SUB Subtract from Accumulator7h CMP Compare Accumulator with8h AND Logical And with Accumulator9h OR Logical Or with AccumulatorAh XOR Logical ExOr with Accumul.

Na slici dati su kodovi naredbi koje treba realizovati u zadatku. Preostali kodovi poredstavljaju naredbe koje ne treba realizovati. Mnemonici u asembleru imaju još sufiks za način adresiranja (A, B ili X). Kôd operacije nalazi se u bitima 7 do 3 instrukcije.

Page 3: Vezbe AOR 2002_2003

Organizacija procesora

Na slici prikazana je principijelna šema organizacije procesora. ALU ima sledeće upravljačke signale: C0, ALUadd, ALUsub, ALUincA, ALUand, ALUor, ALUxor, ALUtransferB.

MAR

MDR

IR

SP

PC

ACC

A

X

B

TEMP

ALU

A B

KM

PSW

G

IB OB

16 16

Zadatak:

a) Nacrtati kompletnu šemu veze 8-bitnog registra MDR sa internom i eksternom magistralom.

b) Definisati mrežu koja generiše upravljačke signale za ALU, ali tako da sve naredbe koje koriste ALU za izračunavanje rezultata (aritmetičke i logičke) imaju jedinstven, zajednički mikrokôd, a ne svaka posebni deo mikroprograma.

c) Napisati kompletan mikroprogram za ovaj procesor (samo za navedene naredbe, a predvideti postojanje ostalih), tako da bude prilagođen mikroprogramskoj upravljačkoj jedinici, pri čemu se u jednoj mikronaredbi nalaze i polje sa upravljačkim signalima i polja koja definišu uslovni skok u mikroprogramu.

d) Kodovati deo mikrokoda—prvu mikronaredbu koja sadrži uslovni skok i dve sledeće. Koristiti sledeći format (sleva na desno): prvo 8-bitno polje za kodiranje uslova, drugo 8-bitno

Page 4: Vezbe AOR 2002_2003

polje sa adresom skoka u mikroprogramu i treće polje sa upravljačkim signalima, potrebne širine. Koristiti horizontalno mikroprogramiranje. Prva dva polja kodovati heksadecimalno, a treće binarno.

e) Napisati na asembleru ovog procesora program koji u niz bajtova na adresi 100h, koji je dugačak onoliko koliko pokazuje lokacija 98h, upisuje podatak koji se nalazi na adresi 23h. Pretpostaviti da sve aritmetičke i logičke operacije deluju na flegove i da postoje odgovarajuću uslovni skokovi, koji za uslove imaju stanje potrebnog flega.

f) Koju naredbu biste dodali (ali ne novi način adresiranja) da bi se zadatak iz prethodne tačke rešio za slučaj kada niz ne počinje na adresi 100h, već se adresa njegovog početka nalazi na adresi 100h? Predložiti mnemonik i objasniti značenje te naredbe. Predložiti takođe i način kodovanja ove naredbe.

Rešenje:

a)

rdFFCMDRHinMDRLin

MDR

88

8

LD

MUX12 0

8

0

1

MDRoutMDRout2

IBHIBL

88

IBH IBL DB

DBus

88 8

b) ALUadd = ALUop*ADD + add

ALUsub = ALUop*(SUB + CMP)ALUand = ALUop*ANDALUor = ALUop*ORALUinc = incALUtransferB = transferB

c) ; Faza dohvatanja instrukcije

BEGIN: PCout,MAROBin,inc,ALUout,PCinreadwmfcMDRout,IRinPCout,MAROBin,clTEMP,branch(D=0,OPCASE)read,PCout,inc,ALUout,PCin ; dohvatanje pomerajawmfcMDRout,TEMPIBLin,PCout,MAROBinread,PCout,inc,ALUout,PCinwmfcMDRout,TEMPIBHin

; Faza dekodovanja instrukcijeOPCASE: opcase; Faza izvršavanja instrukcija iz tabeleEXE: branch(IMM,LIMM) ; IMM=(IR2=0 and IR1=0)

REGout,add,ALUout,MARIBin,branch(ST,LST); ST instr.

Page 5: Vezbe AOR 2002_2003

branch(LEA,LLEA) ; LEA=LAEA+LBAE+LXEAreadwmfcREGout,C0,add,ALUout,MARIBinMDRout,TEMPIBLinreadwmfcMDRout,TEMPIBHin,branch(LD,LLD)

OP: branch(CMP,LCMP)ACCout,ALUop,ALUout,ACCin,ldPSW,branch(IRQ,INTH); ako ne postoji prekid (IRQ=0),; prelazak na novu naredbu:branch(,BEGIN)

; Instrukcija CMPLCMP: ACCout,ALUop,ldPSW,branch(IRQ,INTH)

branch(,BEGIN); Instrukcija LDLLD: transferB,ALUout,ACCin,branch(IRQ,INTH)

branch(,BEGIN); Instrukcija STLST: ACCout,G,MDRLin

writewmfcREGout,C0,add,ALUout,MARIBinACCout,G,MDRHinwritewmfcbranch(IRQ,INTH)branch(,BEGIN)

; Neposredno adresiranjeLIMM: branch(LD,IMMLD)

branch(LEA,IMMLEA)branch(,OP)

IMMLEA: transferB,ALUout,REGin,branch(IRQ,INTH)branch(,BEGIN)

IMMLD: transferB,ALUout,ACCin,branch(IRQ,INTH)branch(,BEGIN)

LLEA: MARout,REGin,branch(IRQ,INTH)branch(,BEGIN)

d) Deo mikroprograma koji treba kodovati je:

PCout,MAROBin,clTEMP,branch(D=0,OPCASE)read,PCout,inc,ALUout,PCinwmfc

02 0B 01 001 1 00….0(PCin,PCout,MARIBout,MARIBin,MAROBin)

00 00 11 000 0 110000 100 00….0 (….,ALU:out,inc,add,transferB,ALUop,C0)

00 00 00 000 0 000000 001 00….0(….,read,write,wmfc)

e)

LXEA #100h ; X:=100hLBEA #23h ; B:=23hLAEA #98h ; A:=98hLDA ; ACC:=nOR #0JMPZ END ; if ACC=0 goto END

LOOP: LDB ; ACC:=[B]

Page 6: Vezbe AOR 2002_2003

STX ; [X]:=ACCLXEAX 2 ; X:=X+2LDA ; ACC:=nSUB #1 ; ACC:=ACC-1STA ; n:=ACCJMPNZ LOOP ; if n>0 goto LOOP

END:

f) Nova naredba može da se označava u asembleru kao MOV, sa sufiksom A, B ili X koji označava odredišni adresni registar. Da bi se kôd instrukcije što bolje uklopio u već postojeći format, mogu se iskoristiti dva bita postojećeg formata koja određuju adresni registar i za ovu naredbu: 01 označava da je odredište registar A, 10 označava B, i 11 označava X. Kôd operacije može da bude npr. 0Bh. Tako je kodovanje ove naredbe:

7 3 2 1 0

0Bh AM D

Zadatak 2

Opis arhitekture procesora

Procesor je nula-adresni (stek-mašina). Stek raste prema višim memorijskim lokacijama, a SP pokazuje na prvu slobodnu lokaciju. Memorijske adrese su širine 16 bita, širina magistrale podataka je 8 bita, adresiranje je bajtovsko, a dvobajtni podaci se u memoriju smeštaju tako da je na nižoj adresi niži bajt. Procesor operiše samo sa 8- i 16-bitnim celobrojnim veličinama. Na dužine operanada i rezultata ukazuju biti 0 do 2 instrukcijske reči. Vreme odziva memorije je neodređeno, magistrala je asinhrona.

Postoje samo interni prekidi usled nedozvoljenog koda operacije i prekoračenja (overflow). Prekidni mehanizam je vektorisan, a navedenim prekidima dodeljeni su fiksni ulazi 0 i 2 u vektor tabeli, respektivno.

Instrukcije su dužine jedan bajt, a samo u nekim slučajevima dva ili tri bajta, kada se u druga dva bajta nalazi konstanta (instrukcija PUSH const). U prvoj reči su uvek kôd operacije i informacije o dužini operanada i rezultata. Instrukcija ima format kao na slici.

7 3 2 1 0

OpCode

O1L

O2LRL

Skup instrukcija sa vrednostima polja OpCode dat je na slici. Oznake u uglastim zagradama označavaju dužinu podatka; O1L označava dužinu operanda1, O2L dužinu operanda2, a RL dužinu rezultata. Isto značenje imaju i odgovarajuća polja u instrukciji, tako da vrednost 0 znači širinu od 8 bita, a vrednost 1 širinu od 16 bita. Operand2 je na vrhu steka, a operand1 ispod njega. Asemblerske naredbe imaju još sufikse B ili W za dužine operanda1, operanda2 i rezultata, respektivno (npr. ADDWBW).

Vrednost Naredba Značenje00h PUSH const push const[RL]01h PUSH pop addr[16]; push (addr)[RL] ; indirektno adresiranje02h POP pop addr[16]; pop op[RL]; (addr):=op[RL]03h SWAP pop op1[O1L]; pop op2[O2L]; push op1[O1L]; push op2[O2L]04h INC pop op[RL]; op:=op+1; push op[RL]05h DEC pop op[RL]; op:=op(1; push op[RL]06h ADD pop op2[O1L]; pop op1[O2L]; res:=op1  op2; push res[RL]07h SUB pop op2[O1L]; pop op1[O2L]; res:=op1  op2; push res[RL]08h MUL pop op2[O1L]; pop op1[O2L]; res:=op1  op2; push res[RL]

Page 7: Vezbe AOR 2002_2003

09h AND pop op2[O1L]; pop op1[O2L]; res:=op1  op2; push res[RL]0Ah OR pop op2[O1L]; pop op1[O2L]; res:=op1  op2; push res[RL]0Bh XOR pop op2[O1L]; pop op1[O2L]; res:=op1 ^ op2; push res[RL]

Organizacija procesora

Na slici prikazana je principijelna šema organizacije procesora. ALU ima mogućnost obavljanja sledećih operacija: inc, dec, add, sub, mul, and, or, xor. Kombinaciona mreža označena sa SXT obavlja sledeće operacije: sxtA (8-bitni ulaz A proširuje znakom i 16-bitni rezultat daje na izlaz), transferA (8-bitni ulaz A daje i na viši i na niži bajt izlaza) i transferB (propušta 16-bitni ulaz B na izlaz).

MAR

IR

SP

PC

X

ALU

A B

M16

16ABus

16 OVFLW

Y

16 16

SXT

8 8

H L

B A

MDR

8

8

168

8

DBUS

sxtAtrAtrB

Zadatak

a) Nacrtati detaljnu šemu kombinacione mreže označene sa SXT.

b) Nacrtati šemu kombinacione mreže koja će na internu magistralu postaviti vrednost ulaza odgovarajućeg prekida kada se generiše upravljački signal ivteout. Signal koji je aktivan kada je kôd operacije nedozvoljen smatrati definisanim, dok signal koji je aktivan kada je nastupilo prekoračenje izlazi iz ALU.

c) Napisati mikroprogram za ovaj procesor (osim za naredbe sa kodom 01h do 05h, a predvideti postojanje ostalih), tako da bude prilagođen mikroprogramskoj upravljačkoj jedinici, pri čemu su mikronaredbe sa upravljačkim signalima i mikronaredbe koje definišu uslovni skok u mikroprogramu razdvojene.

d) Na asembleru ovog procesora napisati deo programa koji realizuje sledeću naredbu dodele (Pascal):

d := a[i] * b + c;

Page 8: Vezbe AOR 2002_2003

Svi podaci u naredbi su 16-bitni celi brojevi.

e) Predložiti naredbu uslovnog skoka koja bi se u potpunosti uklopila u nula-adresni format. Ova naredba treba da je dugačka jedan bajt sa kôdom operacije. Predložiti mnemonik i objasniti značenje naredbe. Naredba treba da omogući izvršavanje naredbi višeg programskog jezika tipa:

if (expression1 < expression2) then ….

Objasniti kako bi se prevodila data naredba višeg programskog jezika.

Rešenja

a)

MUX10 3

8

0

1

2

sxtAtrA trB

8 8 8 8

#0 A 7…0 B 15…8 A 7

MUX10 3

8

0

1

2

8 8 8 8

#0 A 7…0 B 7…0 A 7…0

LH

b)

IVTEout

#0

#0

#0 M 15

M 2

M 1

M 0

OpCodeErrOVFLW

INTRQ

c)

BEGIN: PCout,MARin,trB,XHin,XLinread,inc,ALUout,PCinwmfcMDRout,IRinopcase

; Binarne operacije:BIN: SPout,trB,XHin,XLin

dec,ALUout,SPin,MARinread,SPout,trB,XHin,XLinwmfcbranch(IR1,FOP2L)sxtA,YHin,YLin

; Dohvatanje prvog operanda:FOP1: dec,ALUout,SPin,MARin

read,SPout,trB,XHin,XLinwmfcbranch(IR2,FOP1L)sxtA,XHin,XLin

BINOP: ALUop,ALUout,MDRLinwrite

Page 9: Vezbe AOR 2002_2003

wmfcALUOP,ALUout,MDRHinSPout,trB,XHin,XLininc,ALUout,SPin,MARin,trB,XHin,XLinbranch(IR0=0,END)write,inc,ALUout,SPinwmfc

END: branch(IRQ,INTH)branch(,BEGIN)

FOP2L: trA,YHin,dec,ALUout,MARin,SPinread,SPout,trB,XHin,XLinwmfctrA,YLinbranch(,FOP1)

FOP1L: dec,ALUout,SPin,MARinread,trA,XHinwmfctrA,XLinbranch(,BINOP)

d)

PUSHW aPUSHW iPUSHWPUSHB 2MULWBWADDWWWPUSHWPUSHW bPUSHWMULWWWPUSHW cPUSHWADDWWWPUSHW dPOPW

e) Tražena instrukcija može da ima mnemonik:

BZ (Branch on Zero)

i značenje:

pop addr[16]; pop op[RL]; if (op = 0) goto addr;

Analogno, mogu da postoje i instrukcije BN (Branch on Negative) i BP (Branch on Positive).

Zadatak 3

Opis arhitekture procesora

Procesor je troadresni i ima 16 registara opšte namene, R0 do R15, svi su 16-bitni. Postoje i registri PSW i SP sa uobičajenim značenjem. Memorijske adrese su širine 16 bita, širina magistrale podataka je 16 bita, a adresiranje je na nivou 16-bitnih reči. Procesor operiše samo sa 16-bitnim celobrojnim veličinama (u daljem tekstu reč označava 16-bitnu veličinu). Ulazno/izlazni adresni prostor je memorijski preslikan. Vreme odziva memorije je neodređeno, magistrala je asinhrona.

Page 10: Vezbe AOR 2002_2003

Postoje spoljašnji maskirajući prekidi, za koje zahtevi dolaze po linijama IRQ0 do IRQ3 procesora, pri čemu je IRQ0 najprioritetniji. Prekidni mehanizam je vektorisan, a periferijama se mogu dodeliti proizvoljni ulazi u vektor tabeli. Vektor tabela počinje od adrese 0.

Postoje sledeće grupe instrukcija: troadresne instrukcije (aritmetičke, logičke itd.), dvoadresne instrikcije za prenos podataka (LOAD i STORE), jednoadresne instrukcije (CLR, INC, DEC, PUSH, POP itd.), instrukcije skokova (bezuslovni i uslovni) i ostale (manipulacije indikatorima, poziv potprograma, povratak iz potprograma ili prekida itd.). Instrukcije su dužine jedne ili dve reči. U prvoj reči su uvek kôd operacije i informacije o načinu adresiranja operanada. Samo kod instrukcija prenosa podataka (LOAD i STORE) postoji druga reč u kojoj je adresa ili neposredni operand. Format troadresnih instrukcija i instrukcija LOAD i STORE dat je na slici. Bit L/S označava da li se radi o LOAD ili STORE instrukciji.

15 12 11 8 7 4 3 0

OpCode REG1 REG2 REG315 12 11 10 8 7 4 3 0

OpCode L/S AM REG2 REG3

Kod svih troadresnih i jednoadresnih instrukcija (osim dvoadresnih LOAD i STORE), operandi i odredište su isključivo u registrima R0 do R15. Troadresne instrukcije imaju sledeći format: polje OpCode sadrži kôd operacije, polja REG1 i REG2 kodove registara (od 0 do 15) u kojima su prvi i drugi operand, a polje REG3 kôd registra u koji se smešta rezultat.

Kod dvoadresnih instrukcija za prenos podataka (LOAD i STORE), odredište za LOAD i izvorište za STORE su isključivo registri R0 do R15. Ovaj operand biće nazivan prvim operandom. Drugi operand je neposredni podatak u drugoj reči instrukcije (samo za LOAD), u nekom od registra R0 do R15, ili u memoriji. Samo ove instrukcije operišu podacima u memoriji. Ove instrukcije imaju sledeći format prve reči: polje OpCode sadrži kôd operacije (1100), polje L/S određuje smer prenosa (0-LOAD, 1-STORE), polje AM sadrži kôd načina adresiranja drugog operanda, polje REG2 sadrži kôd registra u kome je drugi operand kod registarskog direktnog adresiranja, a polje REG3 kôd registra u kome je prvi operand koji je uvek u registru (odredište za LOAD i izvorište za STORE). Postoje četiri načina adresiranja drugog operanda, kao što je prikazano na slici.

AM Značenje Primer u asembleru000 Neposredno adresiranje LOAD R0, #1234h010 Registarsko direktno STORE R1, R3100 Memorijsko direktno STORE R2, 0100h101 Memorijsko indirektno LOAD R1,[0100h]

Organizacija procesora

Organizacija procesora data je na slici. ALU ima, pored ostalih, i kontrolni ulaz incA za inkrementiranje vrednosti na A ulazu. Mogu se koristiti sve potrebne ostale instrukcije u programiranju, sa odgovarajućim mnemonicima.

Page 11: Vezbe AOR 2002_2003

Zadatak:

a) Nacrtati strukturnu šemu mreže koja povezuje izlaze registra Ri (i = 0…15) sa internom magistralu M kada je aktivan upravljački signal REGout i jedan od signala regsel1, regsel2 i regsel3, koji služe za selekciju registra pomoću polja REG1, REG2 i REG3 instrukcijske reči.

b) Napisati mikroprogram za ovaj procesor, sa fazom izvršavanja samo za instrukciju LOAD (za sve načine adresiranja), a predvideti postojanje ostalih. Kôd treba da bude prilagođen mikroprogramskoj upravljačkoj jedinici, pri čemu se u jednoj mikronaredbi nalaze i polje sa upravljačkim signalima i polja koja definišu uslovni skok u mikroprogramu. Ne treba pisati mikroprogram za obradu prekida, ali treba predvideti njegovo postojanje (poziv na odgovarajućim mestima). Dohvatanje eventualne druge reči instrukcije treba da bude u fazi izvršavanja instrukcije.

c) Napisati na asembleru ovog procesora program koji inkrementira svaki element niza reči počev od adrese 100h. Niz je dugačak onoliko koliko pokazuje sadržaj lokacije 99h. Lokacija 98h je slobodna za korišćenje.

d) Koji način adresiranja treba dodati procesoru da bi se broj pristupa memoriji kod pristupa elementima niza, poput onog iz prethodne tačke, smanjio? Objasniti značenje i definisati način kodiranja ovog načina adresiranja, tako da se što bolje uklopi u dati format instrukcija LOAD i STORE.

Rešenja

a) Tražena mreža prikazana je na slici.

Page 12: Vezbe AOR 2002_2003

b)

; Dohvatanje instrukcijeBEGIN: PCout,MARin,Xin

read,incA,ALUout,PCinwmfcMDRout,IRin

; Dekodovanje instrukcijeopcase

; LOAD instrukcijaLOAD: admodld ; način adresiranja za LOAD; Neposredno adresiranjeLDIMM: PCout,MARin,Xin

read,incA,ALUout,PCinwmfcMDRout,regsel3,REGin,branch(IRR,INTH)branch(,BEGIN)

; Registarsko direktno adresiranjeLDRD: regsel2,REGout,TEMPin

TEMPout,regsel3,REGin,branch(IRR,INTH)branch(,BEGIN)

; Memorijsko direktno adresiranjeLDMD: PCout,MARin,Xin

read,incA,ALUout,PCinwmfcMDRout,MARinreadwmfcMDRout,regsel3,REGin,branch(IRR,INTH)branch(,BEGIN)

; Memorijsko indirektno adresiranjeLDMI: PCout,MARin,Xin

read,incA,ALUout,PCinwmfcMDRout,MARinreadwmfcMDRout,MARinreadwmfcMDRout,regsel3,REGin,branch(IRR,INTH)branch(,BEGIN)

Page 13: Vezbe AOR 2002_2003

c) Traženi program je dat na slici.

START: LOAD R0,99h ; R0:=nLOAD R1,#100h ; R1:=100hSTORE R1,98h ; M[98h]:=i

LOOP: LOAD R1,[98h] ; R1:=a[i]INC R1 ; R1:=R1+1STORE R1,[98h] ; a[i]:=R1LOAD R1,98h ; R1:=iINC R1 ; R1:=R1+1STORE R1,98h ; i:=R1DEC R0 ; R0:=R0-1JNZ LOOP ; NEXT

d) Potrebno je dodati registarsko indirektno adresiranje. Kodovanje može biti:.15 12 11 10 8 7 4 3 0

1 1 0 0 L/S 0 1 1 REG2 REG3

OpCode

AM

Zadatak 4

Opis arhitekture procesora

Procesor je troadresni i ima 8 registara opšte namene, R0 do R7, svi su 32-bitni. Postoje i registri PSW i SP sa uobičajenim značenjem. Memorijske adrese su širine 32 bita, širina magistrale podataka je 32 bita, a adresiranje je na nivou 32-bitnih reči. Procesor operiše samo sa 32-bitnim celobrojnim veličinama (u daljem tekstu reč označava 32-bitnu veličinu). Ulazno/izlazni i memorijski adresni prostori su razdvojeni. Vreme odziva memorije je neodređeno, magistrala je asinhrona.

Postoje spoljašnji maskirajući prekidi, za koje zahtevi dolaze po linijama IRQ0 do IRQ7 procesora, pri čemu su svi ulazi istog prioriteta. Pri prekidu se na steku čuvaju PC, PSW i svi R0 do R7, tim redom, i svi maskirajući prekidi se onemogučavaju brisanjem bita I u PSW.

Postoje sledeće grupe instrukcija: troadresne instrukcije (aritmetičke, logičke itd.), dvoadresne instrukcije za prenos podataka (MOV, IN i OUT), jednoadresne instrukcije (CLR, INC, DEC, PUSH, POP itd.), instrukcije skokova (bezuslovni i uslovni) i ostale (manipulacije indikatorima, poziv potprograma, povratak iz potprograma ili prekida itd.). Instrukcije su dužine jedne do tri reči. U prvoj reči su uvek kôd operacije i informacije o načinu adresiranja operanada. Prvi operand je i odredište.

Instrukcija MOV ima dva operanda, i oba mogu biti u svim dozvoljenim načinima adresiranja; prvi operand je i odredište. Instrukcije IN i OUT imaju jedan operand u registru Ri, a drugi operand može biti određen svim dozvoljenim načinima adresiranja. Ostale instrukcije mogu imati sve operande u svim dozvoljenim načinima adresiranja. Načini adresiranja su dati na slici.

Način adresiranja Primer u asembleruNeposredno MOV R0, #1234hRegistarsko direktno MOV R1, R3Registarsko indirektno MOV (R2), #1234Registarsko indirektno sa pomerajem MOV Pom(R1),#0

Procesor poseduje posebnu instrukciju za rad sa nizovima reči u memoriji (string instrukcija). To je troadresna instrukcija MOVS Rdst,Rsrc,Rcnt. Ona kopira blok memorijskih reči sa jednog mesta na drugo. Adresa početka izvorišnog bloka je u registru Rsrc, adresa početka odredišnog bloka je u registru Rdst, a dužina bloka je u registru Rcnt, gde su Rdst,Rsrc,Rcnt registri opšte namene (R0 do R7). Sadržaj registra Rcnt može biti i

Page 14: Vezbe AOR 2002_2003

nula. Ova instrukcija menja vrednosti ovih registara. Na kraju izvršavanja ove instrukcije, Rsrc i Rdst ukazuju na prvu memorijsku reč iza bloka izvorišta/odredišta, Rcnt ima vrednost nula, a indikator Z se postavlja na 1. Prekid se obrađuje tek na završetku cele instrukcije MOVS. Format ove instrukcije je dat na slici.31 9 8 6 5 3 2 0

OpCode REGdst REGsrc REGcnt

Za potrebe maskiranja prekida postoji 32-bitni registar IMR. Biti 0 do 7 ovog registra maskiraju ulaze IRQ0 do IRQ7, redom; ostali biti nisu značajni. Jedine instrukcije za rad sa ovim registrom su: MOV IMR,Ri, i MOV Ri,IMR, gde je Ri jedan od R0 do R7. Dejstvo ovih instrukcija, vidljivo za programera, je sledeće. Instrukcija MOV IMR,Ri prebacuje osam najmlađih bita registra Ri u najmlađe bite registra IMR, a ostale bite registra IMR postavlja na nulu. Instrukcija MOV Ri,IMR prebacuje 32 bita registra IMR u registar Ri. Osim toga, postoje još i instrukcije INTE i INTD za dozvolu/maskiranje svih maskirajućih prekida.

Organizacija procesora

Organizacija procesora data je na slici. ALU ima, pored ostalih, i kontrolne ulaze incA, decA i transA za inkrementiranje, dekrementiranje, odnosno transfer vrednosti na A ulazu. Mogu se koristiti sve potrebne ostale instrukcije u programiranju, sa odgovarajućim mnemonicima.

Zadatak:

a) Sa koliko flip-flopova treba realizovati registar IMR? Koristeći registar sa tim brojem razreda i mogućnošću paralelnog upisa (LD), prikazati način vezivanja registra IMR sa internom magistralom.

b) Napisati mikroprogram za ovaj procesor, sa fazom izvršavanja samo za instrukciju MOVS, a predvideti postojanje ostalih. Kôd treba da bude prilagođen mikroprogramskoj upravljačkoj jedinici, pri čemu se u jednoj mikronaredbi nalaze i polje sa upravljačkim signalima i polja koja definišu uslovni skok u mikroprogramu. Ne treba pisati mikroprogram za obradu prekida. Pretpostaviti da je dohvatanje eventualne druge i treće reči instrukcije u fazi izvršavanja instrukcija koje poseduju te reči (ne treba realizovati).

c) Odluka projektanta procesora da se prekid opslužuje tek posle izvršavanja cele instrukcije MOVS nije dobra. Objasniti zašto.

Page 15: Vezbe AOR 2002_2003

d) Da bi se problem iz prethodne tačke eliminisao, odlučeno je da se realizacija instrukcije MOVS promeni tako da se postojanje prekida ispituje, i eventualni prekid opslužuje, posle svake prenesene reči (posle svake iteracije petlje). Problem je što se tada instrukcija prekida u sredini, pa je povratak iz prekidne rutine na narednu instrukciju nekorektan. Kratko, ali precizno objasniti kompletno rešenje ovog problema.

Rešenja

a)

b)

; Dohvatanje instrukcijeBEGIN: PCout,MARin,Xin

read,incA,ALUout,PCin,XinwmfcMDRout,IRin

; Dekodovanje instrukcijeopcase

; MOVS instrukcijaMOVS: regsel3,REGout,Xin ; provera da li je Rcnt=0

transA,ldpswz ; postavljanje indikatora Zbranch(Z,MOVSEND) ; if Rcnt=0, goto enddecA,ALUout,regsel3,REGinregsel2,REGout,MARin,Xinread,incA,ALUout,regsel2,REGinwmfcregsel1,REGout,MARin,Xinwrite,incA,ALUout,regsel1,REGinwmfcbranch(,MOVS)

MOVSEND: branch(IR,INTH)branch(,BEGIN)

c) Izvršavanje MOVS instrukcije može da traje veoma dugo. Na primer, MOVS R0,R0,R1, gde je R0=0, R1=FFFFFFFFh. Za sve vreme izvršavanja ove instrukcije, svi spoljni prekidi su onemogućeni, što nikako nije dobro. Naime, ova instrukcija predstavlja petlju, u čijoj se svakoj iteraciji prenosi po jedna reč, sasvim nezavisno od ostalih. Zbog toga, vreme od trenutka pojave zahteva za prekid, do trenutka njegovog prihvatanja, može da varira u jako velikim granicama. To nije dobro, jer se ni približno ne može predvideti brzina odziva na neki

Page 16: Vezbe AOR 2002_2003

spoljni događaj. To vreme zavisi i od tekuće instrukcije, ali i od vrednosti njenih operanada. Bolje je da se prekid opslužuje posle svake iteracije, jer je time vreme odziva na prekid svedeno na vreme prenosa samo jedne reči.

d) Posle svake iteracije petlje MOVS (posle svakog prenosa jedne reči), stanje procesora je konzistentno, u potpunosti kao što je to i pre početka izvršavanja MOVS instrukcije. Naime, posle svake iteracije, Rsrc i Rdst ukazuju na narednu reč za prenos, a Rcnt pokazuje na broj preostalih reči za prenos (može biti i nula). Naredba MOVS upravo zahteva takvo stanje pre svog izvršavanja. Prema tome, navedeno stanje registara predstavlja invarijantu ove instrukcije. Zato se, posle prekida iza jedne iteracije, može započeti ista MOVS instrukcija, sa tekućim stanjem registara Rsrc, Rdst i Rcnt, koji se ionako hardverski čuvaju na steku, i restauriraju pri povratku iz prekidne rutine. Potrebno je, dakle, da se procesor iz prekidne rutine vrati na prekinutu instrukciju MOVS, a ne na narednu instrukciju. Ovo se lako realizuje, tako što se, ako postoji prekid posle neke iteracije, vrednost PC smanji za 1, tako da ukazuje na tekuću MOVS instrukciju, i ta se vrednost stavlja na stek u mikroprogramu za obradu prekida. To je ujedno i sve što je potrebno za rešenje problema.

MEHANIZAM PREKIDA1. Jednoadresni 16-bitni procesor poseduje samo jednu liniju IRQ za spoljašnji preki kome

može da se dodeli proizvoljan ulaz u IVT. Postoji još i linija INTA kojom procesor odobrava prekid i zahteva postavljanje broja ulaza na magistralu podataka. Poseban uređaj, kontroler prekida, služi za paralelnu arbitraciju do 4 zahteva za prekid. Kontroler ne podržava ugnežđavanje prekida sa prioritetom, već samo prioritiranje trenutno postojećih zahteva. Kontroler poseduje i registar maske, koji je vezan za port 0FF0h U-I adresnog prostora, i čija 6 najniža bita maskiraju zahteve za prekid na ulazima kontrolera.

a) Nacrtati principijelnu strukturnu šemu kontrolera.b) Koje modifikacije treba izvršiti da bi kontroler podržavao i ugnježdavanje sa prioritetom.c) Napisati deo programa kojim se maskiraju prekidi na ulazima IRQ1 i IRQ2 kontrolera, a

ostali dozvoljavaju.d) Prikazati način vezivanja 16 linija zahteva za prekid na procesor, pomoću odgovarajućeg

broja datih kontrolera.

2. Procesor poseduje 4 linije zahteva za prekid IRQ0...IRQ3, kojima se mogu dodeliti proizvoljni ulazi u IVT. Na liniju IRQ0 vezani su zahtevi za prekid od 3 periferije, a na ostale po jedan.

a) Nacrtati principijelnu strukturnu šemu ovog sistema.b) U slučaju da postoji više zahteva za prekidom, kako se određuje zahtev najviđeg

prioriteta?

3. (Januar 95 - 2) Na ulaz IRQ2 procesora vezan je signal zahteva za prekid od neke ulazne periferije. Kontroler ove periferije ima sledeće registre: i) upravljački registar (CR) na adresi FF00h, sa bitom Start u razredu 0 i bitom Enable Interrupt u razredu 1; ii) statusni registar (SR) na adresi FF01h, sa bitom Ready u razredu 31, iii) registar podataka (DR) na adresi FF02h. Na ostale ulaze IRQi vezani su zahtevi za prekid od drugih periferija. Potrebno je obezbediti da zahtev na liniji IRQi bude višeg prioriteta od IRQi+1, za svako i, odnosno da se u toku prekidne rutine za IRQi ne prihvataju prekidi sa ulaza IRQj, gde je j>=i, a prihvataju svi prekidi sa IRQk, gde je k<i. Kako ne postoji hardversko prioritirenje prekida, potrebno je ovo prioritiranje izvesti softverski.

a)(15) Napisati naredbe koje treba navesti na početku i na kraju svake prekidne rutine (koja odgovara IRQi), da bi se obezbedilo zahtevano softversko prioritiranje.

Page 17: Vezbe AOR 2002_2003

b)(15) Napisati prekidnu rutinu za prenos jednog podatka sa periferije vezane na IRQ2. Na lokaciji 100 nalazi se pokazivač na lokaciju za smeštanje narednog podatka, a na lokaciji 101 se nalazi broj reči preostalih za prenos.

ULAZ/IZLAZ1. Prikazati način vezivanja periferije na adresi FF80h u I/O prostoru, na asinhronu

magistralu računara. Magistrala podataka je 8-bitna, a adresna magistrala je 16-bitna. Periferija ima sledeće 8-bitne registre sa internim adresama: Data (0), Control (1) i Status (2). Predvideti i mogućnost vezivanja drugih periferija na adrese FF80h do FFFFh, tako da se svakoj periferiji dodeli 8 uzastopnih adresa. Adresiranje je bajtovsko. Prikazati i internu organizaciju veze navedenih registara periferije sa magistralom.

2. Dvoadresni procesor sa razdvojemi I/O i meomorijsko adresnim prostorima vezan je na 16-bitnu adresu i 8-bitnu magistralu podataka. Na magistralu su veyana dva kontrolera periferije, čiji se registri nalaze na sledećim 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 Readz, a u upravljačkim registrima bit 0 je Start. Napisati program koji učitava vrednosti sa obe periferije, tehnikom ispitavanja bita Ready, i pristigle vrednosti sumira, posebno za svaku periferiju u lokacijama SUM1 i SUM2. Ualz se prekida kada sa bilo koje periferije stigne vrednost 0. Uređaji šalju podatke različitim brzinama, a podatak koji je pristigao treba učitati što pre.

3. Jednoadresni procesor sa preklopljenim I/O prostorom vezan je na 16-bitnu i 8-bitnu magistralu podataka. Adresiranje je bajtovsko. Na magistralu su vezane 4 periferije PER1 do PER4, preko svojih kontrolera. PER1i PER3 su ulazne, a PER2 i PER4 su izlazne. Na magistralu je vezan i DMA kontroler. Potrebno je izvršiti prenos 20h podataka sa PER1 u memoriju, počev od adrese 100h, a zatim prenos tih podataka na PER2. Slično potrebno je izvršiti prenos 30h podataka sa PER3 u memoriju, počev od adrese 200h, a zatim prenos tih podataka na PER4. Prenos sa PER1 i PER4 izvršiti tehnikom ispitivanja bita Ready, prenos sa PER3 programiranim ulazom sa prekidom, a prenos na PER4 korišćenjem DMA kontrolera. DMA kontroler nije direktno vezan sa PER4, već sa periferijom komunicira preko magistrale. DMA kontroleru se zadaje adresa statusnog registra periferije u registru na adresi FF00h, adresa registra podatka u registru na adresi FF02h, i razred u kome se nalazi Ready bit periferije u bitima 5 do 7 upravljačkog registra. U upravljačkim registru DMA bit 0 je Start, bit 1 je Enable, a bit 2 je smer (0-ulaz). Statusni registar za PER1 do PER4 nalaze se redom na adresama FF20h, FF24h, FF28h, FF2Ch, i imaju bit Ready u razredu 7. Upravljački registri ovih periferija su redom na adresama FF21h, FF25h, FF29h, FF2Dh, i i imaju bit Start u razredu 0, a bit enable u razredu 1. Registri podatka periferija su redom na adresama FF22h, FF26h, FF2Ah, FF2Eh. Upravljački registar DMA kontrolera je na adresi FF04h, a statusni na adresi FF05h, adresni na adresi FF06h, a brojački na FF08h. Napisati program za ovaj prenos.

ARBITRACIJA PRISTUPA MAGISTRALI1. U slučaju magistrale sa većim brojem master-a :a) Nacrtati i objasniti kako se realizuje paralelna šema za arbitraciju.b) Nacrtati i objasniti kako se realizuje serijska šema za arbitraciju.c) Arbitracija o sledećem korisniku magistrale se obavlja dok tekući korisnik obavlja

prenos na magistrali. S obzirom da arbitracija traje kraće od prenosa, kako se obezbeđuje da onaj koji je dobio dozvolu da bude sledeći korisnik magistrale ne krene sa prenosom dok tekući korisnik magistrale ne završi svoj prenos?

d) Nacrtati i objasniti vremenske oblike signala koji se razmenjuju između master-a i slave-a za slučaj čitanja iz memorije od strane procesora preko asinhrono upravljane magistrale.

Page 18: Vezbe AOR 2002_2003

e) Nacrtati i objasniti kako se na strani master-a realizuje čekanje na pojavu signala o završetku memorijskog ciklusa koji šalje slave.

Preklapanje pristupa memorijskim modulima

1. Operativna memorija se sastoji od osam memorijskih modula, a kapacitet modula je 128 Kbajta, što čini totalni kapacitet memorije od 1 Mbajta. Širina reči operativne memorije je 1 bajt. Adresa operativne memorije je širine 20 bita, a njeni najstariji i najmlađi bitovi su označeni sa A19 i A0, respektivno.

a) Nacrtati i opisati koji opseg adresa memorijskog adresnog prostora je dodeljen kom od osam modula za četiri slučaja preklapanja pristupa modulima ako je broj modula specifikovan sledećim bitovima adrese:

a1) A19 A18 A17

a2) A19 A18 A0

a3) A19 A1 A0

a4) A2 A1 A0

i pokazati za svaki od njih koji adresni bitovi formiraju adresu bajta unutar modula.

b) Objasniti da li preplitanje memorijskih modula ubrzava rad računara koji se sastoji od procesora, operativne memorije, nekoliko periferija i magistrale, ali ne sadrži DMA kontrolere ili druge procesore. U slučaju da

ubrzava, objasniti na koji način se to postiže, ne ubrzava, objasniti zašto.

c) U slučaju računara koji se sastoji od četiri procesora, četiri DMA kontrolera, operativne memorije sa preklapanjem pristupa memorijskim modulima kao što je opisano u zadatku i asinhrone magistrale, postoji potreba za arbitracijom magistrale gde master prvo učestvuje u arbitraciji, pa tek onda kada primi dozvolu od arbitratora magistrale sme da izvrši ciklus na magistrali. Za opisani računar nacrtati i objasniti:

c1) paralelnu šemu arbitracije i

c2) serijsku šemu arbitracije.

c3) Arbitracija sledećeg mastera na magistrali se vrši dok trenutni master vrši ciklus na magistrali. Objasniti kako se novi master magistrale sprečava da započne svoj ciklus na magistrali sve dok tekući master ne završi svoj ciklus.

d) Za računar opisan u tački c) objasniti:

d1) Koje vrste ciklusa na magistrali postoje.

d2) Koliko dugo je magistrala zauzeta za vreme svakog od navedenih vrsta ciklusa.

d3) Koliko grupa linija postoje na magistrali i čemu svaka od njih služi za svaki tip ciklusa na magistrali.

d4) Nacrtati i objasniti vremenske dijagrame svih signala na magistrali za sve tipove ciklusa na magistrali.

KEŠ MEMORIJA1. Operativna memorija računara ima kapacitet 2 Mbajta, širina reči iznosi 16 bita i vreme

pristupa memorije iznosi Tm. Procesor ima razdvojene keš memorije za instrukcije i podatke.

Page 19: Vezbe AOR 2002_2003

Instrukcijska keš memorija ima kapacitet DATA dela 4 Kbajta, preslikavanje je na nivou bloka, veličina bloka je 128 bajta, širina reči je 16 bita i vreme pristupa iznosi Tk. Pretpostaviti da su sve instrukcije širine 16 bitova, i da se adrese na koje ukazuje registar PC odnose na 16-bitne veličine.

a) Nacrtati strukturu svih relevantnih delova keš memorije sa:

direktnim preslikavanjem, asocijativnim preslikavanjem i set-asocijativnim preslikavanjem sa dva bloka po setu,

i ukratko opisati funkciju svakog dela. Nacrtati strukturu adrese koju generiše procesor i objasniti kako se koriste grupe bitova u sva tri slučaja da se:

proveri da li je tražena instrukcija u keš memoriji i da se očita instrukcija iz keš memorije.

b) Izračunati ukupno vreme potrebno za čitanje instrukcija iz keš memorije, za sva tri tipa keš memorije, kada se izvršava sledeći program:

1020025552655

Prva očitana instrukcija se nalazi na adresi 10d, a poslednja na adresi 2655d. Petlja se izvrši dva puta. Keš memorija je bila prazna na početku. Kada se računa vreme:

treba pretpostaviti da se prvo prenese ceo blok iz operativne memorije u keš memorije, pa se tek onda instrukcija očita i

treba uzeti u obzir samo vremena pristupa Tm i Tk i zanemariti vremena potrebna za ostale aktivnosti.

2. Adresni prostor nekog računara je 64KB, adresibilna jedinica je bajt. Posmatraju se dve realizacije keš memorije:

- keš sa asocijativnim preslikavanjem na nivou bloka sa 16 ulaza i 4B po bloku, i keš memorija sa direktnim preslikavanjem na nivou bloka sa kapacitetom memorije podataka 64B i blokom 4B. Prikazati sadžaje relevantnih delova keš memorije posle čitanja sa sledćih adresa redom 0, 5, 42 i 47. Sadržaji relevantnih adresa operativne memorije su dati u tabeli. Sve vrenosti su heksadecimalne.

adresa 0 1 2 3 4 5 6 7 … 40 41 42 43 44 45 46 47Sadržaj 0 1 2 3 4 5 6 7 … 10 11 12 13 14 15 16 17

3. Posmatra se računar sa sledećim karakteristikama. Operativna memorija je kapaciteta 216

reči a širina reči je 16 bita. Procesor generiše adrese koje se odnose na 16-bitne adrese

Procesor ima keš memoriju sa asocijativnim preslikavanjem na nivou bloka sa četiri ulaza.Veličina bloka je 16 reči. Koristi se LRU algoritam zamene blokova i write-back algoritam za ažuriranje sadržaja operativne memorije. LRU algoritam je realizovan sa četiri brojača po modulu 4, svaki uz svoj ulaz keš memorije. Ulaz odabran za zamenu je onaj čiji brojač ima vrednost 0. Na početku je keš memorija bila prazna a svi brojači su imali vrednost 0. Vrednost brojača se ažurira na isti način kada je keš memorija puna i kada je prazna.

Page 20: Vezbe AOR 2002_2003

Procesor generiše sledeću sekvencu adresa sa tipom operacije naznačenim u zagradi posle svake adrese (R = read, W = write):

734Fh (R), DE38h (R), FF03h (W), 7350h (R), 7351h (R), DE48h (W), 7352h (R), 7348h (R).

-Navesti sadržaje asocijativnog (TAG) dela (A0, A1, A2 i A3) za ulaze 0 do 3 keš memorije nakon date sekvence adresa.-Navesti vrednosti valid bitova (V0, V1, V2 i V3) i dirty bitova (D0, D1, D2 i D3) za ulaze 0 do 3 keš memorije nakon date sekvence adresa.-Navesti vrednosti LRU brojača C1 nakon svake generisane adrese u zadatoj sekvenci adresa.

-Pretpostaviti da je zadata keš memorija sa direktnim preslikavanjem na nivou bloka. Veličina bloka je 256 reči. Kapacitet DATA dela keš memorije je 1 K reči. Navesti sekvencu vrednosti TAG polja za zadatu sekvencu adresa.

VIRTUELNA MEMORIJA1. Posmatra se računar sa virtuelnom memorijom sa straničnom organizacijom

maksimalnog kapaciteta 215 stranice. Stranice su veličine 512 B, fizička memorija je kapaciteta 2 MB, koristi se direktni tip jedinice za preslikavanje virtuelnih u realne adrese u kome se istovremeno čuvaju relevantni delovi deskriptora 32 najčešće korišćenih stranica do 16 korisnika.

a) Nacrtati, označiti dužinu u bitovima i objasniti funkciju svih relevatnih delova hardvera.

b) Označiti dužine u bitovima releventnih delova virtuelne i realne adrese.

2. Posmatra se računar sa virtuelnom memorijom sa segmentno straničnom organizacijom maksimalnog kapaciteta 256 segmenata, maksimalne veličine segmenta 64 stranice. Stranice su veličine 1 KB, fizička memorija je kapaciteta 1 MB, koristi se asocijativni tip jedinice za preslikavanje virtuelnih u realne adrese u kome se istovremeno čuvaju relevantni delovi deskriptora 16 najčešće korišćenih stranica do 8 korisnika.

a) Nacrtati, označiti dužinu u bitovima i objasniti funkciju svih relevatnih delova hardvera.

b) Označiti dužine u bitovima releventnih delova virtuelne i realne adrese.

3. Virtuelne memorijske adrese su širine 16 bita, a adresiranje je na nivou 16-bitnih reči. Procesor operiše samo sa 16-bitnim celobrojnim veličinama (u daljem tekstu reč označava 16-bitnu veličinu). Procesor podržava postojanje više programa u memoriji istovremeno, do 16 korisnika. Fizički adresni prostor je veličine 4 GW (4 giga reči). Virtuelna memorija organizovana je na segmentnom principu, pri čemu je maksimalna veličina segmenta 4 KW (4 kilo reči). Procesor poseduje poseban hardver za ubrzavanje preslikavanja virtuelnih u realne (fizičke) adrese (u daljem tekstu TLB). TLB je realizovan sa direktnim preslikavanjem, pri čemu se svi segmenti sa istim brojem, različitih korisnika, preslikavaju u isti ulaz u TLB. Informacioni sadržaj jednog ulaza u TLB je sledeći: dužina segmenta, prava pristupa i početna adresa segmenta u fizičkoj memoriji. Prava pristupa se definišu pomoću tri bita R,W i E, pri čemu jedinica znači dozvoljeno čitanje podatka (R), upis podatka (W) i izvršavanje instrukcije (E). Procesor izvršava sledeći deo programa korisnika sa identifikatorom 3:

Aderesa (hex): Naredba: Komentar:3F00 MOV R0,#1234h ; R0:=1234h3F02 PUSH R0 ; R0 na stek3F03 MOV 2001h,R0 ; Mem[2001h]:=R0

Segment programa je dužine 4 KW i smešten je počev od lokacije 200000h fizičke memorije, segment steka je dužine 1 KW i smešten je počev od lokacije 300000h fizičke memorije, a segment podataka je dozvoljen za upis i čitanje, dužine je 2 KW i smešten je od

Page 21: Vezbe AOR 2002_2003

adrese 400000h fizičke memorije. SP ima vrednost 1215h pre izvršavanja datog dela programa.

a) Prikazati logičku strukturu virtuelne adrese i označiti značenje i dužinu svakog polja.

b) Prikazati šta predstavlja ulazni podatak koji procesor daje TLB-u, šta je ključ za pretragu u TLB, i kako se dobija ulaz u TLB u kome se taj ključ traži.

c) Prikazati vrednosti ključeva i informacionog sadržaja relevantnih ulaza u TLB (označiti te ulaze), posle izvršavanja datog dela programa.

4. Procesor podržava virtuelnu memoriju, i poseduje hardver za ubrzavanje preslikavanja virtuelnih u realne adrese (u daljem tekstu TLB). Pri tom je virtuelna adresa širine 16 bita, a realna adresa 32 bita, uz podršku do 4 korisnika. Virtuelna memorija organizovana je po segmentno-straničnom principu, sa maksimalno 16 segmenata po korisniku i 64 stranice po segmentu. TLB je organizovan asocijativno, sa 4 ulaza i LRU algoritmom zamene.

a) Prikazati logičku strukturu virtuelne adrese i označiti značenje i dužinu svakog polja.

b) Prikazati logičku strukturu realne adrese i označiti značenje i dužinu svakog polja.

c) Prikazati sadržaj asocijativne memorije TLB-a posle sekvence zahteva za čitanjem sa sledećih adresa korisnika sa identifikatorom 3 (TLB je na početku bio prazan):

4632h, 5C5Fh, BE8Eh, 6237h, 5C5Ah, 463Fh, FCFAh.