Cache

Z Wikipedie, otevřené encyklopedie

Skočit na: Navigace, Hledání

Cache je označení pro vyrovnávací paměť používanou ve výpočetní technice. Je zařazena mezi dva subsystémy s různou rychlostí a vyrovnává tak rychlost přístupu k informacím.

Cache může být vytvořena programově vymezením určité části operační paměti pro potřeby vyrovnávací paměti (např. disková cache v operačním systému), nebo hardwarově paměťovými obvody (např. pro potřeby procesoru).

[editovat] Softwarová cache

Obecně se používá jako vyrovnávací paměť pro pomalé (vzhledem k rychlosti operační paměti a procesoru) vnější paměti, typickým takovým zařízením je pevný disk počítače. Operační systém se snaží informace, se kterými právě pracuje, uchovávat v rychlé operační paměti a na disk je ukládat co nejpozději. Nemusí tak provádět zbytečné pomalé čtecí a zápisové operace na disku, které jsou o několik řádů pomalejší (je nutné přemístit hlavy a počkat, až se disk natočí požadovaným místem pod hlavy).

Moderní systémy přidělují cache paměť pro disky dynamicky, podle množství volné paměti a potřeb systému. Algoritmy pro obsluhu diskové cache mají podstatný vliv na rychlost a výkon celého systému.

Nevýhodou používání cache je riziko spojené s neočekávaným výpadkem napětí - stav datových souborů na disku není vždy aktuální a musí se synchronizovat s obsahem cache. Z tohoto důvodu vyžadují operační systémy před vypnutím počítače provést tzv. „shutdown“, to znamená korektní ukončení práce systému, při kterém se (mimo jiné) uloží obsah diskové cache do souborů na disku. Ze stejných důvodů je nutné některá vyměnitelná média v unixových systémech před vyjmutím „odmontovat“. Tím se dává najevo systému, že se s médiem už nebude dále pracovat a systém provede synchronizaci cache se soubory.

[editovat] Hardwarová cache

Paměť cache realizovaná specializovanými paměťovými obvody se používá v některých řídících jednotkách vnějších pamětí a v procesorech a jejich podpůrných obvodech.

Cache v řídících jednotkách vyrovnává rozdíl mezi nepravidelným předáváním/přebíráním dat počítačem (sběrnici) a pravidelným tokem dat do/z magnetických hlav, jehož rytmus je dán rychlostí otáčení disku. U počítačů je cache elektronický obvod, tvořený z tranzistorů (ty tvoří bistabilní klopné obvody) a její funkce je vyrovnávat rozdílnou rychlost mezi procesorem a operační pamětí. Vyšší rychlosti je dosaženo použitím kvalitnějších tranzistorů (vyšší frekvence) než u operační paměti a cache je také blíže k procesoru než operační paměť. Tudíž je možno použít opět vyšší frekvenci, protože po cestě nejsou tak velké parazitní kapacity.

Cache paměť v procesoru ukládá kopie dat přečtených z adresy v operační paměti. Pokud při čtení obsahu slova z adresy v paměti je tato položka nalezena v cache paměti, je její obsah přečten z cache paměti a ne z operační paměti (angl. cache hit). Mezi procesorem a cache pamětí se přenášejí jednotlivé slova, mezi cache pamětí a operační pamětí se přenášejí rámce slov o velikosti několikanásobku velikosti slova procesoru. Protože asi 90% operací procesoru je čtení paměti, většinou sekvenční, je tímto způsobem dosaženo větší propustnosti dat z operační paměti do procesoru, tím i vyššího výpočetního výkonu.

Vyrovnávací paměť procesoru bývá dvojstupňová. Část paměti o malé kapacitě je přímo součástí procesoru a je stejně rychlá, jako vlastní procesor (značí se L1). Další paměť, pomalejší, ale s větší kapacitou, je mezi procesorem a operační pamětí, dnes se již umisťuje do pouzdra s procesorem (značí se L2). Protože cena paměti stoupá s její rychlostí (a samozřejmě s kapacitou), je možné tímto uspořádáním najít kompromis mezi cenou a rychlostí.

Velikost paměti cache, její rychlost a algoritmus řízení paměti cache se liší u jednotlivých výrobců a typů procesorů a je to jeden z parametrů, který podstatně ovlivňuje výkon a cenu počítače.

Wikislovník obsahuje slovníkovou definici slova cache.