Vezbe-Arhitektura i organizacija racunara 1-Softversko inzenjerstvo Zbirka_Kes_Virtuelna_0v_Part2, Vežbe' predlog Arhitektura računara i organizacija. University of Belgrade
grucho
grucho

Vezbe-Arhitektura i organizacija racunara 1-Softversko inzenjerstvo Zbirka_Kes_Virtuelna_0v_Part2, Vežbe' predlog Arhitektura računara i organizacija. University of Belgrade

PDF (419 KB)
48 str.
3broj preuzimanja
1000+broj poseta
1broj komentara
Opis
Vezbe-Arhitektura i organizacija racunara 1-Softversko inzenjerstvo Zbirka_Kes_Virtuelna_0v_Part1; Memorija, Virtuelna memorija;
20 poeni
poeni preuzimanja potrebni da se preuzme
ovaj dokument
preuzmi dokument
pregled3 str. / 48
ovo je samo pregled
3 prikazano na 48 str.
preuzmi dokument
ovo je samo pregled
3 prikazano na 48 str.
preuzmi dokument
ovo je samo pregled
3 prikazano na 48 str.
preuzmi dokument
ovo je samo pregled
3 prikazano na 48 str.
preuzmi dokument
Microsoft Word - Zbirka_Kes_Virtuelna_0v.doc

Docsity.com

51

Zadatak 1.1.18 Efikasnost korišćenja keš memorije u računarskom sistemu je prvenstveno određena njenom brzinom, kapacitetom i propusnim opsegom (?). Imajuci u vidu ove pokazatelje, predložite i obrazložite jednu organizaciju sistema keš memorije koja teži da optimizuje performansu zadovoljavajući gornje kriterijume. Treba posebno diskutovati pojedine projektne odluke oko mehanizma mapiranja, dužine bloka, strategije upisa, itd.

Rešenje:

U najvećem broju sistema ranije je korišćena jedna keš memorija i za instrukcije i za podatke kao zajednički resurs. Ovo je bilo povoljno sa stanovišta faktora uspešnosti i efikasnog načina korišćenja zajedničkog prostora. Međutim, u poslednje vreme zahtevi za povećanjem propusnog opsega keš memorije su porasli pogotovo u organizacijama sa protočnom obradom. Kod njih se cesto dešava da pristup keš memoriji postane izvor strukturnog hazarda, jer se istovremeno zahteva prihvatanje naredne instrukcije i pristup podatku od neke prethodne instrukcije. Zato se sve češće uvode posebne keš memorije za instrukcije i podatke, čime se otklanja ovaj hazard i udvostručava propusni opseg keš memorije. Ovo razdvajanje ima i druge prednosti. Razdvojene keš memorije se smeštaju na čipu upravo fizički blisko onim funkcionalnim jedinicama koji ih koriste što omogućava brzi pristup. One se takođe mogu posebno optimizovati po veličini same keš memorije, veličini bloka, načinu mapiranja, načinu prihvatanja podataka, itd., jer su i karakteristike obraćanja instrukcijama i podacima različite.

CPU

D1C

IC

D D2CD

MM

D

Keš memorija za instrukcije može da bude prostija jer se obično ne dozvoljava upisivanje u područje koda. Zbog dosta izrazene prostorne lokalnosti ona može da ima veću dužinu bloka i da koristi dohvatanje unapred (prefetching). Što se tiče keš memorije za podatke pred nju se takođe postavljaju primarni zahtevi za većom bržinom i faktorom uspešnosti. Ovi zahtevi su kontradiktorni jer je faktor uspešnosti može osetno povećati porastom kapaciteta keš memorije, ali tada se brzina pristupa smanjuje. Pored toga, prostor na čipu je veoma ograničen. Zato se pribegava rešenju da se uvedu dva (ili više) nivoa keš memorije. Pritom, prvi nivo je na čipu, ima manji kapacitet, prostiju organizaciju (obično direktno mapiran i write-through) i zato ima veliku brzinu pristupa. Problem povećanja faktora uspešnosti se rešava drugim nivoom keš memorije koji se nalazi izvan čipa (ali na istoj ploči) i ima mnogo veći kapacitet. Pristup drugom nivou je naravno sporiji ali još uvek dosta brži od pristupa glavnoj memoriji. Projektne odluke za drugi nivo keš memorije mogu biti različite (npr. veća dužina bloka, write-back strategija upisa, itd.). Vrlo često se poštuje princip inkluzije koji nameće da se čitav sadzaj keš memorije nižeg nivoa nalazi i u keš memoriji višeg nivoa, što je od koristi pogotovo u multiprocesoskim sistemima. Imajući u vidu gore navedenu diskusiju, tražena organizacija bi izgledala kao na slici 5.???

Docsity.com

52

Zadatak 1.1.19 (Keš memorije, AOR Sep 96): Adrese su širine 16 bita, a adresiranje je na nivou 16-bitnih reči. Između procesora i

magistrale računara vezana je keš memorija organizovana set-asocijativno na nivou bloka od 2 KB, dva ulaza po setu, kapacitetom memorije podataka 16 KB, FIFO algoritmom zamene i store-through tehnikom ažuriranja operativne memorije. Keš je inicijalno prazan. Procesor generiše sledeću sekvencu adresa:

07FAh, B510h, 060Fh, 1875h, 0511h, A500h.

a) Dati sadržaj svih ulaza set-asocijativne memorije posle date sekvence (pisati heksadecimalno).

b) Koliki je broj promašaja u kešu Nmiss za prethodni slučaj? c) Dati sadržaj svih ulaza ako je keš sa direktnim preslikavanjem na nivou bloka od 2 KB i

kapacitetom memorije podataka od 8 KB (pisati heksadecimalno).

d) Koliki je broj promašaja u kešu Nmiss za prethodni slučaj?

.1.1 Rešenje:

a) i b) U ovom slučaju, blok je veličine 1 K = 210 reči, a keš sadrži 4 seta. Struktura adrese izgleda ovako:

15 12 11 10 9 0 Tag Set Word

Prema tome, parovi (Tag, Set) koji se pojavljuju u datoj sekvenci su redom:

(0,1), (B,1), (0,1), (1,2), (0,1), (A,1)

Sadržaj set-asocijativne memorije je na kraju sledeći: Ulaz 1 B Ulaz 0 A 1 Set 0 1 2 3

Broj promašaja je 4.

c) i d) U ovom slučaju blok je iste veličine, keš je dva puta manjeg kapaciteta, ali ima samo jedan ulaz po setu (direktno preslikavanje je granični slučaj set-asocijativnog, kada je broj ulaza po setu jednak 1). Zato je struktura adrese ista, kao i sekvenca polja koja se pojavljuju. Sadržaj je na kraju:

A 1 Set 0 1 2 3

Broj promašaja je sada 5.

1.2 Virtuelna memorija

Zadatak 1.2.1 Posmatra se računar sa straničnom organizacijom virtuelne memorije. Virtuelni adresni

prostor korisnika je 16 Mbajta i podeljen je na stranice veličine 1 Kbajt. Realni adresni prostor je 1 Mbajt i podeljen je na blokove veličine 1 Kbajt. Virtuelnom i realnom adresom se adresiraju reči dužine 1 bajt.

Uraditi sledeće:

Docsity.com

53

a) Označiti dužine u bitovima svih delova virtuelne i realne adrese.

b) Nacrtati tabelu stranica, objasniti kako se pristupa tabelama stranica različitih korisnika i dati funkciju pojedinih polja deskriptora stranice.

c) Objasniti kako se vrši preslikavanje virtuelne u realnu adresu za slučaj da je stranica u memoriji i navesti šta se od toga radi hardverski a šta softverski.

d) Objasniti šta se radi za slučaj da stranica nije u memoriji i navesti šta se od toga radi hardverski a šta softverski.

Rešenje:

a) Kod stranične organizacije virtuelne memorije virtuelna adresa ima dva polja: broj stranice (page) i adresa reči u stranici (word). Kako je veličina virtuelnog adresnog prostora 16 Mbajta (224 bajta), a stranice 1 Kbajt (210 bajta), to su veličine polja page i word 14 i 10 bita, respektivno. Kod stranične organizacije virtuelne memorije realna adresa ima dva polja: broj bloka (block) i adresa reči u bloku (word). Kako je veličina realnog adresnog prostora 1 Mbajta (220 bajta), a bloka 1 Kbajt (210 bajta ), to su veličine polja block i word 10 i 10 bita, respektivno. Struktura virtuelne i realne adrese i dužine u bitovima delova virtuelne i realne adrese su prikazani na slici Error! Reference source not found..

31 30 19 0

0

214 − 1

V D

