Come ormai per molti dei nostri lettori sarà noto, tutti gli SSD basandosi su celle di memoria Flash sono soggetti ad un decadimento prestazionale direttamente proporzionale alla quantità di dati scritti. Attenzione non ci riferiamo in questo caso a quanto il disco sia realmente pieno ma piuttosto a quanti blocchi di memoria fisici risultino occupati.


Per capire esattamente quale sia la differenza tra le due condizioni, dobbiamo dare una rapida e semplificata spiegazione della logica del protocollo ATA e dei file system comunemente utilizzati. La scrittura fisica dei dati in un disco magnetico avviene in maniera sequenziale (se il disco non è frammentato) e segue sempre la regola per cui prima viene scritto un LBA (logical block address) e poi vengono fisicamente scritti i dati. L'LBA da una chiara indicazione di dove sia posizionato il file sulla superficie del disco e se questo spazio deve risultare come libero o occupato. Questo tipo di distinzione per i dischi magnetici è sufficiente, in quanto la testina è in grado di scrivere lo spazio fisicamente occupato semplicemente sovrascrivendo i dati presenti.


Per le celle di memoria flash purtroppo non è possibile effettuare sovrascritture e quindi, prima di scrivere qualsiasi dato in una cella precedentemente occupata, è necessario scriverla completamente con tutti valori 0 e successivamente inserire i dati da memorizzare. Se pensate che in una NAND Flash MLC dobbiamo ripetere l'operazione più volte per andare ad individuare il Layer specifico, potete facilmente capire perchè, nonostante il disco risulti vuoto per il nostro sistema operativo, probabilmente avremo dei forti rallentamenti rispetto alla velocità garantita dal produttore.


Come possiamo risolvere?


La prima soluzione adottata per risolvere (o meglio aggirare) il problema è stata quella di fare un Secure Erase del SSD (perdendo qualsiasi dato in esso contenuto), in modo da ripristinare le condizioni iniziali. Potete facilmente capire che questo sistema va bene se dovessimo fare dei test, ma non è assolutamente indicato per chi sul SSD in oggetto ci deve installare un sistema operativo.

Alcuni dei più recenti controller integrati negli SSD sfruttano una istruzione denominata “ Trim ” che permette al disco di individuare quali sono i blocchi liberi per il Sistema Operativo ma ancora fisicamente occupati e provvede a prepararli per la scrittura. Anche Windows 7 dovrebbe supportare questa istruzione ma non ne avremo conferma fino alla release definitiva. Per i controller indilinx è stato rilasciata un utility, ancora in versione Beta, che a rischio e pericolo degli utenti si occupa di implementare le funzioni di Trim migliorando lo stato del SSD, unica limitazione riguarda l'utilizzo in Raid 0 dove questa funzione non è implementabile.


Corsair e Samsung invece hanno risolto integrando una funzione denominata PRF ( Performance Recovery Feature ) che si occupa in totale automazione di ripristinare le condizione del SSD.


Come funziona?


  • La PRF si attiva in automatico solo dopo un coldboot (avvio della macchina dopo uno spegnimento, quindi non è sufficiente un riavvio/reset).

  • Se l'SSD rimane in fase di Idle la PRF impiega circa un'ora (a seconda delle condizioni del drive) per effettuare una operazione completa.

  • Il disco deve avere almeno il 15% di spazio libero perché questa operazione vada a buon fine.


Quali sono i vantaggi?


  • Il sistema è sicuro e garantito dal produttore per funzionare senza il rischio di perdite dati.

  • Mantiene senza bisogno di interventi le prestazioni iniziali.

  • E' in grado di ripristinare lo stato degli SSD anche se configurati in Raid 0.


Questa funzione ha reso molto difficile comparare le prestazioni tra SSD completamente libero e SSD completamente pieno, abbiamo infatti pubblicato solo i risultati rilevati senza distinguerli, segno questo che la funzione PRF funziona al meglio.