15. Gyorsítótárak Flashcards
Szerepük
Az adatforgalom gyorsítása és egyenletessé tétele. Átmeneti, gyors, a felhasználó számára láthatatlan tárolás.
Memória hierarchia
kép35
Definíció
A cache a memória egyes egymást követő részeit tárolja, azok tárolóhelybeli címével együtt.
Elvárás
Elvárás, hogy minnél nagyobb, gyorsabb és magas találati arányú legyen (ellentét!) (szintek bevezetése)
Cache típusok, szintek és késleltetések
o Utasítás, adat cache: L1 (általában a CPU órajelén fut: 1.3 – 1.5 ns | 2 – 4 ciklus)
o Mixed cache:
- L2 (4.5 – 8 ns | 9 – 14 ciklus)
- L3 (12 – 20 ns | 20 – 40 ciklus)
Méret
32kB–30MB
Elhelyezkedés lehet
o off-chip
o on-chip (mai)
Az adatátvitel a gyorsítótárak és a memória között mindig blokkos formában zajlik
- blokkméret: 4 - 64 byte (utasítás, illetve adat esetén eltérő lehet)
- sorméret: az a mennyiség, amely egy időben összehasonlítható, illetve
kijelölhető (altalában <= blokkméret)
Adataktualizálási módszer
o Write Through (cserék előtt)
o Write Back (azonnali)
Koherencia mechanizmus
A gyorstítótár és az operatív tár megegyezésének biztosítására (CC-NUMA esetén)
Visszakeresés módja
- Tartalom szerint: asszociatív keresés (CAM: Content Address Memory)
- Elhelyezkedés szerint: (MMU: Memory Management Unit » virtuális – fizikai címfordítás)
o Fizikai cím: [ CPU – MMU – Cache ] – RAM (mai)
o Virtuális cím: [ CPU – Cache – MMU ] – RAM (offset, összehasonlítás)
o Tag: a memóriacímnek az a része, amely alapján közvetlenül (a tárolt értékből) vagy
közvetve (a tárolt értékből és a cache-ben való elhelyezkedésből) meghatározható a memóriablokk kezdőcíme:
- fizikai tag: szuperskalároknál általános
- virtuális tag: csökkenti a cache miss késleltetését
Cache Hit ↔ Cache Miss
az elfogadott hibaarány általában kevesebb mint 10%
o találati hiba esetén (Cache miss) a CPU betölti az adatot az operatív tárból a
regiszterbe, illetve a gyorsítótárba
a találati arány függ a cache méretétől, illetve a szervezés módjától
Cache hit » sikeres találat, osztva a szumma „tárhoz fordulás”-sal.
Cache Replacement Policy
Gyorsítótár Helyettesítési Stratégia) A tartalom cseréjekor a megfelelő helyettesítési stratégiát kell alkalmazni. Például: o FIFO – First In First Out o LIFO – Last In First Out o LRU – Least Recently Used o LFU - Least Frequently Used
Mit tárolunk a cache-ben?
Adatokat
Tag-eket
Állapotbiteket (vezérlést, illetve helyettesítési eljárást kiszolgáló bitek)
A legfontosabb állapotbitek
o V-bit:
o validate (érvényességjelző) bit
o vonatkozhat blokkra, sorra vagy bájtra
o legalább blokkonként van egy V-bit
o érvényes a cache-beli adat, ha a megadott tároló címen (ahonnan be lett töltve)
lévő eredeti adattal megegyezik és ahhoz is tartozik!
o cache törlés: V-bit 0-ra állítása
o D-bit:
o dirty (módosításjelző) bit
o blokkokra vonatkozik
o azt jelzi, hogy az adat módosítva lett, de még nem lett átírva az operatív tárba!
o amíg ez az átírás nem történik meg, addig nem lehet új adatot írni a blokkba
Koherencia protokollok
Gyorsítótár koherencia probléma: a gyorsítótár egyelőség fentartása. » C1 mag L1 értékét megváltoztatja, de ugyanezt az adatot C2 L1-e is tárolja. Megváltoztassa ő is, vagy érvénytlenítse?
- Snoopy protokoll
- Könyvtár alapú protokoll
- MESI protokoll