{{ 1 1

+

20

PTP 9 0

14243

ukazivač na PT

početna adresa PT 20

deskriptor stranice

123

29 20

14424431442443

16

page word 091023

1442443 14243

14

virtuelna adresa

broj stranice

(broj ulaza u PT)

block word 091019

1442443 14243

realna adresa

adresa reči u stranici10 adresa reči u bloku

10 10

PT (tabela stranica)

diskblock

2 0

10 10 0

10 20

Docsity.com

54

Slika 1.2.1. Virtuelna adresa, realna adresa i tabela stranica za straničnu organizaciju virtuelne memorije

b) Tabela stranica (PT) jednog korisnika je data na slici Error! Reference source not found.. Tabela stranica ima poseban ulaz za svaku stranicu korisnika. U njima se nalaze informacije neophodne za preslikavanje stranica virtuelnog adresnog prostora korisnika u blokove fizičke memorije. Te informacije se nazivaju deskriptori stranica. S obzirom da u virtuelnom adresnom prostoru korisnika ima 214 stranica, to i tabela stranica ima 214 ulaza. Početna adresa tabele stranica sadržana je u posebnom registru procesora koji se naziva ukazivač na PT (PTP). Na osnovu sadržaja ukazivača na PT i broja stranice, jedinica za preslikavanje virtuelnih adresa u realne adrese dolazi do deskriptora stranice, a time i do informacija neophodnih za preslikavanje.

U operativnoj memoriji postoji posebna tabela stranica svakog korisnika. Početne adrese tabela stranica svih korisnika čuva operativni sistem. Prilikom prebacivanja procesora sa korisnika na korisnika operativni sistem, najpre, čuva kontekst korisnika kome se oduzima procesor, a potom, restaurira kontekst korisnika kome se dodeljuje procesor. Tom prilikom se u ukazivač na PT upisuje početna adresa tabele stranica korisnika kome se dodeljuje procesor. Time se obezbeđuje da jedinica za preslikavanje pristupa tabeli stranica korisnika kome je dodeljen procesor.

Polja deskriptora stranice su:

V (1bit)—stranica u memoriji, •D (1bit)—stranica modifikovana, •block (10 bita)—broj bloka i •disk (20 bita)—adresa na disku.

Polje V označava da li je data stranica u operativnoj memoriji. Postavlja ga operativni sistem prilikom dovlačenja date stranice sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje i to ako

•je postavljen, da formira realnu adresu i •nije postavljen, da geniriše prekid.

Polje D označava da li je data stranica modifikovana. Postavlja ga jedinica za preslikavanje ako je bilo operacija upisa u datu stranicu. Koristi ga operativni sistem onda kada odabere datu stranicu za zamenu i to ako

•je postavljen, da datu stranicu vrati na disk •nije postavljen, da datu stranicu ne vraća na disk.

Polje block označava broj bloka operativne memorije u kome se nalazi data stranica. Vrednost u ovom polju ima smisla jedino ako je polje V postavljeno. Polje block postavlja operativni sistem prilikom dovlačenja date stranice sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje, i to ako je polje V postavljeno, da formira realnu adresu.

Polje disk označava adresu date stranice na disku. Polje disk postavlja operativni sistem prilikom formiranja tabele stranice datog korisnika. Koristi ga samo operativni sistem i to radi lociranja date stranice na disku prilikom

•dovlačenja stranice sa diska u odabrani blok operativne memorije •vraćanja modifikovane stranice iz bloka operativne memorije odabranog za zamenu na

disk.

Docsity.com

55

Uzeto je proizvoljno, jer to nije predmet razmatranja u ovom zadatku, pa stoga nije ni definisano, da je veličina adrese stranice na disku 20 bitova.

c) Preslikavanje virtuelne u realnu adresu za slučaj da je stranica u memoriji realizuje se kompletno hardverski i to pomoću jedinice za preslikavanje. Ovo preslikavanje se realizuje u sledećim koracima:

1. Polje page virtuelne adrese predstavlja broj ulaza u tabelu stranica u kome se nalazi deskriptor date stranice. S obzirom na to da je adresiranje fizičke memorije bajtovsko i da deskriptor stranice zauzima četiri bajta potrebno je broj ulaza u tabelu stranica pretvoriti u pomeraj u odnosu na početak tabele stranica. To se realizuje pomeranjem ulevo za dva mesta sadržaja polja page vitruelne adrese.

2. Sadržaj registra ukazivač na PT predstavlja početnu adresu tabele stranica. Pomeraj u odnosu na početak tabele stranica formiran u prethodnom koraku se sabira sa sadržajem registra ukazivač na PT i time dobija adresa deskriptora date stranice. Počev od formirane adrese treba očitati dva bajta, jer se u njima nalaze polja V i block koja koristi jedinica za preslikavanje.

3. Polje V deskriptora ukazuje na to da li je data stranica u memoriji. Stoga se, najpre, sa adrese formirane u prethodnom koraku čita prvi bajt u kome se nalazi polje V deskriptora i vrši provera da li je ovo polje postavljeno. Za slučaj kada je stranica u memoriji utvrdiće se da je polje V postavljeno, pa se produžava sa sledećim koracima.

4. Polje block deskriptora sadrži broj bloka u kome se nalazi data stranica. Ovo polje sa nalazi delom u prvom a delom u drugom bajtu deskriptora. Stoga se sa prve sledeće adrese čita i drugi bajt deskriptora. Konkatinacijom polja block iz deskriptora stranice i polja word iz virtuelne adrese formira se realna adresa.

d) U slučaju da stranica nije u memoriji realizuju se samo prva tri od četiri koraka za slučaj kada je stranica u memoriji. U koraku tri se u ovom slučaju utvrđuje da polje V nije postavljeno, pa se generiše prekid. Svi koraci do generisanja signala prekida, uključujući i njegovo generisanje, realizuju se hardverski pomoću jedinice za preslikavanje. Sve ostalo, što za ovaj slučaj potom treba uraditi, radi se softverski i to radi poseban deo operativnog sistema. Ovo se realizuje u sledećim koracima:

1. Oduzima se procesor datom korisniku, njegov kontekst čuva i korisnik stavlja u red blokiranih korisnika..

2. Organizuje se dovlačenje date stranice sa diska u neki od blokova operativne memorije.

3. Dodeljuje se procesor nekom od radnosposobnih korisnika. Tada se restaurira njegov kontekst. U okviru toga se u programski brojač upisuje nova vrednost i time kontrola predaje tom novom korisniku.

Dovlačenje stranice sa diska u neki od blokova operativne memorije se realizuje u sledećim koracima:

—Traži se blok u koji će se smestiti data stranica. Pri tome se izvršava jedan od sledeća dva koraka:

• Ukoliko ima slobodnih blokova po nekom algoritmu se odlučuje koji blok treba dodeliti datoj stranici. • Ukoliko nema slobodnih blokova po nekom algoritmu se odlučuje koju stranicu treba

izbaciti iz operativne memorije da bi se blok u kome se ona nalazi oslobodio i dodelio datoj stranici. Ukoliko je stranica odabrana za izbacivanje modifikovana mora se vratiti

Docsity.com

56

na disk pre nego što se blok u kome se ona nalazi koristi da se u njega dovuče nova stranica. Adresa na disku stranice odabrane za izbacivanje dobija se iz polja disk deskriptora date stranice. Po završenom vraćanju date stranice na disk, u polje V deskriptora stranice koja je vraćena na disk upisuje se nula.

—Dovlači se data stranica sa diska u odabrani blok operativne memorije. Adresa date stranice na disku dobija se iz polja disk deskriptora stranice. Po završenom dovlačenju date stranice sa diska u polje block deskriptora stranice upisuje se broj bloka, a u polje V jedinica.

—Korisnik za koji je dovučena stranica prevodi se u red radnosposobnih korisnika.

U nekom trenutku dati korisnik ponovo dobija procesor. Dati korisnik ponovo generiše adresu za koju je bilo utvrđeno da je iz stranice koja nije bila u memoriji. Pošto je sada data stranica u memoriji ponavljaju se koraci iz tačke c).

Zadatak 1.2.2 Posmatra se računar sa virtuelnom memorijom segmentne organizacije. Virtuelni adresni

prostor korisnika je 16 Mbajta, i podeljen je na 256 segmenata maksimalne veličine 64 Kbajta. Realni adresni prostor je 1 Mbajt. Virtuelnom i realnom adresom se adresiraju reči dužine 1 bajt.

Uraditi sledeće:

a) Označiti dužine u bitovima svih delova virtuelne i realne adrese.

b) Nacrtati tabelu segmenata, objasniti kako se pristupa tabelama segmenata različitih korisnika i dati funkciju pojedinih polja deskriptora segmenta.

c) Objasniti kako se vrši preslikavanje virtuelne u realnu adresu za slučaj da je segment u memoriji i navesti šta se od toga radi hardverski a šta softverski. Objasniti pod kojim uslovima se dobijena realna adresa koristi za pristup memorijskoj lokaciji.

d) Objasniti šta se radi za slučaj da segment nije u memoriji i navesti šta se od toga radi hardverski a šta softverski.

