Interpretare il computer come un elemento unico e indivisibile è solitamente la cosa più normale per l'utente medio, ma sullo sfondo troviamo un'ampia lista di sistemi e risorse molto complessi che lavorano in sinergia per garantire le massime prestazioni. Uno dei più importanti è la memoria cache, presente in processori, dischi rigidi, unità a stato solido e altri componenti. Vuoi sapere cos'è e come funziona la memoria cache? Continua a leggere.
Velocità!
Più veloce. Tutto deve funzionare più velocemente, impiegare meno tempo, anticipare l'utente. Le nostre esigenze sono aumentate nel corso degli anni, e se c'è un problema di prestazioni, gettiamo più hardware in quella direzione. MS-DOS 6.22 arrivò sugli scaffali tra aprile e giugno 1994, e da quel momento cominciammo a lasciarci alle spalle la famosa base di 640 kilobyte di RAM. Oggi, un computer ha bisogno di 8 gigabyte di memoria come minimo assoluto, e ormai si consigliano 16 GB per quasi tutti gli ambienti.
Ma aggiungere più core o memoria non racconta tutta la storia. Ci sono altri giocatori molto importanti che possono aumentare le prestazioni in modo spettacolare, o lasciare un computer in ginocchio con la loro assenza. Il caso della memoria cache è uno dei più citati. Cos'è e come funziona la memoria cache?
Cos'è la memoria cache?
In termini semplici, la memoria cache è un tipo di memoria temporanea che si occupa di memorizzare i dati per consegnarli all'utente con maggiore velocità in futuro. Immagino che l'hai vista in azione: per esempio, se apri un programma, lo chiudi e subito lo riapri, noterai che il secondo caricamento è molto più veloce grazie all'intervento della memoria cache e della RAM in generale.
L'idea è ridurre i tempi di accesso. Se leggi ed esegui costantemente gli stessi file, perché leggerli dall'unità di archiviazione o da una memoria più lenta, quando un pizzico di cache può accelerare l'intero processo? Un altro aspetto molto interessante è che la memoria cache si presenta come una soluzione software e/o hardware. Senza andare troppo lontano, il classico SuperFetch (ora SysMain) utilizza la RAM del sistema come una cache gigante per precaricare le applicazioni, e dal lato hardware abbiamo cose come la cache del processore e la cache DRAM negli SSD.
Cache nella CPU
Il processore attira l'attenzione per avere diversi livelli di memoria cache. Una memoria cache molto grande ha un eccellente tasso di successo o hit rate, ma paga il prezzo con una latenza aggiuntiva. I molteplici livelli di cache cercano di compensare questo, iniziando con cache piccole ma estremamente veloci, seguite da cache più lente.
Questa configurazione consente ai core di elaborare i dati a maggiore velocità e, se possibile, evitare il collo di bottiglia dell'accesso alla memoria generale. Questo problema è molto più antico di quanto pensiamo: tutte le frecce puntano a Sir Maurice Vincent Wilkes, scienziato britannico dell'Università di Cambridge, come inventore del concetto di memoria cache nel 1965, battezzata «memoria schiava» all'epoca.
Un processore relativamente moderno come l'Intel Core i7-10700F ha tre livelli di memoria cache: L1 suddivisa in 8 x 32 kilobyte per dati e altri 8 x 32 kilobyte per istruzioni, una cache L2 di 8 x 256 kilobyte, e infine una memoria cache L3 condivisa attraverso tutti i core, con un totale di 16 megabyte. Ora, questo non è sempre stato così: i vecchi 486 e Pentium offrivano solo cache L1, e per accedere a una cache L2 dovevamo dipendere dalla scheda madre, con chip integrati o uno zoccolo di espansione.
Casi storici e attuali
Quanto è importante la memoria cache nei processori? L'originale Celeron è un esempio lampante: Intel decise di lanciarlo sul mercato come opzione economica tagliando la cache L2, e il risultato fu una CPU anemica che dovevamo overcloccare al massimo per ottenere qualcosa di decente.
Poco dopo debuttarono i Celeron 300A «Mendocino» con 128 KB di cache L2 integrata. Quei 128 kilobyte furono più che sufficienti per raddoppiare le prestazioni del chip precedente e trasformare il Celeron 300A in uno dei migliori processori nella storia dell'overclocking.
Valutare il suo impatto sui processori moderni è più complicato, ma non impossibile. Infatti, i ragazzi di Hardware Unboxed hanno pubblicato un eccellente video confrontando l'aumento della cache L3 con lo stesso numero di core e thread. In sostanza, i processori Intel Core i9-10900K (10C/20T), Core i7-10700K (8C/16T) e Core i5-10600K (6C/12T) sono stati costretti a lavorare con la stessa configurazione del Core i3-10105F (4C/8T). La differenza nella dimensione della cache L3 stabilisce un certo vantaggio per i chip superiori, tuttavia il beneficio non si estende a tutti i giochi.
(N.d.R.: Video in inglese, ma le tabelle sono la parte più importante)
Cos'è la memoria cache: In sintesi
La memoria cache è una scorciatoia, un supplemento che ci aiuta ad accedere a tutti quei dati usati di frequente, in modo più veloce ed efficiente. Averne di più è meglio, ma la sua struttura deve essere quella giusta. Vuoi saperne di più sulla memoria cache? Il riepilogo di HWiNFO (che serve anche a misurare la temperatura e le tensioni sul tuo PC) mostrerà tutte le informazioni sul tuo processore, questo elenco aggiornato rivela i modelli di SSD con cache DRAM integrata, e se hai dubbi su SuperFetch sul tuo computer, puoi sempre disattivarlo. Buona fortuna!