Ch4-MEMORIA KESH
Objektivat
Pas studimit të këtij kapitulli, studenti duhet të jetë në gjendje të:
Prezentoj një pasqyrë të karakteristikave kryesore të sistemeve
memoruese kompjuterike dhe përdorimin e hierarkisë së memories.
Përshkruaj konceptet themelore dhe qëllimin e memories kesh.
Diskutoj elementet kryesorë të dizajnit të kesh-it.
Bëj dallime ndërmjet pasqyrimit direkt (direct mapping), pasqyrimit
asociativ dhe pasqyrimt set asociativ.
Shpjegoj arsyet për përdorimin e niveleve të shumta të keshit.
Kuptoj implikimet e performancës së niveleve të shumta të memories. 1
Edhe pse në dukje janë koncepte të thjeshta, memoria e kompjuterit paraqet
ndoshta gamën më të gjerë në lidhje me tipin, teknologjinë, organizimin,
performancën dhe koston e çdo funksioni të një sistemi kompjuterik.
Me një teknologji të vetme, përmbushja e kërkesave të memories për një
sistem kompjuterik nuk është optimale, prandaj organizimi hierarkik në të
cilin përdoren teknologji të ndryshme është zgjidhja optimale.
Ky kapitull dhe kapitulli i ardhshëm fokusohen në elementet e memories së
brendshme, përderisa kapitulli 6 i kushtohet memorieve të jashtme.
Të përkujtojmë se ky kapitull ekzaminon një element esencial në të gjitha
sistemet kompjuterike dhe pajisjet aktuale inteligjente të viteve të fundit
(2010-2020): memorien cache.
2
P.sh. specifikat e procesorit aktual modern në vitin 2020:
Intel® Xeon® Platinum 9222 Processor 71.5M Cache, 2.30 GHz
(2nd Generation Intel® Xeon® Scalable Processors)
14 nm tipari i madhësisë
32 numri i berthamave fizike (numri i njësive qëndrore procesore në një
komponentë të vetme)
64 threads (fije ose fije ekzekutimi)
2.3 GHz frekuenca bazë e ekzekutimit
3.7 GHz frekuenca max turbo (është frek. Max. e një bërthame në të
cilën procesori është I aftë me operuar)
250 ë TDP Thermal Design Poëer (paraqet vlerën mestare të fuqisë që
procesori shpërndanë në frekuencën bazë)
71.5 MB cache (memorie e shpejtë e lokacionuar në processor)
3
4.1 NË PËRGJITHËSI PËR SISTEMIN MEMORUES KOMPJUTERIK
Karakteristikat e sistemit memorues
Karakteristikat kryesore të sistemeve memoruese kompjuterike janë
përmbledhur në Tabelën 1.
Tabela 1. Karakteristikat themelore të sistemeve memoruese kompjuterike
4
Lokacioni (vendndodhja) i referohet nëse memoria kompjuterike është
interne ose eksterne.
Interne- kryesisht paraqet memorien kryesore, mirëpo ka edhe forma tjera të
memories interne. Procesori kërkon memorien e vet lokale, në formën e
regjistrave (kapitulli paraprak). Po ashtu, pjesa e njësisë së kontrollit të
procesorit mund të kërkojë gjithashtu memorien e saj të brendshme. Cache
është një formë tjetër e memories së brendshme.
Eksterne - përbëhet nga pajisjet periferike ruajtëse si disku magnetik ose
gjysmëpërçues*(SSD), njësia e shiritit magnetik që janë të qasëshme për
procesorin nëpërmjet kontrollerëve I/O.
* SSD (Solid State Drive) me dukje të jashtme si një hard disk tradicional,
dizajn kyç që lejon që njësia SSD të vendoset në laptop apo kompjuter
desktop në vend hard-diskut magnetik tradicional ose të dy disqet së bashku.
5
Kanë dimensione standard – form faktor 1,8; 2,5 ose 3,5 inç. SSD po ashtu
përdorin SATA interface. Aktualisht ka edhe SSD me form-faktor të rinjë p.sh
M.2 – me dukje të një moduli memorues.
Epersitë e SSD –në krahasim me disqet magnetike:
nuk kanë pjesë të lëvizshme (përderisa disqet tradicionale
magnetike kanë motorët për ngasje të pjatave magnetike dhe
kokave magnetike, e tërë kujtesa e një Solid State Drive trajtohet nga
çipat me flash memorie.
Kjo siguron tri epërsi dalluese:
Shfrytëzim më të vogël të fuqisë
Qasje më të shpejtë në të dhëna
Besueshmëri më të lartë.
6
Kapaciteti - Një karakteristikë e dukshme e memories dhe shprehet me
bajt (1 byte = 8 bit) ose fjalë. Edhe kapaciteti i memorieve eksterne
shprehet me bajt.
Gjatësitë e zakonshme të fjalës janë 8, 16, 32 ose 64 bit.
Procesorët aktual-modern duke përfshirë edhe sistemet e mbjella
(embedded systems) zakonisht kanë një madhësi fjale (word length, word
size, word width) prej 32 ose 64 bit.
Njësia e transferit - Për memorie interne, njësia e transferit është e
barabartë me numrin e linjave elektrike brenda dhe jashtë modulit
memorues. Kjo mund të jetë e barabartë me gjatësinë e fjalës, por
shpesh është më e madhe, siç janë 64, 128 ose 256 bit.
Transferi bëhet kryesisht me fjalë ose me blloqe (bashkësi fjalësh).
7
Metoda e qasjes – një tjetër karakteristikë e sistemeve memoruese. Kjo
përfshin:
Qasjen sekuenciale: Memoria është e organizuar në njësi të të dhënave, që
quhen rreshta. Qasja duhet të bëhet në një sekuencë specifike lineare. Prandaj,
koha e qasjes në një rresht arbitrar është mjaftë variabile. Përdoret një mekanizëm
i përbashkët (share) lexo-shkruaj dhe kjo duhet të lëvizet prej lokacionit aktual në
lokacionin e dëshiruar, duke kaluar secilin rresht të ndërmjetëm (të merret shembull
gjetja e një lokacioni në shirit magnetik).
Qasjen direkte: sikurse të qasja sekuenciale, qasja direkte përfshin mekanizmin
e përbashkët (share) lexo-shkruaj. Megjithatë blloqet individuale ose rreshtat kanë
një adresë unike e bazuar në lokacion fizik. Qasja realizohet me qasje direkte për
të arritur një afërsi të përgjithshme plus kerkimi sekuencial, numërimi ose pritja për
të arritur në lokacionin përfundimtar. Po ashtu koha e qasjes është variabile (njësia
e diskut magnetik të mirret si shembull dhe diskuto trasetë, sektorin dhe cluster-in).
8
Qasjen e rastit (Random access): Çdo lokacion i adresueshëm në memorie
ka një mekanizëm unik fizikisht të dresueshëm.
Koha për t’iu qas një lokacioni të caktuar është e pavarur nga sekuenca e
qasjeve të mëparshme dhe është konstante (jo variabile). Kështu, çdo lokacion
memorues mund të zgjidhet në mënyrë të rastit dhe të adresohet direkt dhe të
jetë i qasëshem. Memoria kryesore dhe memoria cache janë me qasje të rastit.
Qasjen associative (shoqëruese): Ky është një lloj i qasjes së rastit në
memorie që mundëson një krahasim të lokacioneve të dëshiruara të bitit brenda
një fjale për një përshtatje specifike dhe për ta bërë këtë për të gjitha fjalët
njëkohësisht. Kështu, një fjalë “kerkohet” duke u bazuar në një pjesë të
përmbajtjes së saj dhe jo në adresën e saj. Sikurse në memoriet me qasje të
rastit, çdo lokacion e ka mekanizmin e tij të adresimit dhe koha e “kërkimit” është
konstante e pavarur nga lokacioni. Memoriet cache kryesisht përdorën për qasje
associative (shoqeruese). 9
Parametrat e performancës:
Koha e qasjes (latency- vonesa): Për memorien me qasje të rastit, kjo është
koha e nevojshme që të kryhet operacioni i shkrimit ose leximit, d.m.th koha prej
momentit kur një adresë i paraqitet (prezantohet) memories e derisa të dhënat të
ruhen ose vendosen në përdorim. Për memorien me qasje jo të rastit, koha e
qasjes është koha që duhet për të pozicionuar mekanizmin e leximit në
lokacionin e dëshiruar.
Koha e ciklit memorues: Ky koncept aplikohet te memoriet me qasje të rastit
dhe përbëhet prej kohës së qasjes plus koha shtesë e kërkuar para se një qasje e
dytë mund të fillojë.
Shpejtësia e transmetimit: Kjo paraqet shpejtësinë me të cilën të dhënat
mund të transferohen Brenda apo jashtë njësisë memoruese. Për memorien me
qasje të rastit, kjo është e barabartë me 1/(koha e ciklit). 10
Për memorie që nuk janë me qasje të rastit, vlejnë relacionet e mëposhtme.
Ku janë:
Tn = Koha mesatare për të lexuar ose shkruar n bita
TA = Koha mestare e qasjes
n = Numri i bitave
R = Shpejtësia e transferit, në bita për second (bps) ose b/s
Lloji fizik: sot përdoren shumë lloje fizike të memories. Memoriet
gjysmëpërçuese, memoriet me sipërfaqe magnetike (perdoren edhe për HDD
edhe për tape drive-shirita magnetik) etj.
11
Karakteristikat fizike: Ne memoriet volatile (të avullueshme)-informatat
humben kur shkyçet furnizimi me energji elektrike, në kontrast me memoriet
nonvoltile që informacioni njëherë ruhet dhe mbetet aty pa u dëmtuar edhe kur
nuk ka energji elektrike.
Sipërfaqet magnetike memoruese janë nononvolatile. Memoriet gjysmëpërçuese
(memoriet në qarqet e integruara) mund të jenë ose volatile ose jo volatile.
Organizimi: për memoriet me qasje të rastit, organizimi është qështje
thelbësore. Kjo nënkupton rregullimin fizik të bitave për të fomuar fjalët.
12
Hierarkia e memories
Memoria e PC-së -ka aftësinë të mbajë mend sasinë e caktuar të të
dhënave (informacionit) në formë të bitave
• memoria kryesore (qendrore, memoria e punës, primare) - RAM
• memoria e jashtme (eksterne, sekondare) - hard disqet, memoriet
gjysmëperçuese, cloud storage, shiritat magnetik, CD dhe DVD disku etj
Në përbërje të kompjuterit gjendet edhe memoria fikse ROM (për ruajtje të
përhershme të të dhënave – të dhënat shënohen vetëm një herë dhe mund
të lexohen sa herë që duam.
Për shkak të harmonizimit të shpejtësisë në mes të: Procesorit - RAM-it -
memories eksterne, përdoret një memorie ndërmjetësuese - kesh memorie
(memorie e përkohshme)
13
Memoria virtuale - trajtohet si memorie me kapacitet më të madh por me
shpejtësi të përafërt me memorien qendrore.
Shfrytëzimi i sistemit hierarkik të memories mundëson zgjidhjen e problemit të
mospërshtatshmërisë në shpejtësinë e komponentëve të caktuar, sepse CPU
punon shumë herë më shpejt se memoria.
Memoria kryesore teknikisht paraqet një formë të mediumeve elektronike -
përdoret si medium i përkohshëm për ruajtje të të dhënave.
Sikur CPU-ja do të duhej vazhdimisht që t’i qaset diskut për të gjetur të dhënat
që i nevojiten ai do të punojë shumë ngadalë.
Kur të dhënat ruhen në memorie, CPU-ja mund më shpesh dhe më shpejt t’i
qaset atyre të dhënave.
Me shfrytëzimin hierarkik të kujtesës është mundësuar që të sigurohet
problemi i mospërshtatshmërisë në shpejtësi të komponentëve të caktuar,
14
sepse CPU punon më shumë se 1000 herë më shpejtë se memoria.
Në Fig. 1 është treguar hierarkia e memories e ndarë në nivele. Niveli 1
paraqet memorien më të shpejtë por më të vogël, ndërsa Niveli n paraqet
memorien më të ngadaltë por më të madhe.
Fig. 1 Hierarkia e memories – pa specifikuar llojin 15
Të dhënat që vijnë nga mediumet e përhershme apo nga tastiera së pari
shkojnë në RAM. Atëherë CPU-ja i ruan ato të dhëna që i nevojiten për qasje,
shpeshherë në cache (kesh memorie), dhe mban instruksionet speciale ne
regjistër. Prej momentit kur ndizet kompjuteri e deri kur fiket CPU-ja është
vazhdimisht duke e përdorur memorien kryesore & cache.
Fig. 2 Hierarkia e memories – duke specifikuar llojin, madhësinë,shpejtësinë dhe koston
16
Duke shkuar nga lartë-poshtë hiearkisë së memorieve kemi sa vijon:
a. Rënie e kostos për bit
b. Rritja e kapacitetit
c. Rritja e kohës së qasjes
d. Zvogëlimi i frekuencës së qasjes në memorie nga procesori
Prandaj, memoriet më të vogla dhe më të shtrenjta plotësohen nga memoriet
më të mëdha, më të lira dhe më të ngadalshme.
Këtu është edhe çelësi i suksesit.
17
Diskutim:
Ndizet kompjuteri.
Kompjuteri plotëson të dhënat nga ROM memoria dhe kryen një pouer-on
self test (POST) për të qenë i sigurt se të gjitha komponentët janë duke
funksionuar ashtu siç duhet.
Si pjesë e këtij testi, njësia kontrolluese kontrollon të gjitha adresat e memories
me një operacion read/ërite (lexo/shkruaj) për të siguruar se nuk ka gabime në
çipin e memories.
Kur kompjuterit i urdhërohet që të përdorë ndonjë pjesë të programit të
caktuar, “programin nga hard disku” e kopjon në memorie - loading a
program.
Pas plotësimit të memories me program, procesori mundet që shumë më
shpejtë të lexojë instruksionet e caktuara nga (RAM) sa herë që ka nevojë.
18
Loadingu i programit në memorie (RAM) nuk është bartje të programit nga hard
disku në memorie, por krijohet një kopje ekuivalente e programit nga hard disku
në RAM.
Programi i parë i cili aktivizohet (plotësohet në RAM) nga hard disku gjatë
lëshimit të kompjuterit është një pjesë e SO (kernel*). Pra, puna e parë të
cilën e bën procesori me kyçje të kompjuterit, është kërkimi dhe plotësimi i
memories me program të SO.
- Kur PC shkyçet, tërë përmbajtja fshihet përgjithmonë nga RAM-i,
pra, paraqitet nevoja për ruajtjen e të dhënave ne memorie te përhershme.
Kur e ruajmë një fajll dhe e mbyllim aplikacionin, fajlli ruhet në kujtesë
të caktuar dhe atëherë fajlli dhe aplikacioni janë fshirë nga RAM-i.
19
Kerneli*
Një program që ekzekutohet gjatë gjithë kohës në kompjuter, është kernel-i.
•Të përkujtojmë që “pjesa tjetër” e memories kryesore përmban programet e
shfrytëzuesit dhe të dhënat.
Kernel është një program që menaxhon kërkesat input / output nga softueri
dhe i përkthen ato në instruksione për CPU-në dhe komponente të tjera
elektronike të një kompjuteri.
Kernel është pjesë themelore e sistemeve moderne operative të kompjuteriit.
Kerneli “lidhë” aplikacionet softuerike me harduerin e një kompjuteri 20
Kerneli ka kontrollë komplete mbi çdogje që ndodh në sistem.
Kerneli është pjesa e parë e S.O për tu ngarkuar në memorie gjatë startimit
dhe mbetet aty gjatë tërë kohës së sesionit të kompjuterit sepse shërbimet e
tij kërkohen vazhdimisht.
Kodi kritik i kernelit zakonisht ngarkohet në një zonë të mbrojtur të memories,
e cila e pengon atë që të mbishkruhet nga pjesë të tjera të sistemit operativ
që përdoren më pak ose nga aplikacionet.
Prej këtu është me rëndësi që kerneli të jetë sa më i vogël përderisa akoma
siguron të gjitha shërbimet esenciale të nevojshme nga pjesët tjera të S.O.
(S.O ëindoës 7 shfaq një kernel prej 25 MB me rreth 100 fajlle në
krahasim me ëin-Vista me rreth 5000 fajlle dhe 4GB berthamë.
Kur një kompjuter dështon në “ngritje” kjo nënkupton që kerneli është prishur.
21
Kerneli siguron shërbimet themelore për pjesët tjera të S.O, zakonisht duke
përfshirë këtu menaxhimin e memories, menaxhimin e proceseve,
menaxhimin e fajllave dhe menaxhimin I/O (input/output) (d.m.th qasjen në
pajisjet periferike).
Këto shërbime kërkohen nga pjesët tjera të Sistemit Operativ ose nga
programet aplikative nëpërmjet një bashkësie specifike të ndërfaqeve të
programeve të quajtura thirrje sistemore.
Niveli më bazik i shërbimeve të S.O realizohet përmes thirrjeve sistemore.
Thirrjet sistemore janë ndërmjetësues mes S.O dhe programit që
ekzekutohet. Dhe mund të ekzekutohen si instruksione asemblerike.
Përshkrimi dhe parametrat e tyre ndodhen në çdo doracak për gjuhën
asemblerike 22
Konstatojmë se gjithçka që hapet, plotësohet, vendoset në RAM. Kjo do
të thotë se vendosen në hapësirën e mediumeve të përkohshme
(temporary storage area) dhe procesori iu qaset informacioneve më
lehtë. Procesori kërkon të dhënën që i nevojitet nga RAM-i, e përpunon
dhe shkruan të dhënën e re prapa në RAM sipas një cikli kontinual.
Ky organizim i të dhënës në mes RAM-it & procesorit në shumicën e
kompjuterave ndodh miliarda herë në çdo sekondë.
Pse një kompjuteri i nevojiten aq shumë sisteme të memories?
Një kompjuter tipik ka:
- Niveli 1, niveli 2 dhe niveli 3 i kesh memories.
- Memoria kryesore RAM.
- Memorie sekondare
23
Fig. 3 Hierarkia memories – komplet e detajizuar 24
CPU-së i nevojitet që lehtë dhe shpejtë t’u qaset të dhënave.
Nëse procesori nuk mund ta pranojë të dhënën që i nevojitet ai do të “ndalet”
dhe do të presë.
Procesorët modern e kanë shpejtësinë rreth disa gigaherca dhe mund të
punojë me sasi të madhe të të dhënave – miliona bajta për sekondë.
Problemi qëndron në atë se kjo memorie që ka CPU-në me disa gigaherc
është me kosto të lartë.
Dizajnerët e kompjuterit e kanë zgjedhur problemin e kostos me “shtresimin”
e memories:
• memorien e shtrenjtë me kapacitet më të vogël
• memorien më pak të shtrenjtë me kapacitet më të madh.
Idealisht, memoria kryesore mund të ndërtohet me të njëjtën teknologji si
edhe regjistrat e procesorit, dhe kjo krijon ciklet kohore memoruese të
krahasueshme me ciklet kohoret të procesorit- strategji e shtrenjtë!!! 25
Procesori përmban një bashkësi regjistrash të cilët janë lloj memorie e cila
është më e shpejtë se memoria kryesore.
Procesori duhet t’iu qaset memories së paku një herë për cikël instruksioni.
Shpejtësia me të cilën procesori mund të kryej një instruksion është e
kufizuar me kohen e ciklit memorues ( koha e nevojshme për lexim/shkrim të
një fjale në memorie)
- Shpejtësia e procesorit është më e lartë se shpejtësia e qasjes në memorie.
Ky kufizim krijon probleme të theksuara, sepse ekziston mospërshtatje në
mes shpejtësisë ndërmjet procesorit dhe shpejtësisë së memories kryesore.
Prandaj, RAM-i vetëm nuk është i mjaftueshëm për shpejtësinë e procesorit
(Fig. 2)
Cache memoria – zgjidhja e problemit!
26
4.2 PRINCIPET E KESH MEMORIES
Shfrytëzimi i Cache memories zvogëlon kohën e pritjes së procesorit për
marrjen e të dhënave nga MEMORIA KRYESORE, pra zvogëlon numrin e të
ashtu-quajturave gjendje të pritjes (uait states).
Fig. 4 a) Kesh-i dhe memoria kryesore
Në Fig. 4 është paraqitur memoria kryesore (e madhe dhe e ngadaltë)
së bashku me memorien e vogël të shpejtë – kesh
27
Cache përmban një kopje të memories kryesore.
Kur procesori tenton të lexojë një fjalë nga memoria, bëhet një kontroll për të
përcaktuar nëse fjala është në cache.
Nëse është në cache, fjala percillet në procesor.
Nëse nuk është në cache, një bllok i memories kryesore, i cili përbëhet nga
një numër fiks i fjalëve, bartet dhe lexohet në cache, atëherë fjala i percillet
procesorit.
Për shkak të fenomenit të lokalitetit të references*, kur një bllok i të dhënave
është marrë në cache për të kënaqur një referencë të vetme të kujtesës, ka të
ngjarë që do të ketë referenca të ardhshme në atë vend të kujtesës ose në
fjalë të tjera në bllok.
28
Efektiviteti i hierarkisë varet nga principi i levizjes së informacionit në nivelin
me të shpejtë të hierarkisë dhe aksesismit të tij shpesh.
Ky princip është i mundur për shkak të një fenomeni që quhet lokalitet i
referencave (locality ofe reference) pra, brenda një intervali kohe, programet
tentojnë të referencojnë në një hapësirë të kufizuar të memories.
Ekzistojnë dy forma lokaliteti:
Lokaliteti hapësinor (Spatial locality) I referohet fenomenit që kur një
adresë e memories është referencuar ka shume mundësi që adresat që
ndodhen ngjitur të referencohen brenda një kohe të shkurtër.
p.sh instruksionet e njëpasnjëshme në një program.
Lokaliteti kohor (Temporal locality), I referohet fenomenit që nëse një
lokacion memorie është referencuar së fundmi, ka shumë mundësi që
të referencohet serish, psh. Një instruksion brenda cikli
29
Përderisa memoriet e shpejta janë të shtrenjta, hierarkia e memories
është e organizuar në disa nivele (duke “levizur” nëpër Cache, ku sa më
e vogël është niveli i cach-it , është më i shpejtë dhe më e shtrenjtë për
bajt se sa niveli tjetër)
Janë tri nivele të kesh memories në brendi të CPU-së:
Fig. 4 b) Organizimi tre-nivelesh i Kesh-it
30
Niveli 1 – level 1 (L1) , sa i përket madhësisë së këtij niveli - shkon deri në
256 KB (me kohë të qasjes më pak se 1 ns). Megjithatë, disa CPU të
fuqishme L1 përafërsisht e kanë rreth 1 MB. Disa çipseta të serverëve (siç
janë CPU-të e Intelit top-end Xeon CPUs) tani kanë madhsinë e L1 ndërmjet
1-2MB.
Niveli 2 – level 2 (L2) i keshit është më i ngadaltë, por më i madh për nga
madhëisa duke lëvizur nga 256 KB deri në 8 MB, dhe me kohë të qasjes nga 1-10
ns. Në CPU-të shumë modern L1 dhe L2 keshi janë prezente në bërthamat
përkatëse, pra çdo me çdo bërthamë që ka keshin e vet.
Niveli 3 – level 3 (L3) i kesh memories është njësia më e madhe e dhe po ashtu
më e ngadalta. Kjo mund të rangohet ndërmjet 4 MB dhe shkon deri ne 50 MB.
Kështu madhësia e nivelit 3 është faktori determinues për performancat e CPU-së.
(CPU-të modern kanë hapësirë te dedikuar për nivelin L3 të keshit dhe merr
hapësirë mëtë mëdha Brenda CPU-së, praandaj është shared për të gjitha 31
berthamat e CPU së multicore)
Processor <---> L1 <---> L2 <---> L3 <---> RAM
Procesori faktikisht nuk komunikon direct me RAM-in. Atë e bën nëpërmjet të
kesh memories.
Kerkesat për të dhëna bëhen në nivelin më të lartë të memories. Pra, duke
filluar nga L1, L2 prej L3 pastaj kerkesa në RAM.
Procesori kërkon të dhëna nga L1, nëse L1 nuk e ka atë, atëherë kërkon në
L2 për këto të dhëna, nëse L2 nuk e ka atë atëherë L2 do të kërkojë L3, nëse
jo atëherë L3 kërkon RAM.
32
Fig. 5 përshkruan strukturën e një sistemi cache / memorie kryesore..
Memoria kryesore përbëhet nga deri në 2n fjalë të adresueshme
Çdo fjalë ka adresë unike n-bita.
Për qëllime të pasqyrimit, kjo memorie konsiderohet të përbëhet nga
një numër I fiksuar-blloqesh, secili bllok prej K-fjalësh.
Pra memoria kryesore ka M = 2n / K blloqe.
Kesh memoria përbehet nga m blloqe, që quhen linja. Çdo linjë
përmban K fjalë, plus një tag (etiketë) prej disa bitësh.
33
Fig. 5 Struktura Cache/Memorie kryesore 34
Gjatësia e një linje, pa përfshirë tag-un dhe bitat e kontrollit (nuk janë paraqitur
në figurën paraprake) është madhësia e linjës (line size).
Madhësia e linjës mund të jetë si 32 bit, me çdo "fjalë" që është një bajt i
vetëm; në këtë rast madhësia e linjës është 4 bajt.
Numri i linjave ne kesh memorie është më i vogël se numri i blloqeve ne
memorie kryesore ( m < M).
Në çdo kohë, një pjesë e blloqeve të memories janë rezidente në kesh.
Nëse lexohet një fjalë nga një bllok të memories, atëherë blloku transferohet
në një nga linjat e keshit.
Mëqenëse ka më shumë blloqe se sa linja keshi, një linjë individuale nuk
mund të jetë në mënyrë unike përherë e dedikuar për një bllok të veqantë.
Prej këtu, çdo linjë e keshit ka një tag (etiketë) që identifikon se cili bllok
aktualisht po ruhet.
Tagu është zakonisht një pjesë e adresës së memories kryesore 35
Figura 6 ilustron operacionin e leximit.
Procesori gjeneron adresën e leximit (RA) të një fjale që duhet lexuar.
Nëse fjala gjendet në cache, ajo i dorëzohet procesorit. Përndryshe, blloku
që përmban atë fjalë (i cili gjendet ne memorie kryesore) pasqyrohet në
cache, dhe fjala i dorëzohet procesorit.
Figura 6 tregon këto dy operacione të fundit që ndodhin paralelisht dhe
pasqyrojnë organizimin e treguar në Figurën 7, e cila është tipike për
organizimin e keshit.
Keshi lidhet me procesorin nëpërmjet të dhënave dhe adresave të baferit si
dhe linjave të adresave. Të dhënat dhe linjat e adresave gjithashtu i
bashkëngjiten adresave të baferëve, të cilat bashkengjiten me një bas sitemi.
36s
37
Fig. 6 Operacioni i leximit në Cache.
Ku ndodh një gjetje n kesh (cache hit), të dhënat dhe adresat e baferëve janë
disabled për komunikimi sepse komunikimi bëhet vetëm ndërmjet procesorit
dhe cache, jo perms basave te sistemit.
Kur ndodh një mungesë në kesh (cache miss), adresa e dëshiruar ngarkohet
në sistem bas dhe të dhënat kthehen përmes baferit të të dhënave si në kesh
ashtu edhe në processor.
Në organizimet e tjera, cache është e ndërmjetësuar fizikisht midis
procesorit dhe memories kresore për të gjitha të dhënat, adresat dhe linjat e
kontrollit. Në këtë rast, për cache miss, fjala e dëshiruar lexohet së pari në
cache dhe pastaj transferohet nga cache në processor.
38
Fig. 7 Organizimi tipik i Keshit
39
Terminologjia themelore
Hit: CPU gjenë përmbajtjen e adresës së memories në chache.
Hit rate (h) është probabiliteti i gjetjes së sukseshme në cache nga CPU-ja
Miss: CPU dështon të gjejë në cache.(shkakton udhëtim në nivele me te
thella të hierarkisë së memories)
Miss rate (m) është probabiliteti i mungesës në cache dhe është i
barabartë me 1-h.
Miss penalty: “koha e penaltisë” shoqërohet me sherbimin e mungesës në
një nivel partikular të hierarkisë së memories (rezulton në vonesë ekstra –
p.sh. është koha për ta “pasqyruar “ bllokun prej memorje- në cache). Pra,
koha për të zëvëndësuar një bllok prej nivelit më të ulët, duke përfshirë
kohën e qasjes në nivel më të ulët si dhe kohën e transferit të bllokut.
Effective Memory Access Time (EMAT):
koha e kerkimit ne cache për të “pa” nëse lokacioni I memories është veq aty.
Pas cache miss (mungesës në cache), koha për të shkuar në nivele më të
thella në hierarkinë e memories. 40
EMAT = Tc + m * Tm
Adresa – çdo fjalë (e dhënë) ka një adresë në memorie. Procesori bën një
kërkesë për një të dhënë (fjalë) duke gjeneruar adresën e të dhënës së
caktuar.
Fjala mund të gjendet në ndonjë nivel më të ultë të hierarkisë (i cili mund të
jetë ndonjë nivel tjetër cachi ose memorie kryesore) dhe vendoset në
cache para se me vazhduar. Fjala – njësia “natyrale” e organizimit të
memories. Madhësia e fjalës varet prej numrit të bitave për të reprezantuar
një integer dhe të gjatësisë së instruksionit. P.sh një madhësi fjale prej 32
bitësh (bits) = 4 Bajt (byte)
Bllok- Një bashkësi e fjalëve (p.sh block 0)
Set - grup i blloqeve në cache.
Njësi të adresueshme: në disa sisteme, njësi e adresueshme është fjala.
Megjithatë shumë sisteme lejojnë adresimin në nivel bajti. Relacioni në mes
në mes madhësisë në bita A të një adrese dhe numrit N të njësive të
adresueshme është 2A = N
41
4.2 ELEMENTET E PROJEKTIMIT TË KESH-it
Kohë pas kohe iu referohemi përdorimit të keshit në kompjuterët e
përformancës së lartë (high-performance computing – HPC).
HPC merren me superkompjuterë dhe softuerin e tyre për aplikime shkencore
që përfshijnë sasi të mëdha të të dhënave, llogaritjet vektoriale dhe matricore
dhe përdorimin e algoritmeve paralele.
Projektimi i Kesh-it për HPC-të ndryshon rrenjësisht me platformat dhe
aplikacionet tjera harduerike.
Edhe pse ekziston një numër i madh i implementimeve të keshit, ekzistojnë
disa elemente themelore të dizajnit që shërbejnë për të klasifikuar dhe dalluar
arkitekturat e kesh-it.
Tabela 4.2 paraqet elementet kryesore.
42
Tabela 2. Elementët e projektimit të Kesh-it Politikat e shkrimit
Adresat e Kesh-it ërite through
ërite back
Logjike
Fizike
Madhesia e Kesh-it (Cache size) Madhësia e linjës
Funksioni pasqyrimit (Mapping Function) Numri i niveleve të keshit
Direkt Me një, dy ose tre nivele
Asociative I unifikuar ose i ndarë
Set associative
Algoritmi i zëvëndësimit (Replacement Algorithm) 43
I përdorur më së paku së fundmi (Least recently used - LRU)
I pari brenda i pari jashtë (First in first out - FIFO)
Më së paku i përdorur (Least frequently used -LFU)
E rastit (Random)
Adresat e KESH-it
Shumica e procesorëve jo-të mbjellur dhe shume procesorë të mbjellur
përkrahin memorien virtuale*.
Memoria virtuale është një “mundësi e zgjerimit të memories” që lejon
programet të adresojnë memorien nga një pikëpamje logjike, pa marrë
parasysh sasinë e memories kryesore të disponueshme fizikisht.
Kur përdoret memorie virtuale, fushat e adresave të instruksionve të makinës
përmbajnë adresa virtuale.
Për të lexuar dhe shkruar nga memoria kryesore, një njësi harduerike e
quajtur Njësia e menaxhimit të memories (MMU) përkthen çdo adresë
virtuale në një adresë fizike në memorien kryesore.
Njësia e menaxhimit të memories së kompjuterit (MMU) është hardueri fizik që
trajton memorien virtuale të tij dhe operacionet e keshimit.
44
MMU gjendet zakonisht brenda CPU-së së kompjuterit, por nganjëhëerë vepron
edhe si një çip i integruar (IC) i veçantë. Të gjitha kërkesat hyrëse të të dhënave
dërgohen në MMU, e cila përcakton nëse të dhënat duhet të nxirren nga ruajtja në
cache apo në RAM.
Kur përdoren adresat virtuale, dizajnuesi i sistemit mund të zgjedh të vendosë
cache-in midis procesorit dhe MMU (Fig. 8.a) ose midis MMU dhe dhe
memories kryesore.
Një cache logjik, i njohur edhe si cache virtual, ruan të dhënat duke përdorur
adresa virtuale. Procesori qaset direkt në cache, pa kaluar nëprmjet MMU.
45
Fig. 8 (a) Keshi logjik
Një cache fizike ruan të dhënat duke përdorur adresat fizike të memories
kryesore.
Epersitë e keshit logjik- shpejtësia e qasjes në cache është më e shpejtë se
sa për një cache fizike, sepse cache mund të përgjigjet përpara se MMU të
kryejë një përkthim të adresave.
Të metate keshit logjik –shumica e sistemeve memoruese virtuale furnizojnë
çdo aplikacion me të njëjtën hapësirë të adresave virtuale. Pra, çdo
aplikacion shef një një memorie virtuale që starton me adresen 0.
Kështu, adresa e njëjtë virtuale në dy aplikacione të ndryshme i referohet dy
adresave të ndryshme fizike.
46
Fig. 8 (b) Keshi fizik
Funksioni i pasqyrimit
Për shkak se ka më pak rreshta keshi (Cache line) sesa blloqe në memorie
kryesore, nevojitet një algoritëm për pasqyrimin e blloqeve të memories
kryesore në linjat e keshit. Gjithashtu nevojitet një mjet për të përcaktuar se
cili bllok kryesor i kujtesës aktualisht zë një linjë keshi.
Zgjedhja e funksionit të pasqyrimit përcakton se si është organizuar keshi
Mund të përdoren tre teknika:
Pasqyrimi direkt,
Pasqrimi asociativ, dhe
Pasqyrimi set asociativ.
Ne shqyrtojmë secilën nga këto teknika pasqyrimi me radhe permes nje
shembulli specifik.
47
Madhësia e keshit 64 KB (Kilo Bajt) Shembull:
Keshi është i organizuar në blloqe me nga 4 B (bajta), d.m.th:
Keshi përbëhet prej 64 KB/4B =16K=214 linjave (lokacioneve) me nga 4 bajt
secila
Memoria kryesore përbëhet nga 16MB, që adresohet me 24 bita, 224=16M
Memoria kryesore mund të trajtohet si memorie që përbëhet prej 4M
blloqeve me nga 4 bajt secili prej tyre
Kesh Memoria 48
Mëqenëse ka më shumë blloqe
në memorie se sa (blloqe) linja
keshi, një linjë individuale nuk
mund të jetë në mënyrë unike
përherë e dedikuar për një bllok
të veqantë. Prej këtu, çdo linjë
e keshit ka një tag (etiketë)
që identifikon se cili bllok
aktualisht po ruhet.
Tagu është zakonisht një pjesë
e adresës së memories
kryesore
49
Pasqyrimi direkt
Një bllok i memories kryesore pasqyrohet në vetem një linjë të veçantë të
keshit
Pasqyrimi përshkruhet përmes shprehjes:
i = j modulo m
i - numri i linjes në memorien kesh
j - numri i bllokut në memorien kryesore
m - numri i tërësishem i linjave në kesh
Fig. 9. paraqet paraqet pasqyrimin e m blloqeve të para të memories
kryesore ku secili bllok i memories kryesore pasqyrohet në një linjë
unike të keshit
50