3. Quale efficienza e durata per le NAND Flash?


A rendere, sulla carta, in qualche modo più complesse le valutazioni sulla scelta di soluzioni MLC e TLC sviluppati con geometrie costruttive più ridotte, bisogna anche considerare la circostanza negativa che interessa la riduzione, nel tempo, della durata di esercizio dei cicli program/erase, in conseguenza diretta alle innumerevoli operazioni di cancellazione e scrittura su vasti numeri di celle.


Le memorie NAND Flash, facciamo il punto ... 3. Quale efficienza e durata per le NAND Flash? 1

Figura 19: gli elettroni intrappolati nello strato di ossido interferiscono col livello di carica


Ciò che accade è infatti una progressiva usura dell'ossido componente il semiconduttore, la quale fa si che gli elettroni, in una percentuale col tempo sempre maggiore, possano rimanere bloccati nel gate flottante anziché fluire nel componente stesso.

Questo deleterio decadimento continuerà inesorabilmente a progredire fino a che, in buona sostanza, i valori di tensione iniettati al momento della programmazione (scrittura) non andranno più a corrispondere in fase di rilevazione (lettura) alle corrispettive soglie prestabilite, falsando così a livello logico la coerenza dei dati sottostanti.


Le memorie NAND Flash, facciamo il punto ... 3. Quale efficienza e durata per le NAND Flash? 2

Figura 20: decadimento dei valori di tensione in seguito all'usura dello strato di ossido


Le stime dei produttori portano a quantificare la loro durata in un numero decisamente ridotto di cicli, che in genere corrisponderanno ad 1/3 delle MLC: le moderne TLC sono infatti accreditate di ~1000 cicli di scrittura, rispetto ai ~3000 delle MLC, mentre le SLC dominano in assoluto nella durata funzionale con i ~100.000 cicli utili dei chip migliori.

I produttori hanno quindi dovuto obbligatoriamente lavorare, di pari passo, su più fronti per riuscire ad innalzare le prestazioni degli SSD e sopperire a tutta questa serie di circostanze non favorevoli.

La buona riuscita è giunta a seguito dei molteplici e benefici effetti dell'evoluzione del processo produttivo che, a partire da una maggior densità a parità di superficie del wafer di silicio, hanno condotto ad una aumentata capacità di agglomerazione delle memorie in canali, die, pagine e blocchi, potendo allo stesso tempo contare sul favorevole apporto ottenuto dall'adozione di interfacce sincrone per un sostanziale incremento del bandwidth di I/O.


Le memorie NAND Flash, facciamo il punto ... 3. Quale efficienza e durata per le NAND Flash? 3

Figura 21: organizzazione delle NAND in pagine e blocchi


Di seguito vengono riportate le tabelle indicative del bandwidth raggiungibile dalle SLC e MLC con le specifiche ONFI 1.x (max 40 MB/s per canale), all'aumentare dei die e dei canali.


Performance NAND SLC (MB/s): die per canale vs numero di canali

 
lettura
scrittura
# canali
1
2
4
8
1
2
4
8
1 die
34
40
40
40
19
38
40
40
2 die
68
80
80
80
38
76
80
80
4 die
136
160
160
160
76
152
160
160


Performance NAND MLC (MB/s): die per canale vs numero di canali

 
lettura
scrittura
# canali
1
2
4
8
1
2
4
8
1 die
30
40
40
40
7
14
28
40
2 die
60
80
80
80
14
28
56
80
4 die
120
160
160
160
28
56
112
160


E' possibile notare come in lettura il bandwidth raggiungibile sia equivalente; in scrittura le SLC giungono invece a saturare la banda offerta dalle specifiche ONFI 1.x (160 MB/s) con 4 die, già a partire dall'uso di due soli canali, mentre per le MLC ne necessitano tutti e otto.

A titolo di paragone, le tabelle del bandwidth raggiungibile dalle SLC e MLC a partire dalle specifiche ONFI 2.x (max 200 MB/s per canale), con l'incremento dei die e dei canali.


Performance NAND SLC (MB/s): die per canale vs numero di canali

 
lettura
scrittura
# canali
1
2
4
8
1
2
4
8
1 die
120
200
200
200
28
56
112
200
2 die
240
400
400
400
56
112
224
400
4 die
480
800
800
800
112
224
448
800


Performance NAND MLC (MB/s): die per canale vs numero di canali

 
lettura
scrittura
# canali
1
2
4
8
1
2
4
8
1 die
88
176
200
200
8
16
32
64
2 die
176
352
400
400
16
32
64
128
4 die
352
704
800
800
32
64
128
256


Con le specifiche ONFI 2.x si può notare come la situazione in lettura rimane tutto sommato inalterata ed equivalente; in scrittura il divario si amplia invece in maniera abnorme, con le SLC che riescono a saturare il bandwidth di 800 MB/s in situazione di massimo parallelismo (4 die ed 8 canali), mentre nelle stesse condizioni di efficienza le MLC si fermano ad un parziale ~30% della banda di memoria offerta, attestandosi a soli 256 MB/s.

