Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Memóriakezelés feladatok. 1.Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla.

Hasonló előadás


Az előadások a következő témára: "Memóriakezelés feladatok. 1.Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla."— Előadás másolata:

1 Memóriakezelés feladatok

2 1.Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla pedig legyen egyszerű egyszintes laptábla 8 bites bejegyzésekkel. (a) A virtuális címekben hány bit tartozik a lapok azonosításához és hány a lapon belüli eltoláshoz? Rajzolja fel a virtuális címek tagozódását!

3 1. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla pedig legyen egyszerű egyszintes laptábla 8 bites bejegyzésekkel. (a) A virtuális címekben hány bit tartozik a lapok azonosításához és hány a lapon belüli eltoláshoz? Rajzolja fel a virtuális címek tagozódását! 4 bit 12 bit virtuális cím (16 bit) (eltolás) (lapszám) (a) Mivel a lapok mérete 2 12, az eltoláshoz 12 bit tartozik. A virtuális címek fennmaradó 16 − 12 = 4 bitje a lapot azonosítja. A kért rajz:

4 1. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla pedig legyen egyszerű egyszintes laptábla 8 bites bejegyzésekkel. (b) Mekkora a teljes laptábla mérete? (b) Mivel 4 bit azonosítja a lapokat, 2 4 = 16 lap van, mindegyikhez 8 bites (=1 bájtos) bejegyzés tartozik, vagyis a laptábla mérete 16 bájt.

5 1. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla pedig legyen egyszerű egyszintes laptábla 8 bites bejegyzésekkel. (c) Hány lap fér a fizikai memóriába? (c) A lapok 12 bitesek, a fizikai memória 15 bites, tehát a keretek azonosítására 3 bit marad, vagyis 2 3 = 8 lap fér a fizikai memóriába.

6 1. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla pedig legyen egyszerű egyszintes laptábla 8 bites bejegyzésekkel. Legyen a laptábla aktuális állapota a következő: 15 17 0? 12 0? 0? 11 0? 16 0? 0? 0? 10 13 0? 14 0: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: (d) Hol található a 3-mas, az 6-os és a 11-es lap? Valid Keret

7 1. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla pedig legyen egyszerű egyszintes laptábla 8 bites bejegyzésekkel. Legyen a laptábla aktuális állapota a következő: 15 17 0? 12 0? 0? 11 0? 16 0? 0? 0? 10 13 0? 14 0: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: (d) Hol található a 3-mas, az 6-os és a 11-es lap? Valid Keret (d) Az egyszintes laptáblát nagyon könnyű kiolvasni. A 3. lap helyét a 3. bejegyzés adja meg, mely szerint ez a lap a fizikai memóriában van (hiszen valid=1), mégpedig a 2-es kereten. Hasonlóképpen a 6. bejegyzésből kiolvashatjuk, hogy a 6. lap az 1. kereten található. A 11-es laphoz tartozó bejegyzésben a valid=0 jelzi, hogy ez a lap a háttértárra került.

8 1. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla pedig legyen egyszerű egyszintes laptábla 8 bites bejegyzésekkel. 15 17 0? 12 0? 0? 11 0? 16 0? 0? 0? 10 13 0? 14 0: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: (e) Módosítsa a laptábla tartalmát a következők szerint: A 6-os lap a háttértáron van A 11-es lap a fizikai memóriában az 1- es keretben található A 8-as lap a háttértáron van A 2-es lap a fizikai memóriában a 6-os keretben található Valid Keret

9 1. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla pedig legyen egyszerű egyszintes laptábla 8 bites bejegyzésekkel. 15 17 16 12 0? 0? 0? 0? 0? 0? 0? 11 10 13 0? 14 0: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: (e) Módosítsa a laptábla tartalmát a következők szerint: A 6-os lap a háttértáron van A 11-es lap a fizikai memóriában az 1- es keretben található A 8-as lap a háttértáron van A 2-es lap a fizikai memóriában a 6-os keretben található Valid Keret (e) A feladatban kért változtatások: 6-os laphoz valid=0-t írunk, a 11-eshez valid=1-et, és 1-es keretet a 8-ashoz valid=0-t a 2-eshez valid=1-et és 6-os keretet Az eredmény:

10 1. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla pedig legyen egyszerű egyszintes laptábla 8 bites bejegyzésekkel. (f) Feltéve, hogy nincs laphiba, hány memóriaművelet kell a címfordításhoz TLB találat esetén? TLB hiba esetén? (f) TLB találat esetén egy memóriaművelet sem kell (hiszen a TLB a processzorban van), TLB hiba esetén egyetlen memóriaművelettel kiolvasható a memóriából a címfordításhoz szükséges bejegyzés.

11 2. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 = 4 kB méretű. Használjunk 2 szintű hierarchikus laptáblát, minden szintre egyforma széles indexekkel, 16 bites bejegyzésekkel. (a) A virtuális címekben hány bit tartozik a lapon belüli eltoláshoz és hány a különböző szintű laptáblák indexeléséhez? Rajzolja fel a virtuális címek tagozódását! (a) Mivel a lapok mérete 2 12, az eltoláshoz 12 bit tartozik. Mivel a laptáblák mérete minden szinten egyforma, a virtuális címek fennmaradó 16 − 12 = 4 bitje kétfelé oszlik, a kétszintű laptábla mindkét szintjén 2 bitet használunk indexelésre. 1. szintű index 2. szintű indexeltolás 2 bit 12 bit

12 2. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 = 4 kB méretű. Használjunk 2 szintű hierarchikus laptáblát, minden szintre egyforma széles indexekkel, 16 bites bejegyzésekkel. (b) Mekkora az összes laptábla összegzett mérete? (b) Mivel 2 bites laptábla indexeink vannak, egy laptábla mérete = 2 2 ∗ bejegyzés mérete( 2 bájt) = 8 bájt Első szintű laptáblából 1 db van, másodszintűből 4 db, egyenként 8 byte- osak, összesen tehát 5 ∗ 8 = 40 bájtot foglal az összes laptábla együttvéve.

