Transcript Cache

Objektivat
• Ti zotërojme konceptet e organizimit të hierarkive
memorike
• Të kuptojme se si çdo nivel i memorjes kontribon
në performacat e sistemit dhe se si maten këto
performaca
• Të kuptojme konceptet e „cache“ memorjes,
memorjes virtuale, segmentimin e memorjes si dhe
„paging“ dhe translatimin e adresave
1
Llojet e memorjes (1)
• Dy lloje të memorjes RAM dhe ROM
• Në RAM ruhen programet dhe shenimet që i duhen
CPU kur ai është duke e ekzekutuar programin.
• Permbajtja e RAM humbet kur ai të çkyçet nga
rryma.
• Dy lloje të RAM: DRAM dhe SRAM.
• DRAM perbehet prej kapacitoreve të cilët e humbin
ngadale „ngarkesen„ e tyre gjatë kohës.
– Për kete arsye ata duhet te ripertrihen (refresh) gjate kohës.
– Varësisht prej llojit te memorjes ate duhet te ripërtrihen gadi çdo
milisekond.
2
Llojet e memorjes (2)
• DRAM është memorje e lirë, për shkak të
dizajnit të thjeshte të saj
• SRAM përbehet prej qarqeve të ngjashme me
ato të mësuara në kapitullin 3 (D-flip-flopat).
• SRAM është memorje e „shpejtë“
– nuk ka nevoje për „refresh“ sikurse DRAM-i
– Shfrytëzohet për të mbaruar „cache“- memorjet (që
do ti spjegojme me vonë)
3
Llojet e memorjes (3)
• ROM gjithashtu nuk ka nevoje për „refresh“
• ROM shfrytezohet që të ruhen shenimet permanente
ose të cilat ruhen edhe pasi që paisja të çkyçet nga
rryma.
• Perdoret shumë në „embedded systems“
• PROM (programohet vetëm një herë)
• EPROM (tërë përmbajtja fshihet me rreze ultraviolete)
• EEPROM (memorja fshihet bajt për bajt)
• Flash (shkruhet dhe fshihet në blloqe e jo vetëm bajt për
bajt) – me të shpejta se EEPROM
4
Hierarkia e memorjes (1)
• Memorjet e ndyrshme ndryshojne në shpejtesine e qasjes dhe në
çmimin e tyre
• Në menyrë që të fitojmë perfomanca më të mira memorjet
organizohen në menyre hierarkike.
• Elementet e vogla memoruese janë të ruajtura në CPU (p.sh.
regjistrat).
• Elementet me të medha memorike dhe më të ngadalshme
memorike janë të ruajtura në memorjen kryesore dhe asaj i qaset
permes „data bus“
• Elementet e mëdha memorike si memorjet permanente në forme të
diskut dhe shiritit magnetik janë më largë CPU-së.
• Dmth. klasifikimi behët në bazë të distances së memorjes prej
procesorit.
5
Hierarkia e memorjes (2)
• Organizimi i memorjes mund të paramendohet si një piramidë
6
Hierarkia e memorjes (3)
• Për t‘ju qasur një pjese të shenimeve, CPU-ja
se pari ja dergon kërkesen memorjes me të
afert (në këtë rast cache).
• Nëse të dhënat nuk janë në cache atëherë
memorja kryesore është e pyetur.
• Nëse të dhënat nuk janë në memorje atëherë
kerkesa i dergohet diskut.
• Kur të dhënat të lokalizohen (të gjinden se ku
janë) atëherë ato dhe të dhënat fqinje
dërgohen në cache.
7
Hierarkia e memorjes (4)
8
Definicione (1)
• Kjo na „detyron“ ti krijojme ca definicione:
– hit është kur të dhënat gjinden në nivelin
kerkuar e memorjes
– miss është kur të dhënat nuk janë gjetur
– hit rate është perqindja e kohës gjatë të ciles të
dhënat janë gjetur në nivelin e kerkuar të
memorjes
– miss rate është perqindja e kohës gjatë të ciles
të dhënat nuk janë gjetur në nivelin e kerkuar
të memorjes: (miss rate = 1 - hit rate)
9
Definicione (2)
• Kjo na „detyron“ ti krijojme ca definicione:
– hit time koha e kerkuar për qasje të dhenave
në nivelin e caktuar të memorjes.
– miss penalty është koha e kerkuar
• për ta procesuar një miss, +
• kohen për ta vendose këtë bllok të memorjes +
• Kohën për t‘ja derguar të dhënat procesorit.
10
Hierarkia e memorjes (5)
• Në rast të miss një bllok i shenimeve kopjohet
për shkak të principit të lokalitetit (principle of
locality)
– Nëse një bajt është i qasur (lexuar) atëherë gjasa
është shumë e madhe që elementi fqinje memorik të
jete i kerkuar në të ardhmen e afërt.
• Ekzistojne tri forma të „lokalitetit“ (locality):
– Temporal locality – Elementit memorik qu ju kemi
qasur se fundi, ka tendence që ti qasemi prap.
– Spatial locality – qasjet kane tendence për grupim
(p.sh. vektoret)
– Sequential locality – Instruksionet kane tendence të
qasjes sekuenciale
11
Cache Memorja (1)
• Kjo dmth. se pjeset memorike që janë në
shfrytezim mometal vendosen në hierarkine e
larte memorike dhe me këtë arihen performaca të
ngjashme sikurse tëre memorja të ishte e
implementuar si memorje e shpejte
• Qellimi i shfrytezimit të cache-it është që të
shpejtohet qasja e shenimeve duke i ruajtur
shenimet që i duhen procesorit në cache në vend
që të ruhen në memorjen krysore.
• Koha e qasjes se cache (10nsec)
• Koha e qasjes se RAM (60 nsec)
12
Cache Memorja (2)
Cka e benë cache special?
– Shenimeve në cache nuk i qasen me adrese, por
permes permbajtjes se saj.
– Për këtë quhet edhe content addressable memory.
• Për këtë arsye nuk preferohet që të shfrytzohet
një cache memorje e vetme (në PC)
(L1 e rendit 8-16KB, & L2 e rendit 256 – 512 KB)
• Shenimet perbrenda cache duhet të kerkohen –
– sa me e madhe është cache memorja -> kerkimi zgjate
me shume (qasja është me e ndadaleshme).
13
Cache Memorja (2)
• Si kerkohen shenimet në cache?
– Adresa në RAM nuk i përgjigjet adreses në cache.
– Duhet të krijohet një skeme konvertuese e cila adresen
memorike e transformon në lokacionin në cache
• Për pasqyrim perdoren informata që quhen fusha. Varesisht prej
skemes se pasqyrimit i kemi dy ose tri fusha.
• Adresat memorike me memorjen kryesore (RAM) dhe në cache
ndahen në blloqe
• Bloqet prej memorjes kryesore (RAM) pastaj pasqyrohen në një blok
në cache.
• Pasi që RAM është me i madh, pasqyrimi është N:1, që d.m.th. se
shume blloqe nga memorja kryesore pasqyrohen në një blok të
cache.
• Një tag fushe e percakton se cili bllok i RAM është i pasqyruar në
chache
14
Cache Memorja (3)
• Ne do ti shqyrtojmë tri skema për pasqyrim të
blloqeve në cache
– direct mapped cache
– fully associative cache
– set associative cache
15
Cache - Direct Mapped (1)
• Skema me e thjeshte është: direct mapped cache
(pasqyrimi direkt i cache-it)
• N-blloqe të cache-it, K blloqe të RAM (K>N)
• Skema e pasqyrimit direkt të cache-it blloku X
pasqyrohet në bllokun Y të cache, ku Y=X mod N
• Nëse i kemi 10 blloqe të cache-it, blloku 7 i cache-it
mund ti mbaje blloqet 7, 17, 27, 37, . . . të RAM-it
• Në secilin bllok të cache-it ekziston një bit që quhet
validity bit
• Validity bit tregon se a përmbanë blloku i caktuar
shenime valide.
Çka ndodhë mos me pase bitin e validitetit?
16
Cache - Direct Mapped (2)
17
Cache - Direct Mapped (3)
• Diagrami më poshtë tregon se si duket cache-i
• Blloku 0 përmbanë „multiple words“ RAM-it, të cilat
janë të identifikuara më „tag-un“00000000.
• Blloku 1 përmbanë „multiple words“të identifikuara
më „tag-un“ 11110101.
• Dy blloqet tjera nuk janë të vlefshme (valide).
18
Cache - Direct Mapped (4)
• Madhesia e çdo fushe në të cilen ndahen adresat
memorike mvaret prej madhesisë së cache-it.
• Le të marim se RAM përbëhët prej 214 words, cache-i i
ka 16=24 blloqe dhe secili bllok i përmbanë 8=23 words.
• Prandaj memorja është e ndare në 214/23 = 211 blocks.
• Ketu na nevojiten 4 bita për çdo bllok, 3 bita për çdo
word, dhe pjesa tjeter është tag (identifikuesi i blokut)
19
Cache - Direct Mapped (5)
• P.sh. të sypozojme se një program e gjeneron
adresen 1AA. Në sistemin 14-bitësh binar, ky numer
është: 00000110101010.
• 7 bitat e parë të kesaj adrese i perkasin tag fushes, 4
bitat i takojne bllok fushes, dhe tre bitat e fundit i
perkasin word fushës
20
Cache - Direct Mapped (6)
• Nëse programi pastaj e gjeneron adresen 1AB, ai do
ti gjej shenimet duke e lexuar bllokun 0101, word
011.
• Megjithate nëse programi e gjeneron adresen 3AB
në vend të adreses 1AB, blloku i vendosur në cache
duhet të zavendesohet më bllokun i cili është i
referencuar më 3AB.
21
Cache - Direct Mapped (7)
• Sypozojme se programi gjeneron i referohet
memorjes në menyre serike si vijon :
– 1AB, 3AB, 1AB, 3AB, . . .
• Blloqet duhen në menyre kontinuale të lexohen
dhe të vendosen në cache.
• Perparesite teorike të chach-it janë të humbura në
kete rast (ekstrem) - thrashing
• Kjo është dobesia kryesore e cach-it më skeme
direkte të pasqyrimit (direct mapped cache).
• Skema tjera të pasqyrimit janë të implementuar në
mënyrë që ta pengojne këtë dukuri.
22
Cache – Fully Associative (1)
• Në vend të vendosjes se blloqeve specifike në
lokacionet specifike në cache, një skeme tjeter
është implementuar e cila i mundeson blloqet të
vendosen çdokund në cache.
• Në kete rast cache duhet të mbushet plot, para se
ndonje bllok të zavendesohet në cache.
• Kjo skemë quhet fully associative cache.
• Adresat memorike në kete rast ndahet në vetem dy
pjese: tag fusha dhe word fusha.
23
Cache – Fully Associative (2)
• Le të sypozojme si më pare se i kemi adresat memorike 14bitëshe, dhe cache-in me 16 blloqe, ku çdo bllok e ka
madhesine 8
• Formati i fhues duked si vijon:
• Në këtë rast duhet të kerkohet i tere cache-i në menyre që të
gjindet adresa memorike e caktuar.
• Kjo kerkon hardver special dhe kushton shtrenjte.
24
Cache – Fully Associative (3)
• Ta perkujtojme se tek direct mapped cache një
bllok është i larguar nga memorja sa here që një
bllok nga RAM duhet ta vendoset në atë bllok.
• Tek fully associative cache, nuk kemi kete forme
të pasqyrimit. Në kete rast duhet të vendosim se
cili bllok duhet të largohet nga cache-i.
• Blloku që largohet quhet blloku viktimë.
• Ka metoda (algoritma) të ndryshme se si ta
zgjedhim bllokun që do të largohet prej cache-it
(do të diskutohen më vone)
25
Cache – Set Associative (1)
• Set associative cache i kombinon idenë e direct
mapped cache dhe fully associative cache.
• N-way set associative cache skema e pasqyrimit
është e ngajshme më ate të direct mapped cache
sepse edhe ketu një bllok ruhet në lokacione të
caktuare në cache.
• Për dallim prej direct mapped cache, një bllok
memorik në RAM mund të pasqyrohet në disa blloqe
të cache-it, e ngjashme më skemen e fully
associative cache-it.
• Në vend që të memorja të pasqyrohet kudo në
cache, ajo pasqyrohet në grup të caktuar të blloqeve
memorike.
26
Cache - Set Associative (2)
• Numri i cache-blloqeve për grup në set associative
cache ndryshon varësisht prej dizajnit të sistemit
• P.sh. një 2-way set associative cache mund të
paraqitet konceptualisht më skemen si vijon
• Çdo grup i përmbanë dy blloqe të ndryshme
memorike
27
Cache - Set Associative (3)
• Në skemen pasqyruese të set associative cache, një
reference memorike është e ndarë në tri fusha
– tag, set, dhe word
• Sikurse të direct-mapped cache, word-fusha e
zgjedhe word në kuader të cache bllokut, dhe tag e
identifikon në menyre unike adresen memorike
• Set fusha e percakton grupin në të cilin pasqyrohet
blloku memorik
28
Cache - Set Associative (3)
• Sypozojme se e kemi memorje kryesore (RAM) prej
214 bajta.
• Kjo memorje pasqyrohet në 2-way set associative
cache me nga 16 blloqe, ku çdo bllok përmbanë 8
words.
• Pasi që ky është cache më 2 grupe, çdo grup i
përmbanë 2 blloqe, dhe aty janë 8 grupe.
• Prandaj, neve na nevojiten 3 bita për më identifikue
grupin, 3 bita për word, dhe 8 bita për tag:
29
Cache – Replacement policy (1)
• Me fully associative dhe set associative cache, na
nevojiten rregula se si ti largojme blloqet memorike
nga cache-i. Kjo rregull quhet replacement policy
(rregulla e zavendësimit)
• Një rregul optimale e zavendësimit do të ishte e
mundur nëse të kishim pase mundesi që të shiqojme
ekzekutimin e programit në të ardhmen.
• Pasi që nuk është e mundshme ta implementojme
algoritmin optimal të zavendesimit për të gjitha
programet, mund të implementojme atë për një
program të cakuar, e pastaj ta perdorim për atë
program për vlerësimin e algoritmeve të reja
30
Cache – Replacement policy (2)
• Se cilen rregull të zavendësimit e perdorim, varet
prej „lokalitetit“ të cilin deshirojme ta optimizojme –
zakonisht në jemi të interesuar në „temporal locality“
• Least recently used (LRU) algoritmi i mbane në
mend se kur CPU-ja i është qasur nje blloku të
caktuar, dhe se e largon atë bllok i cili nuk është
perdorur për një kohë më të gjatë.
• Mangesi e kesaj metode është kompleksiteti. LRU
duhet ta mbaje një histori për secilin bllok, gje që e
ngadalëson punën e cache-it.
31
Cache – Replacement policy (3)
• First-in, first-out (FIFO) është rregulla me e
popullarizuar e zavendësimit
• Në FIFO, largohet blloku i cili ka qendruar me se
gjati në cache, pa marre parasysh se kur është
shfryezuar për herë të fundit.
• KUR BLLOKOHET CACHE-i ???
• Rregulla e rastesishme e zavendesimit (random
replacement policy) e bene ate cka edhe vete emri i
saj implikon – në menyre të rastesishme e largon nje
bllok nga memorja
• Random replacement mund ta largoj një bllok që
mund të nevojitet më shume se një bllok që është
lene në cache.
32
Cache – Performancat (1)
• Performanca e hierarkise së memorjes matet me
effective access time (EAT).
• EAT llogaritet duke marrur parasysh hit ratio dhe relative
access times të niveleve respektive të memorjes.
• EAT per memorjen me dy nivele është:
EAT = H  AccessC + (1-H)  AccessMM.
H është cache hit rate
AccessC dhe AccessMM janë kohet e qasjes (access times) per
cache dhe per memorjen kryesore
33
Cache - Performancat (2)
• P.sh. Në sistemin me memorje kryesore me kohe të
qasjes prej 200ns, e lidhurer në hierarki me cache qe
e ka kohen e qasjes prej 10ns dhe hit rate prej 99%.
• EAT është:
0.99(10ns) + 0.01(200ns) = 9.9ns + 2ns = 11ns.
• Ky ekuacion për percaktimin e EAT mund të
zgjerohet për sisteme me numer me të larte të
niveleve të memorjes (do të diskutohet me vone).
34
Cache – Replacement policy (4)
• Rregullat e zavendesimit të cache-it duhet qe të
marrin parasysh edhe dirty blocks, blloqet që jane
ndryhsuar gjatë qendrimit të tyre në cache.
• Dirty blocks duhen të shkruhen në memorje.
• Rregulla e shkruarjes (write policy) e percakton se
si behet shkruarja e dirty blocks në RAM.
• Dy rregulla të shkruarjes:write through dhe write
back.
• Write through e aktualizon RAM-in dhe cache-in
gjatë çdo procesi të shkruarjes.
35
Cache – Replacement policy (5)
• Write back (copyback) e aktualizon memorjen vetem
atehere ku blloku në fjalë është zgjedhur per t‘u
zavendesuar.
• Dobesite e write through është se memorja duhet të
aktualizohet në çdo shkruarje në cache.
– E ngadalëson kohen e qasjes.
– Ndonjehere ky ngadalesim është i vogel për arsye se qasjet
në cache jane zakonisht qasje leximi (read) e jo shkruarje
(write).
• The advantage of write back is that memory traffic is
minimized, but its disadvantage is that memory does
not always agree with the value in cache, causing
problems in systems with many concurrent users. 36
Memorja virtuale (1)
• Cache memorja e rrite performancen e sistemit duke i
ofruar shpejtesi me të madhe të qasjes në memorje
• Memorja virtuale i rrite performancat e sistemit duke
ju ofruar kapacitet me të madh memorik, dhe i
zvoglon cmimin e sistemit duke e zvogeluar
kapacitetin e madh (të nevojshem) të memorjes
kryesore.
• Një pjese e diskut shërben si shtesë e memorjes
kryesore.
• Nese sistemi e shfrytezon paging, memorja kryesore
ndahet në page frames, të cilat shkruhen ose në disk
kur ato nuk jane të duhura në „menjëherë“.
37
Memorja virtuale - Definicione
• Adresa fizike është adresa memorike e memorjes fizike.
• Programi i krijon adresat virtuale të cilat pasqyrohen në
adresa fizike me anë të menaxhuesit të memorjes
(memory manager).
• Page frames – blloqe në të cilat është e ndare memorja
kryesore
• Pages (faqet)– blloqet në të cilët është e ndare memorja
virtuale
• Page faults paraqiten kur një adrese virtuale (logjike)
kerkon që një page të lexohet nga disku.
• Fragmentimi i memorjes (memory fragmentation) kur
programi nuk e plotëson tërë page – krijohen pjesë të
vogla të pashfrytëzuara të memorjes.
38
Memorja virtuale (2)
• Memorja kryesore dhe memorja virtuale janë të
ndara në menyre të barabarte.
• E gjithe hapsira memorike (address space) e një
procesi nuk ka nevoje qe të jete në memorje.Vetem
disa pjese të saj gjinden në memorjen kryesore
derisa pjeset tjera gjionden në disk.
• Nuk është e nevojshme qe pages të alokuara në
nje proces të jene në menyre kontinuale (si në disk
ashtu edhe në memorje).
• Në kete menyre vetem faqet (pages) e nevojshme
jane në memorje në kohe të caktuar – faqet (pages)
e qe momentalisht nuk nevojiten gjinden në disk.
39
Memorja virtuale (3)
• Informatat mbi lokacionin e nje faqe (page) në – në disk
apo në RAM – ruhen në strukturen e shenimve qe quhet
tabelë e faqeve page table.
• Një tabelë e faqeve është dhenë më poshtë
• Për çdo proces ekziston një tabele e faqeve.
40
Memorja virtuale (4)
• Kur një proces e gjeneron një adrese të memorjes
virtuale, sistemi operativ (OS) e shëndron këtë në
adrese fizike memorike.
• Që OS ta realizoj kete memorja virtuale ndahet në dy
fusha: page fusha, dhe offset fusha.
– page fusha e percakton lokacionin e faqes (page), dhe
– offset fusha percakton lokacionin në kuader të faqes
• Numri logjik i faqes shendrohet në numrin fizik të
faqes me ane të kerkimin të tabelen e faqeve (page
tables)
41
Memorja virtuale (5)
• Në tabelën e faqeve rruhet edhe biti i validitetit që
tregon nese faqja e caktuar është në memorjen
krysore apo në disk.
• Nese CPU deshiron ti qaset nje faqe dhe biti i
validitetit është 0:
– Atëherë kemi page fault.
– Nëse është e nevojshme një faqe largohet nga memorja dhe
zavendesohet me faqen nga disku (dhe i vendoset biti i
validitetit në 1).
• Nese biti i validitetit është 1, numri i faqes virtuale
është i zavendesuar me numrin e faqes fizike.
• Qasja në shenime behet pastaj duke ja shtuar offset
numri të faqes fizike.
42
Memorja virtuale (6)
• P.sh. ta analizojme një sistem qe e ka virtual address
space prej 8K dhe physical address space prej 4K, dhe
sistemi e shfrytezon bajt-adresimin.
– I kemi 213/210 = 23 faqe virtuale
• Një adrese virtuale i ka 13 bita (8K = 213), ku 3 bita i takojne
page fushës dhe 10 bita i takojne offset fushës, sepse
madhesia e faqes është 1024 =210.
• Adresa fizike memorike i kerkon 12 bita, dy bitat e parë për
numrin e faqes dhe 10 bita për offset.
43
Memorja virtuale – shembull (1)
• Le ta sypozojmë tabelen e faqës si më poshtë
• Cka ndodhë kur CPU e gjeneron adresen
545910 = 10101010100112?
44
Memorja virtuale – shembull (2)
• Adresa 10101010100112 konvertohet në adresen
fizike 010101010011 sepse fusha e faqes (page
field) 101 është e zavendesuar me page frame
numrin 01 në anë të tabeles së faqeve.
45
Memorja virtuale – shembull (3)
• Çka ndodhë nese CPU-ja e gjeneron adresen
10000000001002?
46
Memorja virtuale – EAT (1)
• Me heret kemi thene se gjate llogaritjes se EAT mund
të konsiderohen të gjitha nivelet e memorjeve.
• Në kete llogaritje bene pjese edhe memorja virtuale
dhe në duhet ta kemi parasyshe edhe kohen e qasjes
në tabelen e faqeve.
• Nese memorja kryesore e ka kohen e qasjes 200ns,
dhe perqindja e page fault është 1%, dhe i duhen
10ms të lexoj nje faqe prej diskut.
• Do të fitojme:
EAT = 0.99(200ns + 200ns) 0.01(10ms) = 100, 396ns.
47
Memorja virtuale – EAT (2)
• Edhe nese nuk kemi page faults, EAT do të jete
400ns sepse memorja është e lexuar dy here.
– Nje qe ti qaset tabeles se faqeve
– Dhe e dyta ti qe ta lexoj faqen prej memorjes
• Pasi qe tabelat e faqeve jane të lexuara në menyre
konstante, është e logjikshme qe ti mbajme ato në
cache special të quajtur translation look-aside buffer
(TLB).
• TLB jane të organiziuara si associative cache dhe e
ruajne pasqyrimin e faqeve virtuale në faqet fizike.
Slajdi tjeter e paraqet algoritmin se si punon nje
sistem me TBL dhe memorje virtuale.
48
Memorja virtuale - TLB
49
Memorja virtuale-segmentimi
• Nje metode tjeter per t‘i shfrytezuar memorjen virtuale është
segmentimi (segmentation)
• Në vend qe memorja të ndahet në menyre të barabarte në faqe
(pages) adresa virtuale është e ndare në segmente me gjatesi
variabile.
• Segmenti identifikohet permes indekseve në tabelen e
segmenteve (segment table).
• Nje „hyrje“ (entry) në tabelen e segmenteve permbane
lokacionin memorik të segmentit dhe fundin e lokacionit
memorik qe në menyre indirekte e tregon edhe madhesine e
segmentit.
• Kontrolli i gabimeve duhet të per kufijte e segmentit
• Në rast të page fault, sistemi operativ e kerkon lokacionin
memorik në memorje i cili duhet të jete mjaft i nadh qe ta mbaje
segmentin marre nga disku.
50
Memorja Virtuale-Fragmentimi
• Paging dhe Segmentation shkaktojne fragmentizim.
• Paging shkakton fragmentizimin intern
– Procesi nuk e mbulon tere faqen (page)
– Shume faqe (pages) mund të kene fragmente të
pashfrytezuara në memorje.
• Segmentation shkakton fragmentizimin ekstern.
– Shfaqet kur hapesira memorike në mes të dy
segmnenteve është e vogel dhe e
pashfrytezueshme.
51
Paging & Segmentation
• Faqet (pages) të gjata ngadalsojne sistemin, nevojiten me
shume vend ne memorje për tabelat e faqeve.
• Segmentimi lejon qasje të shpejte në tabelen e
segmenteve, mirepo leximi i segmenteve nga disku është i
labor-intenziv.
• Paging dhe segmentation mund të kombinohen qe ti
marrim perparesite e vetive pozitive qe i kane ato, duke i
ndare segementet variabile në faqe me me madhesi fikse.
• Çdo segment e ka nje tabele të faqes (page table), kjo
dmth. se adresa memorike do ti kete tri fusha, një për
segment, një për faqe (page) dhe një për offset.
52
Shembull nga jeta reale
• Arkitektura e Pentumit e përkrahë paging dhe
segmentation,dhe ato shfrytezohen në kombinime të
ndryshme
• Procesori i shfrytezon dy nivele të cache-it (L1 and
L2), të dyjat i kane madhesine e bllokut prej 32
bajtave.
• L1 cache është me afer procesorit dhe L2 cache-i
gjindet në mes të CPU-se dhe memorjes.
• L1 cache përbëhet prej dy pjesev:
– instruction cache (I-cache)
– data cache (D-cache).
Sllajdi si vijon paraqet kete organizim ne menyre skematike
53
Shembull nga jeta reale
54
Perfundimi (1)
• Memorja e kompjutereve organizohet në hierarki
– me memorjen me të shpejte në krye dhe
– me memorjen me të ngadalsheme në fund.
• Cache memorja ofron qasje të shpejte në memorjen
kryesore (RAM), perderisa memorja virtuale e
shfrytezon diskun që të krijoj ilusion se kemi më
shume RAM memorje.
• Cache pasqyron blloqet e RAM në blloqet e cache-it,
derisa memorja virtuale pasqyron page frames në
faqet virtuale.
• Ekzistojne tri lloje të cache-it (direct mapped, fully
associative and set associative).
55
Perfundimi (2)
• Tek fully associative dhe set associative cache,
sikurse dhe tek memorja virtuale as, duhet të
krijohen rregullat e zëvendesimit (replacement
policies)
• Rregullat e zëvendesimit LRU, FIFO, ose random.
– Keto rregulla duhet të vendosi cka të bejne me dirty
blocks.
• Memorja virtuale duhet ta zgjedhe problemin e
fragmentimin intern tek memorjet me faqe, dhe
fragmentimin ekstern tek memorja me segmente.
56
End of Chapter 6
Faleminderit për vemendje
57