Vezbe-Arhitektura i organizacija racunara 1-Softversko inzenjerstvo Zbirka_Kes_Virtuelna_0v_Part1, Vežbe' predlog Arhitektura računara i organizacija. Univerzitet u Beogradu
grucho
grucho

Vezbe-Arhitektura i organizacija racunara 1-Softversko inzenjerstvo Zbirka_Kes_Virtuelna_0v_Part1, Vežbe' predlog Arhitektura računara i organizacija. Univerzitet u Beogradu

PDF (488 KB)
50 str.
10broj preuzimanja
1000+broj poseta
100%od1broj ocena
1broj komentara
Opis
Vezbe-Arhitektura i organizacija racunara 1-Softversko inzenjerstvo Zbirka_Kes_Virtuelna_0v_Part1; Memorije; Keš memorija; zadaci sa resenjima;
20 poeni
poeni preuzimanja potrebni da se preuzme
ovaj dokument
preuzmi dokument
pregled3 str. / 50
ovo je samo pregled
3 prikazano na 50 str.
preuzmi dokument
ovo je samo pregled
3 prikazano na 50 str.
preuzmi dokument
ovo je samo pregled
3 prikazano na 50 str.
preuzmi dokument
ovo je samo pregled
3 prikazano na 50 str.
preuzmi dokument
Microsoft Word - Zbirka_Kes_Virtuelna_0v.doc

Docsity.com

1

1. Memorije

1.1 Keš memorija

Zadatak 1.1.1 Operativna memorija računara je kapaciteta 1 Mbajt, a širina reči iznosi 1 bajt.

a) Nacrtati strukturu keš memorije, označiti širinu u bitovima svih relevantnih delova i ukratko opisati njihovu namenu za keš memoriju sa 1024 bloka, blokom veličine četiri bajta i asocijativnim preslikavanjem pretpostavljajući da je širina reči dela keš memorije u kome se čuva sadržaj jedan bajt.

b) Objasniti kako se za slučaj čitanja bajtovske veličine utvrđuje da li se sadržaj sa generisane adrese nalazi u keš memoriji i kako se vrši samo očitavanje traženog sadržaja.

c) Sadržaj relevantnih lokacija operativne memorije je dat na slici Error! Reference source not found.. Četiri operacije čitanja iz operativne memorije sa lokacija 5122d, 1025d, 8192d i 4099d se izvode u datom redosledu. Navesti vrednosti svih relevantnih delova keš memorije posle ove četiri operacije, pretpostavljajući da je keš memorija na početku bila prazna.

adresa L 1024 1025 1026 1027 L 4096 4097 4098 4099 L 5120 5121 5122 5123 L 8192 8193 8194 8195 L sadržaj L 0 1 0 0 L 0 0 0 2 L 0 0 3 0 L 4 0 0 0 L

Slika 1.1.1. Sadržaj relevantnih lokacija operativne memorije

Rešenje: a) S obzirom da je kapacitet operativne memorije 1 Mbajt (220 bajta) i da je veličina bloka

četiri bajta (22 bajta), operativna memorija sadrži 218 blokova. Stoga je struktura generisane adrese kao na slici 1.1.2 i sastoji se iz:

•TAG (18 bita)—broj bloka operativne memorije i •BYTE (2 bita)—adresa bajta u bloku.

Na osnovu ovakve strukture generisane adrese i zadatih karakteristika keš memorije dolazi se do strukture keš memorije prikazane na istoj slici.

CD

bajt

V0

M

V1

V1023 181023

1

M

0

TAG MEMORIJA

V1 M1

V1023 M1023

V0 M0

1023

1

0

1 MM 9

0

D0

M

D1

D1023 4095

1 0

1 4

2 4

3

broj ulaza u keš

memoriju

11 M

2 1 0

1 2

3 1

2 3

18 19 012

2

123

1444442444443

generisana adresa

HIT

144424443 DI17 DI0

D V DATA MEMORIJA

1444442444443 123 TAG BYTE

W

Docsity.com

2

Slika 1.1.2. Struktura keš memorije sa asocijativnim preslikavanjem

Keš memorija se sastoji iz sledećih delova:

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

Dirty bitovi označavaju za svaki od 1024 ulaza keš memorije da li je bilo upisa u odgovarajući blok DATA MEMORIJE od kada je blok doveden u taj ulaz.

Valid bitovi označavaju za svaki od 1024 ulaza keš memorije da li je odgovarajući ulaz TAG MEMORIJE važeći.

TAG MEMORIJA služi za čuvanje 1024 TAG polja blokova sadržaja koji se nalaze u odgovarajućim ulazima DATA MEMORIJE i generisanje aktivnih vrednosti signala saglasnosti M0…1023 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 keš memoriju za koji je otkrivena saglasnost.

DATA MEMORIJA služi za čuvanje 1024 bloka sadržaja.

b) TAG bitovi (18) iz generisane adrese se porede sa sadržajima sva 1024 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 (10) koji označavaju broj ulaza u keš memoriju gde je otkrivena saglasnost dobijeni sa izlaza kodera i BYTE (2) bitovi generisane adrese se koriste kao adresa u DATA MEMORIJI i sadržaj se čita.

c) Struktura generisane adrese i vrednosti polja TAG i BYTE za četiri zadate generisane adrese su dati na slici 1.1.3.

19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1025 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 4099 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 5122 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 8192 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

←⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯tag⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯→ ←byte→

Slika 1.1.3. Struktura generisanih adresa

Postoji 256 K blokova u operativnoj memoriji i 1 K blokova u keš memoriji. Bilo koji blok operativne memorije se može smestiti u bilo koji blok keš memorije. Adrese operativne memorije 5122d, 1025d, 8192d i 4099d su u blokovima 500h, 100h, 800h i 400h operativne memorije, respektivno. Ovi blokovi se smeštaju u blokove 0, 1, 2 i 3 keš memorije, respektivno. Vrednosti svih relevantnih delova keš memorije posle četiri operacije čitanja prikazani su na slici Error! Reference source not found..

broj ulaza

D

V

TAG MEMORIJA

adresa

DATA MEMORIJA

0 0 1 000000010100000000 0 0 0 3 0 1 0 1 000000000100000000 4 0 1 0 0

Docsity.com

3

2 0 1 000000100000000000 8 4 0 0 0 3 0 1 000000010000000000 12 0 0 0 2 4 0 0 M M M M

1023 0 0 4092

Slika 1.1.4. Sadržaj relevantnih delova keš memorije

Zadatak 1.1.2 Operativna memorija računara je kapaciteta 1 Mbajt, a širina reči iznosi 1 bajt.

a) Nacrtati strukturu keš memorije, označiti širinu u bitovima za sve relevantne delove i ukratko opisati njihovu namenu za keš memoriju sa 1024 bloka, blokom veličine četiri bajta i direktnim preslikavanjem pretpostavljajući da je širina reči dela keš memorije u kome se nalazi sadržaj jedan bajt.

b) Isto kao pod 0.1b.

c) Isto kao pod 0.1c.

Rešenje: a) S obzirom da je kapacitet operativne memorije 1 Mbajt (220 bajta) i da je veličina bloka

četiri bajta (22 bajta), operativna memorija sadrži 218 blokova. Kako u keš memoriju mogu da se smeste 1024 bloka (1010 blokova), to se kod direktnog preslikavanja uzima da je operativna memorija podeljena na 256 grupa (28 grupa) veličine 1024 bloka (1010 blokova). Stoga je struktura generisane adrese kao na slici 1.1.5 i sastoji se iz:

•TAG (8 bita)—broj grupe operativne memorije, •BLOCK (10 bita)—broj bloka unutar grupe i broj bloka u keš memoriji i •BYTE (2 bita)—adresa bajta unutar bloka.

Na osnovu ovakve strukture generisane adrese i zadatih karakteristika keš memorije dolazi se do strukture keš memorije prikazane na istoj slici.

bajt

V0

V1

V1023 81023

1

M

0

TAG MEMORIJA

D0

D1

D1023 4095

1 0

11 M

2 1 0

1 2

3 1

2 3

8 19 012

2

123

144424443

generisana adresa

144424443 DO7 DO0

10 1211

1442443

9

0 1 2

3

CMP

123

1

8 10 2

M

9

0 1 2

3

M

9

0 1 2

3

10

10

10

DATA MEMORIJA

HIT

VD

8

1231444244431442443

TAG BLOCK BYTE Slika 1.1.5. Struktura keš memorije sa direktnim preslikavanjem

Docsity.com

4

Keš memorija se sastoji iz sledećih delova:

•D0…1023 (dirty bitovi)—1024 flip-flopa, •V0…1023 (valid bitovi)— 1024 flip-flopa, •TAG MEMORIJA—RAM memorija kapaciteta 1024 reči širine 8 bita, •CMP—komparator i •DATA MEMORIJA—RAM memorija kapaciteta 1024 bloka.

Dirty bitovi označavaju za svaki od 1024 ulaza keš memorije da li je bilo upisa u odgovarajući blok DATA MEMORIJE.

Valid bitovi označavaju za svaki od 1024 ulaza keš memorije da li je odgovarajući ulaz TAG MEMORIJE važeći.

TAG MEMORIJA služi za čuvanje 1024 TAG polja blokova sadržaja koji se nalaze u odgovarajućim ulazima DATA MEMORIJE.

CMP služi za generisanje aktivne vrednosti signala saglasnosti HIT. Ovaj signal se aktivira ako:

• TAG polje generisane adrese je isto kao sadržaj TAG MEMORIJE adresiran poljem BLOCK generisane adrese i

• V bit adresiran poljem BLOCK generisane adrese je postavljen.

DATA MEMORIJA služi za čuvanje 1024 bloka sadržaja.

b) BLOCK bitovi (10) iz generisane adrese se koriste kao adresa za TAG MEMORIJU. TAG bitovi očitani iz TAG MEMORIJE sa porede sa TAG bitovima iz generisane adrese. Ako se otkrije da postoji saglasnost i ako je V bit, adresiran BLOCK bitovima generisane adrese, postavljen, aktivira se signal HIT.

BLOCK bitovi (10) i BYTE bitovi (2) generisane adrese se koriste kao adresa za DATA MEMORIJU i sadržaj se čita.

c) Struktura generisane adrese i vrednosti polja TAG, BLOCK i BYTE generisanih adresa dati su na slici 1.1.6.

19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1025 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 4099 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 5122 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 8192 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

←⎯⎯⎯⎯⎯⎯tag⎯⎯⎯⎯⎯⎯→ ←⎯⎯⎯⎯⎯⎯⎯⎯block⎯⎯⎯⎯⎯⎯⎯⎯→ ←byte→

Slika 1.1.6. Struktura generisanih adresa

Postoji 256 K blokova u operativnoj memoriji i 1 K blokova u keš memoriji. Blokovi operativne memorije su organizovani u 256 grupa sa 1 K blokova po grupi. Na osnovu toga se utvrđuje da je:

•adresa operativne memorije 5122d u bloku 100h i grupi 1, •adresa operativne memorije 1025d u bloku 100h i grupi 0, •adresa operativne memorije 8192d u bloku 0h i grupi 2 i •adresa operativne memorije 4099d u bloku 0h i grupi 1.

Blok 100h keš memorije se prvo napuni blokom 100h iz grupe 1 operativne memorije (adresa 5122d), a zatim se preko njega prepiše blok 100h iz grupe 0 (adresa 1025d). Blok 0h

Docsity.com

5

keš memorije se prvo napuni blokom 0h iz grupe 2 operativne memorije (adresa 8192d), a zatim se preko njega prepiše blok 0h iz grupe 1 (adresa 4099d). Vrednosti svih relevantnih delova keš memorije posle četiri operacije čitanja prikazani su na slici Error! Reference source not found..

broj ulaza

D

V

TAG MEMORIJA

adresa

DATA MEMORIJA

0 0 1 00 00 00 00 00 00 10 01 0 4 0 0 0 0 0 0 2 1 0 0 4 M M M M

256 0 1 00 00 00 00 00 00 00 10 256 0 0 0 1 3 0 0 0 M M M M

1023 0 0 4092

Slika 1.1.7. Sadržaj relevantnih delova keš memorije

Zadatak 1.1.3 Operativna memorija računara je kapaciteta 1 Mbajta, a širina reči iznosi 1 bajt.

a) Nacrtati strukturu keš memorije, označiti širinu u bitovima za sve relevantne delove i ukratko opisati njihovu namenu za:

a1) keš memoriju sa 1024 bloka, blokom veličine četiri bajta i set-asocijativnim preslikavanjem sa dva bloka po setu i

a2) keš memoriju sa 1024 bloka, blokom veličine četiri bajta i set-asocijativnim preslikavanjem sa četiri bloka po setu,

pretpostavljajući da je širina reči dela keš memorije u kome se nalazi sadržaj jedan bajt

b) Objasniti kako se za oba tipa keš memorije za slučaj čitanja bajtovske veličine utvrđuje da li se sadržaj sa generisane adrese nalazi u keš memoriji i kako se vrši samo očitavanje traženog sadržaja.

c) Isto kao pod 0.1c.

Rešenje: a) Strukture keš memorija sa set-asocijativnim preslikavanjem sa dva i četiri bloka po setu

su date u posebnim odeljcima.

a1) S obzirom da je kapacitet operativne memorije 1 Mbajt (220 bajta) i da je veličina bloka četiri bajta (22 bajta), operativna memorija sadrži 218 blokova. Kako u keš memoriju mogu da se smeste 1024 bloka (1010 blokova) organizovanih set-asocijativno sa dva bloka po setu, to keš memorija sadrži 512 setova (29 setova). Stoga se ovde uzima da je operativna memorija podeljena na 512 grupa (29 grupa) veličine 512 blokova (29 blokova). Stoga je struktura generisane adrese kao na slici 1.1.8 i sastoji se iz:

•TAG (9 bita)—broj grupe operativne memorije, •SET (9 bita)—broj bloka unutar grupe i broj seta unutar keš memorije i •BYTE (2 bita)—adresa bajta u bloku.

Na osnovu ovakve strukture generisane adrese i zadatih karakteristika keš memorije dolazi se do strukture keš memorije prikazane na istoj slici.

Docsity.com

6

CD0 bajt V0,0

V0,1 91

0

TAG0 MEMORIJA

V0,0 M0,0

V0,1 M0,1

1

0 0

D0,0

D0,1 4095

1 0

broj ulaza u

odabranom setu

11 M

3 2 1

1 2

3 1

2 3

9 19 012

2

123

1442443

generisana adresa

HIT0

144424443 DI8 DI0L

S0

1011

1442443

0

CD511 V511,0

V511,1 91

0

TAG511 MEMORIJA

V511,0 M511,0

V511,1 M511,1

1

0 0

D511,0

D511,1

HIT511

144424443 DI8 DI0L

S511

HIT

HIT

S0

S511

M M

M

broj seta

511

DC 0

0L8

99 2

1442443

1442443

L

S511 S0

SE T 5

11 SE

T 0 D511 V511

D0 V0 DATA MEMORIJA

MM

SET BYTETAG 123

W

W

9 1442443

Slika 1.1.8. Struktura keš memorije sa set-asocijativnim preslikavanjem sa dva bloka po setu

Keš memorija se sastoji iz sledećih delova:

• D0,0, D0,1, D1,0, D1,1, …, D511,0, D511,1 (dirty bitovi)—1024 flip-flopa organizovanih u 512 setova sa po dva flip-flopa po setu, • V0,0, V0,1, V1,0, V1,1, …, V511,0, V511,1 (valid bitovi)—1024 flip-flopa organizovanih u 512

setova sa po dva flip-flopa po setu, • TAG0 MEMORIJA, TAG1 MEMORIJA, …, TAG511 MEMORIJA—512 asocijativnih

memorija svaka kapaciteta dve reči širine 9 bita, • CD0, CD1, …, CD511—512 kodera 2/1, • DC—dekoder 9/512 i •DATA MEMORIJA—RAM memorija kapaciteta 1024 bloka.

Dirty bitovi seta i označavaju za svaki od dva ulaza seta i keš memorije da li je bilo upisa u odgovarajući blok DATA MEMORIJE.

Valid bitovi seta i označavaju za svaki od dva ulaza seta i keš memorije da li je odgovarajući ulaz TAG MEMORIJE važeći.

