Il computer, ahimè, non esegue immediatamente i comandi,che riceve dalle persone. Per accelerare questo processo vengono utilizzati numerosi trucchi e il caching occupa un posto d'onore. Cos'è? Cosa sono i dati memorizzati nella cache? Come si svolge effettivamente questo processo? Che cosa sono i dati memorizzati nella cache in uno smartphone Samsung, ad esempio, ed è diverso da ciò che è in un computer? Passiamo a ottenere le risposte a queste domande.
Che cos'è una cache?
Usa il processo
Aggiornamento dei dati
Quando viene utilizzato, ad esempio, con un browser webla cache locale viene controllata per trovare una copia della pagina. Dati i limiti di questo tipo di memoria, in caso di mancato intervento, si decide di scartare alcune informazioni per liberare spazio. Vari algoritmi preventivi vengono utilizzati per decidere cosa verrà sostituito. A proposito, se parliamo di cosa sono i dati memorizzati nella cache su Android, per la maggior parte vengono utilizzati per lavorare con immagini e dati dell'applicazione.
Politica di registrazione
- Registrazione immediata. Ogni modifica viene registrata in modo sincrono nella memoria principale.
- Ritardato o writeback.I dati vengono aggiornati periodicamente o su richiesta del cliente. Per monitorare se è stata apportata una modifica, viene utilizzata una bandiera con due stati: sporco o modificato. In caso di mancato intervento possono essere effettuate due chiamate, dirette alla memoria principale: la prima serve per scrivere i dati che sono stati modificati dalla cache e la seconda serve per leggere l'elemento richiesto.
Può essere che le informazioni inil buffer intermedio diventa irrilevante. Ciò accade quando i dati nella memoria principale cambiano senza apportare modifiche alla cache. Per la coerenza di tutti i processi di modifica, vengono utilizzati i protocolli di coerenza.
Sfide moderne
Sincronizzazione dei dati tra diversi buffer
La cache è utile quando ce n'è una sola, ma come mantenere l'efficacia di questa tecnologia se ce ne sono molte? La coerenza del buffer risolve questo problema. Sono disponibili tre opzioni per lo scambio di dati:
- Inclusivo. La cache può comportarsi come preferisci.
- Esclusivo. Sviluppato per ogni caso specifico.
- Non esclusivo. Standard diffuso.
Livelli di memorizzazione nella cache
- Cache L1. Il livello di cache più veloce è il primo.In effetti, fa parte del processore, poiché si trova su un die e appartiene ai blocchi funzionali. Di solito è diviso in due tipi: istruzioni e cache di dati. La maggior parte dei processori moderni non funziona senza questo livello. Questa cache funziona alla frequenza del processore, quindi è possibile accedervi ad ogni ciclo di clock.
- Cache L2.Di solito si trova insieme al precedente. È un ricordo condiviso. Per scoprirne il valore, è necessario dividere l'intero volume allocato per la memorizzazione nella cache dei dati per il numero di core nel processore.
- Cache L3. Cache dipendente più lenta ma più grande. Di solito più di 24 MB. Utilizzato per sincronizzare i dati provenienti da diverse cache L2.
- Cache L4.L'uso è giustificato solo per mainframe e server multiprocessore ad alte prestazioni. È implementato come un microcircuito separato. Se fai una domanda su cosa sia il data caching in uno smartphone Samsung e stai cercando questo livello, posso dire che hanno avuto fretta per 5 anni.
Associatività della cache
Questa è una caratteristica fondamentale.L'associatività dei dati memorizzati nella cache è necessaria per visualizzare la segmentazione logica. A sua volta, è necessario perché l'enumerazione sequenziale di tutte le linee disponibili richiede dozzine di cicli di clock e nega tutti i vantaggi. Pertanto, viene utilizzato un legame rigido delle celle RAM ai dati della cache per ridurre il tempo di ricerca. Se confrontiamo buffer intermedi che hanno lo stesso volume, ma associatività diversa, quello con una grande associatività funzionerà meno rapidamente, ma con un'efficienza specifica significativa.