Un peculiare meccanismo di sovrascrittura

Gli SSD crescono di interesse anche in ambito Enterprise per utilizzi specifici quali database o ambienti virtualizzati grazie a nuove tecnologie che ne incrementano le doti di affidabilità e durata

Avatar di Riccardo Florio

a cura di Riccardo Florio

Un peculiare meccanismo di sovrascrittura

Questa descrizione ci premette di comprendere meglio il meccanismo di riscrittura che caratterizza un disco a stato solido. 

All’interno di un SSD l’unità di memorizzazione più piccola è costituita da una Pagina; tuttavia, la più piccola struttura che può essere cancellata all’interno di un dispositivo NAND-flash è un Blocco (128 Pagine). In altre parole è possibile leggere e scrivere dati a partire da 4 Kbyte (una Pagina) ma cancellare solo un minimo 512 Kbyte (un Blocco) per volta.

In un hard disk come in un SSD, quando viene cancellato un file, in realtà i dati rimangono memorizzati e il sistema operativo si limita a contrassegnarli come non più validi, ovvero suscettibili di riscrittura (i programmi di ripristino dei file sfruttano proprio questo meccanismo per recuperare i dati cancellati accidentalmente). 

La differenza tra un hard disk e un SSD si manifesta proprio nel processo di riscrittura: mentre in un hard disk è possibile scrivere direttamente nel settore di memoria non più valido, all’interno di un SSD è possibile leggere e scrivere all’interno di una singola pagina finché questa è libera ma, nel caso in cui sia occupata, il processo di riscrittura non può avvenire prima che la Pagina sia stata cancellata.

Poiché in un SSD la cancellazione può avvenire solo per Blocchi (128 Pagine per volta) questo implica che nel caso in cui si desideri cancellare un'unica Pagina invalida è necessario cancellare tutte le Pagine di un Blocco.

In pratica, per fare ciò è dapprima necessario memorizzare il contenuto del Blocco in una memoria cache, tipicamente integrata all’interno del controller. All’interno della cache avviene la cancellazione delle pagina invalida e l’inserimento dei nuovi dati ottenendo in cache un nuovo Blocco. Il Blocco sull’SSD viene quindi cancellato e sostituito con il contenuto della cache che viene copiato nella memoria flash.

I cicli di scrittura/cancellazione (cicli P/E) sono gestiti dal controller del dispositivo flash, che utilizza un sistema di mappatura fisico-logico per l'indirizzamento dei blocchi noto come LBA (Logical Block Address).

Questo meccanismo di sovrascrittura dei dati è responsabile di una diminuzione di prestazioni di un drive SSD mano a mano che si riempie lo spazio a disposizione. Questo aspetto si ripercuote anche sulla vita media di un SSD poiché, per esempio, all’interno di una memoria MLC NAND flash di tipo standard, un Blocco può supportare circa 10mila cicli di cancellazione prima di non riuscire più a memorizzare i dati.

Un utile parametro di riferimento per valutare le caratteristiche di una memorie NAND-flash è il tasso di errore dei bit (detto anche BER o RBER), che definisce la frequenza di generazione naturale degli errori.

Una parte di questi errori possono essere corretti in tempo reale attraverso funzionalità ECC (Error Correction Code); la capacità dei processori di storage Flash di correggere questi errori può essere valutata attraverso un altro parametro denominato UBER, che rappresenta proprio il tasso di errore dei bit non correggibile.

Al progredire dei cicli di programmazione e cancellazione, anche il valore del BER tende a crescere in modo lineare e questo influenza la durata della memoria flash.

La resistenza ai cicli di scrittura e cancellazione di una determinata memoria NAND-flash può variare notevolmente in base al tipo di processo di produzione litografico e al tipo di memoria prodotta ed è per questo che è stato messo a punto un metodo di misurazione della durata che utilizza un parametro di più semplice comprensione, basato sui Terabyte scritti (TBW) per indicare la quantità di dati che può essere memorizzata su un disco SSD prima che la memoria NAND-flash in esso contenuta diventi inaffidabile.