TAGi MEMORIJA služi za čuvanje dva TAG polja seta i blokova sadržaja koji se nalaze u odgovarajućim ulazima DATA MEMORIJE i generisanje aktivnih vrednosti signala

Docsity.com

7

saglasnosti Mi,0 i Mi,1 ukoliko postoji saglasnost TAG polja generisane adrese i sadržaja odgovarajućeg ulaza TAG MEMORIJE.

CDi služi za generisanje aktivne vrednosti signala saglasnosti HITi i broja ulaza u keš memoriju za koji je otkrivena saglasnost.

DC služi za generisanje signala selekcije setova S0…511 na osnovu polja SET generisane adrese.

DATA MEMORIJA služi za čuvanje 1024 bloka sadržaja. Blokovi 0 i 1 seta 0 smeštaju se u blokove 0 i 1 DATA MEMORIJE, blokovi 0 i 1 seta 1 smeštaju se u blokove 2 i 3 DATA MEMORIJE, i tako redom do blokova 0 i 1 seta 511 koji se smešaju u blokove 1022 i 1023 DATA MEMORIJE.

a2) S obzirom da je kapacitet operativne memorije 1 Mbajt (220 bajta) i da je veličina bloka četiri bajta (22 bajta), operativna memorija sadrži 218 blokova. Kako u keš memoriju mogu da se smeste 1024 bloka (1010 blokova) organizovanih set-asocijativno sa četiri bloka po setu, to keš memorija sadrži 256 setova (28 setova). Stoga se ovde uzima da je operativna memorija podeljena na 1024 grupe (210 grupa) veličine 256 blokova (28 blokova). Stoga je struktura generisane adrese kao na slici 1.1.9 i sastoji se iz:

•TAG (10 bita)—broj grupe unutar operativne memorije, •SET (8 bita)—broj bloka unutar grupe i broj seta u keš memoriji i •BYTE (2 bita)—adresa bajta unutar bloka.

Na osnovu ovakve strukture generisane adrese i zadatih karakteristika keš memorije dolazi se do strukture keš memorije prikazane na istoj slici.

Docsity.com

8

V0,1

V0,0

D0,1

D0,0

D255,0

D255,1

V255,0

V255,1

CD0 bajt

V0,2

V0,3 103

2 V0,2

M0,2

V0,3 M0,3

3

2D0,2

D0,3

4095

1 0

broj ulaza u

odabranom setu

11 M

4 3 2

1 2

3 1

2 3

8 19 012

2

1231442443

generisana adresa

HIT0

144424443 DI9 DI0L

S0

910

1442443

1

CD255 V255,2

V255,3 103

2 V255,2

M255,2

V255,3 M255,3

3

2D255,2

D255,3

HIT255

144424443 DI9 DI0L

S255

HIT

HIT

S0

S255

M M

M

broj seta

255

DC 0

0L7

810 2

1442443

1442443

L

S255 S0

0

1 2

3

1

0

V255,1 M255,1

1

V255,0 M255,0

0

1

0

V0,1 M0,1

1

V0,0 M0,0

0

2

2

TAG0 MEMORIJA

TAG255 MEMORIJA

SE T 2

55 SE

T 0 D255 V255

D0 V0

DATA MEMORIJA

SET BYTETAG 1442443 123

W

W

10

Slika 1.1.9. Struktura keš memorije sa set-asocijativnim preslikavanjem sa četiri bloka po

setu

Keš memorija se sastoji iz sledećih delova:

• D0,0, D0,1, D0,2, D0,3, D1,0, D1,1, D1,2, D1,3, …, D255,0, D255,1, D255,2, D255,3, (dirty bitovi)— 1024 flip-flopa organizovanih u 256 setova sa po četiri flip-flopa po setu, • V0,0, V0,1, V0,2, V0,3, V1,0, V1,1, V1,2, V1,3, …, V255,0, V255,1, V255,2, V255,3, (valid bitovi)—

1024 flip-flopa organizovanih u 256 setova sa po četiri flip-flopa po setu,

Docsity.com

9

• TAG0 MEMORIJA, TAG1 MEMORIJA, …, TAG255 MEMORIJA—256 asocijativnih memorija svaka kapaciteta četiri reči širine 10 bita, • CD0, CD1, …, CD255—256 kodera 4/2, • DC—dekoder 8/256 i •DATA MEMORIJA—RAM memorija kapaciteta 1024 bloka.

Dirty bitovi seta i označavaju za svaki od četiri ulaza seta i keš memorije da li je bilo upisa u odgovarajući blok DATA MEMORIJE.

Valid bitovi seta i označavaju za svaki od četiri ulaza seta i keš memorije da li je odgovarajući ulaz TAG MEMORIJE važeći.

TAGi MEMORIJA služi za čuvanje četiri TAG polja seta i blokova sadržaja koji se nalaze u odgovarajućim ulazima DATA MEMORIJE i generisanje aktivnih vrednosti signala saglasnosti Mi,0, Mi,1, Mi,2 i Mi,3 ukoliko postoji saglasnost TAG polja generisane adrese i sadržaja odgovarajućeg ulaza TAG MEMORIJE.

CDi služi za generisanje aktivne vrednosti signala saglasnosti HITi i broja ulaza u keš memoriju za koji je otkrivena saglasnost.

DC služi za generisanje signala selekcije setova S0…255 na osnovu polja SET generisane adrese.

DATA MEMORIJA služi za čuvanje 1024 bloka sadržaja. Blokovi 0, 1, 2 i 3 seta 0 smeštaju se u blokove 0, 1, 2 i 3 DATA MEMORIJE, blokovi 0, 1, 2 i 3 seta 1 smeštaju se u blokove 4, 5, 6 i 7 DATA MEMORIJE, i tako redom do blokova 0, 1, 2 i 3 seta 255 koji se smešaju u blokove 1020, 1021, 1022 i 1023 DATA MEMORIJE.

b) TAG bitovi generisane adrese se porede sa sadržajima svih ulaza TAG MEMORIJE svuh setova. Signali saglasnosti i broja ulaza u kome je otkrivena saglasnost se formiraju za svaki set posebno kao i u slučaju asocijativnog preslikavanja. Od njih se dalje dekodovanim signalima seta selektuje signal saglasnosti HIT i broj ulaza u setu za datu keš memoriju.

SET bitovi iz generisane adrese, selektovani bitovi broja ulaza u setu i BYTE bitovi iz generisane adrese se koriste kao adresa za DATA MEMORIJU i sadržaj se čita.

c) Struktura generisanih adresa i vrednosti polja TAG, SET i BYTE za set-asocijativna preslikavanja sa dva i četiri bloka po setu dati su na slici 1.1.10.

19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1025 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 4099 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 5122 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 8192 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

←⎯⎯⎯⎯⎯⎯⎯tag⎯⎯⎯⎯⎯⎯⎯→ ←⎯⎯⎯⎯⎯⎯⎯block⎯⎯⎯⎯⎯⎯⎯→ ←byte→ 2 bloka po setu ←⎯⎯⎯⎯⎯⎯⎯⎯tag⎯⎯⎯⎯⎯⎯⎯⎯→ ←⎯⎯⎯⎯⎯⎯block⎯⎯⎯⎯⎯⎯→ ←byte→ 4 bloka po setu

Slika 1.1.10. Struktura generisanih adresa

Sadržaj relevantnih lokacija keš memorije posle četiri operacije čitanja za keš memorije sa set-asocijativnim preslikavanjima sa dva i četiri bloka po setu dati su u posebnim odeljcima.

c1) Set-asocijativno preslikavanje sa 2 bloka po setu

Postoje 256 K blokova operativne memorije i 1 K blokova keš memorije. Ovi blokovi operativne memorije su organizovani u 512 grupa sa 512 blokova po grupi. 1 K blokova keš memorije su organizovani u 512 setova sa 2 bloka po setu. i-ti blok operativne memorije

Docsity.com

10

(0 ≤ i ≤ 511) iz bilo koje od 512 grupa može se preslikati samo na bilo koji od dva bloka u i-tom setu keš memorije (0 ≤ i ≤ 511). Na osnovu toga se utvrđuje da je:

•adresa operativne memorije 5122d u bloku 100h i grupi 2, •adresa operativne memorije 1025d u bloku 100h i grupi 0, •adresa operativne memorije 8192d u bloku 0h i grupi 4 i •adresa operativne memorije 4099d u bloku 0h i grupi 2.

