Memóriacache.txt

(6 KB) Pobierz
MemóriacacheMemóriacache
Már egy 25 Mhz-es 80386 gépnél problémát jelentett a pro-
cesszor adatellátása. Ezt az intel ugynevezett várakozási ciklusok
bevezetésével oldotta meg. A processzort lényegében várako-
zásra kényszeritik amíg a szükséges adatok meg nem érkeznek a 
memóriából.
Olyan memóriarendszerhez amely mentes a várakozási ciklusoktól 
olyan memóriaelemekre lenne szükség,amelyek elérési idelye
kevesebb mint 25 milliárdod másodperc.
A gyártott olcsó DRAK-ok ,SDRAM-ok azonban erre nem képesek.
A modern processzorok csak cache-sel gyorsított memóriával
érhetik el tényleges sebességüket. A nagyszámítógépek
világában már bevált megoldások a PC-kben is megjelentek.
Érdekes megnézni , hogyan működnek, és mire képesek a
memóriacache-ek.
 
A modern rendszerekben amig az adat eljut a processzorig,
több memórián is áthalad. Első lépcsőként kiolvasódik az operatív
tárból,ahonnan eljut a második szintű cache-be. Ezután az első
zsintű cache-be,a processzor belső cache-ébe ér,ahonnan a
processzor kiveszi és végrehajtja vele a műveletet.
Ebből a művelet sorból látszik,hogy amíg pontosan egymás után
lévő adatokat olvasunk (szekvenciális olvasás ), addig a memória-
cache-ek csak lassítják a beolvasást. Ha viszont ugyanarra a kód-
-vagy adatblokkra egymás után többször is szükségünk van, érez-
hetővé válik a valódi gyorsító hatás. Abban at esetben tapasztalhatjuk
a legnagyobb gyorsulást, ha az adatrészlet elfér a processzor
belső tárában. Ha ennél nagyobb adattömbről van szó, amelynek
csak a külső cache nyújt elegendő helyet, akkor kisebb a gyorsitás
 
 
A belsô memóriacache elônyei kézenfekvôek. Ha a
processzornak utasításokra vagy adatokra van szüksége,
akkor elôször ellenôrzi a cache tartalmát. Ha ott
megvannak az adatok, akkor cache-találatról (cache-hit)
beszélünk. Ellenkezô esetben -- tehát ha nincs találat
(cache-miss) -- elkerülhetetlenné válik a lényegesen
lassúbb DRAM memóriához való fordulás. A cache tehát akkor
fejti ki teljes kapacitását, ha gyakrabban kell használni
ugyanazokat az adatokat (feltéve, hogy azok a cache-ben
vannak). Pontosan ez a helyzet nagyon gyakran a programok
úgynevezett lokalitása miatt. Ez azt jelenti, hogy a CPU
általában egymás után (szekvenciálisan) hajtja végre az
utasításokat, és ritkán ""ugrik" más programrészekre, igen
gyakran használja ugyanazokat a memóriaterületeket. Ha
például szövegszerkesztôben egy hosszabb szövegen dolgozva
megváltoztatjuk a dokumentum sorszélességét, akkor a
programnak minden egyes sorban újra el kell végeznie a
tördelést. A tördelést végzô programrészlet csak egyszer
fog betöltôdni a cache-be, és itt már állandóan jelen van,
ezért rendkívül gyorsan végrehajtható.
 
Mivel a CPU belsô cache-ében lévô 8 Kbyte-nyi hely nem
elegendô nagy programrészek vagy adattömegek számára, ezért
a modern alaplapokon beépítettek egy külsô (second level,
második szintľ) memóriacache-t is a processzor és a lassú
memória közé. A külsô cache átlagos elérési ideje 25 ns
(lásd a Szerkezet és mľködés grafikát). Megjegyzendô, hogy
a 386-os processzorokkal csak külsô, tehát CPU-n kívüli
cache-t lehet használni -- ezeket ma már minden 386DX
processzorú gépbe beépítik.
 