I produttori hanno poi inseguito l'obiettivo della riduzione delle temporizzazioni, mirando non solo all'abbattimento delle latenze ma anche ad altri marginali interventi sul piano temporale, in grado di produrre in maniera omogenea la massima velocità nelle operazioni di programmazione e cancellazione.

Parallelamente hanno anche provveduto ad innalzare la velocità del bus memoria-controller, migliorato in maniera contestuale l'efficienza delle tecnologie di interleaving e affinato lo sviluppo degli algoritmi ECC implementati in firmware, necessari alla correzione dell'accresciuta percentuale di errori rilevati in fase di lettura.


Le memorie NAND Flash, facciamo il punto ... 3. Quale efficienza e durata per le NAND Flash? 4

Figura 22: funzionalità di Wear Leveling


Tutte queste migliorie, unitamente allo sviluppo di ancor più avanzate strategie di gestione di wear leveling, garbage collection e overprovisioning sono divenute indubbiamente significative anche di quei fattori che hanno portato ad incidere in maniera più che rilevante al raggiungimento di una superiore longevità operativa delle più recenti NAND Flash multilivello.


Cosa cambia in concreto?

Ma allora, in pratica, cosa cambierebbe sostanzialmente per l'utente nell'acquisto di un SSD con le più recenti memorie NAND Flash da far propendere alla scelta delle nuove TLC piuttosto che le MLC o addirittura delle vecchie SLC, soprattutto alla luce dei più recenti processi produttivi?

La risposta è destinata ad essere inevitabilmente articolata: da una parte abbiamo il raggiungimento di un livello di rendimento prestazionale globalmente inferiore, sebbene parzialmente mitigato dal maggiore parallelismo funzionale ottenibile, un valore maggiore di BER (Bit Error Rate) e, in assoluto, soprattutto una minor longevità.


Le memorie NAND Flash, facciamo il punto ... 3. Quale efficienza e durata per le NAND Flash? 5

Figura 23: Bit Error Rate in relazione alla riduzione della geometria costruttiva


D'altro canto, con l'acquisto di una unità basata su NAND TLC viene garantita soprattutto la possibilità di ottenere capacità più elevate ad un prezzo tutto sommato di maggior convenienza, scaturito dal favorevole rapporto di costo per GB che lo sfruttamento delle ultime tecnologie riesce ad offrire


Facciamo alcuni calcoli

Tralasciando la valutazione sulle NAND Flash SLC a motivo della loro non-economicità, per giungere concretamente ad una quantificazione delle differenze a livello di rendimento tra le due ultime tecnologie, MLC e TLC, prendiamo a riferimento alcuni modelli di SSD prodotti da Samsung per avere un quadro sintetico con i valori dichiarati sulle prestazioni in lettura e scrittura sequenziali:

  • Samsung 830 256GB - [MLC 27nm] 520/400 MB/s (lettura/scrittura)
  • Samsung 840 250GB - [TLC 21nm] 530/240 MB/s (lettura/scrittura)
  • Samsung 840 PRO 256GB - [MLC 21nm] 540/520 MB/s (lettura/scrittura)
  • Samsung 840 EVO 240GB [TLC 19nm] 540/520 MB/s (lettura/scrittura)
  • Samsung 850 PRO 256GB [3D-V 40nm] 550/520 MB/s (lettura/scrittura)

A parità di capacità (256GB) e processo costruttivo (21nm), il primo modello della serie 840, equipaggiato con NAND TLC, presenta una velocità in scrittura (240 MB/s) pressoché dimezzata rispetto al modello 840 Pro con memorie MLC (520 MB/s): tale deficit si mantiene sensibile anche nei confronti dell'unità 830 (400 MB/s) di precedente generazione (27nm).

Con l'uscita del modello 840 EVO di seconda generazione e dall'850 PRO 3D a sviluppo verticale, le prestazioni in scrittura sono decisamente accresciute allineandosi al top, conseguite genericamente dalle attività complementari alla riduzione del processo produttivo a 19nm e favorite dallo sviluppo di soluzioni più sofisticate a livello architetturale, come le 3D Vertical.

Volendo focalizzare la durata nel tempo delle soluzioni tecnologiche fin qui descritte e giungere così alla determinazione di un valore tangibile di longevità di un dispositivo SSD, è necessario introdurre il concetto di TBW (Total Byte Written, espresso in terabyte): TBW determina, in sostanza, la quantità di dati scrivibili durante l'arco di vita garantito da parte del produttore.

In primo luogo il suo valore è in diretta relazione alla capacità complessiva di dati memorizzabili e al numero di cicli P/E (programmazione/cancellazione) accreditati alle specifiche memorie NAND adottate; alcuni produttori indicano il procedimento in W/E (write/erase, scrittura/cancellazione), volendo però significare lo stesso medesimo concetto.

Per giungere ad un paragone per quanto possibile imparziale ed affidabile tra le unità SSD, in condizioni in un certo qual modo standardizzate di confronto, viene introdotto il termine di Write Amplification (WA) e ne è comunemente adottato un fattore pari a 1.

