Úvodní strana / Slovníček pojmů / Cache

Cache

vyrovnávací paměť

Typy pamětí v počítači

V počítači se standardně používají dva typy pamětí - SRAM (Static Random Access Memory) a DRAM (Dynamic Random Access Memory). Tyto se od sebe zásadně liší.

Paměť typu DRAM se vyznačuje vysokou kapacitou a nízkou rychlostí, kterou dodává data do procesoru.

Naopak paměť typu SRAM je velmi rychlá, ale také drahá a neskladná.

Co je cache?

Cache je velmi rychlá (až 100x rychlejší než DRAM) paměť typu SRAM, která se přidává do procesoru pro zrychlení jeho práce. Její velikost je značně limitována (128 kB až 2 MB - tedy cca 1000x méně, než kolik je v počítači paměti DRAM).

Jak pracuje s cache procesor?

Procesor využívá cache tak, že nepřistupuje k celé dostupné velikosti najednou, ale často provádí obrovské množství výpočtů se stále jedněmi daty. Většina výpočtů probíhá na opravdu malém množství dat, protože ta se neustále přepisují výsledky. Tak například operace (A + B) * (C + D) vyžaduje nejprve spočtení dvou součtů. Ze začátku jsou zapotřebí čtyři údaje, k nimž přibudou další dva (výsledky). Původní hodnoty A, B, C, D totiž zahodíme a ponecháme si pouze ony výsledky. V cache se tak v podstatě stále vyměňují čísla, proto není potřeba, aby tato paměť byla příliš veliká.

Data se načítají do cache z paměti DRAM. Instrukce procesoru, které něco počítají, načítají potřebná data z cache a ukládají své výsledky také do cache. Protože vypočtením výsledku se obsahy cache a DRAM přestanou shodovat, jsou výsledky postupně zapisovány do DRAM. Samotná cache je pak ovládána řadičem, který je nezávislý na výpočetní části. Z procesoru dostává neustále požadavky na načítání dat z paměti a ukládání výsledků do paměti. Řadič tyto požadavky plní, nicméně při čtení se setkává s tím, že již nemá kam nové hodnoty uložit, protože cache je plná. Proto sleduje využití jednotlivých částí cache a rozhoduje, která data z ní vyhodí. Obvykle se využívá metody, kdy se vyhazují ta data, ke kterým se nejdelší dobu nepřistupovalo.

Základními faktory užitečnosti cache je její rychlost a velikost.

Rychlost neboli její zpoždění (latence) ovlivňuje, kolik cyklů bude procesor čekat na dodání dat přímo z cache. Rychlost cache vždy ovlivňuje výkon a je to jeden z nejdůležitějších prvků v designu procesoru.

Druhý faktor — velikost — pak ovlivňuje, kolik dat je možné zrcadlit. Čím více, tím lépe. Problémem bohužel je, že čím větší cache je, tím pomalejší musí být — vyhledávání ve větším množství údajů trvá déle.