Rešenje: a) Kod segmentne organizacije virtuelne memorije virtuelna adresa ima dva polja: broj

segmenta (segm) i adresa reči u segmentu (word). Kako je veličina virtuelnog adresnog prostora 16 Mbajta (224 bajta) i sastoji se od 256 (28) segmenata maksimalne veličine 64 Kbajta (216 bajta), to su veličine polja segm i word 8 i 16 bita, respektivno. Kako je veličina realnog adresnog prostora 1 Mbajta (220 bajta) to je veličina realne adrese 20 bita. Struktura virtuelne i realne adrese i dužine u bitovima delova virtuelne i realne adrese su prikazani na slici 1.2.2.

Docsity.com

57

63 62

19 0

0

21 4 −

1

V D

{ { 1

1

+

20

ST P

19 0

1 4

4 2

4 4

3 uk

az iv

ač n

a ST

po če

tn a

ad re

sa S

T 20

1 4

2 4

3

39 20

1 4

4 2

4 4

3 1

4 4

2 4

4 3

11

se gm

w or

d 0

15 16

23 1 4

4 2

4 4

3 1

4 2

4 3

8

vi rtu

el na

a dr

es a

br oj

se gm

en ta

(b ro

j u la

za u

ST )

0 19 1

4 4

2 4

4 3

re al

na a

dr es

a

ad re

sa re či

u se

gm en

tu 16

20

ST (t

ab el

a se

gm en

at a)

di sk

+

55 20

1 4

2 4

3

58 56

1 2

3

59 61 1

2 3

IR W

3

C M

P1

ac cr

eq 2

1 0

1 2

3

3

3 3

A C

C ES

S

C M

P2

B O

U N

D

16 le ng

th sa

dd r

20 20

po m

er aj

u od

no su

n a

po če

ta k

ST

3

de sk

rip to

r s eg

m en

ta

3

0

w or

d

ac cr

eq

ac cr

eq

Docsity.com

58

Slika 1.2.2. Virtuelna adresa, realna adresa i tabela segmenata za segmentnu organizaciju virtuelne memorije

b) Tabela segmenata (ST) jednog korisnika je data na slici 1.2.2. Tabela segmenata ima poseban ulaz za svaki segment korisnika. U njima se nalaze informacije neophodne za preslikavanje segmenata virtuelnog adresnog prostora korisnika u delove fizičke memorije veličine segmenata. Te informacije se nazivaju deskriptori segmenata. S obzirom da u virtuelnom adresnom prostoru korisnika ima 28 segmenata, to i tabela segmenata ima 28 ulaza. Početna adresa tabele segmenata sadržana je u posebnom registru procesora koji se naziva ukazivač na ST (STP). Na osnovu sadržaja ukazivača na ST i broja segmenta, jedinica za preslikavanje virtuelnih adresa u realne adrese dolazi do deskriptora segmenta, a time i do informacija neophodnih za preslikavanje.

U fizičkoj memoriji postoji posebna tabela segmenata svakog korisnika. Početne adrese tabela segmenata svih korisnika čuva operativni sistem. Prilikom prebacivanja procesora sa korisnika na korisnika operativni sistem, najpre, čuva kontekst korisnika kome se oduzima procesor, a potom, restaurira kontekst korisnika kome se dodeljuje procesor. Tom prilikom se u ukazivač na ST upisuje početna adresa tabele segmenata korisnika kome se dodeljuje procesor. Time se obezbeđuje da jedinica za preslikavanje pristupa tabeli segmenata korisnika kome je dodeljen procesor.

Polja deskriptora segmenta su:

V (1 bit)—segment u memoriji, •D (1 bit)—segment modifikovan, •IRW (3 bita)—bitovi zaštite, •length (16 bita)—veličina segmenta, •saddr (20 bita)—početna adresa segmenta u fizičkoj memoriji i •disk (20 bita)—adresa segmenta na disku.

Polje V označava da li je dati segment u operativnoj memoriji. Postavlja ga operativni sistem prilikom dovlačenja datog segmenta sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje i to ako

•je postavljen, da formira realnu adresu i •nije postavljen, da geniriše prekid.

Polje D označava da li je dati segment modifikovan. Postavlja ga jedinica za preslikavanje ako je bilo operacija upisa u dati segment. Koristi ga operativni sistem onda kada odabere dati segment za zamenu i to ako

•je postavljen, da dati segment vrati na disk •nije postavljen, da dati segment ne vraća na disk.

Polje IRW označava dozvoljen pristup datom segmentu. Uzeto je da

•postavljen bit I označava da iz njega smeju da se čitaju samo instrukcije, •postavljen bit R označava da iz njega smeju da se čitaju podaci i •postavljen bit W označava da iz njega smeju da se upisuju podaci.

Polje IRW formira operativni sistem prilikom formiranja tabele segmenata datog korisnika. Koristi ga jedinica za preslikavanje da, upoređivanjem sa sadržajem registra accreg, utvrdi da li zahtevani pristup segmentu odgovara dozvoljenom pristupu segmentu.

Docsity.com

59

Polje length označava veličinu segmenta. Polje length postavlja operativni sistem prilikom formiranja tabele segmenata datog korisnika. Koristi ga jedinica za preslikavanje da, upoređivanjem sa sadržajem polja word virtuelne adrese, utvrdi da li je adresa reči u segmentu unutar specificirane veličine segmenta.

Polje saddr označava početnu adresu dela operativne memorije u kome se nalazi dati segment. Vrednost u ovom polju ima smisla jedino ako je polje V postavljeno. Polje saddr postavlja operativni sistem prilikom dovlačenja segmenta sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje, i to ako je polje V postavljeno, da formira realnu adresu.

Polje disk označava adresu datog segmenta na disku. Polje disk postavlja operativni sistem prilikom formiranja tabele segmenata datog korisnika. Koristi ga samo operativni sistem i to radi lociranja datog segmenta na disku prilikom

• dovlačenja segmenta sa diska u odabrani deo operativne memorije • vraćanja modifikovanog segmenta iz dela operativne memorije odabranog za zamenu na

disk.

Uzeto je proizvoljno, jer to nije predmet razmatranja u ovom zadatku, pa stoga nije ni definisano, da je veličina adrese segmenta na disku 20 bitova.

c) Preslikavanje virtuelne u realnu adresu za slučaj da je segment u memoriji realizuje se kompletno hardverski i to pomoću jedinice za preslikavanje. Ovo preslikavanje se realizuje u sledećim koracima:

1. Polje segm virtuelne adrese predstavlja broj ulaza u tabelu segmenata u kome se nalazi deskriptor datog segmenta. S obzirom na to da je adresiranje fizičke memorije bajtovsko i da deskriptor segmenta zauzima osam bajta potrebno je broj ulaza u tabelu segmenata pretvoriti u pomeraj u odnosu na početak tabele segmenata. To se realizuje pomeranjem ulevo za tri mesta sadržaja polja segm vitruelne adrese.

2. Sadržaj registra ukazivač na ST predstavlja početnu adresu tabele segmenata. Pomeraj u odnosu na početak tabele segmenata formiran u prethodnom koraku se sabira sa sadržajem registra ukazivač na ST i time dobija adresa deskriptora datog segmenta. Počev od formirane adrese treba očitati šest bajtova, jer se u njima nalaze polja V, IRW, length i saddr koja koristi jedinica za preslikavanje.

3. Polje V deskriptora ukazuje na to da li je dati segment u memoriji. Stoga se, najpre, sa adrese formirane u prethodnom koraku čita prvi bajt u kome se nalazi polje V deskriptora i vrši provera da li je ovo polje postavljeno. Za slučaj kada je segment u memoriji utvrđuje se da je polje V postavljeno, pa se produžava sa sledećim koracima.

4. Polja IRW, length i saddr deskriptora sadrže bitove zaštite, veličinu segmenta i početnu adresu segmenta u fizičkoj memoriji, respektivno. Polje IRW se nalazi u prvom, polje length u trećem, a polje saddr u četvrtom, petom, i delimično šestom bajtu deskriptora. Stoga se počev od prve sledeće adrese čita još pet bajtova deskriptora. Sada se istovremeno:

• sabiranjem polja saddr iz deskriptora segmenta i polja word iz virtuelne adrese formira se realna adresa, • upoređivanjem polja IRW iz deskriptora segmenta i sadržaja registra accreg utvrđuje da li

se zahteva pristup koji je dozvoljen za dati segment i • upoređivanjem polja length iz deskriptora segmenta i polja word iz virtuelne adrese

utvrđuje da li je adresa unutar segmenta unutar specificirane veličine segmenta.

Ukoliko su signali ACCESS i BOUND neaktivni, zahtevani pristup segmentu i virtuelna adresa su korektni, pa se formirana realna adresa koristi za pristup operativnoj memoriji. U

Docsity.com

60