13 2. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 = 4 kB méretű. Használjunk 2 szintű hierarchikus laptáblát, minden szintre egyforma széles indexekkel, 16 bites bejegyzésekkel. (c) Optimális körülmények között mennyi a laptáblák által elfoglalt memória minimális mérete? Mennyivel kisebb ez, mintha egyszintű laptáblát használnánk? (c) A minimumot úgy kapjuk meg, ha minden hierarchia szintből csak egyetlen egy van a fizikai memóriában: 2 ∗ 8 = 16 bájt. Egyszintű esetben az egyetlen laptáblának mindig a memóriában kell lennie. Ha egyszintű lenne a laptábla, 2 4 = 16 bejegyzés kellene, tehát a laptábla mérete mindig 16 ∗ 2 = 32 bájt lenne. Ez ugyan kisebb, mint a kétszintű maximális mérete (ami 40 bájt), de jóval nagyobb, mint a kétszintű minimális mérete.

14 2. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 = 4 kB méretű. Használjunk 2 szintű hierarchikus laptáblát, minden szintre egyforma széles indexekkel, 16 bites bejegyzésekkel. (d) Hány lap fér a fizikai memóriába? (d) Az eltolás mező 12 bites, a fizikai memória cím 15 bites, tehát a keretek azonosítására 3 bit marad, vagyis 2 3 = 8 lap fér a memóriába..

15 2. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 = 4 kB méretű. Használjunk 2 szintű hierarchikus laptáblát, minden szintre egyforma széles indexekkel, 16 bites bejegyzésekkel. (e) Legyen a laptábla aktuális állapota a következő: Hol található a 3-mas (=0011), az 10-es (=1010) és a 11-es (=1011) lap?

16 2. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 = 4 kB méretű. Használjunk 2 szintű hierarchikus laptáblát, minden szintre egyforma széles indexekkel, 16 bites bejegyzésekkel. (e) Legyen a laptábla aktuális állapota a következő: (e) A kétszintű laptábla kiolvasása egy kétszintű fa bejárásához hasonlít. A 3-mas lap helyének kiderítéséhez először le kell választani az első- és a másodszintű laptábla indexeket. Mivel a 3 binárisan 0011, az elsőszintű laptáblaindex 00, vagyis 0, a másodszintű pedig 11, vagyis 3. A keresett laptábla bejegyzés így a 0. elsőszintű laptábla bejegyzés által mutatott másodszintű laptábla 3. bejegyzése. Itt valid=1 található, így a lap a memóriában van, mégpedig a 2-es kereten. Ugyanígy járunk el a 10-es bejegyzéssel is. Mivel a 10 binárisan 1010, mind az első, mind a másodszintű index 10, azaz 2. Az első szintű laptábla 2-es bejegyzése által mutatott másodszintű laptábla 2-es bejegyzésében valid=1-et, és 1-es keretet találunk. Végül, a 11-es laphoz a 10-es lap utáni bejegyzés tartozik, ahol a valid=0 jelzi, hogy ez a lap éppen a háttértáron van.

17 2. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 = 4 kB méretű. Használjunk 2 szintű hierarchikus laptáblát, minden szintre egyforma széles indexekkel, 16 bites bejegyzésekkel. (f) Módosítsa a laptábla tartalmát a következők szerint: A 10-es (=1010) lap a háttértáron van A 11-es (=1011) lap a fizikai memóriában az 1-es keretben található A 8-as (=1000) lap a háttértáron van A 2-es (=0010) lap a fizikai memóriában a 6-os keretben található

18 2. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 = 4 kB méretű. Használjunk 2 szintű hierarchikus laptáblát, minden szintre egyforma széles indexekkel, 16 bites bejegyzésekkel. (g) Feltéve, hogy nincs laphiba, hány memóriaművelet kell a címfordításhoz TLB találat esetén? TLB hiba esetén? (g) TLB találat esetén egy memóriaművelet sem kell (hiszen a TLB a processzorban van), TLB hiba esetén viszont két memóriaműveletre van szükség, mire elérjük a másodszintű laptáblát, amiben a címfordításhoz szükséges keret száma megtalálható.

19 09fizikai cím Lapszám: 6 bit Lapon belüli eltolás: 10 bit 3. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 13 bitesek, a lapméret legyen 2 10 = 1 kB méretű. Használjunk inverz laptáblát, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A laptáblabejegyzések mérete 16 bit. (a) A virtuális címekben hány bit tartozik a lapon belüli eltoláshoz és hány a lapok azonosításához? Rajzolja fel a virtuális címek tagozódását! virtuális cím 1510 0 Lapon belüli eltolás 913 x 14 1012 Hash

20 3. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 13 bitesek, a lapméret legyen 2 10 = 1 kB méretű. Használjunk inverz laptáblát, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A laptáblabejegyzések mérete 16 bit. (b) Hány lap fér a fizikai memóriába? (b) Az eltolás mező 10 bites, a fizikai memória cím 13 bites, tehát a keretek azonosítására 3 bit marad, vagyis 2 3 = 8 lap fér a memóriába.

21 3. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 13 bitesek, a lapméret legyen 2 10 = 1 kB méretű. Használjunk inverz laptáblát, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A laptáblabejegyzések mérete 16 bit. (c) Mekkora a teljes laptábla mérete? Mennyivel kisebb ez, mintha egyszintű laptáblát használnánk? Mekkora a hash mutató tábla mérete? (c) Az inverz laptábla jellegzetessége, hogy mérete a keretek számával azonos. Jelen esetben 8 keret van, tehát a laptábla mindössze 8 bejegyzésből áll, és mivel minden bejegyzés 2 bájtos, a laptábla mérete: 8 ∗ 2 = 16 bájt. Ha egyszintű lenne a laptábla, 2 6 = 64 bejegyzés kellene, tehát a laptábla mérete mindig 64 ∗ 2 = 128 bájt lenne. A hash függvény a cím megadott 4 bitjéhez rendel hozzá egy laptábla indexet. Mivel 4 bitet használ, értékkészlete 2 4 = 16, vagyis 16 bejegyzés szükséges. Minden bejegyzés egy laptábla index, és mivel csak 8 elemű a laptábla, a laptábla indexet 3 bittel le lehet írni. További 1 bitre van szükség, amivel jelezzük, hogy érvényes-e a mutató (nem NULL-e). Tehát a hash mutató tábla mérete: 16 ∗ 4 = 64 bit, = 8 bájt.

