Esistono due classi principali di cache, la cache di lettura e la cache di scrittura. Una cache di lettura è uno strumento che fornisce un accesso rapido a dati che altrimenti sarebbero lenti da accedere. Una cache di scrittura è uno strumento che offre l'illusione di velocità di scrittura elevate, nascondendo generalmente all'utente la vera velocità lenta di un dispositivo di memoria.
Struttura di una cache
In genere, una cache viene memorizzata un livello di memoria inferiore rispetto ai dati effettivi. Tuttavia, i dati di una cache possono essere ulteriormente memorizzati nella cache nel livello di memoria successivo. Esistono quattro livelli di memoria, con la cache/i registri della CPU che rappresentano il livello più basso e più veloce e l'archivio di archiviazione è il livello più alto e più lento. I livelli dal più basso al più alto sono la cache/registri della CPU, la RAM di sistema, le unità di archiviazione e l'archiviazione.
Ogni passaggio verso il basso dei livelli di memoria offre una maggiore velocità di accesso ma una capacità ridotta. La maggior parte degli utenti domestici ha solo i tre livelli di archiviazione più bassi nel mondo reale. L'archiviazione si riferisce generalmente all'archiviazione su nastro destinata all'archiviazione a lungo termine e offline. L'archiviazione può anche riferirsi all'uso di supporti di memorizzazione ottici o di altro tipo che sono stati rimossi dai dispositivi e sono mantenuti offline. È molto più probabile che questi esempi si trovino in casa, ma non sono ancora così comuni.
Nota: In una certa misura, l'archiviazione cloud potrebbe essere considerata una variante dell'archiviazione. È molto online ma non necessariamente accessibile immediatamente ed è generalmente lento da accedere. Anche i supporti rimovibili come la memoria USB si trovano in qualche modo a cavallo del confine tra l'unità di archiviazione e l'archiviazione.
Tipi di cache su disco
Una cache del disco si riferisce a qualsiasi cache su un "disco", ovvero unità di archiviazione come SSD e HDD. Esistono tre tipi di cache su disco. La cache di lettura comporterebbe la copia temporanea di alcuni dati dalla memoria di archiviazione per rendere l'accesso più rapido mentre è necessario. Una cache di scrittura potrebbe assumere la forma di una cache SLC su un SSD. Una cache I/O sarebbe generalmente una memoria flash o DRAM utilizzata per memorizzare nella cache sia le operazioni di lettura che di scrittura. La caratteristica distintiva di tutti questi è che la cache si trova sul disco stesso.
Leggi la cache del disco
La versione della cache di lettura di una cache del disco è probabilmente il tipo meno utilizzato di cache del disco. L'archiviazione, per sua stessa definizione, è raramente necessaria. I dati possono anche essere letti direttamente dai supporti di archiviazione. Il problema è la velocità. Il tempo di accesso è lento poiché i dati sono offline e richiedono l'identificazione e la connessione di un dispositivo di archiviazione adeguato. Le velocità di lettura dipendono dal supporto di archiviazione, ma generalmente saranno sufficienti per la maggior parte dei casi. Ma potrebbe non essere l'ideale per requisiti di larghezza di banda elevata come la visualizzazione di video ad alta definizione. In questi scenari, è possibile utilizzare una cache del disco di lettura per memorizzare nella cache una copia del file video su un supporto di archiviazione in grado di riprodurlo in tempo reale.
Scrivi cache su disco
Gli SSD moderni sono velocissimi e offrono velocità di lettura e scrittura incredibilmente elevate. Quello che potresti non capire è che questo non è tecnicamente vero. La maggior parte degli SSD sul mercato sono TLC, ovvero Triple Layer Cells. Ciò significa che ogni cella di memoria può memorizzare tre bit di dati. Sebbene questo offra una densità di archiviazione tre volte superiore a SLC (Single Layer Cells) raw con un bit per cella, è anche molto più lento.
Mancia: Il flash TLC è ancora veloce. È molte volte più veloce della larghezza di banda massima del bus SATA 3 utilizzato dagli HDD e dai primi SSD. Le QLC flash o Quad Level Cells sono ancora più lente, in alcuni test si comportano effettivamente più lentamente degli HDD.
La cache SLC è stata inventata per nascondere all'utente le basse velocità di scrittura. La cache SLC tratta semplicemente il flash TLC come flash SLC, consentendogli di funzionare a velocità maggiori. I dati scritti nella cache SLC vengono quindi copiati internamente nel formato TLC alla velocità consentita dalla velocità di scrittura. Questa tecnica funziona in modo eccellente, offrendo velocità crescenti che hanno reso necessario lo sviluppo di nuovi standard più veloci.
Le cache SLC, tuttavia, presentano alcuni avvertimenti. La dimensione della cache SLC è 1/3 dello spazio libero rimanente dell'SSD. Man mano che l'SSD si riempie, la dimensione della cache SLC diminuisce. Questo non è un grosso problema su grandi unità vuote, ma può essere su un SSD più piccolo o vicino alla capacità. Una volta riempita la cache SLC, l'utente vede diminuire drasticamente la velocità di scrittura poiché è esposto alla vera velocità di scrittura TLC.
Nota: Tecnicamente, se i dati devono essere scritti su supporti di archiviazione in futuro, qualsiasi disco di archiviazione potrebbe essere considerato come una cache di scrittura per i supporti di archiviazione. Tuttavia, questo significato non sarebbe generalmente assunto.
Cache su disco I/O
Gli HDD sono generalmente piuttosto lenti, anche nei loro carichi di lavoro ottimali. Per aiutare a nasconderlo il più possibile all'utente, è possibile utilizzare una cache I/O. Una cache I/O memorizza nella cache le operazioni di lettura e scrittura secondo necessità. Questa cache è in genere costituita da memoria Flash o DRAM nell'unità stessa. Le capacità sono generalmente basse, sebbene la classe SSHD o Solid State Hybrid Drive che dispone di memoria Flash offra capacità più considerevoli sebbene non paragonabili alle moderne capacità SSD.
La memorizzazione nella cache delle letture significa che l'HDD non deve trovare e quindi leggere i dati. Ciò può offrire eccellenti vantaggi in termini di prestazioni, ma solo nelle successive operazioni di lettura. La prima lettura è sempre lenta. La memorizzazione nella cache delle scritture significa che piccole operazioni di scrittura possono essere assorbite nella cache e quindi scritte sull'HDD effettivo alla velocità consentita. Questo offre velocità più elevate ma vede un grande calo delle prestazioni se la cache si esaurisce.
Una cache I/O deve bilanciare attentamente le esigenze delle funzioni di lettura e scrittura, specialmente quando è disponibile solo una piccola cache. Le cache più grandi annullano in qualche modo questo problema, sebbene i casi limite con set di dati di grandi dimensioni possano ancora sopraffare la cache flash degli SSHD più grandi.
Nota: Gli SSD possono tecnicamente utilizzare anche la loro DRAM integrata come cache I/O. Tuttavia, questo viene in genere utilizzato principalmente o esclusivamente per archiviare la tabella di conversione dell'indirizzo logico-fisico utilizzata per trovare i dati sull'SSD.
Conclusione
Una cache del disco è una cache che esiste direttamente su un'unità di archiviazione. Può assumere la forma di una cache di lettura o scrittura o di una cache I/O. Le cache di lettura in genere memorizzano nella cache i dati da un archivio di archiviazione più lento. Le cache di scrittura nascondono all'utente le basse velocità di scrittura dei dischi di archiviazione. Le cache di I/O nascondono all'utente sia la velocità di lettura lenta che quella di scrittura lenta.
Le cache sono eccellenti strumenti di usabilità, ma possono causare mal di testa agli utenti quando sono esaurite. Ciò è particolarmente vero per le cache di scrittura dinamica come la cache SLC. Poiché gli utenti non tecnici potrebbero non capire perché le loro velocità di scrittura sono così lente e quindi non essere in grado di risolverli risolvendo i problemi di capacità.