suprotnom nema obraćanja operativnoj memoriji već se generiše prekid. Sve ostalo, što za ovaj slučaj potom treba uraditi, radi operativni sistem i to u sledećim koracima:

1. Oduzima procesor datom korisniku, njegov kontekst čuva i terminira korisnika.

2. Šalje poruku na konzolu da je dati korisnik terminiran.

3. Dodeljuje procesor nekom od radnosposobnih korisnika. Tada se restaurira njegov kontekst. U okviru toga se u programski brojač upisuje nova vrednost i time kontrola predaje tom novom korisniku.

d) U slučaju da segment nije u memoriji realizuju se samo prva tri od četiri koraka za slučaj kada je segment u memoriji. U koraku 3. se u ovom slučaju utvrđuje da polje V nije postavljeno, pa se generiše prekid. Svi koraci do generisanja signala prekida, uključujući i njegovo generisanje, realizuju se hardverski pomoću jedinice za preslikavanje. Sve ostalo, što za ovaj slučaj potom treba uraditi, radi operativni sistem i to u sledećim koracima:

1. Oduzima se procesor datom korisniku, njegov kontekst čuva i korisnik stavlja u red blokiranih korisnika.

2. Organizuje se dovlačenje datog segmenta sa diska u neki od delova operativne memorije veličine segmenta.

3. Dodeljuje se procesor nekom od radnosposobnih korisnika. Tada se restaurira njegov kontekst. U okviru toga se u programski brojač upisuje nova vrednost i time kontrola predaje tom novom korisniku.

Dovlačenje segmenta sa diska u neki od delova operativne memorije se realizuje u sledećim koracima:

—Traži se deo operativne memorije u koji će se smestiti dati segment. Pri tome se izvršava jedan od sledeća dva koraka:

• Ukoliko ima slobodnih delova operativne memorije po nekom algoritmu se odlučuje koji deo treba dodeliti datom segmentu. • Ukoliko nema slobodnih delova operativne memorije po nekom algoritmu se odlučuje

koji segment treba izbaciti iz operativne memorije da bi se deo operativne memorije u kome se on nalazi oslobodio i dodelio datom segmentu. Ukoliko je segment odabran za izbacivanje modifikovan mora se vratiti na disk pre nego što se deo operativne memorije u kome se on nalazi koristi da se u njega dovuče novi segment. Adresa na disku segmenta odabranog za izbacivanje dobija se iz polja disk deskriptora segmenta. Po završenom vraćanju datog segmenta na disk, u polje V deskriptora segmenta koji je vraćen na disk upisuje se nula.

—Dovlači se dati segment sa diska u odabrani deo operativne memorije. Adresa datog segmenta na disku dobija se iz polja disk deskriptora segmenta. Po završenom dovlačenju datog segmenta sa diska u polje saddr deskriptora segmenta upisuje se početna adresa dela segmenta u operativnoj memoriji, a u polje V jedinica.

—Korisnik za koga je dovučen segment prevodi se u red radnosposobnih korisnika.

—U nekom trenutku dati korisnik ponovo dobija procesor. Dati korisnik ponovo generiše adresu za koju je bilo utvrđeno da je iz segmenta koji nije bio u operativnoj memoriji. Pošto je sada dati segment u operativnoj memoriji ponoviće se koraci iz tačke c).

Docsity.com

61

Zadatak 1.2.3 Posmatra se računar sa virtuelnom memorijom segmentno stranične organizacije. Virtuelni

adresni prostor korisnika je 16 Mbajta i podeljen je na 256 segmenata maksimalne veličine 64 Kbajta. Svaki segment je podeljen na stranice veličine 1 Kbajt. Realni adresni prostor je 1 Mbajt i podeljen je na blokove veličine 1 Kbajt. Virtuelnom i realnom adresom se adresiraju reči dužine 1 bajt.

Uraditi sledeće:

a) Označiti dužine u bitovima svih delova virtuelne i realne adrese.

b) Nacrtati najpre tabelu segmenata, objasniti kako se pristupa tabelama segmenata različitih korisnika i dati funkciju pojedinih polja deskriptora segmenta. Nacrtati zatim jednu od tabela stranica, objasniti kako se pristupa tabelama stranica i dati funkciju pojedinih polja deskriptora stranice.

c) Objasniti kako se vrši preslikavanje virtuelne u realnu adresu za slučaj da je stranica u memoriji i navesti šta se od toga radi hardverski a šta softverski.

d) Objasniti šta se radi za slučaj da stranica nije u memoriji i navesti šta se od toga radi hardverski a šta softverski.

Rešenje: a) Kod stranične organizacije virtuelne memorije virtuelna adresa ima tri polja: broj

segmenta (segm), broj stranice (page) i adresa reči u stranici (word). Kako je veličina virtuelnog adresnog prostora 16 Mbajta (224 bajta) i sastoji se iz 256 segmenata (28 segmenata) maksimalne veličine 64 Kbajta, a oni su dalje podeljeni na 64 stranice (26 stranica) veličine 1 Kbajta (210 bajta), to su veličine polja segm, page i word 8, 6 i 10 bita, respektivno. Kod segmentno-stranične organizacije virtuelne memorije realna adresa ima dva polja: broj bloka (block) i adresa reči u bloku (word). Kako je veličina realnog adresnog prostora 1 Mbajta (220 bajta), a bloka 1 Kbajt (210 bajta ), to su veličine polja block i word 10 i 10 bita, respektivno. Struktura virtuelne i realne adrese i dužine u bitovima delova virtuelne i realne adrese su prikazani na slici Error! Reference source not found..

Docsity.com

62

31

0

28 −

1

3

+

20

ST P

9 0

1 4

4 2

4 4

3 uk

az iv

ač n

a ST

po če

tn a

ad re

sa S

T 20

22 13

1 4

2 4

3

10

se gm

w or

d 10

15 16

23 1 4

4 2

4 4

3 1

4 2

4 3

8

vi rtu

el na

a dr

es a

br oj

se gm

en ta

(b ro

j u la

za u

S T)

bl oc

k 10

19 1 4

4 2

4 4

3

re al

na a

dr es

a

ad re

sa re či

u st

ra ni

ci 6

10

ST (t

ab el

a se

gm en

at a)

1 2

3

13

C M

P1

ac cr

eq 2

1 0

1 2

3

3

3 3

A C

C ES

S

C M

P2

B O

U N

D

6

pa ge

0 9

1 4

4 2

4 4

3 w

or d

0 9

1 4

2 4

3

10 10

po m

er aj

u o

dn os

u na

p oč

et ak

S T

12 29

28 23

6 6

6