22 3. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 13 bitesek, a lapméret legyen 2 10 = 1 kB méretű. Használjunk inverz laptáblát, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A laptáblabejegyzések mérete 16 bit. (d) Legyen a laptábla aktuális állapota az alábbi. Hol található a 000011-es, az 101011-es, a 010100-ás és a 001010-ás lap?:

23 3. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 13 bitesek, a lapméret legyen 2 10 = 1 kB méretű. Használjunk inverz laptáblát, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A laptáblabejegyzések mérete 16 bit. (d) Legyen a laptábla aktuális állapota az alábbi. Hol található a 000011-es, az 101011-es, a 010100-ás és a 001010-ás lap?: (d) A bejegyzések megkereséséhez először ki kell számítani a lapszámra a hash függvény értékét, amely jelen esetben a virtuális cím 10-13. bitje, vagyis a lapszám utolsó 4 bitje. A 000011-es lapra ez 0011 (decimálisan 3). A hash mutató tábla ezen bejegyzése érvényes elemet tartalmaz, mégpedig az 1-es laptábla bejegyzést. Nézzük tehát a laptábla 1-es bejegyzését, melynek a ”lapszám” mezőjében pont megtaláltuk a keresett lapunkat, vagyis a 000011-et. A laphoz tartozó keret az 1-es, mivel a laptábla 1-es keretében találtuk meg ezt a bejegyzést. Most lássuk a következő lapot, az 101011-át. Ennek hash értéke 1011 (decimálisan 11), melyre nincs érvényes hash tábla bejegyzés, vagyis ez a lap a háttértáron található. A következő lap, a 010100-ás hash értéke 0100. A hash tábla a 7-es értéket tartalmazza, vagyis a laptábla 7-es bejegyzésében kell folytatnunk a keresést. A 7-es bejegyzésből látjuk, hogy az ott lévő lap nem az, amit keresünk (bár ugyanaz a hash értéke). Viszont a valid=1 mezőből megtudjuk, hogy a ”következő” mező érvényes elemet tartalmaz, aminek mentén folytathatjuk a keresést. Jelen esetben az 5-ös bejegyzéssel. Az 5-ös bejegyzés ”lapszám” mezője pedig megegyezik az általunk keresettel, tehát a 010100-ás lap az 5-ös kereten található. Végül, a 001010-ás lap hash értéke 1010, mely a hash táblában érvényes, a 4-es bejegyzésre mutat. A laptábla 4-es bejegyzése nem a keresett lap, és a valid=0 miatt a keresést nem folytathatjuk a ”következő” mező mentén, arra a konklúzióra jutunk, hogy ez a lap a háttértáron található.

24 3. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 13 bitesek, a lapméret legyen 2 10 = 1 kB méretű. Használjunk inverz laptáblát, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A laptáblabejegyzések mérete 16 bit. (e) Módosítsa a laptábla tartalmát a következők szerint: Az 101000 lap a fizikai memóriában az 6-os keretben található Az 100100 lap a háttértáron van Az 110110 lap a fizikai memóriában a 2-es keretben található

25 3. Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 13 bitesek, a lapméret legyen 2 10 = 1 kB méretű. Használjunk inverz laptáblát, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A laptáblabejegyzések mérete 16 bit. (f) Feltéve, hogy nincs laphiba, hány memóriaművelet kell a legjobb és a legrosszabb esetben a címfordításhoz TLB találat esetén? TLB hiba esetén? Mikor áll elő a legrosszabb eset? (f) TLB találat esetén egy memóriaművelet sem kell (hiszen a TLB a processzorban van). TLB hiba esetén a legjobb esetben 2 memóriaművelet kell: 1 a hash mutató tábla kiolvasásához, 1 az általa kijelölt laptábla bejegyzés kiolvasásához (ahol a legjobb esetben pont a keresett lapszámot látjuk viszont). A legrosszabb helyzet abban a valószínűtlen esetben áll fenn, ha sok, a fizikai memóriában tárolt lap hash-e azonos. Mivel a lapszámnak csak 2 bitje nem vesz részt a hash képzésében, összesen 4 laphoz tartozhat azonos hash. Ekkor a hash mutató tábla az első elhelyezett laptábla bejegyzésre mutat, ahonnét kezdve a láncolt lista segítségével be kell járni mind a 4 bejegyzést, mire végre a lánc végén meg nem találjuk a keresett lapot. Ahogy megyünk a láncban, minden érintett bejegyzésnél ellenőrizni kell, hogy abban a keretben épp a keresett lap van-e. A hash mutató tábla kiolvasásával együtt ez összesen 5 memóriaművelet.

26 4. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális, és 15 bites fizikai címeket támogat. A lapméret 4096 (= 2 12 ) bájt. A címfordításhoz egyszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. A futó program sorban egymás után az alábbi lapokra hivatkozik: 13, 12, 7, 2, 13. A laptábla és a TLB tartalma kezdetben a következő:

27 4. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális, és 15 bites fizikai címeket támogat. A lapméret 4096 (= 2 12 ) bájt. A címfordításhoz egyszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. A futó program sorban egymás után az alábbi lapokra hivatkozik: 13, 12, 7, 2, 13. A laptábla és a TLB tartalma kezdetben a következő: (a) Adja meg a laptábla és a TLB tartalmát a fenti laphivatkozások után! Ha az operációs rendszer egy újabb lapot akar a fizikai memóriában elhelyezni, akkor egy bent lévő lapot ki kell vennie onnan. A soron következő kiszemelt áldozatok legyenek az 1-es, majd az 5-ös lapok. Lapcsere esetén, ha a memóriából kikerült laphoz tartozik TLB bejegyzés, akkor az operációs rendszer azt az egy TLB bejegyzést érvényteleníti.

28 4. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális, és 15 bites fizikai címeket támogat. A lapméret 4096 (= 2 12 ) bájt. A címfordításhoz egyszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. 13-as hivatkozás : TLB hiba, laptáblában benne van, 3-as keret, a TLB módosul

29 4. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális, és 15 bites fizikai címeket támogat. A lapméret 4096 (= 2 12 ) bájt. A címfordításhoz egyszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. 12-es hivatkozás : TLB találat, csak a Kor módosul

30 4. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális, és 15 bites fizikai címeket támogat. A lapméret 4096 (= 2 12 ) bájt. A címfordításhoz egyszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. 7-es hivatkozás : TLB-ben nincs, laptábla 7-es bejegyzésben Valid=0, memóriában sincs, laphiba. Új lap az 1-es helyére jön.

31 4. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális, és 15 bites fizikai címeket támogat. A lapméret 4096 (= 2 12 ) bájt. A címfordításhoz egyszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. 2-es hivatkozás : TLB-ben nincs, TLB hiba, laptábla 2-es bejegyzésben Valid=1, memóriában van, a 4-es keretben. Csak a TLB módosul.

32 4. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális, és 15 bites fizikai címeket támogat. A lapméret 4096 (= 2 12 ) bájt. A címfordításhoz egyszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. 13-as hivatkozás : TLB találat, csak a Kor módosul.

33 4. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális, és 15 bites fizikai címeket támogat. A lapméret 4096 (= 2 12 ) bájt. A címfordításhoz egyszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. (b) A megadott hivatkozásokból hány esetén volt TLB találat? (b) Két TLB találat volt, a második hivatkozás (a 12-es lapra), és az ötödik hivatkozás (a 13-mas lapra).

34 4. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális, és 15 bites fizikai címeket támogat. A lapméret 4096 (= 2 12 ) bájt. A címfordításhoz egyszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. (c) A megadott hivatkozásokból hány esetén volt laphiba? (c) Egy laphiba volt, a harmadik hivatkozás (a 7-es lapra).

35 5. Feladat Egy virtuális tárkezelésre képes processzor 14 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz kétszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. A futó program sorban egymás után az alábbi lapokra hivatkozik: 13, 12, 7, 2, 13. A laptábla és a TLB tartalma kezdetben a következő:

36 5. Feladat Egy virtuális tárkezelésre képes processzor 14 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz kétszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. A futó program sorban egymás után az alábbi lapokra hivatkozik: 13, 12, 7, 2, 13. A laptábla és a TLB tartalma kezdetben a következő: (a) Adja meg a laptábla és a TLB tartalmát a fenti laphivatkozások után! Ha az operációs rendszer egy újabb lapot akar a fizikai memóriában elhelyezni, akkor egy bent lévő lapot ki kell vennie onnan. A soron következő kiszemelt áldozatok legyenek az 1-es, majd az 5-ös lapok. Lapcsere esetén az operációs rendszer a TLB teljes tartalmát érvényteleníti.

37 5. Feladat Egy virtuális tárkezelésre képes processzor 14 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz kétszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. A futó program sorban egymás után az alábbi lapokra hivatkozik: 13, 12, 7, 2, 13. 13-as lap (1101): TLB hiba, de benn van a memóriában, a 3-as keretben, csak aTLB módosul

38 5. Feladat Egy virtuális tárkezelésre képes processzor 14 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz kétszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. A futó program sorban egymás után az alábbi lapokra hivatkozik: 13, 12, 7, 2, 13. 12-es lap (1100): TLB találat, csak a Kor módosul

39 5. Feladat Egy virtuális tárkezelésre képes processzor 14 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz kétszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. A futó program sorban egymás után az alábbi lapokra hivatkozik: 13, 12, 7, 2, 13. 7-es lap (0111): laphiba, új lap az 1-es helyére, laptábla módosul, TLB törlés után módosul

40 5. Feladat Egy virtuális tárkezelésre képes processzor 14 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz kétszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. A futó program sorban egymás után az alábbi lapokra hivatkozik: 13, 12, 7, 2, 13. 2-es lap (0010): TLB hiba, de memóriában benn van a 4-es keretben, TLB módosul

41 5. Feladat Egy virtuális tárkezelésre képes processzor 14 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz kétszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. A futó program sorban egymás után az alábbi lapokra hivatkozik: 13, 12, 7, 2, 13. 13-as lap (1101): TLB hiba, de memóriában benn van, a 3-as keretben, TLB módosul

42 5. Feladat Egy virtuális tárkezelésre képes processzor 14 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz kétszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. A futó program sorban egymás után az alábbi lapokra hivatkozik: 13, 12, 7, 2, 13. (b) A megadott hivatkozásokból hány esetén volt TLB találat? (b) Egy TLB találat volt, a második hivatkozás (a 12-es lapra).

43 5. Feladat Egy virtuális tárkezelésre képes processzor 14 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz kétszintű laptáblát használ, valamint egy 4 bejegyzéses, LRU algoritmussal menedzselt teljesen asszociatív TLB-t. A futó program sorban egymás után az alábbi lapokra hivatkozik: 13, 12, 7, 2, 13. (c) A megadott hivatkozásokból hány esetén volt laphiba? (c) Egy laphiba volt, a harmadik hivatkozás (a 7-es lapra).

44 6. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz inverz laptáblát használ, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A TLB 4 bejegyzéses, teljesen asszociatív, LRU algoritmussal menedzselt. A futó program sorban egymás után az alábbi lapokra hivatkozik: 010100, 000110, 110100, 000011, 010100. A laptábla és a TLB tartalma kezdetben a következő:

45 6. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz inverz laptáblát használ, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A TLB 4 bejegyzéses, teljesen asszociatív, LRU algoritmussal menedzselt. A futó program sorban egymás után az alábbi lapokra hivatkozik: 010100, 000110, 110100, 000011, 010100. A laptábla és a TLB tartalma kezdetben a következő: (a) Adja meg a hash mutató tábla, a laptábla és a TLB tartalmát a fenti laphivatkozások után! Ha az operációs rendszer egy újabb lapot akar a fizikai memóriában elhelyezni, akkor egy bent lévő lapot ki kell vennie onnan. A soron következő kiszemelt áldozatok legyenek az 100110-ás, majd az 100100-ás lapok. Lapcsere esetén, ha a memóriából kikerült laphoz tartozik TLB bejegyzés, akkor az operációs rendszer azt az egy TLB bejegyzést érvényteleníti.

46 6. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz inverz laptáblát használ, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A TLB 4 bejegyzéses, teljesen asszociatív, LRU algoritmussal menedzselt. A futó program sorban egymás után az alábbi lapokra hivatkozik: 010100, 000110, 110100, 000011, 010100. 010100 lap: TLB hiba, memóriában van az 5-ös keretben, a TLB módosul

47 6. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz inverz laptáblát használ, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A TLB 4 bejegyzéses, teljesen asszociatív, LRU algoritmussal menedzselt. A futó program sorban egymás után az alábbi lapokra hivatkozik: 010100, 000110, 110100, 000011, 010100. 000110 lap: TLB találat, csak a Kor módosul

