1. Cosa è il caching?

 

Le tecnologie di caching hanno sempre avuto un ruolo fondamentale nello sviluppo dei sistemi informatici, consentendo di accelerare le prestazioni dei sistemi di memorizzazione senza la necessità di dover utilizzare unità più veloci e costose.

La cache opera come un livello intermedio nella gerarchia dei sistemi di memorizzazione, archiviando i dati più utilizzati o quelli di ultimo accesso in modo da averli disponibili senza doverli recuperare da altri dispositivi potenzialmente più lenti.

Le cache sono generalmente di piccole dimensioni se comparate alle unità che devono essere accelerate e vanno dai pochi kB come quella di primo livello di una CPU, ad alcuni GB per quelle dedicate ai sistemi di memorizzazione secondaria.

Le tecnologie utilizzate per implementare le cache variano in base alle prestazioni che si vogliono ottenere e alla complessità di integrazione delle stesse.

Nei controller RAID, ad esempio, sono generalmente realizzate con delle memorie RAM, eventualmente protette da una batteria tampone, mentre nelle moderne soluzioni ibride come l'OCZ RevoDrive Hybrid sono costituite da memorie NAND Flash.

L’evoluzione della tecnologia di produzione delle memorie NAND ha consentito a molti produttori di lanciare sul mercato la proprie soluzioni SSD fornendo agli utenti finali prestazioni molto elevate e irraggiungibili per gli Hard Disk meccanici tradizionali, ma la cui diffusione, come già accennato nella precedente pagina, è ancora limitata da un costo per GB non ancora alla portata di tutti.

Se andiamo ad analizzare l’utilizzo tipico di un PC o un Server, noteremo come la maggior parte dei dati non vengono mai elaborati o vi si acceda piuttosto raramente, altri, invece, sono di uso frequente come i programmi più utilizzati o i file del sistema operativo.

Sulle base di questa osservazione sono state create svariate tecnologie in grado di precaricare i dati ad accesso più frequente nella memoria RAM (es. SuperFetch di Windows Vista e Windows 7) con lo svantaggio, però, di perdere tutti i dati ivi memorizzati allo spegnimento della macchina.

Le tecnologie di caching basate sulle memorie NAND abbinano elevate prestazioni alla possibilità di mantenere i dati in memoria anche dopo lo spegnimento della macchina, così da non dover ripopolare la cache ad ogni riavvio e consentendo di scrivere i nuovi dati sulle NAND prima di trasferirli al più lento Hard Disk.

Gli algoritmi alla base dei vari software di caching presenti sul mercato analizzano le abitudini dell’utente, “apprendendo” quali siano i dati più utilizzati ed eventualmente integrando queste informazioni con pattern predefiniti dal produttore per velocizzare, ad esempio, il boot o l’ibernazione del sistema.