{

19 0

1 4

4 2

4 4

3 1

10

30 29

20

1 4

4 2

4 4

3 20

{ 1

31

1 4

2 4

3 10

+

le ng

th

8 po

m er

aj u

o dn

os u

na po če

ta k

PT

PT (t

ab el

a st

ra ni

ca )

de sk

rip to

r se

gm en

ta de

sk rip

to r

st ra

ni ce

26 −

1 0

10

PT P

IR Wbr oj

st ra

ni ce

(b ro

j u la

za u

P T)

di sk

bl oc

k D

V

ad re

sa re či

u b

lo ku

pa ge

1 2

3

100

1 2

3

2 0

1 2

3

2 0

1 2

3

100

0

1 2

3

Docsity.com

63

Slika 1.2.3. Virtuelna adresa, realna adresa i tabela stranica za segmentno-straničnu organizaciju virtuelne memorije

b) Kod segmentno-stranične organizacije virtuelne memorije svaki korisnik ima jednu tabelu segmenata i onoliko tabela stranica koliko ima segmenata u virtuelnom adresnom prostoru korisnika. Za dati procesor postoji jedna tabela segmenata i maksimalno 256 tabela stranica.

Tabela segmenata (ST) jednog korisnika je data na slici Error! Reference source not found.. Tabela segmenata ima poseban ulaz za svaki segment korisnika. U njima se nalaze informacije neophodne za preslikavanje segmenata virtuelnog adresnog prostora korisnika u blokove fizičke memorije. Te informacije se nazivaju deskriptori segmenata. S obzirom da u virtuelnom adresnom prostoru korisnika ima 28 segmenata, to i tabela segmenata ima 28 ulaza. Početna adresa tabele segmenata sadržana je u posebnom registru procesora koji se naziva ukazivač na ST (STP). Na osnovu sadržaja ukazivača na ST i broja segmenta, jedinica za preslikavanje virtuelnih adresa u realne adrese dolazi do deskriptora segmenta, a time i do informacija neophodnih za preslikavanje.

U fizičkoj memoriji postoji posebna tabela segmenata svakog korisnika. Početne adrese tabela segmenata svih korisnika čuva operativni sistem. Prilikom prebacivanja procesora sa korisnika na korisnika operativni sistem, najpre, čuva kontekst korisnika kome se oduzima procesor, a potom, restaurira kontekst korisnika kome se dodeljuje procesor. Tom prilikom se u ukazivač na ST upisuje početna adresa tabele segmenata korisnika kome se dodeljuje procesor. Time se obezbeđuje da jedinica za preslikavanje pristupa tabeli segmenata korisnika kome je dodeljen procesor.

Polja deskriptora segmenta su:

IRW (3 bita)—bitovi zaštite, •length (16 bita)—veličina segmenta i •PTP (20 bita)—početna adresa tabele stranica u fizičkoj memoriji.

Polje IRW označava dozvoljen pristup datom segmentu. Uzeto je da

•postavljen bit I označava da iz njega smeju da se čitaju samo instrukcije, •postavljen bit R označava da iz njega smeju da se čitaju podaci i •postavljen bit W označava da iz njega smeju da se upisuju podaci.

Polje IRW formira operativni sistem prilikom formiranja tabele segmenata datog korisnika. Koristi ga jedinica za preslikavanje da, upoređivanjem sa sadržajem registra accreg, utvrdi da li zahtevani pristup segmentu odgovara dozvoljenom pristupu segmentu.

Polje length označava veličinu segmenta. Polje length postavlja operativni sistem prilikom formiranja tabele segmenata datog korisnika. Koristi ga jedinica za preslikavanje da, upoređivanjem sa sadržajem polja page virtuelne adrese, utvrdi da li je broj stranice u segmentu unutar specificirane veličine segmenta.

Polje PTP označava početnu adresu operativne memorije u kome se nalazi tabela stranica datog segmenta. Polje PTP postavlja operativni sistem prilikom formiranja tabele segmenata i tabela stranica. Koristi ga jedinica za preslikavanje da formira realnu adresu.

Uzeto je da se STP i PTP predstavljaju u brojevima blokova, a length u broju stranica.

Tabela stranica (PT) jednog segmenta je data na slici Error! Reference source not found.. Tabela stranica ima poseban ulaz za svaku stranicu datog segmenta. U njima se nalaze informacije neophodne za preslikavanje stranica segmenta u blokove fizičke memorije.

Docsity.com

64

Te informacije se nazivaju deskriptori stranica. S obzirom da segment ima najviše 26 stranica, to i tabela stranica može da ima najviše 26 ulaza. Početna adresa tabele stranica sadržana je u polju PTP deskriptora datog segmenta. Na osnovu sadržaja polja PTP deskriptora datog segmenta i broja stranice, jedinica za preslikavanje virtuelnih adresa u realne adrese dolazi do deskriptora stranice, a time i do informacija neophodnih za preslikavanje.

Polja deskriptora stranice su:

V (1 bit)—stranica u memoriji, •D (1 bit)—stranica modifikovana, •block (10 bita)—broj bloka i •disk (20 bita)—adresa na disku.

Polje V označava da li je data stranica u operativnoj memoriji. Postavlja ga operativni sistem prilikom dovlačenja date stranice sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje i to ako

•je postavljen, da formira realnu adresu i •nije postavljen, da geniriše prekid.

Polje D označava da li je data stranica modifikovana. Postavlja ga jedinica za preslikavanje ako je bilo operacija upisa u datu stranicu. Koristi ga operativni sistem onda kada odabere datu stranicu za zamenu i to ako

•je postavljen, da datu stranicu vrati na disk •nije postavljen, da datu stranicu ne vraća na disk.

Polje block označava broj bloka operativne memorije u kome se nalazi data stranica. Vrednost u ovom polju ima smisla jedino ako je polje V postavljeno. Polje block postavlja operativni sistem prilikom dovlačenja date stranice sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje, i to ako je polje V postavljeno, da formira realnu adresu.

Polje disk označava adresu date stranice na disku. Polje disk postavlja operativni sistem prilikom formiranja tabele stranice datog korisnika. Koristi ga samo operativni sistem i to radi lociranja date stranice na disku prilikom

• dovlačenja stranice sa diska u odabrani blok operativne memorije • vraćanja modifikovane stranice iz bloka operativne memorije odabranog za zamenu na

disk.

Uzeto je proizvoljno, jer to nije predmet razmatranja u ovom zadatku, pa stoga nije ni definisano, da je veličina adrese stranice na disku 20 bitova.

c) Preslikavanje virtuelne u realnu adresu za slučaj da je stranica u memoriji realizuje se kompletno hardverski i to pomoću jedinice za preslikavanje. Ovo preslikavanje se realizuje u sledećim koracima:

1. Polje segm virtuelne adrese predstavlja broj ulaza u tabelu segmenata u kome se nalazi deskriptor datog segmenta. S obzirom na to da je adresiranje fizičke memorije bajtovsko i da deskriptor segmenta zauzima četiri bajta potrebno je broj ulaza u tabelu segmenata pretvoriti u pomeraj u odnosu na početak tabele segmenata. To se realizuje pomeranjem ulevo za dva mesta sadržaja polja segm vitruelne adrese.

2. Sadržaj registra ukazivač na ST predstavlja početnu adresu tabele segmenata. Pomeraj u odnosu na početak tabele segmenata formiran u prethodnom koraku se sabira sa sadržajem registra ukazivač na ST i time dobija adresa deskriptora datog segmenta. Počev od formirane

Docsity.com

65

adrese treba očitati tri bajta, jer se u njima nalaze polja IRW, length i PTP koja koristi jedinica za preslikavanje.

3. Polja IRW, length i PTP deskriptora sadrže bitove zaštite, veličinu segmenta i početnu adresu tabele stranica u fizičkoj memoriji, respektivno. Polja IRW i length se nalaze u prvom, a polje PTP u drugom i delimično trećem bajtu deskriptora. Stoga se počev od formirane adrese deskriptora datog segmenta čitaju tri bajta deskriptora. Sada se istovremeno:

• upoređivanjem polja IRW iz deskriptora segmenta i sadržaja registra accreg utvrđuje da li se zahteva pristup koji je dozvoljen za dati segment i • upoređivanjem polja length iz deskriptora segmenta i polja page iz virtuelne adrese

utvrđuje da li je broj stranice u segmentu unutar specificirane veličine segmenta.

Ukoliko su signali ACCESS i BOUND neaktivni, zahtevani pristup segmentu je korektan, pa se pristupa deskriptoru stranice u tabeli stranica na način prikazan počev od koraka 4. U suprotnom nema obraćanja tabeli stranica već se generiše prekid i prelazi na aktivnosti prikazane počev od koraka 8.

4. Polje page virtuelne adrese predstavlja broj ulaza u tabelu stranica u kome se nalazi deskriptor date stranice. S obzirom na to da je adresiranje fizičke memorije bajtovsko i da deskriptor stranice zauzima četiri bajta potrebno je broj ulaza u tabelu stranica pretvoriti u pomeraj u odnosu na početak tabele stranica. To se realizuje pomeranjem ulevo za dva mesta sadržaja polja page vitruelne adrese.

5. Sadržaj polja PTP predstavlja početnu adresu tabele stranica izraženu kao broj bloka. S obzirom da je adresiranje fizičke memorije bajtovsko i da blok zauzima 1 Kbajt, početna adresa tabele stranica dobija se pomeranjem sadržaja polja PTP 10 mesta ulevo. Ovako formirana početna adresa tabele stranica sabira se sa pomerajem u odnosu na početak tabele stranica koji je formiran u prethodnom koraku i time se dobija adresa deskriptora date stranice. Počev od formirane adrese treba očitati dva bajta, jer se u njima nalaze polja V i block koja koristi jedinica za preslikavanje.

6. Polje V deskriptora ukazuje na to da li je data stranica u memoriji. Stoga se, najpre, sa adrese formirane u prethodnom koraku čita prvi bajt u kome se nalazi polje V deskriptora i vrši provera da li je ovo polje postavljeno. Za slučaj kada je stranica u memoriji utvrđuje se da je polje V postavljeno, pa se produžava sa sledećim koracima.

7. Polje block deskriptora sadrži broj bloka u kome se nalazi data stranica. Ovo polje sa nalazi delom u prvom a delom u drugom bajtu deskriptora. Stoga se sa prve sledeće adrese čita i drugi bajt deskriptora. Konkatenacijom polja block iz deskriptora stranice i polja word iz virtuelne adrese formira se realna adresa.

Ovo je kraj preslikavanja virtuelne u realnu adresu za slučaj da je stranica u memoriji.

8. U slučaju generisanog prekida zbog pojave aktivne vrednosti jednog ili oba signala ACCESS ili BOUND sve što za ovaj slučaj potom treba uraditi, radi se softverski u delu operativnog sistema i to u sledećim koracima:

• Oduzima procesor datom korisniku, njegov kontekst čuva i terminira korisnika. • Šalje poruku na konzolu da je dati korisnik terminiran. • Dodeljuje procesor nekom od radnosposobnih korisnika. Tada se restaurira njegov

kontekst. U okviru toga se u programski brojač upisuje nova vrednost i time kontrola predaje tom novom korisniku.

