Cos’è la cache: a cosa serve e come funziona

11202
Cos'è la cache - A cosa serve e come funziona

La memoria cache o semplicemente cache è un tipo di memoria utilizzata per velocizzare l’esecuzione dei programmi. Può essere considerata come un’estensione della RAM (acronimo di Random Access Memory), la memoria di accesso casuale del computer.
La cache viene gestita dall’hardware per memorizzare i dati maggiormente utilizzati dalla RAM allo scopo di incrementare la velocità di risposta del computer e quindi le sue prestazioni.
Per capire cos’è la cache e come funziona dobbiamo spiegare cosa la differenzia dalla RAM.

Qual’è la differenza tra RAM e cache?

La RAM è organizzata come una sequenza di celle chiamate anche parole di memoria. Ogni volta che la CPU (Central Processing Unit), il processore del computer, ha bisogno di leggere o scrivere un’informazione nella RAM deve individuare la cella nella quale l’informazione è memorizzata. La cella di memoria, dopo aver ricevuto la richiesta da parte del processore, risponderà alla CPU mettendo a disposizione i suoi dati. Questo tempo di risposta è chiamato tempo di accesso (in lettura o scrittura).
Anche se si tratta di un tempo brevissimo è un tempo di risposta troppo lungo per il processore, molto più veloce a eseguire un’operazione rispetto alla RAM.

Per ridurre il tempo di attesa del processore il computer utilizza la cache, un tipo di memoria molto più veloce se confrontata con la RAM.
Per ottimizzare le prestazioni del sistema vengono quindi combinati due tipi di memoria. Una grande quantità di memoria con tempi di accesso lenti, la RAM, e una piccola quantità di memoria con tempi di accesso molto veloci, la cache.
Ma perché non utilizzare soltanto la memoria cache se è più veloce? Perché la cache è molto più costosa della RAM e per questo motivo viene usata soltanto in piccole quantità.

Come funziona la cache?

Dopo avere spiegato cos’è la cache, per capire come funziona dobbiamo parlare del principio di località.
Il principio di località afferma che quando la CPU legge i dati in una cella della memoria principale del computer è molto probabile che anche gli altri dati che utilizzerà siano ubicati vicino alla cella in questione.
Per questo motivo tutte le informazioni adiacenti a quelle richieste dalla CPU vengono trasferite nella cache. Quando il processore del computer richiederà una nuova informazione questa, molto probabilmente, sarà già presente nella cache.
Nel caso in cui i dati richiesti non siano in cache la CPU effettuerà la richiesta alla memoria principale per individuare la cella che contiene le informazioni. Anche in questo caso la CPU trasferirà le informazioni adiacenti a quelle della cella utilizzata nella cache. Questo processo andrà avanti fino a quando la cache non sarà riempita completamente.

Tipologie di cache

Vediamo adesso quali sono le principali tipologie di cache.

CPU cache

La CPU cache è la cache utilizzata dal processore del computer per velocizzare le operazioni di accesso alla memoria principale.

Page cache

La page cache è una parte della RAM utilizzata dal sistema operativo per copiare i dati in uso nel disco del computer.
Il sistema operativo utilizza tutta la RAM non allocata direttamente ad altre applicazioni perché l’accesso a questa memoria è più veloce dell’accesso al disco.

Disk cache

La disk cache è un tipo di memoria simile alla RAM che a volte viene integrata all’interno del disco rigido del computer. Quando è presente viene utilizzata per caricare i settori del disco contigui a quelli richiesti, evitando lo spostamento della testina di lettura e velocizzando l’operazione di lettura.

Web cache

La web cache è una parte del disco utilizzata del web browser (Chrome, Edge, Firefox) o da un server proxy (→ cos’è un server proxy) per salvare le pagine Internet caricate mentre si naviga nel web.
La web cache viene utilizzata per salvare le informazioni necessarie alla visualizzazione della pagina web. Questo allo scopo di ridurre il tempo di accesso nel caso in cui l’utente volesse nuovamente visualizzare la stessa pagina. In questo caso non tutte le informazioni necessarie saranno già memorizzate nella web cache.