48 6. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz inverz laptáblát használ, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A TLB 4 bejegyzéses, teljesen asszociatív, LRU algoritmussal menedzselt. A futó program sorban egymás után az alábbi lapokra hivatkozik: 010100, 000110, 110100, 000011, 010100. 110100 lap: laphiba, az új lap az 100110 helyére jön be, laptábla és TLB módosul

49 6. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz inverz laptáblát használ, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A TLB 4 bejegyzéses, teljesen asszociatív, LRU algoritmussal menedzselt. A futó program sorban egymás után az alábbi lapokra hivatkozik: 010100, 000110, 110100, 000011, 010100. 000011 lap: TLB hiba, a lap a memóriában van, az 1-es keretben, a TLB módosul

50 6. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz inverz laptáblát használ, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A TLB 4 bejegyzéses, teljesen asszociatív, LRU algoritmussal menedzselt. A futó program sorban egymás után az alábbi lapokra hivatkozik: 010100, 000110, 110100, 000011, 010100. 010100 lap: TLB találat, csak a Kor mező módosul

51 6. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz inverz laptáblát használ, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A TLB 4 bejegyzéses, teljesen asszociatív, LRU algoritmussal menedzselt. A futó program sorban egymás után az alábbi lapokra hivatkozik: 010100, 000110, 110100, 000011, 010100. (b) A megadott hivatkozásokból hány esetén volt TLB találat? (b) Két TLB találat volt, a második hivatkozás (a 000110), és az ötödik (010100).

52 6. Feladat Egy virtuális tárkezelésre képes processzor 16 bites virtuális és 13 bites fizikai címeket támogat. A lapméret 1024 bájt (=2 10 ). A címfordításhoz inverz laptáblát használ, melyben a hash függvény értéke a virtuális cím 10.-13. bitje által meghatározott szám. A TLB 4 bejegyzéses, teljesen asszociatív, LRU algoritmussal menedzselt. A futó program sorban egymás után az alábbi lapokra hivatkozik: 010100, 000110, 110100, 000011, 010100. (c) A megadott hivatkozásokból hány esetén volt laphiba? (c) Egy laphiba volt, a harmadik hivatkozás (az 110100-ás lapra).

53 7. Feladat Egy számítógép rendszermemóriája egycsatornás, 64 bites adategységekkel rendelkező DDR1-DRAM-ra épül, melyben a burst méret 8 adategységnyire van beállítva. A több bank-os és több rank-os felépítéstől most tekintsünk el. A memória késleltetések legyenek az alábbiak (órajelek számában megadva): TRP = 4 (a PRECHARGE parancs végrehajtásához szükséges idő) TRCD = 5 (ennyi ideig tart egy sor megnyitása) TCAS = 9 (egy nyitott sor egy oszlopának a kiolvasásához szükséges idő. Az olvasás parancs után ennyi idő múlva jelenik meg az első adat a modul adatbuszán) A memóriavezérlőhöz beérkező 64 bájtos (tehát 1 burst-nyi) olvasási kérések az alábbi sor, oszlop koordinátákra vonatkoznak: (3. sor, 8. oszlop), (3. sor, 2. oszlop), (7. sor, 9. oszlop) Kezdetben a 7. sor van nyitott állapotban. Az utolsó parancs után a memóriavezérlő nem zárja le a nyitott sort. (a) Adja meg a fenti kérésekhez tartozó, memóriavezérlő által kiadott DRAM parancsokat (sorrendhelyesen), FCFS, valamint FR-FCFS ütemezés mellett! (Feltesszük, hogy a 64 bájtos kérések nem lógnak túl az adott soron.)

54 7. Feladat Egy számítógép rendszermemóriája egycsatornás, 64 bites adategységekkel rendelkező DDR1- DRAM-ra épül, melyben a burst méret 8 adategységnyire van beállítva. A több bank-os és több rank-os felépítéstől most tekintsünk el. A memória késleltetések legyenek az alábbiak (órajelek számában megadva): TRP = 4 (a PRECHARGE parancs végrehajtásához szükséges idő) TRCD = 5 (ennyi ideig tart egy sor megnyitása) TCAS = 9 (egy nyitott sor egy oszlopának a kiolvasásához szükséges idő. Az olvasás parancs után ennyi idő múlva jelenik meg az első adat a modul adatbuszán) A memóriavezérlőhöz beérkező 64 bájtos (tehát 1 burst-nyi) olvasási kérések az alábbi sor, oszlop koordinátákra vonatkoznak: (3. sor, 8. oszlop), (3. sor, 2. oszlop), (7. sor, 9. oszlop) Kezdetben a 7. sor van nyitott állapotban. Az utolsó parancs után a memóriavezérlő nem zárja le a nyitott sort. ( a) Adja meg a fenti kérésekhez tartozó, memóriavezérlő által kiadott DRAM parancsokat (sorrendhelyesen), FCFS, valamint FR-FCFS ütemezés mellett! (Feltesszük, hogy a 64 bájtos kérések nem lógnak túl az adott soron.) (a) FCFS ütemezés esetén a 3. sor megnyitása előtt le kell zárni az épp nyitott 7. sort. FR-FCFS esetén azonban épp kapóra jön, hogy a 7. sor nyitva van, hiszen így a harmadik kérés előrehozható, és ezzel egy nyitás-zárás parancspár megspórolható. A parancsok sorrendje az alábbi: FCFS ütemezés szerint:FR-FCFS ütemezés szerint: PRECHARGEREAD 9 ACTIVATE 3PRECHARGE READ 8ACTIVATE 3 READ 2READ 8 PRECHARGEREAD 2 ACTIVATE 7 READ 9

