Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- A cache használat:
- 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.
- - átmeneti információtároló
- - célja az információ hozzáférés gyorsítása
- - 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
- 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.
- 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.
- 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.
- 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.
- ***
- Lokalitási elvek ismertetése:
- 1. Hely szerinti lokalitás: ha szükségem van egy adatra, szükségem lehet a szomszédos adatra is.
- 2. Idő szerinti lokalitás: az időben sorban kért adatok valószínűleg a tárolóban is sorban helyezkednek el
- A memória hierarchia szintjeinek összehasonlítása, a cache(ek) helye a szintek között:
- http://prohardver.hu/tudastar/memoria_hierarchia.html
- http://people.inf.elte.hu/colili/cache.html
- Felépítése, az elérési változatok:
- Felépítés: dirtry bit - valid bit - 32 bit cím - 2^n bit adat
- 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:
- 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.
- 28 bites blokksorszám. Az alsó 4 bit a szó és azon belül a byte helyét határozza meg. (28 + 4 = 32)
- 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.
- Előny: - rugalmas a betöltésnél (bármelyik blokk bárhová kerülhet)
- - igen jó találati arány lehetőség
- Hátrány: - sok összehasonlító áramkör -> költséges (nagyon)
- Címtár: címbusz mérete - m (sorok száma)
- 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.
- 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.
- Előny:
- - rövidebb ’tag’ (cím, 20 bites)
- - gyors visszakeresés, egyszerűség, olcsóság
- Hátrány:
- - kötött blokkhelyek miatti merevség -> azonos indexű helyek adatainak elérése lelassul
- - találati arány alacsonyabb, mint az teljes asszociatívnál (de nagyobb tárolóval javítható valamelyest)
- [címbitek][m][n] - m=melyik sor, n=melyik adat
- Címtár mérete: címbusz mérete – n – m
- 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.
- 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.
- 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.
- Címtár mérete: címbusz mérete – n – m + k
- Visszaírási módok:
- - 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ú
- - 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
- Valid bit:
- - 1 biten tárolja, hogy az adott cache sorban lévő adat érvényes-e
- - a számítógép bekapcsolásakor minden valid bit értéke 0
- - ha egy sorba adatot másolunk értéke 1-re változik
- - 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
- Dirty bit:
- - 1 biten tárolja, hogy az adott cache sorban lévő adatot a processzor módosította-e, vissza kell-e írni
- - ha az adatot nem módosították, az értéke 0
- - 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
- - 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
- Valid bit és dirty bit is ugyanannyi van, ahány sor.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement