1 / 57

Objektivat

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

nadine
Download Presentation

Objektivat

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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.

  3. 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ë)

  4. 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ëmnjë 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ëmbajt për bajt) – me të shpejta se EEPROM

  5. 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.

  6. Hierarkia e memorjes (2) • Organizimi i memorjes mund të paramendohet si një piramidë

  7. 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.

  8. Hierarkia e memorjes (4)

  9. 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)

  10. Definicione (2) • Kjo na „detyron“ ti krijojme ca definicione: • hit timekoha 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.

  11. 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

  12. 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)

  13. 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).

  14. 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

  15. 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

  16. 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?

  17. Cache - Direct Mapped (2)

  18. 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).

  19. 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 214words, cache-i i ka16=24 blloqe dhe secili bllok i përmbanë 8=23words. • 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)

  20. 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 tagfushes, 4 bitat i takojne bllok fushes, dhe tre bitat e fundit i perkasin word fushës

  21. 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.

  22. 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.

  23. 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.

  24. Cache – Fully Associative (2) • Le të sypozojme si më pare se i kemi adresat memorike 14-bitë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.

  25. 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)

  26. 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.

  27. 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

  28. 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

  29. Cache - Set Associative (3) • Sypozojme se e kemi memorje kryesore (RAM) prej 214 bajta. • Kjo memorje pasqyrohet në 2-way set associative cacheme 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:

  30. 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

  31. 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.

  32. 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.

  33. 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

  34. 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).

  35. 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.

  36. 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.

  37. 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ë“.

  38. 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.

  39. 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.

  40. 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.

  41. 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)

  42. 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.

  43. 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.

  44. Memorja virtuale – shembull (1) • Le ta sypozojmë tabelen e faqës si më poshtë • Cka ndodhë kur CPU e gjeneron adresen 545910 = 10101010100112?

  45. 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.

  46. Memorja virtuale – shembull (3) • Çka ndodhënese CPU-ja e gjeneron adresen 10000000001002?

  47. 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.

  48. Memorja virtuale – EAT (2) • Edhe nese nuk kemi pagefaults, 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 cachedhe e ruajne pasqyrimin e faqeve virtuale në faqet fizike. Slajdi tjeter e paraqet algoritmin se si punon nje sistem me TBL dhe memorje virtuale.

  49. Memorja virtuale - TLB

  50. 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.

More Related