Cache SLC: utilizzo e caratteristiche negli SSD NVMe

cache SLC

Uno dei termini riferiti alle prestazioni degli SSD NVMe di cui si è sentito parlare di più negli ultimi mesi è SLC Cache. Ecco perché abbiamo preparato questo articolo per te in modo che tu possa capire come funziona e quali vantaggi porta alle prestazioni delle nostre unità a stato solido ad alte prestazioni.

L'archiviazione dei dati basata sulla tecnologia NAND Flash ha portato a un cambio di paradigma in vari settori dell'informatica, dalle schede di memoria per dispositivi palmari a SSD NVMe su PC. È proprio in quest'ultimo caso che uno dei colli di bottiglia storici della storia è stato eliminato non avendo le limitazioni sia di latenza di accesso che di banda degli hard disk tradizionali, però non esiste una tecnologia perfetta che funzioni al 100% e ci sono sempre elementi che lo appesantiscono, costringendo gli ingegneri a dover trovare e implementare soluzioni.

NAND Flash e celle di memoria

Tipi Celda NAND Flash SLC TLC MLC QLC

La memoria flash NAND è un tipo di NVRAM o non volatile RAM, questo significa che il suo funzionamento è lo stesso di una RAM convenzionale, ma con la differenza che i suoi dati non vengono persi quando il sistema smette di ricevere alimentazione. Il compromesso per avere questa capacità è avere un numero limitato di scritture di memoria nel suo ciclo di vita. Sebbene i vantaggi sotto forma di prestazioni quando si tratta di accedere allo storage valgano la pena, non invano, ogni sistema informatico è veloce solo quanto la sua parte più lenta, che di solito è lo storage, lo lascia.

Ogni bit di memoria in una memoria RAM è immagazzinato in quelle che vengono chiamate celle di memoria e nelle prime memorie NAND Flash utilizzate per SSD storage, è stato utilizzato un bit per cella, il che ha reso lo storage molto costoso. La soluzione? Che ogni cella possa contenere dati di 2 bit ( MLC ), 3 bit ( TLC ) o fino a 4 bit ( QLC ). Il problema aggiunto? Più bit per cella, più velocemente si degradano e quindi meno vita utile. Tienilo a mente perché è la base per comprendere SLC Cache.

Le celle TLC e QLC non si limitano a degradarsi in termini di durata

SSD NVMe

Una volta arrivato a questo punto, molti di voi avranno in testa l'idea che le memorie NAND Flash di tipo MLC, TLC e QLC abbiano più capacità di archiviazione, anche se di durata inferiore, ma la larghezza di banda di tutte è la stessa e quindi il tipo di cella non varia le prestazioni. Bene, vi diciamo che le cattive notizie non finiscono qui, ma che anche la velocità di accesso si riduce.

Quando il CPU fa una richiesta di accesso a un indirizzo di memoria nell'SSD NVMe, viene ricevuto dal controller flash che cercherà i dati in memoria per trasmetterli tramite l'interfaccia PCI Express o SATA, a seconda di quale si utilizza. l'unità, ma il controller flash accede direttamente ai chip NVMe dell'unità per manipolare i suoi dati e non lo fa attraverso le interfacce che abbiamo menzionato.

Il modo per memorizzare i dati nella memoria NAND Flash è attraverso i cambiamenti nella tensione, una memoria SLC richiede solo 1 voltaggio, un MLC richiede 3 , ma una TLC va a 7 e se andiamo a un QLC la cosa va a 15 . Bene, più alto è il numero, più tempo ci vuole per eseguire un'operazione di lettura e scrittura. E quando inizia a essere un problema? Bene, dalla memoria TLC e se guardi il numero di unità SSD NVMe nei negozi, vedrai che usano tutte queste celle almeno oggi.

La soluzione: cache SLC

Cache SLC NVMe
La prima cosa da tenere a mente è che la cache SLC non è la stessa della cache DRAM che c'è anche in alcuni SSD NVMe, poiché non stiamo parlando della memoria volatile che si trova tra il controller flash e l'interfaccia PCI. Espresso dello stesso, poiché la cache SLC è anche nelle unità DRAM-Less. In generale, nonostante ci siano delle eccezioni che vedremo in seguito, all'interno di ogni chip NVMe sono presenti due tipi di memoria NAND Flash:

  • Una memoria TLC o QLC per l'archiviazione dei dati
  • Una memoria SLC molto più piccola che funge da cache.

La prima cosa che dobbiamo capire è che una cache non è altro che una memoria molto più vicina a un processore e quindi con una latenza inferiore che memorizza temporaneamente i dati. Se esaminiamo quanto vi abbiamo detto, abbiamo le seguenti premesse:

  • Le celle SLC hanno una durata di vita molto più lunga delle TLC e persino più lunga delle QLC, quindi impiegano molto più tempo a degradarsi.
  • La velocità di accesso delle celle SLC è molto più elevata.

Pertanto, la soluzione è che i dati vengano temporaneamente scaricati nella memoria SLC, che funziona come una cache del buffer in modo che un meccanismo di copia dei dati modifichi quindi gli indirizzi di memoria nel TLC.

Prestazioni della cache SLC

SLC MLC TLC voltaje cache
Veniamo alla parte più importante, la cache SLC ha una dimensione fissa e questo significa che, se la utilizziamo per inviare o ricevere piccoli dati, le sue prestazioni verranno mantenute, ma se ad esempio vogliamo fare una copia sequenziale dei dati sotto forma di un blocco di dati molto grande non appena l'SLC è pieno, le prestazioni diminuiranno.

Ecco perché, sebbene possiamo avere due SSD NVMe nelle nostre mani con la stessa memoria, interfaccia di accesso e persino tipi di celle, cioè praticamente gli stessi, possono avere prestazioni completamente diverse. La ragione? Ovviamente la cache SLC che può differire per dimensioni.

La cache SLC non viene utilizzata solo per memorizzare dati con accesso sequenziale, ma anche casuale e bisogna tenere in considerazione che i programmi quando accedono alle informazioni lo fanno con alta ricorsione e in un blocco delimitato di informazioni.

Tipi di cache SLC

Tipi Caché SLC
Esistono due modi per gestire la cache SLC, che dipenderanno dall'algoritmo per questo che il produttore ha implementato nel controller flash. Piuttosto, si riferisce a quanto spazio al suo interno può essere allocato per l'archiviazione temporanea.

  • Nella cache statica lo spazio di archiviazione è fisso e non può variare di dimensioni.
  • Nella cache dinamica la dimensione allocata è variabile.

Come è possibile la cache dinamica se il numero di celle SLC è fisso? Il problema è utilizzare le celle NVMe TLC come se fossero SLC, ovvero farle memorizzare un bit in ciascuna anziché 3. Quindi ci sono alcuni chip NVMe che riallocano parte dello spazio di archiviazione come cache.

Il vantaggio della cache dinamica è che la dimensione della cache SLC non è esaurita, ma c'è il rischio che sempre più celle TLC non vengano più utilizzate per l'archiviazione, influendo sulla capacità complessiva di questa di archiviare i dati. Per questo motivo, la maggior parte dei sistemi di cache SLC dinamici fa uso di sistemi che limitano la dimensione massima di questo tramite il firmware.