55 7. Feladat Egy számítógép rendszermemóriája egycsatornás, 64 bites adategységekkel rendelkező DDR1- DRAM-ra épül, melyben a burst méret 8 adategységnyire van beállítva. A több bank-os és több rank-os felépítéstől most tekintsünk el. A memória késleltetések legyenek az alábbiak (órajelek számában megadva): TRP = 4 (a PRECHARGE parancs végrehajtásához szükséges idő) TRCD = 5 (ennyi ideig tart egy sor megnyitása) TCAS = 9 (egy nyitott sor egy oszlopának a kiolvasásához szükséges idő. Az olvasás parancs után ennyi idő múlva jelenik meg az első adat a modul adatbuszán) A memóriavezérlőhöz beérkező 64 bájtos (tehát 1 burst-nyi) olvasási kérések az alábbi sor, oszlop koordinátákra vonatkoznak: (3. sor, 8. oszlop), (3. sor, 2. oszlop), (7. sor, 9. oszlop) Kezdetben a 7. sor van nyitott állapotban. Az utolsó parancs után a memóriavezérlő nem zárja le a nyitott sort. ( b) Az FCFS ütemezést alapul véve hányadik órajelben jelenik meg a (3. sor, 8. oszlop) kérésre érkező első adat a memóriamodul adatbuszán? És a (3. sor, 2. oszlop) kérésre érkező utolsó adat? (b) Mielőtt a (3. sor, 8. oszlop) kérésre megérkezne az első adat, ki kell várni egy PRECHARGE késleltetést (TRP = 4), egy ACTIVATE késleltetést (TRCD = 5), valamint a READ parancs késleltetését (TCAS = 9). Összesen tehát 4 + 5 + 9 = 18 órajel múlva érkezik meg az első adat az adatbuszon. Ezután 4 órajel szükséges a burst átviteléhez (hiszen a DDR1 az órajel fel- és lefutó élén is képes adatot átvinni, a burst hossza pedig 8), és további 4 órajel a következő, (3. sor, 2. oszlop)-ra vonatkozó kérés utolsó adategységének átviteléhez. A (3. sor, 2. oszlop)-ra vonatkozó kérés utolsó adategysége tehát 4 + 5 + 9 + 4 + 4 = 26 órajel múlva jelenik meg az adatbuszon. Vegyük észre, hogy az átlapolt feldolgozás miatt nem kellett még egy READ késleltetést figyelembe venni

56 8. Feladat Vegyünk egy 256 byte méretű cache-t 64 byte-os blokkmérettel. A cache kezdetben csupa érvénytelen blokkot tartalmaz. Egy program az alábbi memóriablokkokról olvas (ebben a sorrendben): 1, 3, 8, 4, 3, 6, 8, 1 Adja meg a cache hibák számát és a cache végső tartalmát LRU algoritmus mellett (a) direkt leképzés esetén, (a) Direkt leképzés esetén az LRU-nak nincs szerepe. Azt, hogy egy blokk hova kerül a cache-be, a blokk számának 4-el való osztási maradéka határozza meg. Az egységes jelölés kedvéért az azonos indexű cache blokkokat egymás alá írjuk, így most a cache pillanatnyi állapota 4 egymás alá rajzolt blokkból áll. A cache tartalma az alábbiak szerint alakul. A 8 memóriaműveletből 6 cache hiba, és 2 cache találat volt.

57 8. Feladat Vegyünk egy 256 byte méretű cache-t 64 byte-os blokkmérettel. A cache kezdetben csupa érvénytelen blokkot tartalmaz. Egy program az alábbi memóriablokkokról olvas (ebben a sorrendben): 1, 3, 8, 4, 3, 6, 8, 1 Adja meg a cache hibák számát és a cache végső tartalmát LRU algoritmus mellett (b) teljesen asszociatív szervezés esetén, (b) A teljesen asszociatív esetben már az LRU algoritmusnak is van szerepe, azt is nyomon kell követni, hogy melyik blokkot mikor hivatkoztuk utoljára. A ”tag”, vagyis a tárolt blokk száma mellett ezért a blokkok korát is tárolni és folyamatosan frissíteni kell. Új blokk érkezésekor, ha nincs szabad hely, a legöregebb helyére tesszük. Mivel a teljesen asszociatív szervezés esetén minden blokknak ugyanaz az indexe (nincs indexelés), a cache pillanatnyi állapotát egyetlen sorba, egymás mellé rajzolt 4 blokkal jelöljük. A memóriahivatkozások hatására a cache állapota a következőképpen alakul. Megint csak 2 cache találat volt.

58 8. Feladat Vegyünk egy 256 byte méretű cache-t 64 byte-os blokkmérettel. A cache kezdetben csupa érvénytelen blokkot tartalmaz. Egy program az alábbi memóriablokkokról olvas (ebben a sorrendben): 1, 3, 8, 4, 3, 6, 8, 1 Adja meg a cache hibák számát és a cache végső tartalmát LRU algoritmus mellett (c) két utas asszociatív szervezés esetén. (c) A két utas asszociatív esetben az első sor (0-ás index) 2 blokkja páros, a második sor (1- es index) 2 blokkja páratlan blokkokat tud tárolni. Először ez alapján kell kiválasztani a megfelelő sort, az LRU algoritmust csak a soron belüli két blokk közül való választáskor kell alkalmazni.

59 9. Feladat Vegyünk egy 32 kB méretű cache-t 64 byte-os blokkmérettel. A CPU rendelkezzen 32 bites fizikai, 48 bites virtuális címekkel. 4-utas asszociatív szervezés mellett hány darab és hány bites összehasonlítást kell végezni egy keresés során, ha (a) Fizikailag indexelt cache-t használunk, fizikai tag-ekkel A cím alsó 6 bitje az eltolás (2 6 = 64). A cache-be 32 kB / 64 byte = 512 blokk fér el. Ha 4-utas a szervezés, akkor az index egy adott értékéhez 4 blokk tartozik, vagyis 512/4 = 128 féle indexünk lehet, ami 7 bittel írható le. (a) Ha a cache kizárólag fizikai címekre alapozott, akkor a tag-ek mérete 32-7-6 = 19 bit. Minden egyes kereséskor a 4-utas cache-ben az index által kijelölt 4 blokk 19 bites tag-jeit kell összehasonlítanunk a cím megfelelő bitjeivel. Vagyis egyidejűleg 4 darab 19 bites összehasonlítást kell elvégezni.

60 9. Feladat Vegyünk egy 32 kB méretű cache-t 64 byte-os blokkmérettel. A CPU rendelkezzen 32 bites fizikai, 48 bites virtuális címekkel. 4-utas asszociatív szervezés mellett hány darab és hány bites összehasonlítást kell végezni egy keresés során, ha (b) Virtuálisan indexelt cache-t használunk, virtuális tag-ekkel (b) Ha virtuális tag-eket használunk, akkor a tag-ek mérete 48-7-6 = 35 bit. Minden egyes kereséskor 4 db 35 bites összehasonlításra van szükség.