Blok 0h u setu 100h keš memorije se napuni blokom 100h iz grupe 2 operativne memorije (adresa 5122d). Blok 1h u setu 100h keš memorije se napuni blokom 100h iz grupe 0 operativne memorije (adresa 1025d). Blok 0h u setu 0h keš memorije se napuni blokom 0h iz grupe 4 operativne memorije (adresa 8192d). Blok 1h u setu 0h keš memorije se napuni blokom 0h iz grupe 2 operativne memorije (adresa 4099d). Vrednosti svih relevantnih delova keš memorije posle četiri operacije čitanja prikazani su na slici Error! Reference source not found..

broj ulaza

D

V

TAG MEMORIJA

adresa

DATA MEMORIJA

0 0 1 000000100 0 4 0 0 0 blok 0 SET0 1 0 1 000000010 4 0 0 3 0 blok 1

M M 0 0 1 000000010 2048 0 0 3 0 blok 0 SET256 1 0 1 000000000 2052 0 1 0 0 blok 1

M M 0 0 0 4088 blok 0 SET511 1 0 0 4092 blok 1

Slika 1.1.11. Sadržaj relevantnih delova keš memorije.

c1) Set-asocijativno preslikavanje sa 4 bloka po setu

Postoji 256 K blokova operativne memorije i 1 K blokova keš memorije. Ovi blokovi operativne memorije su organizovani u 1 K grupa sa 256 blokova po grupi. 1 K blokova keš memorije su organizovani u 256 setova sa 4 bloka po setu. i-ti blok operativne memorije (0 ≤ i ≤ 255) iz bilo koje od 1 K grupa može se preslikati samo na bilo koji od četiri bloka u i-tom setu keš memorije (0 ≤ i ≤ 255). Na osnovu toga se utvrđuje da je:

•adresa operativne memorije 5122d u bloku 0h i grupi 5, •adresa operativne memorije 1025d u bloku 0h i grupi 1, •adresa operativne memorije 8192d u bloku 0h i grupi 8 i •adresa operativne memorije 4099d u bloku 0h i grupi 4.

Blok 0h u setu 0h keš memorije se napuni blokom 0h iz grupe 5 operativne memorije (adresa 5122d). Blok 1h u setu 0h keš memorije se napuni blokom 0h iz grupe 1 operativne memorije (adresa 1025d). Blok 2h u setu 0h keš memorije se napuni blokom 0h iz grupe 8 operativne memorije (adresa 8192d). Blok 3h u setu 0h keš memorije se napuni blokom 0h iz grupe 4 operativne memorije (adresa 4099d). Vrednosti svih relevantnih delova keš memorije posle četiri operacije čitanja prikazani su na slici Error! Reference source not found..

broj ulaza

D

V

TAG MEMORIJA

adresa

DATA MEMORIJA

0 0 1 0000000101 0 0 0 3 0 blok 0 SET0 1 0 1 0000000001 4 0 1 0 0 blok 1 2 0 1 0000001000 8 4 0 0 0 blok 2

Docsity.com

11

3 0 1 0000000100 12 0 0 0 2 blok 3 M M

0 0 0 4080 blok 0 SET256 1 0 0 4084 blok 1 2 0 0 4088 blok 2 3 0 0 4092 blok 3

Slika 1.1.12. Sadržaj relevantnih delova keš memorije.

Zadatak 1.1.4 Operativna memorija računara je kapaciteta 512 Mbajta, a širina reči iznosi 16 bita.

a) Nacrtati strukturu keš memorije, označiti širinu u bitima svih relevantnih delova i kratko objasniti funkcije svih delova keš memorije za sledeće slučajeve:

• keš memorije sa 64 K blokova, veličinom bloka 256 reči i asocijativnim preslikavanjem,

• keš memorije sa 64 K blokova, veličinom bloka 256 reči i direktnim preslikavanjem, • keš memorije sa 64 K blokova, veličinom bloka 256 reči i set-asocijativnim

preslikavanjem, sa 16 blokova po setu,

pretpostavljajući da je širina reči dela keš memorije u kome se čuvaju sadržaji 16 bita.

b) Sadržaj relevantnih lokacija operativne memorije je dat na slici Error! Reference source not found. pri čemu su sve vrednosti prikazane heksadecimalno. Uzeti da se, najpre, realizuju dve operacije čitanja sa adresa 0A0FF00h i 0A0FFFFh, zatim dve operacije upisa vrednosti 0003h i 0004h u lokacije na adresama 0DE1000h i 0DE10FFh, respektivno i na kraju dve operacije čitanja sa adresa 0807500h i 08075FFh. Operacije čitanja i upisa se isključivo realizuju nad sadržajima keš memorije. Ukoliko se u slučaju gornjih operacija čitanja i upisa utvrdi da nema saglasnosti dovlači se odgovarajući blok sadržaja iz operativne u keš memoriju. Blokovi keš memorije čiji je sadržaj modifikovan vraćaju se u operativnu memoriju.

M adresa L 0807500 0807501 L 08075FE 08075FF L sadržaj L 0 0 L 0 0 L

M adresa L 0A0FF00 0A0FF01 L 0A0FFFE 0A0FFFF L sadržaj L 1 1 L 1 1 L

M adresa L 0DE1000 0DE1001 L 0DE10FE 0DE10FF L sadržaj L 2 2 L 2 2 L

M

Slika 1.1.13. Sadržaj relevantnih lokacija operativne memorije

Za sve slučajeve keš memorije, dati sadržaje relevantnih delova keš memorije posle izvršenja navedenih operacija, pretpostavljajući da je keš memorija na početku bila prazna.

Rešenje:

Kapacitet operativne memorije je 512 Mbajta (229 bajta). Izražen u adresibilnim 16-bitnim rečima kapacitet operativne memorije je 256 Mreči (228 reči). Na osnovu toga sledi da je širina adresne reči 28 bita. Veličina bloka u sve tri realizacije keš memorije je 256 reči, pa je

Docsity.com

12

polje u adresnoj reči koje određuje adresu reči unutar bloka u sva tri slučaja širine osam bita, što znači da je polje u adresnoj reči koje određuje redni broj reči unutar bloka uvek širine 8 bita.

a) Strukture keš memorija su date u posebnim odeljcima.

a1) U slučaju keš memorije sa asocijativnim preslikavanjem utvrđuje se da je struktura generisane adrese kao na slici 1.1.14, i sastoji se iz:

•TAG (20 bita)—redni broj bloka operativne memorije i •WORD (8 bita)—redni broj reči unutar bloka.

Na osnovu ovakve strukture generisane adrese i zadatih karakteristika keš memorije dolazi se do strukture keš memorije prikazane na istoj slici.

rečVFFFFh

M

V1

V0

20

0

1

M

FFFFh

TAG MEMORIJA

V1 M1 V0 M0

VFFFFh MFFFFh

FFFFh

1

0

CD 1 M

M 15

0

DFFFFh

M

D1

D0 0 1

FFFFFFh

1 4

2 4

3

broj ulaza u keš

memoriju

23 M

8 7

0

1 2

3 1

4 2

4 3

20 27 078

8

1442443

144424443

generisana adresa

HIT

144424443 DI19 DI0

D V DATA MEMORIJA

TAG WORD 1442443144424443

M

W

Slika 1.1.14. Struktura keš memorije sa asocijativnim preslikavanjem

Keš memorija se sastoji iz sledećih delova:

•D0…FFFFh (dirty bitovi)—65536 flip-flopova, •V0…FFFFh (valid bitovi)—65536 flip-flopova, •TAG MEMORIJA—asocijativna memorija kapaciteta 64 K reči širine 20 bita, •CD—koder 64 K/16 i •DATA MEMORIJA—RAM memorija kapaciteta 64 K blokova.

Njihova funkcija je opisana u zadatku 0.1.

a2) U slučaju keš memorije sa direktnim preslikavanjem utvrđuje se da je struktura generisane adrese kao na slici 1.1.15, i sastoji se iz:

•TAG (4 bita)—redni broj grupe blokova operativne memorije, •BLOCK (16 bita)—redni broj bloka unutar grupe i redni broj bloka u keš memoriji i •WORD (8 bita)—redni broj reči unutar bloka.

