6. Jak pracuje paměť cache pro RAM

Čipy paměti RAM najdeme sice ve všech počítačích, ale ne všechny paměťové čipy jsou si rovny. Některé jsou při obnovování elektrických napětí v kondenzátorech, které představují data, rychlejší než ostatní. Rychlost obnovování - obvykle vyjadřovaná v nanosekundách - ovlivňuje rychlost, s jakou může mikroprocesor získat z paměti data, která má zpracovat.

Čím jsou čipy RAM rychlejší, tím jsou dražší. Aby se cena osobních počítačů udržela nízko, používá většina výrobců pomalejší paměťové čipy pro hlavní objem paměti počítače a o něco rychlejší, dražší čipy RAM na základní desce jako externí cache RAM. Cache, obvykle obsahující 64 až 256 kilobytů paměti, pomáhá snížit zpoždění při přesunu dat mezi hlavní pamětí a procesorem. Paměť cache pro RAM má na urychlení přístupu k paměti tentýž vliv jako disková cache na urychlení přístupu k disku.

Bez paměti cache by procesor po dobu několika cyklů musel nečinně zahálet, dokud by nedostal požadovaná data. Hodinový cyklus je nejkratší doba, během které se v počítači může provést nějaká operace. S pamětí cache si však počítač může data, která bude s největší pravděpodobností potřebovat, držet takříkajíc na dosah ruky. Data uložená v rychlých čipech lze procesoru doručit s minimálním zpožděním, někdy dokonce i bez jakéhokoliv zpoždění.

Efektivnost paměti cache určují dva faktory. Jedním z nich je rychlost čipu použitého v paměti cache - čím je rychlejší, tím lépe. Dalším faktorem je algoritmus, který paměť cache používá pro určení dat, která se mají do paměti cache uložit. Čím přesněji je algoritmus schopen odhadnout, která data se budou v následujících okamžicích zpracovávat, tím vyšší je míra úspěšnosti zásahu.

Pokud váš software potřebuje nová data, paměť cache vyřadí data, která byla v rychlých čipech nejdéle a nahradí je novými daty a daty z okolních adres paměti. Děje se tak podle pravidla FIFO, které je založeno na principu, že data, která byla delší dobu nepoužita zřejmě nebudou softwarem požadována ani v budoucnu.

Princip činnosti
1. Váš software prostřednictvím procesorové jednotky (CPU) vyžaduje pro použití data nebo další část programového kódu.
2. Paměť cache pro RAM, která je zabudována jako část hlavních obvodů v počítači, zachytí tento požadavek na jeho cestě do paměti RAM. Paměť získá data z RAM a dodá je do CPU. Když jsou data načítána poprvé, může to trvat několik hodinových cyklů, po které CPU nemůže dělat žádnou užitečnou práci.
3. Paměť cache si uloží kopii dat, která již přečetla z RAM do rychlých paměťových čipů, které používá pouze cache.
4. Jakmile cache zjistí, že CPU zahálí, načítá data nebo kód programu z paměťových adres, které sousedí s původní adresou dat, jež software požadoval. Paměť cache uloží tato data do rychlých paměťových čipů.
5. Pokud v příštích okamžicích požaduje software další data pro CPU, testuje cache, zda již data nejsou uložena v rychlých paměťových čipech. Jestliže ano, může cache tato data odeslat do CPU přímo, bez nutnosti přístupu do pomalé hlavní pamětí. CPU tak při výpočtech stráví kratší dobu čekáním.
6. Potřebuje-li CPU změnit obsah části paměti, rozhoduje cache nejprve o tom, zda se měněná data nacházejí v rychlých paměťových čipech. Je-li tomu tak, cache srovnává zapsaná data se změnami a do hlavní paměti zapisuje data jen tehdy, když adresy v hlavní paměti RAM obsahují jiná data než jsou v rychlých čipech. Je to rychlejší než změna celého bloku dat.

Poznámka: Kromě paměti cache pro RAM, se kterou se shledáme u mnoha osobních počítačů s mikroprocesory Intel 80386 a 80486 DX a SX, obsahují procesory 486DX svou vlastní 8K cache uvnitř čipu samotného. Tato vnitřní paměť cache pracuje podobným způsobem jako externí cache pro RAM a ještě více urychluje přenosy dat.