61 10. Feladat Vegyünk egy 512 byte méretű cache-t 64 byte-os blokkmérettel. A cache fizikai címeket használ mind az indexeléshez, mind a tag-ekhez. A fizikai címek 16 bit szélesek. Egy program az alábbi memóriacímekről olvas (ebben a sorrendben): 13, 136, 490, 541, 670, 74, 581, 980 (a) Adja meg a fenti címekhez tartozó ”tag”, ”index” és ”eltolás” mezőket teljesen asszociatív szervezés direkt leképzés két utas asszociatív szervezés esetén. (a) Az 512 byte-os méret 512/64 = 8 blokk tárolását teszi lehetővé. Mivel a blokkok mérete 64 byte, mindhárom esetben 6 bites lesz az eltolás mező. A további mezők mérete a cache szervezéstől függ: Teljesen asszociatív szervezés esetén nincs indexelés, minden blokk bárhova kerülhet. Index: 0 bit, tag: 16 − 6 = 10 bit. Direkt leképzés esetén a cache-nek mind a 8 blokkja ”direktben” az index mezővel kerül kiválasztásra, tehát az index mező 3 bites. A maradék 16 − 3 − 6 = 7 bit lesz a cache tag-ek mérete. Két utas asszociatív szervezés esetén minden blokk két helyre kerülhet a cache- ben. Tehát a cím indexe alapján a 4 darab 2 utas tároló egyikét kell kijelölni. A 4 féle indexhez 2 bit szükséges, a tag-ek tehát 16 − 6 − 2 = 8 bit szélesek lesznek.

62 10. Feladat Vegyünk egy 512 byte méretű cache-t 64 byte-os blokkmérettel. A cache fizikai címeket használ mind az indexeléshez, mind a tag-ekhez. A fizikai címek 16 bit szélesek. Egy program az alábbi memóriacímekről olvas (ebben a sorrendben): 13, 136, 490, 541, 670, 74, 581, 980 (a) Adja meg a fenti címekhez tartozó ”tag”, ”index” és ”eltolás” mezőket teljesen asszociatív szervezés direkt leképzés két utas asszociatív szervezés esetén. (a) A memóriacímek felbontása ennek megfelelően történik. A blokk szám és az eltolás szétválasztásához a címet el kell osztani 64-el, az eredmény egész része a blokk száma, a maradék a blokkon belüli eltolás. A blokk számból direkt leképzés esetén 8- al, a 2 utas asszociatív esetben pedig 4-el való osztás maradékaként kapjuk az indexet, egész részeként pedig a cache tag-et. 13 (0/13) 136 (2/8) 490 (7/42) 541 (8/29) 670 (10/30) 74 (1/10) 581 (9/5) 980 (15/20) Eltolás13842293010520 Tag teljesen asszoc. Tag direkt leképez. Index direkt leképez. Tag két utas asszoc. Index két utas assz.

63 10. Feladat Vegyünk egy 512 byte méretű cache-t 64 byte-os blokkmérettel. A cache fizikai címeket használ mind az indexeléshez, mind a tag-ekhez. A fizikai címek 16 bit szélesek. Egy program az alábbi memóriacímekről olvas (ebben a sorrendben): 13, 136, 490, 541, 670, 74, 581, 980 (a) Adja meg a fenti címekhez tartozó ”tag”, ”index” és ”eltolás” mezőket teljesen asszociatív szervezés direkt leképzés két utas asszociatív szervezés esetén. (a) A memóriacímek felbontása ennek megfelelően történik. A blokk szám és az eltolás szétválasztásához a címet el kell osztani 64-el, az eredmény egész része a blokk száma, a maradék a blokkon belüli eltolás. A blokk számból direkt leképzés esetén 8- al, a 2 utas asszociatív esetben pedig 4-el való osztás maradékaként kapjuk az indexet, egész részeként pedig a cache tag-et. 13 (0/13) 136 (2/8) 490 (7/42) 541 (8/29) 670 (10/30) 74 (1/10) 581 (9/5) 980 (15/20) Eltolás13842293010520 Tag teljesen asszoc.0278101915 Tag direkt leképez. Index direkt leképez. Tag két utas asszoc. Index két utas assz.

64 10. Feladat Vegyünk egy 512 byte méretű cache-t 64 byte-os blokkmérettel. A cache fizikai címeket használ mind az indexeléshez, mind a tag-ekhez. A fizikai címek 16 bit szélesek. Egy program az alábbi memóriacímekről olvas (ebben a sorrendben): 13, 136, 490, 541, 670, 74, 581, 980 (a) Adja meg a fenti címekhez tartozó ”tag”, ”index” és ”eltolás” mezőket teljesen asszociatív szervezés direkt leképzés két utas asszociatív szervezés esetén. (a) A memóriacímek felbontása ennek megfelelően történik. A blokk szám és az eltolás szétválasztásához a címet el kell osztani 64-el, az eredmény egész része a blokk száma, a maradék a blokkon belüli eltolás. A blokk számból direkt leképzés esetén 8- al, a 2 utas asszociatív esetben pedig 4-el való osztás maradékaként kapjuk az indexet, egész részeként pedig a cache tag-et. 13 (0/13) 136 (2/8) 490 (7/42) 541 (8/29) 670 (10/30) 74 (1/10) 581 (9/5) 980 (15/20) Eltolás13842293010520 Tag teljesen asszoc.0278101915 Tag direkt leképez.00011011 Index direkt leképez. Tag két utas asszoc. Index két utas assz.

65 10. Feladat Vegyünk egy 512 byte méretű cache-t 64 byte-os blokkmérettel. A cache fizikai címeket használ mind az indexeléshez, mind a tag-ekhez. A fizikai címek 16 bit szélesek. Egy program az alábbi memóriacímekről olvas (ebben a sorrendben): 13, 136, 490, 541, 670, 74, 581, 980 (a) Adja meg a fenti címekhez tartozó ”tag”, ”index” és ”eltolás” mezőket teljesen asszociatív szervezés direkt leképzés két utas asszociatív szervezés esetén. (a) A memóriacímek felbontása ennek megfelelően történik. A blokk szám és az eltolás szétválasztásához a címet el kell osztani 64-el, az eredmény egész része a blokk száma, a maradék a blokkon belüli eltolás. A blokk számból direkt leképzés esetén 8- al, a 2 utas asszociatív esetben pedig 4-el való osztás maradékaként kapjuk az indexet, egész részeként pedig a cache tag-et. 13 (0/13) 136 (2/8) 490 (7/42) 541 (8/29) 670 (10/30) 74 (1/10) 581 (9/5) 980 (15/20) Eltolás13842293010520 Tag teljesen asszoc.0278101915 Tag direkt leképez.00011011 Index direkt leképez.02702117 Tag két utas asszoc. Index két utas assz.