Na osnovu ovakve strukture generisane adrese i zadatih karakteristika keš memorije dolazi se do strukture keš memorije prikazane na istoj slici.

Docsity.com

13

8

reč VFFFFh

V1 V0

4

0

1

M

FFFFh

TAG MEMORIJA

DFFFFh

D1 D0

0 1

FFFFFFh

23 M

8 7

0

1 2

3 1

4 2

4 3

4 27 078

123

144424443

generisana adresa

144424443 DO3 DO0

16 24 23

123

15

0 1 2

3

CMP

123

V

4 16 8

M

15

0 1 2

3

M

15

0 1 2

3

16

16 16

DATA MEMORIJA

HIT

VD

4

123144424443123

TAG BLOCK WORD

M

Slika 1.1.15. Struktura keš memorije sa direktnim preslikavanjem

Keš memorija se sastoji iz sledećih delova:

•D0…FFFFh (dirty bitovi)—65536 flip-flopova, •V0…FFFFh (valid bitovi)—65536 flip-flopova, •TAG MEMORIJA—RAM memorija kapaciteta 64 K reči širine 4 bita, •CMP—komparator i •DATA MEMORIJA—RAM memorija kapaciteta 64 K blokova.

Njihova funkcija je data u zadatku 0.2.

a3) U slučaju keš memorije sa set-asocijativnim preslikavanjem utvrđuje se da je struktura generisane adrese kao na slici 1.1.16 i sastoji se iz:

•TAG (8 bita)—redni broj grupe blokova operativne memorije, •SET (12 bita)—redni broj bloka unutar grupe i redni broj seta u keš memoriji i •WORD (8 bita)—redni broj reči unutar bloka.

Na osnovu ovakve strukture generisane adrese i zadatih karakteristika keš memorije dolazi se do strukture keš memorije prikazane na istoj slici.

Docsity.com

14

V0,1

V0,0

D0,1

D0,0

DFFFh,0

DFFFh,1

VFFFh,0

VFFFh,1

bajt

M

V0,15 815 V0,15

M0,15 15

CD0 M

D0,15

FFFFFFh

1 0

broj ulaza u

odabranom setu

23 M

12 11

8

1 2

3 1

2 3

12 27 078

8

14243

144424443

generisana adresa

HIT0

144424443 DI7 DI0L

S0

1920

1442443

7

VFFFh,15 815

M

VFFFh,15 MFFFh,15

15

M

CDFFFh M

DFFFh,15

HITFFFh

144424443 DI7 DI0L

SFFFh

HIT

HIT

S0

SFFFh

M M

M

broj seta

FFFh

DC 0

0L11

128 8

144424443

1442443

L

SFFFh S0

0

1 2

3

1

0

VFFFh,1 MFFFh,1

1

VFFFh,0MFFFh, 0

0

1

0

V0,1 M0,1

1

V0,0 M0,0

0

4

4

TAG0 MEMORIJA

TAGFFFh MEMORIJA

SE T F

FF h

SE T 0

DFFFh VFFFh

D0 V0

DATA MEMORIJA

SET WORDTAG 1442443 14243

W

W

8

M

M

M

MM

Slika 1.1.16. Struktura keš memorije sa set-asocijativnim preslikavanjem

Keš memorija se sastoji iz sledećih delova:

• D0,0, D0,1, …, D0,15, D1,0, D1,1, …, D1,15, D4095,0, D4095,1, …, D4095,15 (dirty bitovi)—64 K flip-flopa organizovanih u 4096 setova sa po 16 flip-flopa po setu, • V0,0, V0,1, …, V0,15, V1,0, V1,1, …, V1,15, V4095,0, V4095,1, …, V4095,15 (valid bitovi)—64 K

flip-flopa organizovanih u 4096 setova sa po 16 flip-flopa po setu, • TAG0 MEMORIJA, TAG1 MEMORIJA, …, TAG4095 MEMORIJA—4096 asocijativnih

memorija svaka kapaciteta 16 reči širine 8 bita,

Docsity.com

15

• CD0, CD1, …, CD4095—4096 kodera 16/4, • DC—dekoder 12/4096 i •DATA MEMORIJA—RAM memorija kapaciteta 64 K bloka.

Njihova funkcija je data u zadatku 0.3.

b) Strukture generisanih adresa za tri načina preslikavanja i vrednosti polja TAG i WORD za asocijativno preslikavanje, TAG, BLOCK i WORD za direktno preslikavanje i TAG, SET i WORD za set-asocijativno preslikavanje su dati na slici 1.1.17. Kako je u sva tri slučaja keš memorije svako polje adresne reči širine jednake umnošku od 4 bita, najjednostavnije je polja adrese posmatrati u heksadecimalnom sistemu. Sadržaji relevantnih delova keš memorije za tri tipa keš memorije biće prikazani u posebnim odeljcima.

27…24 23…20 19…16 15…12 11…8 7…4 3…0 0A0FF00h 0 A 0 F F 0 0 0A0FF01h 0 A 0 F F F F 0DE1000h 0 D E 1 0 0 0 0DE1001h 0 D E 1 0 F F 0807564h 0 8 0 7 5 0 0 0807580h 0 8 0 7 5 F F

←⎯⎯⎯⎯⎯⎯⎯⎯tag⎯⎯⎯⎯⎯⎯⎯⎯→ ←⎯word⎯→ asocijativno ←tag→ ←⎯⎯⎯⎯⎯block⎯⎯⎯⎯⎯→ ←⎯word⎯→ direktno ←⎯⎯tag⎯⎯→ ←⎯⎯⎯⎯set⎯⎯⎯⎯→ ←⎯word⎯→ set-asocijativno

Slika 1.1.17. Struktura generisanih adresa

b1) Za slučaj asocijativnog preslikavanja prema objašnjenjima iz zadatka 0.1, strukturi generisane adrese i vrednostima polja TAG i WORD, u ulaze 0, 1 i 2 keš memorije se redom upisuju blokovi 0A0FFh, 0DE10h i 08075h. Izgled relevantnih delova keš memorije je dat na slici Error! Reference source not found..

broj ulaza

D

V

TAG MEMORIJA

adresa

DATA MEMORIJA

0 0 1 0A0FF 000000h 1 1 L 1 1 1 1 1 0DE10 000100h 3 2 L 2 4 2 0 1 08075 000200h 0 0 L 0 0 M M M M

FFFFh 0 0 FFFF00h L

Slika 1.1.18. Sadržaj relevantnih delova keš memorije

Popunjavanje ulaza keš memorije se realizuje na sledeći način.

Operacija čitanja sa adrese 0A0FF00h operativne memorije. Utvrđuje se da nema saglasnosti. Adresa je iz bloka 0A0FFh operativne memorije, pa se ovaj blok dovlači i smešta u ulaz 0 DATA MEMORIJE, jer je ulaz 0 prvi slobodan ulaz. Kao rezultat toga na lokacijama 000000h do 0000FFh DATA MEMORIJE pojavljuju se sada vrednosti 0001h. U isti ulaz TAG MEMORIJE se upisuje vrednost TAG polja generisane adrese. U ulaz 0 V flip-flopova se upisuje vrednost 1. Potom se utvrđuje da ima saglasnosti u ulazu 0 keš memorije i sa adrese 000000h DATA MEMORIJE čita sadržaj 0001h.

Operacija čitanja sa adrese 0A0FFFFh operativne memorije. Utvrđuje se da ima saglasnosti u ulazu 0 keš memorije i sa adrese 0000FFh DATA MEMORIJE čita sadržaj 0001h.

Docsity.com

16

Operacija upisa vrednosti 0003h u lokaciju na adresi 0DE1000h operativne memorije. Utvrđuje se da nema saglasnosti. Adresa je iz bloka 0DE10h operativne memorije, pa se ovaj blok dovlači i smešta u ulaz 1 DATA MEMORIJE, jer je ulaz 1 prvi slobodan ulaz. Kao rezultat toga na lokacijama 000100h do 0001FFh DATA MEMORIJE pojavljuju se sada vrednosti 0002h. U isti ulaz TAG MEMORIJE se upisuje vrednost TAG polja generisane adrese. U ulaz 1 V flip-flopova se upisuje vrednost 1. Potom se utvrđuje da ima saglasnosti u ulazu 1 keš memorije pa se u lokaciju DATA MEMORIJE sa adrese 000100h upisuje vrednost 0003h i u ulaz 1 D flip-flopova upisuje vrednost 1.

Operacija upisa vrednosti 0004h u lokaciju na adresi 0DE10FFh operativne memorije. Utvrđuje se da ima saglasnosti u ulazu 1 keš memorije pa se u lokaciju DATA MEMORIJE sa adrese 0001FFh upisuje vrednost 0004h.

Operacija čitanja sa adrese 0807500h operativne memorije. Utvrđuje se da nema saglasnosti. Adresa je iz bloka 08075h operativne memorije, pa se ovaj blok dovlači i smešta u ulaz 2 DATA MEMORIJE, jer je ulaz 2 prvi slobodan ulaz. Kao rezultat toga na lokacijama 000200h do 0002FFh DATA MEMORIJE pojavljuju se sada vrednosti 0000h. U isti ulaz TAG MEMORIJE se upisuje vrednost TAG polja generisane adrese. U ulaz 2 V flip-flopova se upisuje vrednost 1. Potom se utvrđuje da ima saglasnosti u ulazu 2 keš memorije i sa adrese 000200h DATA MEMORIJE čita sadržaj 0000h.

Operacija čitanja sa adrese 08075FFh operativne memorije. Utvrđuje se da ima saglasnosti u ulazu 2 keš memorije i sa adrese 0002FFh DATA MEMORIJE čita sadržaj 0000h.

b2) Za slučaj direktnog preslikavanja prema objašnjenjima iz zadatka 0.2, strukturi generisane adrese i vrednostima polja TAG, BLOCK i WORD, u ulaze A0FFh, DE10h i 8075h keš memorije se redom upisuju blokovi 0A0FFh, 0DE10h i 08075h operativne memorije. Izgled relevantnih delova keš memorije je dat na slici Error! Reference source not found.:

broj ulaza

D

V

TAG MEMORIJA

adresa

DATA MEMORIJA

0000h 0 0 000000h L M M M M

8075h 0 1 0 807500h 0 0 L 0 0 M M M M

A0FFh 0 1 0 A0FF00h 1 1 L 1 1 M M M M

DE10h 1 1 0 DE1000h 3 2 L 2 4 M M M M

FFFFh 0 0 FFFF00h L

Slika 1.1.19. Sadržaj relevantnih delova keš memorije

Popunjavanje ulaza keš memorije se realizuje na sledeći način.

Operacija čitanja sa adrese 0A0FF00h operativne memorije. Utvrđuje se da u ulazu A0FFh keš memorije nema saglasnosti. Adresa je iz bloka 0A0FFh operativne memorije, pa se ovaj blok dovlači i smešta u ulaz A0FFh DATA MEMORIJE. Kao rezultat toga na lokacijama A0FF00h do A0FFFFh DATA MEMORIJE pojavljuju se sada vrednosti 0001h. U isti ulaz TAG MEMORIJE se upisuje vrednost TAG polja generisane adrese. U ulaz A0FFh V flip-flopova se upisuje vrednost 1. Potom se utvrđuje da ima saglasnosti u ulazu A0FFh keš memorije i sa adrese A0FF00h DATA MEMORIJE čita sadržaj 0001h.

Docsity.com

17

Operacija čitanja sa adrese 0A0FFFFh operativne memorije. Utvrđuje se da ima saglasnosti u ulazu A0FFh keš memorije i sa adrese A0FFFFh DATA MEMORIJE čita sadržaj 0001h.

Operacija upisa vrednosti 0003h u lokaciju na adresi 0DE1000h operativne memorije. Utvrđuje se da u ulazu DE10h keš memorije nema saglasnosti. Adresa je iz bloka 0DE10h operativne memorije, pa se ovaj blok dovlači i smešta u ulaz DE10h DATA MEMORIJE. Kao rezultat toga na lokacijama DE1000h do DE10FFh DATA MEMORIJE pojavljuju se sada vrednosti 0002h. U isti ulaz TAG MEMORIJE se upisuje vrednost TAG polja generisane adrese. U ulaz DE10h V flip-flopova se upisuje vrednost 1. Potom se utvrđuje da ima saglasnosti u ulazu DE10h keš memorije pa se u lokaciju DATA MEMORIJE sa adrese DE1000h upisuje vrednost 0003h i u ulaz DE10h D flip-flopova upisuje vrednost 1.

Operacija upisa vrednosti 0004h u lokaciju na adresi 0DE10FFh operativne memorije. Utvrđuje se da ima saglasnosti u ulazu DE10h keš memorije pa se u lokaciju DATA MEMORIJE sa adrese DE10FFh upisuje vrednost 0004h.

Operacija čitanja sa adrese 0807500h operativne memorije. Utvrđuje se da u ulazu 8075h keš memorije nema saglasnosti. Adresa je iz bloka 08075h operativne memorije, pa se ovaj blok dovlači i smešta u ulaz 8075h DATA MEMORIJE. Kao rezultat toga na lokacijama 807500h do 8075FFh DATA MEMORIJE pojavljuju se sada vrednosti 0000h. U isti ulaz TAG MEMORIJE se upisuje vrednost TAG polja generisane adrese. U ulaz 8075h V flip- flopova se upisuje vrednost 1. Potom se utvrđuje da ima saglasnosti u ulazu 8075h keš memorije i sa adrese 807500h DATA MEMORIJE čita sadržaj 0000h.

Operacija čitanja sa adrese 08075FFh operativne memorije. Utvrđuje se da ima saglasnosti u ulazu 8075 keš memorije i sa adrese 8075FFh DATA MEMORIJE čita sadržaj 0000h.

b3) Za slučaj set-asocijatovnog preslikavanja prema objašnjenjima iz zadatka 0.3, strukturi generisane adrese i vrednostima polja TAG, SET i WORD u ulaze 0 setova 0FFh, E10h i 075h keš memorije se redom upisuju blokovi 0A0FFh, 0DE10h i 08075h operativne memorije. Izgled relevantnih delova keš memorije je dat na slici Error! Reference source not found..

broj seta

broj ulaza

D000

V000

TAG0 MEMORIJA

adresa

DATA MEMORIJA

0 0 0 000000h L 1 0 0 000100h L

SET000h 2 0 0 000200h L M M M M Fh 0 0 000F00h L

broj ulaza

D075

V075

M TAG075

MEMORIJA

M

M

0 0 1 08 075000h 0 0 L 0 0 1 0 0 075100h L

SET075h 2 0 0 075200h L M M M M Fh 0 0 075F00h L

broj ulaza

D0FF

V0FF

M TAG0FF

MEMORIJA

M

M

Docsity.com

18

0 0 1 0A 0FF000h 1 1 L 1 1 1 0 0 0FF100h L

SET0FFh 2 0 0 0FF200h L M M M M Fh 0 0 0FFF00h L

broj ulaza

DE10

VE10

M TAGE10

MEMORIJA

M

M

0 1 1 0D E10000h 3 2 L 2 4 1 0 0 E10100h L

SETE10h 2 0 0 E10200h L M M M M Fh 0 0 E10F00h L

broj ulaza

DFFF

VFFF

M TAGFFF

MEMORIJA

M

M

0 0 0 FFF000h L 1 0 0 FFF100h L

SETFFFh 2 0 0 FFF200h L M M M M Fh 0 0 FFFF00h L

Slika 1.1.20. Sadržaj relevantnih delova keš memorije

Operacija čitanja sa adrese 0A0FF00h operativne memorije. Utvrđuje se da u setu 0FFh keš memorije nema saglasnosti. Adresa je iz bloka 0A0FFh operativne memorije, pa se ovaj blok dovlači i smešta u ulaz 0 seta 0FFh DATA MEMORIJE. Kao rezultat toga na lokacijama 0FF000h do 0FF0FFh DATA MEMORIJE pojavljuju se sada vrednosti 0001h. U isti ulaz TAG0FFh MEMORIJE se upisuje vrednost TAG polja generisane adrese. U ulaz 0 V0FFh flip-flopova se upisuje vrednost 1. Potom se utvrđuje da ima saglasnosti u ulazu 0 seta 0FFh keš memorije i sa adrese 0FF000h DATA MEMORIJE čita sadržaj 0001h.

Operacija čitanja sa adrese 0A0FFFFh operativne memorije. Utvrđuje se da ima saglasnosti u ulazu 0 seta 0FFh keš memorije i sa adrese 0FF0FFh DATA MEMORIJE čita sadržaj 0001h.

Operacija upisa vrednosti 0003h u lokaciju na adresi 0DE1000h operativne memorije. Utvrđuje se da u setu E10h keš memorije nema saglasnosti. Adresa je iz bloka 0DE10h operativne memorije, pa se ovaj blok dovlači i smešta u ulaz 0 seta E10h DATA MEMORIJE. Kao rezultat toga na lokacijama E10000h do E100FFh DATA MEMORIJE pojavljuju se sada vrednosti 0002h. U isti ulaz TAGE10h MEMORIJE se upisuje vrednost TAG polja generisane adrese. U ulaz 0 VE10h flip-flopova se upisuje vrednost 1. Potom se utvrđuje da ima saglasnosti u ulazu 0 seta E10h keš memorije pa se u lokaciju DATA MEMORIJE sa adrese E10000h upisuje vrednost 0003h i u ulaz 0 DE10h flip-flopova upisuje vrednost 1.

Operacija upisa vrednosti 0004h u lokaciju na adresi 0DE10FFh operativne memorije. Utvrđuje se da ima saglasnosti u ulazu 0 seta E10h keš memorije pa se u lokaciju DATA MEMORIJE sa adrese E100FFh upisuje vrednost 0004h.

Operacija čitanja sa adrese 0807500h operativne memorije. Utvrđuje se da u ulazu0 seta 075h keš memorije nema saglasnosti. Adresa je iz bloka 08075h operativne memorije, pa se ovaj blok dovlači i smešta u ulaz 0 seta 075h DATA MEMORIJE. Kao rezultat toga na

Docsity.com

19

lokacijama 075000h do 0750FFh DATA MEMORIJE pojavljuju se sada vrednosti 0000h. U isti ulaz TAG075h MEMORIJE se upisuje vrednost TAG polja generisane adrese. U ulaz 0 V075h flip-flopova se upisuje vrednost 1. Potom se utvrđuje da ima saglasnosti u ulazu 0 seta 075h keš memorije i sa adrese 075000h DATA MEMORIJE čita sadržaj 0000h.

Operacija čitanja sa adrese 08075FFh operativne memorije. Utvrđuje se da ima saglasnosti u ulazu 0 seta 075h keš memorije i sa adrese 0750FFh DATA MEMORIJE čita sadržaj 0000h.

Zadatak 1.1.5 U računaru postoji operativna memorija kapaciteta 16 Mbajta. Adresiranje operativne

memorije je bajtovsko, a operacije obraćanja memoriji (čitanje i upis) su za bajtovske veličine.

a) Nacrtati, označiti širinu u bitovima svih relevantnih delova keš memorije pretpostavljajući da je obraćanje delu keš memorije u kome se nalaze sadržaji bajtovsko i objasniti njihovu funkciju za:

a1) keš memoriju sa 256 ulaza realizovanu u asocijativnoj tehnici preslikavanja na nivou bloka ako je veličina bloka 16 bajtova,

a2) keš memoriju realizovanu u tehnici direktnog preslikavanja na nivou bloka, ako je veličina bloka 16 bajta i kapacitet dela keš memorije u kojoj se nalaze sadržaji 32 Kbajta.

b) Objasniti kako se za oba tipa keš memorije za slučaj čitanja bajtovske veličine utvrđuje da li se sadržaj sa generisane adrese nalazi u keš memoriji i kako se vrši samo očitavanje željenog sadržaja.

c) U nekim situacijama sadržaj sa određenog ulaza keš memorije treba najpre vratiti u operativnu memoriju pa tek onda blok iz operativne memorije dovući u određeni ulaz keš memorije. Objasniti za oba tipa keš memorije:

• kako se generišu adrese operativne memorije u koje treba najpre vratiti sadržaj iz određenog ulaza keš memorije i

• šta se sve radi i kako se generišu sve potrebne adrese kod dovlačenja bloka iz operativne u keš memoriju?

Rešenje: a) Struktura keš memorija sa asocijativnim i direktnim preslikavanjem je data u posebnim

odeljcima.

a1) Struktura keš memorije sa asocijativnim preslikavanjem je data na slici 1.1.21.

Docsity.com

20

bajt

V0

M

V1

V255 20255

1

M

0

TAG MEMORIJA

V1

V255 M255

V0 M0

255

1

0

CD 1 MM 7

0

D0

M

D1

D255 4095

1 0

1 4

2 4

3

broj ulaza u keš

memoriju

11 M

4 3

0

1 2

3

20 23 034

4

1444442444443

generisana adresa

HIT

144424443 DI19 DI0

D V DATAMEMORIJA

1444442444443 TAG BYTE

8

4 1

2 3 M

123

123

M1

20

W

Slika 1.1.21. Struktura keš memorije sa asocijativnim preslikavanjem

Kako je kapacitet operativne memorije 16 Mbajta (224 bajta), a veličina bloka 16 bajtova (24 bajta), ona sadrži 220 blokova. Prema tome, struktura generisane adrese je:

•TAG (20 bita)—broj bloka u operativnoj memoriji i •BYTE (4 bita)—adresa bajta u bloku.

Struktura keš memorije je:

•D0…255—dirty bitovi, •V0…255—valid bitovi, •TAG MEMORIJA—asocijativna memorija gde se nalazi 256 TAG polja širine 20 bita, •CD—koder 256/8 i •DATA MEMORIJA—RAM memorija gde se nalazi 256 blokova sadržaja.

a2) Struktura keš memorije sa direktnim preslikavanjem je data na slici 1.1.22.

reč

V0

V1

V2047 92047

1

M

0

TAG MEMORIJA

D0

D1

D2047 215−1

1 0

14 M

4

1 2

3

9 23 034

4

1442443

generisana adresa

144424443 DO8 DO0

11 1514

1442443

10

0 1 2

3

CMP

123

V

9 11 4

M

10

0 1 2

3

M

10

0 1 2

3

11

11

DATA MEMORIJA

HIT

VD

9

TAG BLOCK BYTE

3 M

0

1 2

3

123

12314424431442443

11

Slika 1.1.22. Struktura keš memorije sa direktnim preslikavanjem

Docsity.com

21

Pošto keš memorija za sadržaj ima kapacitet 32 Kbajta (215 bajta), a veličina bloka je 16 bajtova (24 bajta), ona ima 211 blokova i isto toliko ulaza. Glavna memorija je podeljena na 224/(211⋅24) = 29 grupa. Zato je struktura generisane adrese:

•TAG (9 bita)—broj grupe u operativnoj memoriji, •BLOCK (11 bita)—broj bloka unutar grupe i broj bloka u keš memoriji i •BYTE (4 bita)—adresa bajta unutar bloka.

Struktura keš memorije:

•D0…2047—dirty bitovi, •V0…2047—valid bitovi, •TAG MEMORIJA—RAM memorija gde se nalaze 2048 TAG polja širine 9 bita, •CMP—komparator i •DATA MEMORIJA—RAM memorija gde se nalaze 2048 bloka sadržaja.

b) Utvrđivanje da li se sadržaj nalazi u keš memoriji i čitanje sadržaja za dva tipa keš memorije su prikazani u posebnim odeljcima.

b1) Asocijativno preslikavanje

TAG bitovi (20) iz generisane adrese se porede sa sadržajem svih 256 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 HIT postaje aktivan.

Bitovi (8) koji označavaju broj ulaza u keš memoriji na kome je otkrivena saglasnost dobijeni sa izlaza kodera i BYTE (4) bitovi generisane adrese se koriste kao adresa u DATA MEMORIJI i sadržaj se čita.

b2) Direktno preslikavanje

BLOCK 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 slažu i ako je bit V, adresiran BLOCK bitovima generisane adrese, postavljen, signal HIT postaje aktivan.

BLOCK bitovi (11) i BYTE bitovi (4) generisane adrese se koriste kao adresa za DATA MEMORIJU i sadržaj se čita.

c) Generisanje potrebnih adresa je prikazano u posebnim odeljcima.

c1) Generisanje potrebnih adresa prilikom vraćanja bloka iz keš memorije u operativnu memoriju za slučaj asocijativnog preslikavanja je dat u daljem tekstu.

Adresa operativne memorije je: 23 4 3 0

