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
Snoopy protokoll
Amikor gyorsítótár írást érzékelünk a buszon, akkor invalidáljuk a megfelelő címhez tartozó cellát (max. 2 – 4 mag/CPU esetén ajánlott)
Előnye: egyszerűen kiépíthető
Hátránya: sok mag/CPU esetén nagymértékben terheli a buszrendszert
Könyvtár alapú protokoll
A megosztott adatok egy közös könyvtárba kerülnek. Ez szűrőként
üzemel. Jól skálázható!
o A CPU engedélyt kér, hogy betölthessen egy blokkot az operatív tárból a
gyorsítótárba.
MESI protokoll
Új állapotjelzők bevezetése:
o M: Modified (1. tár valid csak)
o E: Exclusive (valid, de csak itt található, illetve a fő tárban)
o S: Shared (valid és létezik még legalább egy helyen, illetve a fő tárban)
o I: Invalid
Megvalósítások – adat elhelyezés
- Fully Associative Cache
- Direct Mapped Cache
- Set Associative Cache
- Sector Mapping
Fully Associative Cache
A beolvasott blokk bármelyik sorban elhelyezhető, az elhelyezést a helyettesítési algoritmus határozza meg.
N db. összehasonlító áramkört tartalmaz (N = sorszám)
Amikor a CPU adatot keres, minden sort egyszerre vizsgál
nagyon ritka
Előnyei:
o gyors
o rugalmas
o magas találati arány
Hátrányai:
o sok összehasonlító áramkör
o drága
kép36
Direct Mapped Cache
(egy utas asszociatív cache)
- 1-1 blokk csak egy meghatározott helyre kerülhet
- A blokk helyét a blokk sorszáma határozza meg
- 1 db. összehasonító áramört tartalmaz
- Előnyei:
- gyors
- egyszerű és olcsó
- Hátrányai:
- merev
- alacsony találati arány
-Találati arány javítható, ha növeljük a cache méretét, de ekkor lassul a keresés.
Set Associative Cache
(N utas asszociatív cache)
minden blokk n helyre kerülhet
általában 2 - 8 utas (ennyi sor / csoport)
N db. összehasonlító áramkört tartalmaz
csoportindex alapján jelöli ki a megfelelő csoportot, ahol aztán egyidejűleg keres
16 utas SAC ~= FAC
gyakori manapság
Előnyei:
o gyors
o rugalmas
o kevés összehasonlító áramkör (ahány utas)
kép38
Sector Mapping
a csoport helye asszociatív módon van megadva
a csoportokon belüli elhelyezés kötött
ritka
Exkluzív szervezés
kép39
Inkluzív szervezés
kép40
Szervezés többmagos CPU-k esetén
kép41
Memória hierarchiak
kép42
Cache line (cella) felépítés
1. ENTRY: o TAG o Tprot (bits) o Dprot (bits) o Stat (V-bit, D-bit) 2. DATA: o Adat
Mi a mai trend?
Mai trend, hogy az L1 az L2-n belül található (nem mellette) o DPL: Data Prefetch Logic – L2
- elemzi az L1 adatelérési sémáit (például a szekvenciális lekéreseket)
Egy memóriaművelet elvégzésekor milyen folyamatok mennek még végbe?
Minden memóriaművelet egyidejűleg címfordítás, gyorsítótárindexelés és összehasonlítás!
Mikor tegyünk adatot a gyorsítótárba?
o soha (például média) o első betöltéskor (lassú) o Prefetch (spekulációt igényel)
Mi a slew rate?
Kapcsolás 0-ról 1-re