Il significato di questo importante parametro è un concetto che vale la pena di essere approfondito: WA rappresenta il rapporto che intercorre tra la quantità di dati scritti sull'unità SSD da parte del controller (Writes to NAND) e la quantità, invece, di quelli originariamente inviati allo stesso controller dal sistema operativo (Writes from Host).

WA : N = (DATI scritti sulle NAND / DATI scritti dall'Host)

Nel caso vengano usati controller che gestiscono in maniera del tutto trasparente le comunicazioni da e verso le memorie e qualora si trasferiscano dati in modalità sequenziale, il rapporto tra le due quantità si mantiene infatti equivalente, per via della diretta corrispondenza, e solo leggermente superiore a 1.

La leggerissima discrepanza è da attribuire ai dati di parità memorizzati aggiuntivamente a quelli provenienti dal s.o. e calcolati direttamente dal controller.

Nella maggior parte degli SSD e così come accade negli hard disk, al momento di trasferire dati in maniera sequenziale, il valore di Write Amplification si mantiene infatti ~1, e ci sentiamo quindi di adottare tale valore, seppur ideale ma in qualche modo ben definito, come riferimento per le nostre attuali e future determinazioni di durata di questi dispositivi.

Circostanze differenti, e anche molto difficilmente quantificabili, sono infatti tutte quelle in cui il trasferimento dei dati è eseguito in modalità random: in questi frangenti, dove molto più importanti sono le complete attività di intervento del controller (wear leveling, garbage collection etc.) il fattore di WA è costretto a subire dinamicamente una variazione anche superiore alle dieci volte, potendo giungere facilmente al valore ~12.

Questo aspetto, oltre che estremamente penalizzante per la durata del nostro dispositivo, è anche molto difficile da valutare nell'insieme, rappresentando un delta di scostamento significativamente troppo ampio per la determinazione di un valore da adottare quale riferimento univoco.

Pensando d'altro canto ad un diverso scenario, con uno sguardo miratamente diretto alle caratteristiche che contraddistinguono alcuni controller come i SandForce, si otterranno invece risultanze decisamente opposte.

Quando il controller è infatti congegnato in modo da comprimere/decomprimere in tempo reale i dati in transito, il valore di WA subirà una diminuzione più o meno drastica a a seconda dei casi, apportando innegabili benefici alla durata delle NAND, a prescindere da quale modalità, sequenziale o random, venga utilizzata.


Le memorie NAND Flash, facciamo il punto ... 3. Quale efficienza e durata per le NAND Flash? 6

Figura 24: diminuzione del fattore di Write Amplification in relazione alla compressione dei dati


In tali circostanze la quantità di dati inviati dal s.o. (Writes from Host), una volta compressi in tempo reale dall'unità di calcolo del controller, diverrà sensibilmente inferiore al momento di essere memorizzata all'interno delle celle (Writes to NAND) rispetto a quella originata, potendo giungere nelle situazioni particolarmente favorevoli anche ad un valore di ~0.2.

Un simile valore, sebbene direttamente connesso alla comprimibilità dei dati trattati, se mantenuto nel lungo periodo è in grado di poter anche quintuplicare la durata delle memorie NAND Flash.

L'esplicazione della formula risolverà qualsiasi dubbio: basterà dividere la capacità complessiva dell'unità SSD (in gigabyte) per il valore di WA, moltiplicare quanto ottenuto per il numero dei cicli P/E accreditati ed infine dividerne il risultato per mille.

TBW : TB = [(CAPACITA' in GB / WA) * (CICLI  P/E)] / 1000

Per stimare invece la presumibile durata, in anni, basterà dividere il valore TBW, espresso in terabyte, per il cosiddetto GB/day, ovvero il carico di lavoro giornaliero che descrive la quantità di dati che si assume venga scritta dall'host (il sistema operativo) durante una tipica giornata d'uso, espresso in gigabyte.

Il valore risultante deve a questo punto essere moltiplicato per il valore derivante dalla divisione di 1000 per il numero di giorni dell'anno.

LONGEVITA' : ANNI = [(TBW TB) / (GB/day)] * (1000 / 365)

Ipotizzando un carico di lavoro medio in scrittura da parte del s.o. pari a circa 20 GB giornalieri, che rappresenta una quantità di dati abbastanza omogenea ipotizzando un uso generico, è possibile quindi giungere alla stima sia dei dati scrivibili (TBW) in terabyte, che della longevità in anni.

  • Samsung 830 256GB (MLC 27nm, 3000 P/E) 768 TB (105 anni)
  • Samsung 840 250GB (TLC 21nm, 1000 P/E) 250 TB (34 anni)
  • Samsung 840 PRO 256GB (MLC 21nm, 3000 P/E) 768 TB (105 anni)
  • Samsung 840 EVO 240GB (TLC 19nm, 1200 P/E) 288 TB (40 anni)
  • Samsung 850 PRO 256GB (3D-V 40nm, 3000 P/E @ 50 MB/s, 35000 P/E @ 36 MB/s) 768 TB (105 anni).