
La memoria cache Non è sempre stata presente nella CPU. Infatti, i processori più vecchi non ne avevano una. Successivamente, sono comparsi moduli simili agli odierni moduli RAM, che permettevano di aggiungere facoltativamente una cache per migliorare le prestazioni della CPU, in modo simile a come sono stati aggiunti i coprocessori matematici, o FPU.
Nei microprocessori attuali, la memoria cache è stata integrato all'interno del chip stesso, ormai parte quasi inseparabile di essi, e con diversi livelli per trarne il massimo beneficio. In questo tutorial, imparerai di più su questo tipo di memoria e sulla sua importanza.
Cos'è la cache?
Prima di iniziare a spiegare cos'è la memoria cache, vorrei fare un breve riassunto. come funziona una CPU, così puoi comprenderne meglio le prestazioni. In parole povere, la CPU non è altro che una "calcolatrice" che elabora una serie di operazioni con bit di dati.
È il software, il programma, che indicherà quali calcoli la CPU dovrà eseguire. Il programma è composto da una serie di dati e istruzioni. Tutti questi dati e istruzioni sono memorizzati nella memoria secondaria (disco rigido) verranno inviati alla memoria principale (primaria). Da lì, verranno acquisiti dalla CPU e inseriti nella sua memoria interna. L'istruzione indicherà cosa la CPU dovrà fare con i dati. Ad esempio, potrebbe essere un'istruzione di addizione. Ecco come viene eseguito il software...
In breve, i primi computer utilizzavano un singolo livello di memoria lenta (un tipo di ROM o memoria magnetica) da cui recuperare istruzioni e dati. Ma con l'evoluzione e la velocità delle CPU, si sono verificati importanti colli di bottiglia dovuti alla lentezza di questa memoria. Ecco perché è stata introdotta una memoria buffer veloce tra la CPU e la memoria secondaria: l'ariete (SDRAM).
Nonostante ciò, la CPU continuò a evolversi più velocemente della RAM stessa, creando un ulteriore collo di bottiglia. Fu quindi sviluppata un'altra memoria, molto più veloce, più vicina al processore e posizionata tra la RAM e la CPU: la cache (SRAM).
La memoria secondaria è economica, quindi è possibile ottenere grandi capacità a un buon prezzo. Nel caso della RAM, è più veloce, ma anche più costosa della memoria secondaria. Ecco perché le capacità della memoria primaria non sono così grandi. Proseguendo lungo la scala, incontriamo la memoria cache, che è ancora più costosa e quindi ha capacità molto ridotte. Poi ci sono i registri, anch'essi estremamente costosi e limitati...
Con questa memoria cache, i core della CPU possono essere alimentati molto più velocemente, in modo che il latenze e larghezza di banda La RAM funziona in modo da non influire troppo sulle prestazioni della CPU. È un modo per fornire dati e istruzioni in modo molto più locale e rapido... In altre parole, in modo che siano più "a portata di mano".
Oggigiorno, il miglioramento della memoria secondaria ha significato un grande balzo in avanti. Mi riferisco al nuovo SSD o dischi rigidi a stato solidoTuttavia, sono comunque più lenti della RAM, quindi questi altri livelli sono comunque necessari.
Livelli di cache in un processore moderno

In un processore moderno, la cache non è presente in un unico livello, ma è suddivisa in più livelli. In genere, ce ne sono da 2 a 4. livelli o livelli (L):
- LLC (cache di ultimo livello): Questo è l'ultimo livello di memoria cache, ovvero quello "più vicino" alla RAM, quello con il numero più alto all'interno del processore. Può essere L4, L3 o L2, a seconda del livello. Ad esempio, negli attuali processori Intel e AMD, è L3. Questa memoria può raggiungere diversi megabyte ed è unificata, ovvero memorizza sia dati che istruzioni. Generalmente, questo tipo di memoria è condivisa da tutti i core, se ce ne sono diversi. Se, ad esempio, ci sono L3 e L2, L2 potrebbe essere dedicata a un solo core o condivisa da due core, e L3 li alimenterebbe tutti.
- Cache L1: Questa cache è più veloce della precedente e si trova ancora più vicino all'unità di controllo, in modo da poter recuperare le informazioni e inviarle alle unità di esecuzione più rapidamente. A differenza dei livelli superiori, la L1 ha una capacità inferiore, il che è normale, poiché più bassi sono i livelli, minore è la capacità. Ma la differenza più evidente è che in molti processori non è unificata come gli altri livelli. In questo caso, è separata in L1I e L1D, ovvero solo per le istruzioni e solo per i dati.
Perché è importante?
Bene, a questo punto avrai già un'idea del motivo per cui migliora il performanceUn esempio pratico ti aiuterà a capire meglio questo concetto. Immagina che tu (la CPU) debba andare a prendere gli strumenti (istruzioni e dati) necessari per svolgere un compito (un programma).
Non è la stessa cosa avere gli attrezzi in magazzino (memoria secondaria), piuttosto che averli in garage (RAM) o averli a portata di mano (cache). Se devi andare in magazzino o in garage, ci vorrà molto più tempo che se potessi prenderli e allungare la mano proprio accanto a te. Non è sempre così. Quando hai bisogno per la prima volta di un'istruzione o di un dato, dovrai andare in una stanza o in garage per prenderli. Ma una volta che li hai presi e li hai proprio accanto a te, sarai molto più efficiente la prossima volta che ne avrai bisogno.
La CPU, attraverso un sistema di ricerca e bug Cercherà sempre istruzioni e dati prima in L1. In caso di errore, cercherà in L2, e se anche questo non c'è, andrà in L3 (se presente). E se anche in questo caso si verifica un errore, non avrà altra scelta che cercare nella RAM, impiegando più cicli di clock. Ma se riesce, l'accesso sarà molto più veloce. Ricorda che ci vogliono meno cicli per accedere a L1 rispetto a L2, e L3 a sua volta ci vogliono meno cicli per accedere a LXNUMX, e così via.
Questo è l'obiettivo della cache, ridurre la latenza di accesso alla memoria. Insisto, sono riassumendo molto Ecco come funziona. In pratica, ecco come fa sì che le tue app e i tuoi giochi funzionino molto più velocemente.