66 10. Feladat Vegyünk egy 512 byte méretű cache-t 64 byte-os blokkmérettel. A cache fizikai címeket használ mind az indexeléshez, mind a tag-ekhez. A fizikai címek 16 bit szélesek. Egy program az alábbi memóriacímekről olvas (ebben a sorrendben): 13, 136, 490, 541, 670, 74, 581, 980 (a) Adja meg a fenti címekhez tartozó ”tag”, ”index” és ”eltolás” mezőket teljesen asszociatív szervezés direkt leképzés két utas asszociatív szervezés esetén. (a) A memóriacímek felbontása ennek megfelelően történik. A blokk szám és az eltolás szétválasztásához a címet el kell osztani 64-el, az eredmény egész része a blokk száma, a maradék a blokkon belüli eltolás. A blokk számból direkt leképzés esetén 8- al, a 2 utas asszociatív esetben pedig 4-el való osztás maradékaként kapjuk az indexet, egész részeként pedig a cache tag-et. 13 (0/13) 136 (2/8) 490 (7/42) 541 (8/29) 670 (10/30) 74 (1/10) 581 (9/5) 980 (15/20) Eltolás13842293010520 Tag teljesen asszoc.0278101915 Tag direkt leképez.00011011 Index direkt leképez.02702117 Tag két utas asszoc.00122023 Index két utas assz.

67 10. Feladat Vegyünk egy 512 byte méretű cache-t 64 byte-os blokkmérettel. A cache fizikai címeket használ mind az indexeléshez, mind a tag-ekhez. A fizikai címek 16 bit szélesek. Egy program az alábbi memóriacímekről olvas (ebben a sorrendben): 13, 136, 490, 541, 670, 74, 581, 980 (a) Adja meg a fenti címekhez tartozó ”tag”, ”index” és ”eltolás” mezőket teljesen asszociatív szervezés direkt leképzés két utas asszociatív szervezés esetén. (a) A memóriacímek felbontása ennek megfelelően történik. A blokk szám és az eltolás szétválasztásához a címet el kell osztani 64-el, az eredmény egész része a blokk száma, a maradék a blokkon belüli eltolás. A blokk számból direkt leképzés esetén 8- al, a 2 utas asszociatív esetben pedig 4-el való osztás maradékaként kapjuk az indexet, egész részeként pedig a cache tag-et. 13 (0/13) 136 (2/8) 490 (7/42) 541 (8/29) 670 (10/30) 74 (1/10) 581 (9/5) 980 (15/20) Eltolás13842293010520 Tag teljesen asszoc.0278101915 Tag direkt leképez.00011011 Index direkt leképez.02702117 Tag két utas asszoc.00122023 Index két utas assz.02302113

68 10. Feladat Vegyünk egy 512 byte méretű cache-t 64 byte-os blokkmérettel. A cache fizikai címeket használ mind az indexeléshez, mind a tag-ekhez. A fizikai címek 16 bit szélesek. Egy program az alábbi memóriacímekről olvas (ebben a sorrendben): 13, 136, 490, 541, 670, 74, 581, 980 (b) Adja meg a cache végső tartalmát mind a 3 esetben, LRU algoritmus mellett! (A cache kezdetben csupa érvénytelen blokkot tartalmaz) 8 blokknyi hely van a cache-ben, és mi pont 8 adatot akarunk elhelyezni, a teljesen asszociatív szervezés pedig semmilyen megkötést nem ír elő a blokkok elhelyezésére. Teljesen asszociatív szervezés mellett a cache a végső állapotában az összes blokkot tartalmazza, tetszőleges sorrendben.

69 10. Feladat Vegyünk egy 512 byte méretű cache-t 64 byte-os blokkmérettel. A cache fizikai címeket használ mind az indexeléshez, mind a tag-ekhez. A fizikai címek 16 bit szélesek. Egy program az alábbi memóriacímekről olvas (ebben a sorrendben): 13, 136, 490, 541, 670, 74, 581, 980 (b) Adja meg a cache végső tartalmát mind a 3 esetben, LRU algoritmus mellett! (A cache kezdetben csupa érvénytelen blokkot tartalmaz) Direkt leképzés esetén a blokkok elhelyezése egyértelmű, az index meghatározza. Összesen 4-szer fordul elő, hogy korábban már szereplő blokkot felül kell írni, tehát csak 4 blokk lesz a végén a cache-ben. 11 11 11 0? 0? 0? 0? 11 Valid Tag Blokk tartalom 1300 13622 49077 980 670102 7411 58191 980157 Cím Blokk mod 8

70 10. Feladat Vegyünk egy 512 byte méretű cache-t 64 byte-os blokkmérettel. A cache fizikai címeket használ mind az indexeléshez, mind a tag-ekhez. A fizikai címek 16 bit szélesek. Egy program az alábbi memóriacímekről olvas (ebben a sorrendben): 13, 136, 490, 541, 670, 74, 581, 980 (b) Adja meg a cache végső tartalmát mind a 3 esetben, LRU algoritmus mellett! (A cache kezdetben csupa érvénytelen blokkot tartalmaz) 2-utas asszociatív esetben 2 azonos indexű blokkot is tárolni tudunk. Ezzel együtt ebben a konkrét példában egyszer sem fordul elő, hogy felül kell írni egy korábbi blokkot, tehát a végén 8 blokk lesz a cache-ben. 12 12 12 13 Valid Tag Blokk tartalom 10 10 10 11 Valid Tag Blokk tartalom 1300 13622 49073 980 670102 7411 58191 980153 Cím Blokk mod 4


Letölteni ppt "Memóriakezelés feladatok. 1.Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla."

Hasonló előadás


Google Hirdetések