Cache
Z Wikipedie, otevřené encyklopedie
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ět 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í (disky) 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ěrnicí) a pravidelným tokem dat do/z magnetických hlav, jehož rytmus je dán rychlostí otáčení disku.
Cache pamět 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.

