Vyšlo v týdeníku Computerworld č. 14/92 v roce 1992
Vytištěno z adresy: http://www.earchiv.cz/a92/a214c120.php3

Cache

Ne nadarmo se říká, že tak dlouho se chodí se džbánem pro vodu, až se ucho utrhne. Něco podobného se stalo i se zvyšováním rychlostí procesorů - tak dlouho se zrychlovaly, až jim přestala stačit operační paměť.

Procesory se staly tak rychlými, že k dosažení plné rychlosti vyžadovaly extrémně rychlou operační paměť. Taková sice existuje, ale je velmi drahá - tak drahá, že není únosné realizovat s ní celou operační paměť o kapacitě v řádu megabytů.

Existuje však ještě i jiná možnost. Je založena na pozorování, že programy obvykle nesahají do operační paměti zcela nesystematicky, ale právě naopak - po určitou dobu pracují vždy jen s relativně malým úsekem paměti. Proč toho nevyužít a nepřenést obsah tohoto úseku do zvláštní paměti o menší kapacitě, kterou zařadíme mezi procesor a vlastní operační paměť, a která již může být dostatečně rychlá? Bude-li mít procesor štěstí, najde požadovaná data v této malé paměti, a dostane je tudíž s takovou rychlostí, jakou potřebuje. V opačném případě bude nutné "sáhnout" až do pomalejší operační paměti, což ovšem bude trvat poněkud déle. Proto odsud raději načteme hned celý větší blok dat a přeneseme jej do naší rychlé paměti. S velkou pravděpodobností si procesor resp. právě prováděný program záhy vzpomene, že potřebuje něco právě z tohoto bloku, který jsme si předvídavě načetli dopředu.

Malá a velmi rychlá paměť, která se takto zařazuje mezi procesor a "pomalou" operační paměť, a funguje právě naznačeným způsobem, se v angličtině nazývá cache. V češtině se nejčastěji označuje jako vyrovnávací paměť.

Myšlenka načítat dopředu větší celky dat, než jaké jsou právě požadovány, má své opodstatnění i v jiných případech. Zvláště v případě disků - pokud si některý program vyžádá např. načtení jednoho sektoru, je velmi pravděpodobné, že záhy bude požadovat také následující sektor na téže stopě. Než se ale k tomu odhodlá, může se disk pootočit tak, že se následující sektor již nestihne, a je třeba čekat celou obrátku, než se znovu dostane pod čtecí hlavu.

Zde se přímo nabízí myšlenka načítat vždy rovnou celé diskové stopy (což je možné stihnout za dobu právě jedné obrátky), a ukládat je do paměti, která je k tomuto účelu vyhrazena. Požadavky na čtení jednotlivých sektorů je pak možné uspokojovat z této paměti, což je výrazně rychlejší.

Také v tomto případě se hovoří o paměti cache, přesněji o diskové cache paměti (disc cache).