d) U slučaju da stranica nije u memoriji realizuju se svi koraci sem koraka 7 kao i za slučaj kada je stranica u memoriji. Moguće su dve situacije. U prvoj situaciji se ide od koraka 1 do

Docsity.com

66

koraka 3 u kome se utvrđuje da je jedan od ili oba signala ACCESS ili BOUND aktivni, pa se prelazi na korak 8. U drugoj situaciji se ide od koraka 1 do koraka 6. U koraku 6 se u ovom slučaju utvrđuje da polje V nije postavljeno, pa se generiše prekid. Svi koraci do generisanja signala prekida, uključujući i njegovo generisanje, realizuju se hardverski pomoću jedinice za preslikavanje. Sve ostalo, što za ovaj slučaj potom treba uraditi, radi operativni sistem i to u sledećim koracima:

1. Oduzima se procesor datom korisniku, njegov kontekst čuva i korisnik stavlja u red blokiranih korisnika..

2. Organizuje se dovlačenje date stranice sa diska u neki od blokova operativne memorije.

3. Dodeljuje se procesor nekom od radnosposobnih korisnika. Tada se restaurira njegov kontekst. U okviru toga se u programski brojač upisuje nova vrednost i time kontrola predaje tom novom korisniku.

Dovlačenje stranice sa diska u neki od blokova operativne memorije se realizuje u sledećim koracima:

—Traži se blok u koji će se smestiti data stranica. Pri tome se izvršava jedan od sledeća dva koraka:

•Ukoliko ima slobodnih blokova po nekom algoritmu se odlučuje koji blok treba dodeliti datoj stranici. •Ukoliko nema slobodnih blokova po nekom algoritmu se odlučuje koju stranicu treba

izbaciti iz operativne memorije da bi se blok u kome se ona nalazi oslobodio i dodelio datoj stranici. Ukoliko je stranica odabrana za izbacivanje modifikovana mora se vratiti na disk pre nego što se blok u kome se ona nalazi koristi da se u njega dovuče nova stranica. Adresa na disku stranice odabrane za izbacivanje dobija se iz polja disk deskriptora stranice. Po završenom vraćanju date stranice na disk, u polje V deskriptora stranice koja je vraćena na disk upisuje se nula.

—Dovlači se data stranica sa diska u odabrani blok operativne memorije. Adresa date stranice na disku dobija se iz polja disk deskriptora stranice. Po završenom dovlačenju date stranice sa diska u polje block deskriptora stranice upisuje se broj bloka, a u polje V jedinica.

—Korisnik za koji je dovučena stranica prevodi se u red radnosposobnih korisnika.

—U nekom trenutku dati korisnik ponovo dobija procesor. Dati korisnik će ponovo generisari adresu za koju je bilo utvrđeno da je iz stranice koja nije bila u memoriji. Pošto je sada data stranica u memoriji ponoviće se koraci iz c).

Zadatak 1.2.4 U računaru sa virtuelnom memorijom stranične organizacije definisanom u zadatku 1.2.1.

postoji jedinica za ubrzavanje preslikavanja virtuelnih u realne adrese.

a) Uzeti da računar poseduje jedinicu za ubrzavanje preslikavanja virtuelnih u realne adrese, realizovanu u tehnici asocijativnog preslikavanja u kojoj se istovremeno čuvaju relevantni delovi deskriptora 512 najčešće korišćenih stranica do 16 korisnika. Uraditi sledeće:

a1) Nacrtati, označiti dužinu u bitovima i objasniti funkciju svih relevantnih delova jedinice za ubrzavanje preslikavanja.

a2) Označiti dužine u bitovima relevantnih delova virtuelne i realne adrese i objasniti kako se:

Docsity.com

67

• proverava da li se relevantni deskriptor nalazi u jedinici za ubrzavanje preslikavanja; • dolazi do deskriptora ukoliko se utvrdi da se nalazi u jedinici za ubrzavanje

preslikavanja; • formira realna adresa; • u jedinici za ubrzavanje preslikavanja obezbeđuje da se stranice različitih korisnika koje

imaju isti broj ne preslikaju u isti, već svaka u svoj blok.

a3) U slučaju da se za generisanu virtuelnu adresu utvrdi da se relevantni deskriptor ne nalazi u jedinici za ubrzavanje preslikavanja, objasniti šta se radi u slučaju:

•kada je relevantna stranica u memoriji; •kada relevantna stranica nije u memoriji i

navesti šta se od toga radi hardverski, a šta softverski.

b) Uzeti da računar poseduje jedinicu za ubrzavanje preslikavanja virtuelnih u realne adrese, realizovanu u tehnici direktnog preslikavanja u kojoj se istovremeno čuvaju relevantni delovi deskriptora 2048 najčešće korišćenih stranica do 16 korisnika. Uraditi isto kao pod a) ovog zadatka.

c) Uzeti da računar poseduje jedinicu za ubrzavanje preslikavanja virtuelnih u realne adrese, realizovanu u tehnici set-asocijativnog preslikavanja sa dva ulaza po setu u kojoj se istovremeno čuvaju relevantni delovi deskriptora 2048 najčešće korišćenih stranica do 16 korisnika. Uraditi isto kao pod a) ovog zadatka.

Rešenje:

a) S obzirom:

• da u adresnom prostoru korisnika ima 16 K stranica (214 stranica), • da je broj korisnika 16 (24 korisnika) i • da se u jedinici za ubrzavanje preslikavanja mogu istovremeno čuvati deskriptori stranica

različitih korisnika,

zaključuje se da je, kao što je prikazano na slici 1.2.4, tag dužine 18 bita i da je formiran tako da:

• 4 najstarija bita predstavljaju broj korisnika (user) i • 14 najmlađih bitova predstavljaju broj stranice (page) iz virtuelne adrese.

Docsity.com

68

C D

V 0M V 1

V 51

1 51

1 1M 0

T A

G M

E M

O R

IJ A

V 1

M 1

V 51

1

M 51

1

V 0

M 0

51 1

1 0

1M M

8 0

D 0M D 1

D 51

1 51

1

1 0

14243

br oj

u la

za

8 M 0

123

H IT

D V

D A

T A

M E

M O

R IJ

A

pa ge

w or

d 0

9 10

23 1 4

4 2

4 4

3 1

4 2

4 3

vi rtu

el na

a dr

es a

bl oc

k w

or d

0 9

10 19 1

4 4

2 4

4 3

1 4

2 4

3

re al

na a

dr es

a

us er

0 3 1

2 3

ko ris

ni k

10 10

0 17

1 4

4 2

4 4

3

1 4

4 2

4 4

3

4 14

18

1 2

3 1

2 3

1 4

4 2

4 4

3

V D

ta g1

8 1

1

0 9 1

4 2

4 3

10

10

W

w or

d

ta g

bl oc

k

Slika 1.2.4. Jedinica za ubrzavanje preslikavanja virtuelnih u realne adrese za virtuelnu memoriju stranične organizacije realizovana u tehnici asocijativnog preslikavanja

a1) Na osnovu zadatih karakteristika virtuelne memorije i jedinice za ubrzavanje preslikavanja dolazi se do strukture jedinice za ubrzavanje preslikavanja prikazane na istoj slici.

Jedinica za ubrzavanje preslikavanja se sastoji iz sledećih delova:

Docsity.com

69

•D0…511 (dirty bitovi)—512 flip-flopova, •V0…511 (valid bitovi)—512 flip-flopova, •TAG MEMORIJA—asocijativna memorija kapaciteta 512 reči širine 18 bita, •CD—koder 512/9 i •DATA MEMORIJA—RAM memorija kapaciteta 512 reči širine 10 bita.

Dirty bitovi označavaju za svaki od 512 ulaza jedinice za ubrzavanje preslikavanja da li je bilo upisa u neku od lokacija date stranice.

Valid bitovi označavaju za svaki od 512 ulaza jedinice za ubrzavanje preslikavanja da li je odgovarajući ulaz TAG MEMORIJE važeći.

TAG MEMORIJA služi za čuvanje 512 TAG polja stranica čiji se delovi deskriptora nalaze u odgovarajućim ulazima DATA MEMORIJE i generisanje aktivnih vrednosti signala saglasnosti M0…511 ukoliko postoji saglasnost TAG polja generisane adrese i sadržaja odgovarajućeg ulaza TAG MEMORIJE.

CD služi za generisanje aktivne vrednosti signala saglasnosti HIT i broja ulaza u jedinicu za ubrzavanje preslikavanja za koji je otkrivena saglasnost.

DATA MEMORIJA služi za čuvanje 512 deskriptora stranica.

a2) TAG bitovi (18) iz generisane adrese se porede sa sadržajima svih 512 ulaza u TAG MEMORIJI. Ako se sadržaj bilo kojeg ulaza slaže sa TAG bitovima generisane adrese i odgovarajući V bit je postavljen, signal saglasnosti HIT postaje aktivan.

