Una Flash che dura nel tempo

Nello scegliere un prodotto, il prezzo per GB può essere un criterio valido nel caso di memorie Flash per normali applicazioni, insieme alle considerazioni su velocità di scrittura e di lettura. Tuttavia, qualora si cerchino dei dischi a stato solido da utilizzare in impianti industriali o schede di memoria per applicazioni di telecomunicazione all’aperto, le priorità sono altre. Spesso la capacità non è un aspetto rilevante, al contrario della robustezza e della durata. L’endurance, ossia la durata utile delle memorie Flash, e la retention, ossia la durata utile dei dati memorizzati, rappresentano dei temi complessi. In questo caso rivestono un ruolo fondamentale non solo l’architettura e il firmware delle memorie, ma anche l’utilizzo che se ne fa. In che modo vengono scritti i dati? Oppure i dati vengono soprattutto letti? Chi ha delle speciali esigenze per quanto riguarda la memoria Flash deve sapere cosa cercare.

I segnali di invecchiamento

Come è noto, le celle di una memoria Flash Nand supportano solo un numero limitato di cancellazioni. Questo dipende dal fatto che con l’effetto tunnel generato dalla tensione di cancellazione, nello strato di ossido che evita la fuoriuscita degli elettroni dal floating gate si accumulano elettroni con un livello energetico elevato. Con il tempo ciò provoca una variazione della tensione di soglia, fino a quando la cella non è più leggibile. Un altro effetto dovuto all’invecchiamento è la formazione di un percorso conduttivo nello strato di ossido. Di conseguenza la cella perde gradualmente il proprio stato di carica e quindi il bit memorizzato. Questo effetto, velocizzato dalle alte temperature, si verifica soprattutto quando i cicli di programmazione e cancellazione consentiti cominciano a esaurirsi. In questa fase la retention diminuisce significativamente. Se inizialmente per una Nand Single Level Cell o una Multi Level Cell è possibile prevedere una retention di 10 anni, al termine della durata utile questo valore si riduce a un solo anno, raggiunto nelle Mlc dopo 3.000 cicli di P/E mentre nelle Slc solo dopo 100.000 cicli di P/E. Questo è il motivo per cui le Nand Single Level Cell vengono considerate ideali per applicazioni particolarmente impegnative. Le memorie Nand Triple Level Cell, invece, sebbene economicamente convenienti, non vengono considerate come memorie di lunga durata: infatti per scrivere 3 bit per cella, sono in tal caso necessari otto stati di carica diversi. Motivo per cui gli effetti di degenerazione si presentano più velocemente. Nelle Tlc la retention originaria di un anno, dopo 500 cicli di P/E si riduce a tre mesi. Le conseguenze della degenerazione fisica dei chip vengono limitate mediante diversi meccanismi. Poiché in caso di guasto delle celle l’intero blocco deve essere contrassegnato come “bad block”, mediante il “wear leveling” si garantisce un utilizzo uniforme degli indirizzi fisici di memoria. Tuttavia gli errori di lettura non sono solo indice di usura. A ogni scrittura, le celle vicine alla cella da programmare subiscono un certo livello di stress, ossia presentano una tensione leggermente più alta. Con il tempo la tensione di soglia aumenta, provocando errori di lettura, che scompaiono nuovamente una volta cancellato il blocco. Allo stesso modo, anche la lettura provoca un certo livello di stress . In questo caso sono le pagine vicine che accumulano la carica. A causa del livello ridotto di tensione, durante la lettura questo effetto è meno marcato che durante la scrittura, tuttavia possono comunque verificarsi errori di bit che devono essere compensati dal codice di correzione errori ed eliminati mediante cancellazione del blocco. Da notare che questo effetto è particolarmente evidente nelle applicazioni che leggono sempre gli stessi dati. Pertanto anche all’interno di una memoria che viene soltanto letta è necessario cancellare continuamente blocchi e scrivere pagine per correggere gli errori.

La misurazione dell’endurance

