Cosa c'è di nuovo?
HWReload

Registrati e partecipa alle attività del forum

WIKI SSD: differenti componenti - differenti comportamenti

Liupen

Moderatore
Staff
Iscritto dal:
23 Dicembre 2017
Messaggi
533
Molti di voi ora sanno che ad esempio un SSD DRAM-less và meno veloce di un SSD con il suo chip di memoria saldato, o che gli SSD con celle di tipo QLC durano di meno e vanno meno veloci dei corrispettivi con celle TLC.
Saperlo, aiuta a scegliere un prodotto migliore a prezzo più conveniente - che è quello che importa maggiormente - ma spesso le ragioni che stanno alla base, non sono chiare o peggio sono travisate dal "sentito dire".

In questo breve scritto, vi propongo un approfondimento di concetti che poi sono semplici, intuitivi.


1630071875559.png



Partiamo dalla gestione della memoria.
Si, fa un po ridere che un device di storaggio, abbia bisogno di gestire la memoria, ma è il paradosso degli SSD che differentemente dagli HDD, meccanici, hanno una complessità decisamente maggiore.

Nell'SSD c'è come sapete un controller (CPU) e dei chip di memoria NAND. Opzionale è la presenza anche di un chip di memoria DRAM.
La DRAM è una componente che copre anche il 10% del costo di produzione di un SSD, quindi toglierla significa un buon passo verso i tagli dei prezzi al consumatore. Infatti così è.
Ma se è possibile creare degli SSD totalmente senza DRAM, perchè non viene fatto e basta? La risposta la conoscete: un SSD fatto così è più lento.... parecchio più lento.
Perchè?
La DRAM - erroneamente a quanto pensate o vi hanno detto - non memorizza app o dati vostri, ma serve a parcheggiare i dati di funzionamento cui il controller in quel momento stà lavorando.
Un passo indietro: i chip di memoria (fatti di celle NAND Flash) costituiscono nel loro insieme un grosso scacchiere immacolato. Se dall'SSD zoomiamo in esterno incontriamo il controller (che gestisce lo scacchiere) e più ancora in esterno il sistema operativo e... noi che smanettiamo come dei dannati su mouse e tastiera.
Il sistema operativo crea una propria idea della memoria disponibile (ovviamente indipendentemente se nel pc è montato un hdd, un ssd sata, nvme, quantico); crea quindi una sua scacchiera virtuale dove andare a scrivere i dati e dove sa come andare a recuperare per leggerli.
Il controller dell'SSD che fà? Mette insieme le due scacchiere creando delle associazioni: ad ogni casella della memoria nel chip, vera quindi, associa una casella della scacchiera virtuale del sistema operativo. Le associazioni non sono fisse ma mutevoli.
Questa tabella delle corrispondenze (mappatura) tra memoria fisica e host (il sistema operativo) è importantissima per la velocità dell'SSD, come vedremo, ma non è l'unica cosa che transita nella DRAM dell'SSD.
Quando il sistema operativo memorizza i dati, questo si traduce nelle seguenti attività sull'SSD:
lettura tabella mappatura -> cancellazione delle celle/spostamenti blocchi -> scrittura sulle celle -> aggiornamento tabella mappatura
Quando invece legge:
lettura tabella mappatura -> ricerca dei dati -> messa dei dati a disposizione da parte del controller

La lettura e l'aggiornamento della tabella di mappatura, si evince che è un'operazione continua e che prende del tempo, o meglio crea latenza, cioè ritardo, tra quando diamo da fare l'operazione al sistema operativo a quando questa viene svolta.

Se la tabella è su una DRAM, molto veloce, abbiamo il minimo della latenza ma negli SSD senza DRAM la tabella è memorizzata per la maggior parte (il controller ha una piccola cache) in una porzione nascosta del chip sulle celle NAND, che sono... lente rispetto alla DRAM.
Senza la velocità di lettura o di aggiornamento della mappatura, l'SSD, con maggiore latenza, è molto meno veloce, soprattutto se:
  1. diamo dei piccoli comandi continuativi (la latenza cresce progressivamente)
  2. lo usiamo intensamente (il lavoro viene svolto esclusivamente sulle celle NAND perche la cache del controller è molto molto piccola)
  3. è troppo pieno

Quindi, ora avete idea del perchè, come succede e quali sono le conseguenze.

Oltre alla categoria degli SSD con DRAM e quella dei DRAM-less, ultimamente ne è comparsa una terza: quella degli SSD che fanno uso della HMB.


