SSD – Mito e realtà su consumo e archiviazione

È vero che nel tempo l'archiviazione su Solid State Drive potrebbe provocare il consumo e l''inutilizzabilità degli apparati?

I sistemi di archiviazione a stato solido, o SSD, sono una realtà attuale nel panorama delle periferiche per computer, tuttavia il loro utilizzo continuativo comporta il loro rapido consumo. Ciò corrisponde alla realtà o si tratta semplicemente di un mito da sfatare?

Riportiamo uno studio condotto da seagate al riguardo.

Consumo SSD - mito o realta

HDD vs SSD: principi di funzionamento

Immaginiamo una catasta di fogli, alcuni completamente scritti, altri completati in parte. Possiamo notare numerosi fogli ancora bianchi, ma la maggior parte riporta valori di consumo o scarabocchi. I fogli sono sparpagliati per tutta la stanza, e su un tavolino giace una specie di lista. Ci avviciniamo alla lista, apparentemente l’unico elemento logico nella confusione, e ci accorgiamo che descrive la posizione esatta di ciascun elemento sparso per la stanza.

Ci rendiamo conto con un brivido che se perdessimo la lista, anche tutto il nostro lavoro verrebbe perso. E ci accorgiamo di quanto effimero sia il mito di possedere un backup sicuro.

Consumo SSD mito e realta

Già, perché quello appena descritto è il metodo utilizzato da un hard disk per memorizzare i dati: sparsi all’interno di un sistema meccanico in movimento, sensibile a piccoli urti e a rotture di motori passo-passo che gestiscono le teste di lettura. Con file spezzettati in decine o centinaia di sezioni sulla superficie del disco e collegati tra loro da un semplice link elettrico. Una lista, direbbero gli informatici, in cui ciascun elemento viene gestito da una coppia di puntatori all’elemento precedente e successivo: perdi un puntatore e non riesci più a ricostruire l’intera catena.

La tecnologia SSD funziona (per nostra fortuna) in modo differente, utilizzando quel paging di memoria usato dai sistemi informatici a memoria virtuale. Vediamo come.

L’unità fondamentale della memoria flash NAND. In una memoria flash i dati vengono registrati in un vettore di transistor a effetto di campo in grado di mantenere la carica elettrica per un tempo lungo. Ogni transistor costituisce una “cella di memoria” che conserva il valore di un bit. Le nuove flash utilizzano delle celle a livello multiplo che permettono di registrare il valore di più bit attraverso un solo transistor. Nei vettori di memorie NAND i transistor sono connessi in serie, e se tutte le word line sono a valore logico alto la tensione della bit line si abbassa. Anche il consumo ne risente.

In lettura, tutte le word line meno una sono sopra la tensione di soglia di un bit definito, mentre una sola cella è sopra la tensione di soglia di un bit cancellato. La serie di transistor conduce, abbassando la tensione della bit line, se la cella selezionata non è programmata. In breve, non esistono parti mobili per accedere a ciascuna cella di memoria.

Consumo SSD mito o realta

Una flash memory è costituita in genere di pagine da 4 kilobyte (4 KB), e blocchi da 128 pagine. Le scritture avvengono su una pagina alla volta, ma solo su pagine pulite o cancellate con certezza. In altri termini, non è possibile modificare le pagine: occorre prima cancellarle. Tuttavia, cancellare una pagina risulta complicato, in quanto interi blocchi di pagina devono essere invalidati in una volta sola. Quando l’host vuole riscrivere su un dato indirizzo, la SSD scrive su una pagina pulita posta altrove e solo dopo aggiorna la tabella con il logical block address (LBA). In modo simile a quanto avviene sugli hard disk con la MFT. All’interno della tabella LBA, la pagina originale è marcata come “invalid” mentre la nuova pagina viene marcata con la locazione corrente per i nuovi dati.

Al contrario degli hard disk, però, una SSD cancellerà a un certo punto le pagine invalidate man mano che si riempiono, attraverso una funzione detta garbage collection. Durante questo processo il controller della SSD, o flash controller, legge le pagine valide di un blocco, saltando le pagine non valide, e le riscrive su un nuovo blocco cancellato. Il blocco originale viene cancellato completamente e si rende disponibile per nuovi dati. Un po’ quello che succedeva con le unità di deframmentazione dei dischi, ma in questo caso l’operazione si svolge in modo dinamico, efficiente e totalmente trasparente al sistema.

Over-Provisioning

Ciascuna SSD riserva una parte di spazio per queste operazioni di scrittura extra, per il firmware del controller, per il ripristino di blocchi difettosi e altre caratteristiche definite dal produttore. La riserva minima è in genere costituita dalla differenza tra le definizioni convenzionali binaria e decimale. Praticamente, anche quando le SSD vengono costruite con chip di memoria flash NAND, esse vengono comunque vendute come device di archiviazione di massa. I produttori riservano un 7.37% extra di spazio di memoria come garanzia per le attività in background come il garbage collection. Ad esempio, una SSD da 128 GB disporrà implicitamente di 128 * 73,741,824 = 94.4 milioni di bytes di memoria disponibile per over-provisioning. Quel 7.37% deriva dal seguente calcolo:

  • Gigabyte (decimale) 109 = 1.000.000.000
  • Gibibyte (binario) 230 = 1.073.741.824

Perciò, anche quando una SSD sembra piena, dispone ancora di un 7.37% di spazio libero con il quale permettere scritture. Ovviamente a tale livello le prestazioni tendono a degenerare. Un po’ come quando si gioca al “Gioco del Quindici“, spostando 15 quadratini numerati lungo sedici posizioni, utilizzando un unico spazio temporaneo di passaggio. O come la “Torre di Hanoi”.

In realtà, le performance di una memoria SSD iniziano a deteriorarsi già quando si supera il 50% dello spazio disponibile. Per questa ragione alcuni produttori riducono la quantità di spazio disponibile all’utente, mettendolo da parte come addizionale per over-provisioning. Ad esempio, un produttore potrebbe riservare 28 su 128 GB e vendere il sistema come una 100 GB SSD ma con il 28% di over-provisioning.

Quel 28% risulta in aggiunta al 7.37% predisposto. Conviene richiedere sempre in che modo un produttore gestisca lo spazio. In fine, gli utenti considerino che una SSD in uso non sarà mai completamente piena. Ogni SSD sfrutterà tale capacità inutilizzata come over-provisioning addizionale.

Consumo SSD mito e realta

Scritture sequenziali ed entropia

Il grafico rappresenta un test eseguito da Seagate utilizzando una SSD basata su flash memory Toshiba 24 nm MLC NAND e un Seagate SandForce SF-2281 Flash Controller con tecnologia DuraWrite data reduction. Vediamo le differenze essenziali tra pattern di dati sequenziali o random, e quanto essi influiscano a livello di funzionalità..

Consumo SSD mito e realta

Quando una SSD nuova arriva dalla fabbrica, le scritture riempiranno gradualmente il drive in maniera progressiva e lineare sin quando lo spazio di memoria indirizzabile sia stato scritto completamente. In pratica, questo comportamento riflette una condizione di scrittura sequenziale ideale. Nessun garbage collection è entrato in funzione sinora, e le piccole zone di dati invalidati a causa delle cancellazioni rivestono un’importanza minima sulle performance poiché non c’è stata alcuna necessità (ancora) di riscrivere quelle zone con nuovi dati.

Tuttavia, quando inizia la routine di garbage collection, il metodo in cui i dati vengono scritti (in sequenza o random) inizia ad avere un impatto sulle performance globali. I dati scritti in modo sequenziale dall’host riempiranno costantemente i blocchi della memoria flash e ogni volta che i dati vengono rimpiazzati si modifica l’intero blocco di pagine. Poi, durante il garbage collection tutte le pagine in quel determinato blocco sono invalidate, e nulla dev’essere spostato in un altro blocco. Si tratta dell’operazione di garbage collection più veloce possibile: praticamente non c’è alcun rifiuto (garbage) da eliminare (collect).

Le linee orizzontali nel “sequential write graph” mostrano come le performance relative alla scrittura sequenziale restino costanti a prescindere da quanto over-provisioning sia stato applicato.

Ciò che invece influenza la performance è l’entropia dei dati, qualora l’SSD stia usando un controller che utilizzi una tecnologia data reduction technology. L’entropia dei dati è una misura della casualità (o della variazione) dei dati. Ad esempio, un file di dati cifrato, un filmato MPEG o un file ZIP compresso avranno entropia massima, mentre file di database, eseguibili, file di testo e altri tipi di file avranno un’entropia minore.

Possiamo vedere l’esempio in questo modo: l’entropia di un file diminuisce quando al suo interno appare una maggiore quantità di elementi uguali. Quando l’entropia dei dati diminuisce, il flash controller reduction-capable si avvantaggerà della minore entropia e offrirà una performance maggiore. Ciò accade a causa del modo particolare con il quale le memorie NAND vengono gestite (a celle di livello e word line), indicato nei primi paragrafi di questo articolo.

Ovviamente, anche in questo caso la performance rimane costante su di un determinato livello di over-provisioning se le scritture sono sequenziali.

Consumo SSD mito e realta

Al contrario, quando i dati vengono scritti in maniera random sull’SSD, i dati invalidi vengono sparsi su tutta la memoria del device, creando molti piccoli “buchi” in ogni blocco. Quindi, nel momento in cui la routine di garbage collection agisce su di un blocco contenente dati scritti in modo random, un a maggior quantità di dati dev’essere trasferita e riscritta su nuovi blocchi prima di cancellare i blocchi più vecchi. La linea rossa relativa al Random Writes graph mostra come la maggior parte degli SSD tende a funzionare.

Da notare come in questo caso l’aumento di performance risulta significativo man mano che il livello di over-provisioning aumenta. Spostandosi semplicemente da un livello con 0% di over-provisioning (OP) a uno con 7% OP migliora le performance di quasi il 30%. Con i controller flash che utilizzano una tecnologia data reduction technology, il guadagno prestazionale non è altrettanto significativo, ma rimane ancora maggiore a qualsiasi livello di OP.

Amplificazione di scrittura

Come detto prima, le scritture SSD implicano la scrittura dei dati più di una volta. Inizialmente quando si salvano i dati la prima volta e in seguito quando si spostano i dati validi durante i cicli di garbage collection. Di conseguenza, abbiamo una maggior quantità di dati scritti sulla SSD rispetto a quanto richiesto dall’host system. Questa disparità è nota come amplificazione, ed è in genere espressa come multiplo. Ad esempio, se 2 MB di dati vengono scritti sulla flash quando la richiesta host era per 1MB, si parla di fattore di amplificazione di 2.0.

Ovviamente, l’amplificazione di scrittura non è positiva: un maggior quantitativo (indesiderato) di dati è trasferito e scritto all’interno del device. Ciò incrementa negativamente numero di utilizzi e performance, consumando banda preziosa. Sono diversi i fattori che contribuiscono alla amplificazione di scrittura, ma quello che si distingue tra gli altri è il rapporto tra dati scritti in modo sequenziale e random. Paradossalmente è anche possibile scrivere sulla flash memory un quantitativo di dati inferiore a quello richiesto dall’host. In questo caso si parla di fattore di amplificazione inferiore a 1 (diciamo 0.5 o 0.7.).

La tecnologia DuraWrite data reduction risulta a oggi tra le tecnologie più note per consentire tale amplificazione attraverso la cosiddetta real-time data manipulation. Solo le SSD con una tecnologia similare possono creare una amplificazione di scrittura inferiore a 1. Man mano che l’entropia dei dati provenienti dall’host diminuisce, la tecnologia DuraWrite consente di ottenere una diminuzione effettiva dei dati scritti effettivamente sul device. Ma attenzione: testando il data transfer rate con file compressi, filmati video o dati cifrati il fattore di amplificazione di scrittura torna superiore a 1…

Consumo SSD mito e realta

Ad esempio, una SSD convenzionale con il 28% di over-provisioning mostrerà la medesima amplificazione di scrittura (3.0) di una SSD con tecnologia DuraWrite che scrive uno stream al 75% di entropia con un over-provisioning pari a 0%. In altri termini, un simile scenario mostra come una SSD equipaggiata con la giusta tecnologia può ottenere il medesimo livello di amplificazione di scrittura di una SSD standard ma con il 28% di capacità di memoria in più.

Livelli di efficienza

Una SSD non conosce nativamente quali blocchi di dati siano stati invalidati e disponibili per l’utilizzo con altri dati. Solo quando il sistema operativo cerca di stivare nuovi dati in una locazione utilizzata in precedenza l’SSD si “rende conto” di avere dati non validi nella locazione. Tutto lo spazio libero non consumato dall’utente diviene disponibile per conservare tutto ciò che la SSD ritiene dato valido. È per tale motivo che l’industria dell’archiviazione ha creato il comando TRIM.

Consumo SSD mito e realta

TRIM abilita il sistema operativo a inviare un messaggio alla SSD relativo alle pagine che contengono attualmente dati non necessari per poterle marcare come non valide. Fatto questo, le pagine non dovranno essere copiate dalla funzione di garbage collection. Ciò riduce ulteriormente l’amplificazione di scrittura e migliora le performance. Il grafico mostra quale differenza possa fare il comando TRIM nel consentire maggiore disponibilità per l’over-provisioning.

TRIM rappresenta un ulteriore metodo che i produttori possono impiegare per rendere più efficace il sistema di over-provisioning, aumentando così le performance e la longevità del drive. In fondo questo sistema rappresenta un metodo preferibile a quello di accaparrarsi una parte della capacità dell’SSD forzando il device a rinunciare a larghi blocchi di memoria, dimostrando falso il mito del numero di scritture eccessivamente limitato.

Consumo SSD mito e realta


Il cliente finale dovrebbe dedicare una maggiore attenzione al carico operativo da utilizzare per l’archiviazione. Occorre definire i livelli medi di entropia del dato e considerando quali tecnologie SSD siano di maggior beneficio per il valore di denaro investito. Ridurre l’amplificazione di scrittura e impiegare tecnologie che rendono le operazioni su SSD sempre più efficienti. In tal modo i clienti finali non avranno solo più spazio di archiviazione per unità di valuta, ma anche un sistema più veloce e un consumo più efficiente Un sistema che durerà più a lungo di quanto le opzioni di base lascerebbero supporre, sfatando il mito delle scritture troppo limitate e confermando la realtà tecnologica.

Caricamento in corso...
Ti è piaciuto quello che hai letto? Vuoi mettere le mani su giochi in anteprima, partecipare a eventi esclusivi e scrivere su quello che ti appassiona? Unisciti al nostro staff! Clicca qui per venire a far parte della nostra squadra!

Potrebbe interessarti anche