Ci sono due parametri con cui i produttori indicano la durata utile degli Ssd: Tbw (Terabyte written) e Dwpd (Drive writes per days). Tbw indica la quantità di dati che è possibile scrivere nel corso dell’intera durata utile del dispositivo, mentre Dwdp indica la quantità massima di dati che è possibile scrivere ogni giorno nel periodo di validità della garanzia. Il problema è che i rispettivi benchmark sono molto complessi e gli utenti devono affidarsi ai dati dei produttori. Tuttavia la pertinenza di questi per l’applicazione per la quale si cerca il supporto dati è incerta, in quanto il valore dipende molto dal carico di lavoro del test. Effettuando delle misurazioni con un Ssd da 480 GB di Swissbit, a seconda del metodo impiegato si ottengono delle durate utili di 1360, 912 o 140 Tbw. Il valore più elevato si ottiene in caso di scrittura sequenziale. Il secondo valore si ottiene con un “carico di lavoro client”, il terzo con un “carico di lavoro enterprise”. Entrambe queste prove di carico rappresentano delle direttive Jedec. Il carico di lavoro client si basa sul comportamento di utilizzo di un utente di un Pc e genera in gran parte accessi sequenziali. Il carico di lavoro enterprise simula il comportamento di un server in uno scenario multiutente, generando per l’80% degli accessi casuali. Nonostante in teoria questi standard potrebbero permettere un raffronto, molti produttori non forniscono informazioni sul carico di lavoro interessato, indicando unicamente dei valori di scrittura sequenziali. Poiché, come mostra l’esempio, questi ultimi possono discostarsi dal carico di lavoro enterprise di un fattore pari a dieci, in presenza di valori di endurance molto elevati e senza indicazioni più precise è raccomandabile prestare la dovuta attenzione.

Il fattore di amplificazione di scrittura

La mappatura tra indirizzi logici e fisici, l’Ecc e altri meccanismi quali il garbage collection per l’attivazione di nuovi blocchi, sono tutti processi rilevanti ai fini della comprensione e della classificazione delle memorie Flash. Un concetto importante in questo contesto è il Waf (Write amplification factor), ovvero il fattore di amplificazione di scrittura, che indica il rapporto tra i dati utente provenienti dall’host e la quantità di dati realmente scritti nella memoria Flash. Rappresenta un parametro che indica l’efficienza di lavoro di un controller Flash. Ridurre il fattore di amplificazione di scrittura è una delle chiavi verso una maggiore endurance. I fattori del carico di lavoro che influenzano il Waf sono la differenza tra gli accessi sequenziali e casuali o la grandezza dei blocchi dati in relazione alle pagine e alla grandezza dei blocchi. È necessario che siano soddisfatti due requisiti di base: le pagine devono essere scritte una dopo l’altra e i blocchi devono essere cancellati come unità intere. Nel metodo standard, la mappatura tra gli indirizzi logici e fisici è basata su blocchi. Essa si rivela molto efficiente con i dati sequenziali, in quanto le pagine di un blocco vengono scritte una dopo l’altra. Un esempio pratico sono i dati video raccolti in modo continuato. Con i dati casuali invece le pagine vengono scritte in molti blocchi diversi e ogni riscrittura interna richiede la cancellazione di un intero blocco per pagina. Ciò comporta un Waf maggiore e una durata utile minore. Pertanto per i dati non sequenziali è più indicata una mappatura basata su pagina, in cui il firmware fa in modo che i dati di diversa origine possano essere archiviati nelle pagine di un blocco in modo sequenziale. Il numero delle cancellazioni diminuisce, a beneficio della durata utile, e l’efficienza di scrittura aumenta. Lo svantaggio di questo metodo è una tabella di assegnazione Ftl (livello di conversione Flash) più grande, aspetto che tuttavia può essere compensato con una Dram integrata. Un ulteriore fattore che innalza il Waf è il grado di utilizzo del supporto dati. Più sono i dati memorizzati su un dispositivo Flash, maggiore è il numero di bit che il firmware deve muovere. Anche in questo caso una mappatura basata su pagina risulta vantaggiosa. Tuttavia i produttori possono utilizzare un altro metodo di regolazione: l’over provisioning. Il termine indica uno spazio del dispositivo Flash riservato esclusivamente ad attività interne. Solitamente esso rappresenta il 7% del totale, con dati forniti in gigabyte è la differenza tra il valore binario e quello decimale. Se invece del 7% la capacità di over provisioning è pari al 12%, ciò ha un effetto sorprendente: durante un raffronto dell’endurance (Tbw con carico di lavoro enterprise) tra due Ssd identici relativi al chip Nand Mlc, il modello F-60 durabit da 60 GB Swissbit ha raggiunto un valore 6,6 volte maggiore rispetto al modello F-50 da 64 GB. Con le versioni da 240 GB/265 GB la differenza era addirittura di 10 volte.

Pubblica i tuoi commenti