NAND SLC, MLC e TLC; facciamo chiarezza
Si riporta sempre questa strana dicitura nelle specifiche tecniche per gli SSD: SLC, MLC e ora compare anche TLC. Ma cosa indicano e che differenze ci sono? Queste voci sono rispettivamente l’acronimo di Single Level Cell, Multi Level Cell e Triple Level Cell e stanno a indicare il numero di bit che la singola cella è in grado di registrare. Nella corrispondenza bit to bit che è necessario memorizzare, si trova quindi il rapporto 1:1 per le SLC, 1:2 per le MLC e 1:3 per le TLC. Il problema per quest’ultimo tipo di cella è che non c’è un multiplo di 3 che sia una potenza di 2 (2, 4, 8, 16, 32, 64, 128, 256…) che sono poi tipicamente le capacità degli SSD. Per una TLC, quindi, si sfrutterà la stessa capacità di una MLC, per scendere a un numero in potenza di 2, ma di conseguenza serviranno meno transistor e il wafer di stampa sarà più piccolo, con costi di produzione inferiori. Per questo stesso motivo le capacità proposte per l'840 (120, 250 e 500 GB) non rispecchiano quelle proposte per l'840 PRO (128, 256 e 512 GB).
Inoltre, mentre una SLC avrà due stati di tensione (0 e 1), MLC ne avrà quattro (00, 01, 10, 11) e TLC otto (000, 001, 010, 100, 011, 101, 110, 111). Con più livelli di tensione da controllare, per l’accesso alle letture casuali ci vorrà più tempo; per le MLC si impiegherà il doppio rispetto alle SLC e per le TLC il doppio rispetto alle MLC. Questo fattore comprometterà anche la vita utile della cella; minori sono i bit per cella e maggiore sarà la tollerabilità della tensione tra i comandi. Ad esempio, se per passare da un dato valore (0) a un altro valore (1) la cella SLC ha un gap di 6V di impulso, la cella MLC, tra due dei quattro valori possibili, avrà 3V di “gioco” e la TLC solamente 1V. L’ossido di silicio con il tempo tende a consumarsi e se si ipotizza la perdita di 1V nel gap, si intuisce subito che la cella SLC è quella che meno soffre l’usura perché ha un maggiore “spazio” disponibile tra i segnali. Il modulo ECC, acronimo di Error Correction Code, è chiamato a svolgere un compito di maggiore importanza verso le celle TLC perché ci sono tre bit da correggere invece di due o uno.
Sarà dunque chiaro adesso perché i sistemi server utilizzano celle di tipo SLC, quelli consumer le MLC e infine, per la fascia più bassa e in modo da diminuire i costi, vengono scelte le TLC.
Abbiamo spiegato perché le celle TLC siano quelle con le prestazioni più basse, le più economiche e con minore vita utile; ma rappresentano davvero una scelta così infima queste celle TLC?
Già all’aumento della densità del processo produttivo della cella, con il passaggio da 3xnm a 2xnm, il numero di cicli è stato ridotto in modo non del tutto trascurabile; le MLC sono passate da 5.000 cicli di supporto a 3.000 cicli, dopo essere riusciti ad affinare la produzione e con l’aiuto di sistemi (wear leveling) atti ad aumentare la vita utile della cella. Le celle TLC a 2xnm dovrebbero essere in grado di compiere circa 1.000 cicli. Dal mero punto di vista matematico, condizione che differisce da una stima ottenibile in via sperimentale, possiamo dire che per arrivare alla fine utile di celle TLC da 1.000 cicli, dobbiamo scrivere 256.000 GiB per NAND TLC da 256GiB. Attenzione con TiB e GiB si indicano rispettivamente 2^30 e 2^20 e byte non 10^12 e 10^9 byte che invece corrispondono ai simboli di TB e GB. Tali unità di misura sono introdotte dal momento che per le memorie flash si utilizzano sistemi di tipo binario che sono potenze del 2. Supponendo di scrivere 100GiB di dati al giorno, un valore, decisamente elevato, arriveremo a un totale di 36.500 GiB in un anno, ben lontano dai 256.000 GiB. 36.500 GiB all’anno corrispondono a 143 cicli per cella e per raggiungere la fatidica soglia di 1.000 occorrono circa 7 anni. Il tempo stimato per memorie da 128GiB viene dimezzato, 3 anni e mezzo, ma parliamo comunque di un carico di lavoro molto intenso. Il discorso si complica se consideriamo che quando la cella inizia a deteriorarsi più scritture potrebbero essere necessarie prima di ottenerne una corretta.
In fin dei conti possiamo ritenere questo fattore pericoloso? Dipende probabilmente dall’utilizzo che ne facciamo. In generale per un utilizzo normale si direbbe che nessuno scrive mai 100 GiB di dati al giorno. In realtà in casi di applicativi pesanti che vanno a saturare la RAM, effettuando lo swap su disco si potrebbe raggiungere questi valori. In questi casi è forse opportuno fare attenzione e disabilitare lo swap su disco, coadiuvando il sistema con adeguati quantitativi di memoria RAM (ormai decisamente economica).