A 486-os alaplapokon maximum négy, egyenként 64 vagy
128 Kbyte-os cache-bank van, összesen tehát 512 Kbyte-ig
bôvíthetô rajtuk a külsô cache.
 
Ha a processzor nem találja meg a belsô cache-ben a kívánt
információkat, akkor elôször megkísérli ezeket a külsô
cache-bôl lehívni, és csak azután kezdi el olvasni a
viszonylag lassú memóriát.
 
Kívánatos tehát a gyakran használt adatokat lehetôleg a
belsô cache-ben, illetve a külsô cache-ben tartani, hiszen
csak így lehet ezeket elérni várakozási ciklusok nélkül. A
kért és a cache-ben meg nem található byte-okat azonban
elôször ki kell olvasni a memóriából. E folyamat során
tehát a cache-memóriák ugyanazt az információt
tartalmazzák, mint a fômemória. De nem különálló byte-ok,
hanem egy teljes tömb, az úgynevezett cache-line kerül
átvitelre.
 
A cache-line szélessége megegyezik az adatbusz, illetve a
memóriabusz szélességével, vagy azok többszöröse. A 486-os
esetében 16 byte. A tömbökre tagolással kevesebb idôt vesz
igénybe, ha késôbbi táreléréseknél ellenôrizni kell, hogy
az adatok vagy a programkódok már benne vannak-e a
cache-ben vagy sem.
 
 
îrástól olvasásig
 
Miután a CPU feldolgozta az információkat, el kell
raktározni a számítási mľvelet végeredményét. A PC-ken
erre két különbözô eljárás terjedt el. Az egyik a
write-through, a másik a write-back (lásd a Szerkezet és
mľködés grafikát).
 
A write-through módszernél a cache-en keresztül minden
egyes írás azonnal bekerül a fômemóriába. Ezt a módszert
sok alaplap használja. Az információkat a CPU azonnal
átadja a külsô cache-nek és a RAM-nak is. Az eljárás
hátránya: a cache-be való minden írás egyben memóriához
való fordulást is jelent, és a processzornak várnia kell,
amíg az írásmľvelet be nem fejezôdik. Ezt a késedelmet
kerülik el a write-back rendszerek.
 
A write-back módszernél ha az adat már a cache-ben van,
akkor az eredmény is ott raktározódik el. Az ilyen
írástalálatnál (write-hit) tehát nincs szükség a lassú
memória elérésére. Csak akkor tárolódnak az adatok a
memóriában, ha az adat nincs benne a cache-ben. Ezenkívül
minden cache-line pót biteket is tartalmaz, amelyek jelzik,
hogy a bennük lévô információ vissza van-e már írva a
memóriába. Ezek az úgynevezett ""piszkos" (dirty) avagy
""módosított" (modified) bitek, amelyek jelzik, hogy vissza
kell írni a cache tartalmát a memóriába, mielôtt egy teljes
cache-line kicserélôdik.
 
Az intelligens merevlemez-vezérlôk például önállóan,
közvetlenül hozzáférhetnek a memóriához anélkül, hogy
igénybe vennék a CPU-t. Ha a memóriacache által
""lefedett" területre írnak valamit, akkor összhangba kell
hozni a cache és a memória tartalmát (szinkronizálás). A
write-back eljárás emiatt sokkal nagyobb munkát igényel a
hardvertôl, ami az alaplapok árában is jelentkezik
(körülbelül 50 márkányi a többletköltség). Azonban megéri
ez a befektetés. A legújabb, Pentiumra épülô rendszereknél
mutatkozik meg, hogy milyen nehéz az együttmľködés a
processzor, a cache és a chipkészlet között. Ezeknek a
gépeknek gondjaik vannak a modern PCI chipkészletekkel a
write-back rendszereken. Csak a write-through módban
tökéletes az összjáték a processzor és a PCI chipek között,
de ez 10%-kal csökkenti a gépek sebességét a write-backhez
képest.
 
Zgłoś jeśli naruszono regulamin