Bitovi (9) koji označavaju broj ulaza u jedinicu za ubrzavanje preslikavanja gde je otkrivena saglasnost dobijeni sa izlaza kodera se koriste kao adresa u DATA MEMORIJI i deskriptor se čita.

Očitano polje block daje 10 najstarijih bitova a polje word iz virtuelne adrese 10 najmlađih bitova realne adrese.

Sve ove aktivnosti se realizuju hardverski.

Da bi se stranice različitih korisnika koje imaju isti broj preslikale svaka u svoj blok, u formiranju tag polja učestvuje ne samo polje page generisane adrese, već i vrednost registra user procesora. Kod prebacivanja procesora sa korisnika na korianika u ovaj registar procesora se upisuje broj korisnika kome se dodeljuje procesor.

a3) Ukoliko se utvrdi da se relevantni deskriptor ne nalazi u hardveru, ide se hardverski u tabelu stranica i čita deskriptor na način prikazan u zadatku 1.2.1. Ukoliko se utvrdi da se stranica nalazi u operativnoj memoriji, polje block deskriptora se dovlači u hardver. Korišćenjem FIFO ili LRU algoritma zamene bira se ulaz jedinice za ubrzavanje preslikavanja u koji se smešta deskriptor. U dati ulaz DATA MEMORIJE se upisuje polje block deskriptora. U isti ulaz TAG MEMORIJE se upisuje polje tag generisane adrese. U isti ulaz V flip-flopova se upisuje 1, a u isti ulaz D flip-flopova se upisuje 0. Sve ovo se realizuje hardverski. Ukoliko se utvrdi da se stranica ne nalazi u operativnoj memoriji, generiše se prekid. Operativni sistem dovlači datu stranicu sa diska na način prikazan u zadatku 1.2.1.

b) S obzirom:

• da u adresnom prostoru korisnika ima 16 K stranica (214 stranica), • da je broj korisnika 16 (24 korisnika), • da se u jedinici za ubrzavanje preslikavanja mogu istovremeno čuvati deskriptori stranica

različitih korisnika,

Docsity.com

70

• da je jedinica za ubrzavanje preslikavanja realizovana u tehnici direktnog preslikavanja i • da se u jedinici za ubrzavanje preslikavanja mogu istovremeno čuvati relevantni delovi

deskriptora 2048 (211) najčešće korišćenih stranica do 16 korisnika (24 korisnika),

onda je po 214 stranica svih 24 korisnika grupisano u 27 grupa sa po 211 stranica u grupi. Zaključuje se, kao što je prikazano na slici 1.2.5, da su:

• polje tag dužine 7 bita i • polje ulaz dužine 11 bita.

Polje tag je formirano tako da:

• 4 najstarija bita predstavljaju broj korisnika (user), • 3 najmlađa bita predstavljaju 3 najstarija bita broja stranice (page) iz virtelne adrese.

TAG MEMORIJA

2047

1 0

10 M

0

page word 091023

14243 14243

virtuelna adresa

block word 091019

1442443 14243

realna adresa

user 03

123

korisnik

10 10

1016

4 11

{ 14243

D 71

09

1442443

10

10

1718

{

V 1

123

3

21 20

14243

1 2

3

CMP

block tag

7 tag ulaz

= HIT

Slika 1.2.5. Jedinica za ubrzavanje preslikavanja virtuelnih u realne adrese za virtuelnu

memoriju stranične organizacije realizovana u tehnici direktnog preslikavanja

b1) Na osnovu zadatih karakteristika virtuelne memorije i jedinice za ubrzavanje preslikavanja dolazi se do strukture jedinice prikazane na istoj slici.

Jedinica za ubrzavanje preslikavanja se sastoji iz sledećih delova:

• TAG MEMORIJA—RAM memorija kapaciteta 2048 reči širine 19 bita, koja se sastoji iz polja: • V (valid bitovi) dužine 1 bit, • D (dirty bitovi) dužine 1 bit, • tag dužine 7 bita, • block dužine 10 bita i

• CMP—komparator.

Docsity.com

71

TAG MEMORIJA služi za čuvanje 2048 deskriptora stranica zajedno sa odgovarajućim V, D i tag bitovima.

V bitovi označavaju za svaki od 2048 ulaza jedinice za ubrzavanje preslikavanja da li je odgovarajući ulaz TAG MEMORIJE važeći.

D bitovi označavaju za svaki od 2048 ulaza jedinice za ubrzavanje preslikavanja da li je bilo upisa u neku od lokacija date stranice.

tag bitovi služe za čuvanje 2048 tag polja stranica čiji se deskriptori nalaze u odgovarajućim block poljima TAG MEMORIJE.

CMP služi za generisanje aktivne vrednosti signala saglasnosti HIT ukoliko:

tag polje generisane adrese je isto kao sadržaj tag polja TAG MEMORIJE adresiran poljem ulaz generisane adrese i • V bit adresiran poljem ulaz generisane adrese je postavljen. b2) ulaz bitovi (11) iz generisane adrese se koriste kao adresa za TAG MEMORIJU. tag

bitovi očitani iz TAG MEMORIJE se porede sa tag bitovima iz generisane adrese. Ako se otkrije da postoji saglasnost i da je V bit, adresiran ulaz bitovima generisane adrese, postavljen, signal saglasnosti HIT postaje aktivan.

Očitano polje block daje 10 najstarijih bitova a polje word iz virtuelne adrese 10 najmlađih bitova realne adrese.

Sve ove aktivnosti se realizuju hardverski.

Da bi se stranice različitih korisnika koje imaju isti broj preslikale svaka u svoj blok, u formiranju tag polja učestvuje ne samo polje page generisane adrese, već i vrednost registra user procesora. Kod prebacivanja procesora sa korisnika na korianika u ovaj registar procesora se upisuje broj korisnika kome se dodeljuje procesor.

b3) Ukoliko se utvrdi da se relevantni deskriptor ne nalazi u hardveru, ide se hardverski u tabelu stranica i čita deskriptor na način prikazan u zadatku 1.2.1. Ukoliko se utvrdi da se stranica nalazi u operativnoj memoriji, polje block deskriptora se dovlači u hardver. Korišćenjem FIFO ili LRU algoritma zamene bira se ulaz jedinice za ubrzavanje preslikavanja u koji se smešta deskriptor. U dati ulaz DATA MEMORIJE se upisuje polje block deskriptora. U isti ulaz TAG MEMORIJE se upisuje polje tag generisane adrese. U isti ulaz V flip-flopova se upisuje 1, a u isti ulaz D flip-flopova se upisuje 0. Sve ovo se realizuje hardverski. Ukoliko se utvrdi da se stranica ne nalazi u operativnoj memoriji, generiše se prekid. Operativni sistem dovlači datu stranicu sa diska na način prikazan u zadatku 1.2.1.

c) S obzirom:

• da u adresnom prostoru korisnika ima 16 K stranica (214 stranica), • da je broj korisnika 16 (24 korisnika), • da se u jedinici za ubrzavanje preslikavanja mogu istovremeno čuvati deskriptori stranica

različitih korisnika, • da je broj setova u jedinici za ubrzavanje preslikavanja 1 K (210 setova) i • da postoje dva ulaza po setu (21 ulaza),

onda je 214 stranica svih 24 korisnika grupisano u 28 grupa sa po 210 stranica u grupi. Zaključuje se, kao što je prikazano na slici 1.2.6, da su:

• polje tag dužine 8 bita i • polje set dužine 10 bita.

Docsity.com

72

Polje tag je formirano tako da:

• 4 najstarija bita predstavljaju broj korisnika (user), • 4 najmlađa bita predstavljaju 4 najstarija bita broja stranice (page) iz virtelne adrese.

TAG MEMORIJA ULAZA 0

set 1023

set 1 set 0

9 M

0

page word 091021

14243 14243

virtuelna adresa

block word 091019

1442443 14243

realna adresa

user 03

123

korisnik

10 10

1017

4 10