Alcuni SSD NVMe supportano la funzione Host Memory Buffer e possono prendere in prestito una parte della DRAM del sistema host per questa cache.
La memoria di sistema è veloce quanto quella saldata sull'SSD quindi questi tipi di SSD sono più veloci degli SSD DRAM-less, ma la latenza non è minima, poichè l'operazione di comunicazione tra controller e CPU/RAM è un passaggio supplementare, oltre a tenere impegnata una porzione di controller stesso.


1630069784503.png



Un altra componente che ha un peso enorme sulle prestazioni di un modello di SSD è la tipologia delle celle NAND.
In particolare stò pensando alla differenza che viene messa in evidenza tra celle di tipo TLC (3bit MLC) e celle di tipo QLC (4bit MLC).

Si dice che le celle QLC durano meno delle celle TLC, ed è un dato incontrovertibile, oggettivo. QLC significa usare lo stesso pezzettino di silicio di pochi micron in maniera più intensiva.

Guardando invece alle prestazioni, sia in scrittura che in lettura (anche se per motivi diversi), un SSD con celle QLC è "teoricamente" più lento - perchè le celle vengono scritte e lette con una maggiore latenza - ma per usi home o comunque non intensivi, questa differenza non è quasi mai percepibile.

Vediamo dunque le cause che stanno alla base di questa maggiore latenza.

La cella NAND è un pezzo di silicio infinitesimo, indipendentemente dal tipo di tecnologia che l'ha prodotto. Ognuno di questi pezzi può essere impilato in colonne.
Si è partiti nel 2015 impilandone 32 (piani=layer)... oggi si è raggiunta una densità di oltre 120.
Il silicio è un ottimo semiconduttore, ovvero se attraversato da corrente elettrica cambia il proprio stato (perde o torna ad acquistare i suoi elettroni).
Lo spostamento di elettroni dal silicio ad un punto dove gli elettroni possono essere misurati, costituisce il modo in cui una cella memorizza.

Se ad esempio una cella TLC, che memorizza 3 bit (valori), ci impiega 1 (valore senza unità di misura), la stessa cella QLC che deve memorizzare 1bit in più, ci impiegherà 1+x.
Il maggior tempo nell'eseguire la scrittura è dovuto al maggior lavoro del controller, che non solo deve cancellare la cella e liberare i blocchi per la scrittura, ma anche controllare poi cosa è stato memorizzato.
Un SSD con celle TLC pùò arrivare a scrivere direttamente sulle proprie celle con una velocità di 200-300MB/s, ma un SSD con celle QLC difficilmente supera i 100 MB/s.

Per la lettura, le ragioni della maggiore latenza degli SSD QLC sono simili. Per leggere una cella QLC un controller impiega di più che per leggere una cella TLC... semplicemente perchè deve leggere e interpretare delle soglie di valori sulla carica elettronica molto più piccoli e con una sensibilità e accuratezza maggiore. Più dati devo richiamare dall'SSD, più si allungano i tempi di latenza (quindi diminuisce la velocità).

Come è possibile che gli SSD con celle QLC mantengano delle prestazioni accettabili?

Sfruttando una cache già utilizzata negli SSD di tipo TLC per mantenere le prestazioni all'altezza dei modelli MLC che li hanno preceduti.
La cache si crea forzando le celle NAND a memorizzare meno bit di quelli per cui sono nate. In questo caso un SSD di tipo QLC che memorizza solitamente 4bit per cella viene compartimentato e, una porzione viene usata memorizzando 2 soli bit per cella, velocizzando la scrittura e - mantenendo questi dati utili li dove si trovano - velocizzando la loro lettura.

1630076574404.png



Il lato negativo dell'uso della cache è che lo spazio disponibile è sempre limitato, e ciò vuol dire che nello scrivere, terminata la cache, le prestazioni crollano improvvisamente ai livelli di un HDD.
La cache di un SSD di questo tipo è sui 40GB e mai minore di 30GB, una grandezza considerevole!


Avendo bisogno continuativamente di una cache ma nello stesso tempo non sapendo quanto spazio di quella cache si utilizza in ogni istante di uso, sono nate le cache dinamiche (prima erano prevalentemente fisse, quindi più veloci).
La cache dinamica richiede più lavoro da parte del controller, e aumenta la latenza dell'operazione di scrittura.
Inoltre un SSD con celle QLC e cache dinamica necessita di avere molto spazio libero, a disposizione.

Quindi, tirando le somme: gli SSD con celle QLC sono sicuramente meno longevi degli altri.
Di base poi sono più lenti MA, se non si usano professionalmente sono indistinguibili dai TLC.
Gli SSD QLC non si devono riempire totalmente pena un crollo delle prestazioni. Meglio quindi utilizzare SSD con celle QLC dai 2TB in su, cosa che permette di avere una cache dinamica grande e probabilmente sempre sfruttabile.
 
Ultima modifica:
Top