V sobotu 2. listopadu proběhla mohutná oslava naší plnoletosti !!
Multimediaexpo.cz je již 18 let na českém internetu !!

Cache

Z Multimediaexpo.cz

Verze z 25. 6. 2010, 08:55; Sysop (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)

Cache (výslovnost: Oxford English Dictionary cache (omezený přístup); též Dictionary.com (bez omezení). Správně představuje pouze francouzské přídavné jméno 'caché(e)', což znamená „skrytý“.) 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. Účelem cache je urychlit přístup k často používaným datům na „pomalých“ médiích jejich překopírováním na média rychlá. Příkladem „pomalého“ a rychlého média může být pevný disk a paměťový modul, kde rozdíl v rychlosti může činit až tři řády. Jindy může být pevný disk tím „rychlým“ médiem. „Pomalým“ médiem pak může být například obsah získávaný ze sítě. Cache byla vynalezena v první polovině 60. let 20. století.

Obsah

Typy cache

  • softwarová cache, vytvořená 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)
  • hardwarová cache, tvořená paměťovými obvody (např. pro potřeby procesoru).

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 pracuje častěji, uchovávat v rychlé operační paměti a v případě zápisu tyto na disk ukládat co nejpozději. Nemusí tak provádět zbytečné č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ájení - 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 „odmountovat“. 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. Odpojení je nutné i například u Windows XP, a to „zelenou ikonkou vpravo dole“, jinak může dojít k poškození souborového systému na výměnném médiu a to hlavně pokud se s médiem zrovna pracuje (kopírování, editace,...). Případné problémy s nečekaným výpadkem napájení se snaží moderní systémy alespoň částečně eliminovat pomocí žurnálu.

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 v HDD

Cache v pevném disku je vlastně vyrovnávací paměť, která odděluje velmi rychlý procesor s nesrovnatelně pomalejším pevným diskem. Umožňuje uchovat data určená k zápisu do doby, než je mechanická část pevného disku zpracuje a naopak uchovává přečtená data do doby, než je obsluha přerušení přesune do operační paměti. Může sloužit i k interní reorganizaci požadavků kvůli zvýšení výkonu (NCQ). Její velikost se pohybuje od několika kB do 64 MiB (u současných 3.5" disků). Interní cache používají také SSD disky.

Cache v procesoru

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ětí 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í. Na přelomu roku 2008 a 2009 se začíná používat L3 cache i v běžných procesorech (Intel Core i7, AMD Phenom), která je pro všechny jádra společná a většinou má velikost několik megabajtů.

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.

Externí odkazy