TAG BYTE 14444444444444244444444444443

TAG bitovi očitani iz TAG MEMORIJE 14243

4-bitni BYTE brojač

Redni broj bloka odabranog za zamenu se koristi kao adresa TAG MEMORIJE. 20-bitno polje TAG daje 20 najstarijih bitova adrese operativne memorije, a 4-bitni BYTE brojač daje najmlađa četiri bita.

Adresa DATA MEMORIJE je: 14 4 3 0

BYTE 144444424444443 14243

Docsity.com

22

redni broj bloka 4-bitni BYTE brojač

Redni broj bloka odabranog za zamenu se koristi kao 11 najstarijih bita adrese DATA MEMORIJE, a 4-bitni BYTE brojač daje četiri najmlađa bita.

Generisanje potrebnih adresa prilikom vraćanja bloka iz keš memorije u operativnu memoriju za slučaj direktnog preslikavanja je dat u daljem tekstu.

Adresa operativne memorije je: 23 15 14 4 3 0

TAG BLOCK BYTE 1444442444443

TAG bitovi očitani iz TAG MEMORIJE

14444444244444443 polje BLOCK iz generisane adrese

14243 4-bitni

BYTE brojač Broj bloka iz generisane adrese se koristi kao adresa TAG MEMORIJE. 9-bitno polje TAG

daje devet najstarijih bitova adrese operativne memorije, polje BLOCK iz generisane adrese daje sledećih 11 bitova, a 4-bitni BYTE brojač daje najmlađa četiri bita.

Adresa DATA MEMORIJE je: 14 4 3 0

BLOCK BYTE 144444424444443 polje BLOCK iz generisane adrese

14243 4-bitni

BYTE brojač Polje BLOCK iz generisane adrese daje najstarijih 11 bitova, a 4-bitni BYTE brojač daje

četiri najmlađa bita.

c2)

Generisanje potrebnih adresa prilikom porenosa bloka iz operativne memorije u keš memoriju za slučaj asocijativnog preslikavanja je dato u daljem tekstu.

Adresa operativne memorije je: 23 4 3 0

TAG BYTE 14444444444444244444444444443

TAG bitovi očitani iz generisane adrese 14243

4-bitni BYTE brojač

Adresa DATA MEMORIJE je ista kao u tački c1).

TAG bitovi iz generisane adrese se upisuju u TAG MEMORIJU u ulaz specifikovan brojem bloka koji se zamenjuje. Valid bit adresiran brojem bloka koji se zamenjuje se postavlja.

Generisanje potrebnih adresa prilikom porenosa bloka iz operativne memorije u keš memoriju za slučaj direktnog preslikavanja je dato u daljem tekstu.

Adresa operativne memorije je: 23 15 14 4 3 0

TAG BLOCK BYTE 1444442444443

TAG bitovi očitani iz generisane adrese

14444444244444443 polje BLOCK iz generisane adrese

14243 4-bitni

BYTE brojač Adresa DATA MEMORIJE je ista kao u tački c2).

Docsity.com

23

TAG bitovi iz generisane adrese se upisuju u TAG MEMORIJU u ulaz specifikovan poljem BLOCK iz generisane adrese. Valid bit adresiran poljem BLOCK iz generisane adrese se setuje.

Zadatak 1.1.6 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. 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:

10 M 200 M 2555 M 2655

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.

Rešenje:

Kapacitet operativne memorije je 1 M 16-bitnih reči (220 reči), a veličina bloka je 64 reči (26 reči), pa operativna memorija sadrži 214 (16 K) blokova. Kapacitet DATA dela keš memorije je 2 K reči (211 reči), pa DATA deo keš memorije sadrži 32 bloka (25 blokova).

a) Strukture keš memorije za sve tri vrste preslikavanja date su u posebnim odeljcima.

a1) Struktura keš memorije sa direktnim preslikavanjem je prikazana na slici 1.1.23.

Docsity.com

24

6

reč V31

V1 V0

9

0

1

M

31

TAG MEMORIJA

D31

D1 D0

0 1

2047

10 M

6 5

0

1 2

3 1

4 2

4 3

9 19 056

14243

123

generisana adresa

144424443 DO8 DO0

5 11 10

1442443

4

0 1 2

3

CMP

123

V

9 5 6

M

4

0 1 2

3

M

4

0 1 2

3

5

5 5

DATA MEMORIJA

HIT

VD

9

TAG BLOCK WORD

M

142431231442443

Slika 1.1.23. Struktura keš memorije sa direktnim preslikavanjem

BLOCK bitovi (5) iz generisane adrese se koriste kao ulaz za TAG MEMORIJU. TAG bitovi očitani iz TAG MEMORIJE se porede sa TAG bitovima iz generisane adrese. Ako se slažu i ako je V bit, takođe adresiran BLOCK bitovima generisane adrese, postavljen, aktivira se signal HIT.

BLOCK bitovi (5) i WORD bitovi (6) generisane adrese se koriste kao adresni bitovi DATA MEMORIJE i instrukcija se čita.

a2) Struktura keš memorije sa asocijativnim preslikavanjem je prikazana na slici 1.1.24.

rečV31

M

V1

V0

14

0

1

M

31

TAG MEMORIJA

V1 M1 V0 M0

V31 M31

31

1

0

CD 1 M

M 4

0

D31

M

D1

D0 0 1

2047

1 4

2 4

3

broj ulaza u keš

memoriju

10 M

6 5

0

1 2

3 1

4 2

4 3

14 19 056

6

123

1442443

generisana adresa

HIT

144424443 DI13 DI0

D V DATA MEMORIJA

TAG WORD 1231442443

M

W

Slika 1.1.24. Struktura keš memorije sa asocijativnim preslikavanjem

TAG bitovi (14) generisane adrese se porede sa sadržajem svih 32 ulaza TAG MEMORIJE (asocijativne). Ako se sadržaj bilo kog ulaza slaže sa TAG bitovima iz generisane adrese i odgovarajući V bit je postavljen, aktivira se signal HIT.

Docsity.com

25

Bitovi (5) koji kodiraju broj ulaza u keš memoriju (ulaz gde je bio HIT) dobijeni sa izlaza kodera i WORD bitovi (6) iz generisane adrese se koriste kao adresa DATA MEMORIJE i instrukcija se čita.

a3) Struktura keš memorije set-asocijativnim preslikavanjem sa dva bloka po setu je prikazana na slici 1.1.25.

CD0 reč V0,0

V0,1 101

0

TAG0 MEMORIJA

V0,0 M0,0

V0,1 M0,1

1

0 0

D0,0

D0,1 2047

1 0

broj ulaza u

odabranom setu

10

M

7 6 5

1 2

3 1

2 3

4 19 056

6

14243

123

generisana adresa

HIT0

144424443 DI9 DI0L

S0

910

144424443

0

CD15 V15,0

V15,1 101

0

TAG15 MEMORIJA

V15,0 M15,0

V15,1 M15,1

1

0 0

D15,0

D15,1

HIT15

144424443 DI9 DI0L

S15

HIT

HIT

S0

S15

M M

M

broj seta

15

DC 0

0L3

410 6

1442443

L

S15 S0

SE T

15 SE

T 0

D15 V15

D0 V0 DATA MEMORIJA

MM

SET WORDTAG

W

W

10 14243123144424443

M

Slika 1.1.25. Struktura keš memorije sa set-asocijativnim preslikavanjem sa dva bloka po setu

TAG bitovi (10) generisane adrese se porede sa sadržajima dva ulaza u tag memorijama (asocijativnim) TAG-0 MEMORIJA do TAG-15 MEMORIJA u 16 setova. Ako se sadržaj bilo kojeg od dva ulaza u setu slaže sa TAG bitovima generisane adrese i odgovarajući V bit je postavljen, aktivira se signal HIT u tom setu. Ovaj signal se koristi kao HIT signal za celu keš memoriju.

SET bitovi (4) generisane adrese, broj ulaza bloka (1) gde je pronađen HIT za odabrani set i WORD bitovi (6) iz generisane adrese se koriste kao adresa za DATA MEMORIJU i instrukcija se čita.

b)

Relevantne adrese se sastoje od:

hvala ,samo tako nastavite!!!!
ovo je samo pregled
3 prikazano na 50 str.
preuzmi dokument