{ 14243

Di,0

81

09

1442443

10

10

1819

{

Vi,0

1

123

4

20 19

14243

1 2

3

CMP0

blocki,0 tagi,0

8 tag set

= HITi,0

set 1023

set 1 set 0

9 M

0

1017

{ 14243

Di,1

81

09

1442443

10

1819

{

Vi,1

1

1 2

3

CMP1

blocki,1 tagi,1

= HITi,1

HIT

block

1010

TAG MEMORIJA ULAZA 1

ulazi 0

ulazi 1

Slika 1.2.6. Jedinica za ubrzavanje preslikavanja virtuelnih u realne adrese za virtuelnu memoriju stranične organizacijerelaizovaja u tehnici set-asocijativnog preslikavanja

c1) Na osnovu zadatih karakteristika virtuelne memorije i jedinice za ubrzavanje preslikavanja dolazi se do strukture jedinice prikazane na istoj slici.

Docsity.com

73

Jedinica za ubrzavanje preslikavanja se sastoji iz sledećih delova:

• TAG MEMORIJA ULAZA 0—RAM memorija kapaciteta 1024 reči širine 20 bita, koja se sastoji iz polja: • V (valid bitovi) dužine 1 bit, • D (dirty bitovi) dužine 1 bit, • tag dužine 8 bita, • block dužine 10 bita i

• TAG MEMORIJA ULAZA 1—RAM memorija kapaciteta 1024 reči širine 20 bita, koja se sastoji iz istih polja kao i TAG MEMORIJA ULAZA 0. • CMP0—komparator TAG MEMORIJE ULAZA 0. • CMP1—komparator TAG MEMORIJE ULAZA 1. TAG MEMORIJA ULAZA 0 služi za čuvanje 1024 block polja deskriptora stranica

zajedno sa odgovarajućim V, D i tag bitovima setova SET0 do SET1023 smeštenih u ulaze 0 jedinice za ubrzavanje preslikavanja.

V bitovi označavaju za svaki od 1024 seta ulaza 0 jedinice za ubrzavanje preslikavanja da li je odgovarajući ulaz TAG MEMORIJE ULAZA 0 važeći.

D bitovi označavaju za svaki od 1024 seta ulaza 0 jedinice za ubrzavanje preslikavanja da li je bilo upisa u neku od lokacija date stranice.

tag bitovi služe za čuvanje 1024 tag polja stranica čija se block polja deskriptora nalaze u odgovarajućim block poljima TAG MEMORIJE ULAZA 0.

block bitovi služe za čuvanje 1024 block polja deskriptora stranica koja se nalaze u ulazima 0 jedinice za ubrzavanje preslikavanja.

CMP0 služi za generisanje aktivne vrednosti signala saglasnosti HITi,0 za ulaze 0 jedinice za ubrzavanje preslikavanja ukoliko:

tag polje generisane adrese je isto kao sadržaj tagi,0 polja TAG MEMORIJE ULAZA 0 adresiran poljem set generisane adrese i • Vi,0 bit adresiran poljem set generisane adrese je postavljen.

TAG MEMORIJA ULAZA 1 služi za čuvanje 1024 block polja deskriptora stranica zajedno sa odgovarajućim V, D i tag bitovima setova SET0 do SET1023 smeštenih u ulaze 1 jedinice za ubrzavanje preslikavanja. Funkcije polja V, D, tag i block su iste kao u slučaju TAG MEMORIJE ULAZA 0.

CMP1 služi za generisanje aktivne vrednosti signala saglasnosti HITi,1 za ulaze 1 jedinice za ubrzavanje preslikavanja na isti način kao signal saglasnosti HITi,0.

c2) set bitovi (10) iz generisane adrese se koriste kao adresa za TAG MEMORIJU ULAZA 0 i TAG MEMORIJU ULAZA 1. tagi,0 bitovi očitani iz TAG MEMORIJE ULAZA 0 se porede sa tag bitovima iz generisane adrese. Ako se otkrije da postoji saglasnost i da je Vi,0 bit, adresiran set bitovima generisane adrese, postavljen, signal saglasnosti HITi,0 postaje aktivan. tagi,1 bitovi očitani iz TAG MEMORIJE ULAZA 1 se porede sa tag bitovima iz generisane adrese. Ako se otkrije da postoji saglasnost i da je Vi,1 bit, adresiran set bitovima generisane adrese, postavljen, signal saglasnosti HITi,1 postaje aktivan. Signal saglasnosti HIT je aktivan ukoliko je aktivan jedan od signala HITi,0 i HITi,1.

U formiranju 10 najstarijih bitova realne adrese učestvuju blocki,0 bitovi iz TAG MEMORIJE ULAZA 0 ukoliko je signal HITi,0 aktivan, odnosno blocki,1 bitovi iz TAG

Docsity.com

74

MEMORIJE ULAZA 1 ukoliko je signal HITi,1 aktivan. Polje word iz virtuelne adrese daje 10 najmlađih bitova realne adrese.

Sve ove aktivnosti se realizuju hardverski.

Da bi se stranice različitih korisnika koje imaju isti broj preslikale svaka u svoj blok, u formiranju tag polja učestvuje ne samo bitovi 23 do 20 polja page generisane adrese, već i vrednost registra user procesora. Kod prebacivanja procesora sa korisnika na korianika u ovaj registar procesora se upisuje broj korisnika kome se dodeljuje procesor.

c3) Ukoliko se utvrdi da se relevantni deskriptor ne nalazi u hardveru, ide se hardverski u tabelu stranica i čita deskriptor na način prikazan u zadatku 1.2.1. Ukoliko se utvrdi da se stranica nalazi u operativnoj memoriji, polje block deskriptora se dovlači u hardver. Polje set generisane adrese određuje u koji od 1024 seta se smešta polje block deskriptora. Pošto za svaki set postoje ulazi 0 i 1, korišćenjem FIFO ili LRU algoritma zamene u okviru datog seta bira se ulaz jedinice za ubrzavanje preslikavanja u koji se smešta deskriptor. U polje block datog ulaza jedinice za ubrzavanje preslikavanja se upisuje polje block deskriptora. U isti ulaz se upisuje polje tag generisane adrese. U isti ulaz V bitova se upisuje 1, a u isti ulaz D bitova se upisuje 0. Sve ovo se realizuje hardverski. Ukoliko se utvrdi da se stranica ne nalazi u operativnoj memoriji, generiše se prekid. Operativni sistem dovlači datu stranicu sa diska na način prikazan u zadatku 1.2.1.

Zadatak 1.2.5 U računaru sa virtuelnom memorijom segmentne organizacije definisanom u zadatku 1.2.2.

postoji jedinica za ubrzavanje preslikavanja virtuelnih u realne adrese.

a) Uzeti da računar poseduje jedinicu za ubrzavanje preslikavanja virtuelnih u realne adrese, realizovanu u tehnici asocijativnog preslikavanja u kojoj se istovremeno čuvaju relevantni delovi deskriptora 32 najčešće korišćena segmenta do 16 korisnika. Uraditi sledeće:

a1) Nacrtati, označiti dužinu u bitovima i objasniti funkciju svih relevantnih delova jedinice za ubrzavanje preslikavanja.

a2) Označiti dužine u bitovima relevantnih delova virtuelne i realne adrese i objasniti kako se:

• proverava da li se relevantni deskriptor nalazi u jedinici za ubrzavanje preslikavanja, • dolazi do deskriptora ukoliko se utvrdi da se nalazi u jedinici za ubrzavanje

preslikavanja, • formira realna adresa, • vrši provera da li je korektan pristup segmentu zahtevan i da li je generisana adresa reči u

segmentu unutar zadate veličine segmenta i • u jedinici za ubrzavanje preslikavanja obezbeđuje da se segmenti različitih korisnika koje

imaju isti broj ne preslikaju u isti, već svaki u svoj deo fizičke memorije.

a3) U slučaju da se za generisanu virtuelnu adresu utvrdi da se relevantni deskriptor ne nalazi u jedinici za ubrzavanje preslikavanja, objasniti šta se radi u slučaju:

•kada je relevantan segment u memoriji, •kada relevantan segment nije u memoriji i

navesti šta se od toga radi hardverski, a šta softverski.

Docsity.com

75

b) Uzeti da računar poseduje jedinicu za ubrzavanje preslikavanja virtuelnih u realne adrese, realizovanu u tehnici direktnog preslikavanja u kojoj se istovremeno čuvaju relevantni delovi deskriptora 64 najčešće korišćenih segmenata do 16 korisnika. Uraditi isto kao pod a) ovog zadatka.

c) Uzeti da računar poseduje jedinicu za ubrzavanje preslikavanja virtuelnih u realne adrese, realizovanu u tehnici set-asocijativnog preslikavanja sa dva ulaza po setu u kojoj se istovremeno čuvaju relevantni delovi deskriptora 64 najčešće korišćenih segmenata do 16 korisnika. Uraditi isto kao pod a) ovog zadatka.

Rešenje:

a) S obzirom:

• da u virtuelnom adresnom prostoru korisnika ima 256 segmenata (28 segmenata), • da je broj korisnika 16 (24 korisnika), • da se u jedinici za ubrzavanje preslikavanja mogu istovremeno čuvati deskriptori stranica

različitih korisnika i • da je jedinica za ubrzavanje preslikavanja realizovana u tehnici asocijativnog

preslikavanja,

zaključuje se, kao što je prikazano na slici 1.2.7, da je tag dužine 12 bita i da je formiran tako da:

• 4 najstarija bita predstavljaju broj korisnika (user) i • 8 najmlađih bitova predstavljaju broj segmenta (segm) iz virtuelne adrese.

komentari (1)
super,hvala!!!
ovo je samo pregled
3 prikazano na 48 str.
preuzmi dokument