Advertisement
csaki

szar

Jun 14th, 2015
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.23 KB | None | 0 0
  1. A cache használat:
  2. Ideiglenes információkat tárol, hogy a processzor gyorsabban tudjon olvasni. A cache rendszerint statikus ram, ami jóval gyorsabb elérésű mint a RAM, ezért a processzor számára aktuálisan feldolgozandó információt a memóriából a cache-be másolja, és onnan dolgozik.
  3.  
  4. - átmeneti információtároló
  5. - célja az információ hozzáférés gyorsítása
  6. - különböző sebességű adattárolók közötti adatforgalom közben a processzor folyamatosan, várakozás nélkül dolgozhasson
  7.  
  8. A memória ciklusideje csökkenthető, ha a byte-okat két chipből felváltva olvassuk ki. Ekkor míg az egyik chipet olvassuk, a másik felkészül az olvasásra. A ciklusidő a hozzáférési idő szintjéig csökkenthető ezzel az átlapolás nevű módszerrel. Az átlapolás kezelését a memóriavezérlő áramkörök automatikusan végzik.
  9. Ha a teljes memóriát nem is építhetjük fel gyors memóriából, azt megtehetjük, hogy sok lassú (pl. DRAM) memória mellett kevés gyors memóriát (pl. SRAM) is felhasználjunk. Általában soha nincs egyszerre szükségünk a teljes RAM-ra, tehát megtehető, hogy a lassú memória egy részét átmásoljuk a gyors memóriába, és azt használjuk a lassú helyett. Ha olyan adatra van szükség, ami még nincs bent a gyors memóriában, a lassúból újabb adag byte-ot másolunk át. A gyors memória ilyen célra használt részének neve cache memória, más néven gyorsítótár.
  10. Ezt a módszert használjuk a DRAM gyorsítására (a DRAM és az SRAM közti adatmásolgatást a számítógép automa¬ti¬kusan végzi), ez a CPU-cache. Ha szerencsénk van, a teljes futó program elfér a gyors memóriában.
  11. Fontos még a 2. szintű memória, pl. mágneslemezes tár gyorsítása (cache-elése) DRAM segítségével. Ebben az esetben a mágneslemezről egyszer már beolvasott adatot a RAM-ban tároljuk, és ismételt beolvasása így sokkal gyorsabb lesz, mintha a winchesterhez kellene hozzáférni (viszont a RAM egy részét fel kell áldozni erre a célra). Az írási cache úgy működik, hogy a winchesterre kiírandó adatot egy ideig a RAM-ban tárolja, így annak ismételt módosítása is a RAM-ban történik. Adott idő után a RAM-ban tárolt adat a winchesteren a helyére kerül. Ha áramszünet áll be, mielőtt ez megtörtén volna, a felhasználó által lemezre írt adat nem kerül a lemezre, és elvész. Írási cache-t használó rendszereket soha nem szabad hirtelen lekap¬csolni, mert ez adatvesztéssel járhat, hanem be kell tartani a lekapcsolási szabályokat. A lemezes cache-t a felhasználótól függetlenül működő program végzi, ezért a felhasz¬nálónak nem kell foglalkoznia vele.
  12. ***
  13.  
  14.  
  15. Lokalitási elvek ismertetése:
  16. 1. Hely szerinti lokalitás: ha szükségem van egy adatra, szükségem lehet a szomszédos adatra is.
  17. 2. Idő szerinti lokalitás: az időben sorban kért adatok valószínűleg a tárolóban is sorban helyezkednek el
  18.  
  19. A memória hierarchia szintjeinek összehasonlítása, a cache(ek) helye a szintek között:
  20. http://prohardver.hu/tudastar/memoria_hierarchia.html
  21. http://people.inf.elte.hu/colili/cache.html
  22.  
  23.  
  24. Felépítése, az elérési változatok:
  25. Felépítés: dirtry bit - valid bit - 32 bit cím - 2^n bit adat
  26.  
  27. Cache elérési változatai és a címbitek számának meghatározása az elérési módoktól függően:
  28. 1) Teljes asszociatív cache: valaki tartalmazza-e a CPU által kért cím másolatát, ha igen, akkor bárhol lehet, ha nem, akkor bárhova kerülhet. Ha a CPU egy memóriacímet keres, a teljes címtárat vizsgálja → 2^m összehasonlítás.
  29. 28 bites blokksorszám. Az alsó 4 bit a szó és azon belül a byte helyét határozza meg. (28 + 4 = 32)
  30. Ennél, ha a processzor adatot keres a cache-ben, akkor a memóriabeli cím 28 bitjét összehasonlítja a blokksorszámokkal. Az összehasonlítás egy időben történik az összes sorban, vagyis szükségünk van a jelen esetben annyi párhuzamos, összehasonlító áramkörre, ahány soros a cache.
  31. Előny: - rugalmas a betöltésnél (bármelyik blokk bárhová kerülhet)
  32. - igen jó találati arány lehetőség
  33. Hátrány: - sok összehasonlító áramkör -> költséges (nagyon)
  34. Címtár: címbusz mérete - m (sorok száma)
  35.  
  36. 2) Közvetlen elérésű cache: a beolvasott memóriaterület a cache egy meghatározott sorába kerülhet csak. A keresett memóriacímről egyértelműen eldől, mely sorba lehet az adat. 1 összehasonlító áramkör.
  37. Ennél, ha a processzor keres a cache-ben, akkor a virtuális, vagy fizikai memóriacímből előállított sorindex alapján kijelöli a keresett sort, majd a felső 20 bitet (lapsorszám) összehasonlítja a cache-beli lapsorszámmal. Ez így egyetlen összehasonlítást eredményez.
  38. Előny:
  39. - rövidebb ’tag’ (cím, 20 bites)
  40. - gyors visszakeresés, egyszerűség, olcsóság
  41. Hátrány:
  42. - kötött blokkhelyek miatti merevség -> azonos indexű helyek adatainak elérése lelassul
  43. - találati arány alacsonyabb, mint az teljes asszociatívnál (de nagyobb tárolóval javítható valamelyest)
  44. [címbitek][m][n] - m=melyik sor, n=melyik adat
  45. Címtár mérete: címbusz mérete – n – m
  46.  
  47. 3) Csoportos asszociatív cache: átmenet a teljes asszociatív és a közvetlen elérésű között. A csoportokon belül teljesen asszociatív elérés van. A cache-be másolt blokk a csoporton belül bármelyik n sorba kerülhet.
  48. A felső 22 bitből képzett lapsorszámot tároljuk. A csoport asszociatív cache esetében, amikor a processzor adatot keres a cache-ben, akkor a memóriacímből képzett csoportindex alapján kijelöli az indexnek megfelelő csoportot, majd a memóriacím felső 22 bitjét összehasonlítja a cache-beli lapsorszámokkal. Ez az összehasonlítás a csoport összes sorában egyidejűleg történik, vagyis ehhez egy olyan áramkör tartozik, ami jelen esetben 4 párhuzamos, összehasonlító áramkört tartalmaz.
  49. A csoport asszociatív cache rugalmasabb, mint a közvetlen leképezésű tároló és ugyanakkor kisszámú összehasonlító áramkör kell hozzá és viszonylag gyors.
  50. Címtár mérete: címbusz mérete – n – m + k
  51.  
  52. Visszaírási módok:
  53. - write through: a processzor által módosított adatot kiírja a memóriába (átír a cache fölött) és a cache-be is egyszerre → lassú
  54. - write back: a módosított adatot csak a cache-be írja ki, a dirty bit-et 1-re változtatja, a cache sor törlése előtt írja ki az értékeket a memóriába
  55. Valid bit:
  56. - 1 biten tárolja, hogy az adott cache sorban lévő adat érvényes-e
  57. - a számítógép bekapcsolásakor minden valid bit értéke 0
  58. - ha egy sorba adatot másolunk értéke 1-re változik
  59. - ha fel akarunk szabadítani egy sort (mert megtelt a cache), az értéket 0-ra változtatjuk → töröljük pl. a legrégebben használtat
  60. Dirty bit:
  61. - 1 biten tárolja, hogy az adott cache sorban lévő adatot a processzor módosította-e, vissza kell-e írni
  62. - ha az adatot nem módosították, az értéke 0
  63. - ha az adatot módosítjuk, az értéke átvált 1-re, és akkor is 1 marad, ha a módosítást visszacsináljuk
  64. - ha az értéke 1, akkor előbb vissza kell írni a cache sor tartalmát az operatív tárba, csak utána állítható a sor valid bitje 0-ra
  65. Valid bit és dirty bit is ugyanannyi van, ahány sor.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement