chiudi

Non sei ancora registrato? Cosa aspetti, corri a farlo QUI !!

LOGIN / JOIN !
Registrati
Reviews
Forum

Translate!

English Chinese (Simplified) French German Japanese

Newsletter: iscriviti!

Devi prima registrarti per poterti iscrivere ad una newsletter.
No account yet? Register

Statistiche

statistiche contatore

Siti Amici

Antologia di un SSD: alla scoperta dei principi di funzionamento e caratteristiche

Valutazione attuale: / 48
ScarsoOttimo 
Indice
Antologia di un SSD: alla scoperta dei principi di funzionamento e caratteristiche
1) Introduzione
2) Elenco controller e drive che li adottano. JMicron 602: il controller pestifero
3) Latenza e scritture random: il vero collo di bottiglia
4) Gli SSD ''rallentano'' quando vengono riempiti, ma non dovrebbero
5) L' ''anatomia'' di un SSD
6) Il parallelismo degli SSD e il problema della cancellazione dei dati
7) Indirizzamento, lettura, scrittura e sovrascrittura dei dati
8) Come funziona l'SSD e perchè le sue prestazioni degradano
9) Come aggirare il problema del degrado di performance
10) Il comando TRIM: cos'è e come funziona
11) Come ripristinare il drive alle sue originali performance
12) Test: SSD nuovo vs SSD usato/pieno
13) Considerazioni finali e conclusioni
Tutte le pagine

SSD Anthology

Un approfonditissimo report sul mondo degli SSD. Analizzeremo, di seguito, la costituzione fisica di un disco a stato solido, i principi di funzionamento, i controller e la cache, i problemi che affliggono tali drive ed il loro degrado prestazionale, il TRIM e molto, molto altro ancora!


Su InformaticaEasy ho sempre voluto dare ampio spazio alle novità tecnologiche ed ai più importanti progressi che interessano costantemente i campi dell'informatica e dell'elettronica e, in generale, dell'ICT.

Un sempio concreto è rappresentato dai molteplici articoli redatti sui dischi a stato solido, alias SSD. Oltre ad articoli-news e comunicati stampa relativi a nuovi drive e/o a novità che li interessano direttamente, ho puntualmente redatto approfondite recensioni su diversi Solid State Drive, che trovate nella sezione review.

A tal proposito, menziono Patriot, Mtron, Silicon Power, Traxdata, Memoright. E a breve, se tutto va per il verso giusto, potrò aggiungere a questo importante elenco nomi come Kingston (Intel), OCZ, Corsair ed altri ancora.

La tecnologia SSD è un fenomeno sul quale le aziende produttrici di tali drive puntano molto: sono davvero ottimi i contatti stabiliti tra InformaticaEasy e diversi SSD producer, essendoci una forte volontà da ambo i lati nel promuovere tale tecnologia che rappresenta già da adesso una validissima alternativa agli hard disk.

Ricordo benissimo la mia prima recensione su un SSD, inerente un drive prodotto dalla Traxdata (Conrexx Technology), nel quale articolo ho innanzitutto trattato per sommi capi il principio di funzionamento di un SSD e in cosa tale unità si distingue, nel bene e nel male, da un classico hard disk meccanico a piatti rotanti. In realtà la cosa non finì molto bene, per una incomprensione tra l'azienda, il corriere che mi spedì il prodotto e relative spese di spedizione. Chiusa parentesi.

In mio fervido interesse nel campo degli SSD mi ha portato ad accogliere con piacere e vivo interesse un approfondito articolo redatto da AndTech in merito a tale nuova tecnologia: potete trovarlo a QUESTO link. Si tratta di un articolo che ha ricevuto diverse migliaia di letture ed è divenuto in poco tempo un importante punto di riferimento e fonte di sapere per apprendere gran parte di ciò che c'è da sapere su un SSD. Almeno per l'utente finale, che dovrà deciderne l'eventuale acquisto.

Attualmente tale articolo, frutto di sei mesi di lavoro e ricerca, è disponibile solamente in lingua inglese e, poichè ha suscitato l'interesse di moltissime persone, mi è sembrato giusto offrire ai lettori di InformaticaEasy (e spero, nel mio piccolo, anche agli italiani in generale) un report dettagliato sulla tecnologia SSD prendendo spunto da tale articolo.

Non ho voluto semplicemente tradurre "meccanicamente" i 19 paragrafi di tale articolo, ma ho cercato di rielaborarlo fornendo una interpretazione ed una impronta personale aggiungendo, dove necessario, ulteriori spiegazioni relative ad argomenti trattati in maniera sommaria oppure tralasciati (con ciò non voglio assolutamente dire che l'articolo di AnandTech sia superficiale, anzi!!).


Il sito web www.nexthardware.com ha riportato una interessante tabella che riassume quale tra i principali controller per SSD è utilizzato da ciascuno dei principali SSD al momento offerti sul mercato. Per ogni modello di drive a stato solido menzionato, sono inoltre riportate alcune informazioni tecniche collaterali (tipo di NAND: SLC oppure MLC):

ssd e controller

Uno dei primi SSD recensiti su AndTech è un drive PATA da 1,8'' di Samsung progettato per il MacBook Air: da un confronto con l'HDD meccanico stock, tale SSD non entusiasmava affatto, soprattutto dal punto di vista dei prezzi ($1000). In realtà, sebbene i benchmark non evidenziassero sostanziali incrementi prestazionali rispetto all'HDD, nell'uso quotidiano l'SSD era decisamente più veloce.

Seguì la recensione di un drive Super Talent con memorie MLC e controller JMicron: tale azienda iniziò ad affermarsi come produttrice di controller per dischi a stato solido a basso costo. Dopo qualche entusiasmo iniziale, AnandTech si è resa conto, durante la recensione di tale drive e soprattutto nell'uso quotidiano, che spesso accadevano fenomeni di stuttering: il sistema di bloccava per qualche frazione di secondo. Idem con altri SSD basati sul medesimo controller (G.Skill, OCZ, Patriot e Silicon Power).

In questo periodo emerse sul mercato il primo SSD di Intel, l'X25-M. L'aziena affermava che tale drive sarebbe stato differente dai classici SSD Jmicron-based. Neppure i Samsung avevano problemi di stuttering. Il problema era la cache: il controller JMicron utilizzato in questi drive non supportava DRAM esterne, mentre i controller di Intel e Samsung si.

Oltre allo stuttering, i drive basati su controller JMicron avevano sostanziali problemi di performance nella scrittura random. Questi MLC economici, infatti, erano stati progettati per fornire il massimo transfer rate: la loro velocità di scrittura e lettura sequenziale era infatti ottima, ma l'unità entrava in crisi nell'utilizzo random. E questo è un problema importante, poichè i moderni sistemi operativi tendono a leggere e scrivere i dati in maniera molto casuale. E spesso i dati a cui si accede sono raramente grandi, solitamente pari a qualche KB.

Tali SSD erano poco maturi: dopotutto questa tecnologia era inizialmente identica a quella usata per costruire pendrive USB e CompactFlash, non hard drive veri e propri.

Un SSD Jmicron JMF602B, MLC, vanta una velocità di lettura di 134,7 MB/s: decisamente meglio dei 118MB/s di un VelociRaptor di Western Digital. In realtà, se consideriamo le performance random di scrittura, la tipologia di SSD appena menzionata scrive ad una velocità di 0,02 MB/s (con access time di ben 532,2 ms), mentre il Velociraptor assicura 1,63 MB/s e tempo di accesso di soli 7,2 ms. Il Velociraptor risulta dunque 70 volte più veloce!

jmicron vs velociraptor

Le performance di scrittura random rappresentano il parametro forse più importante nel considerare un SSD prestante piuttosto che lento.


Il nostro PC con sistema operativo appena installato è certamente più reattivo rispetto ad un ambiente software con decine e decine di programmi installati a posteriori: più applicazioni vengono eseguite in background, il sistema non è più così reattivo e a volte si incorre in inesorabili crash o enormi rallentamenti. La causa principale è rappresentata dall'aumento sostanziale delle richieste di scrittura e lettura al sottosistema di Input/Output. In quest'ottica, mentre la CPU è in grado di computare un enorme quantitativo di dati in parallelo, i nostri hard disk non sono così propensi al multitasking. In quest'ottica, sono le latenze a fare la differenza, ovvero il lasso di tempo intercorrente tra dato richiesto e dato restituito dal drive.

Il bench Average Read Access di Everest scrive un mucchio di file in maniera casuale sul disco e misura quanto tempo è necessario per poi accedere a tali file. E' uno scenario comune nell'uso quotidiano di un PC e tra i più rappresentativi: è ciò che accade mentre si esegue una applicazione mentre sono in esecuzione altri task sul computer.

Il più prestante HDD per fascia consumer, il WD Velociraptor, ha una latenza in lettura random pari a 6,83 ms. L'SSD Intel X25-M offre una latenza infinitesimale, pari cioè a soli 0,11 ms. Una differenza di performance abissale rispetto all'HDD più veloce sul mercato.

x25 vs velociraptor latency

Ma ciò che sorprende di più è che la latenza è costante in un SSD indipendentemente da dove è memorizzato il dato: mentre un hard disk è più veloce quando il dato a cui si desidera accedere è più vicino alle testine di lettura/scrittura, a tutte le parti di un SSD si accede invece allo stesso modo.

Nella scrittura random (blocchi da 4KB) l'SSD Intel X25-M performa a 23 MB/s, decisamente meglio degli 1,6 MB/s del Velociraptor e del mezzo mega al secondo dei primi SSD basati su controller JMicron. Finalmente il mercato SSD ha sfornato un drive in grado di battere in qualunque scenario l'hard disk più veloce al momento disponibile.

x25 vs velociraptor transfer rates


Gli hard disk archiviano i dati su dei piatti magnetici. Essi ruotano mentre un braccio con una testina di lettura/scrittura fluttua su diesso e legge i dati mentre il piatto ruota. Il diametro del piatto cresce spostandosi verso il bordo, dove, a parità di velocità di rotazione, i bracci meccanici possono coprire un'area maggiore (al crescere del diametro, aumenta di logica conseguenza il perimetro della traccia).

Ciò si traduce in una maggiore velocità ai bordi; probabilmente ricorderete qualcosa del genere quando in fisica avete forse analizzato la velocità angolare. Per questo motivo i sistemi operativi tentano di scrivere più sulle aree più esterne dei piatti dell'hard disk. Quando il disco si riempie e l'OS è costretto a scrivere più "all'interno", le performance degradano. A tale degrado contribuisce inoltre il livello di frammentazione di un hard disk nonchè la differenza di latenza nell'accesso random a seconda del punto specifico sul piatto di un hard disk sul quale la testina si trova ad operare. Per questa serie di considerazioni, è plausibile capire perchè un hard disk diviene più lento quando è pieno.

In un SSD, invece, i dati sono archiviati in memorie flash, quindi non importa dove essi sono memorizzati, poichè sarà possibile accedere ad essi sempre alla stessa velocità. Perchè, dunque, le performance di un Intel X25-M diminuiscono quando il drive viene riempito di dati? Inoltre, perchè le performance non si ripristinano quando si cancellano successivamente i dati memorizzati su di esso? Gli SSD rallentano col tempo... cerchiamo di scoprire il perchè.


Analizziamo rapidamente la costituzione fisica di una memoria NAND-flash; per ogni cella è necessario un transistor:

mosfet

Una singola cella NAND-flash può archiviare uno oppure due bit di dati. Nel primo caso parliamo di flash Single Level Cell (SLC), nel secondo di flash Multi Level Cell (MLC). Entrambe le tipologie di memoria flash sono costruite fisicamente allo stesso modo e non intercorrono differenze tra esse, è soltanto una questione di come i dati sono archiviati e letti dalle celle.

SLCvsMLC

Le memorie flash sono lette e scritte in una modalità "tira a indovinare": si applica una tensione alla cella e si controlla il modo in cui essa risponde. Si procede incrementando la tensione finchè non si ottiene un risultato.

Riprendendo il discorso SLC/MLC, e tenendo ben a mente che un computer memorizza i dati nella forma binaria, riconoscendo quindi "0" e "1" in sequenza, ciascuna cella SLC può memorizzare un solo bit, quindi o "0" o "1". Nel caso di una cella MLC, invece, i bit memorizzabili sono 2 e le configurazioni binarie possibili diventano 4: "00", "01", "10" oppure "11". A ciascuna combinazione corrisponde una particolare tensione: con quattro livello di tensione da controllare, una memoria flash MLC richiede circa tre volte del tempo rispetto a quello necessario per scrivere su una memoria SLC: la letenza per la lettura random raddoppia (50us contro i 25us di un SLC), mentre per cancellare una cella sono necessari 2ms per entrambe le soluzioni. D'altro canto, è nella lettura che l'MLC richiede più tempo poichè è necessario capire quale particolare combinazione binaria contiene (dunque è necessario il doppio del tempo poichè sono 4 le combinazioni possibili, rispetto alle 2 dell'SLC). Nel cancellare un dato, invece, il tempo impiegato è il medesimo poichè non interessa conoscere il contenuto della cella, l'importante è svuotarla. Il lato posivito dell'MLC è invece rappresentato dalla capacità raddoppiata a parità di prezzo.

slc vs mlc

Ad oggi SSD MLC sono comunque abbastanza veloci e consigliati per gli ambiti desktop; gli SLC sono maggiormente indicati per l'ambito enterprise / server (vedi SSD Intel high-end).

Passiamo ora ad analizzare la strutturazione delle celle di memoria.

ssd cells

Le celle sono organizzate in un array (vettore) come illustrato nell'immagine sulla destra.

Dunque ogni cella memorizza uno oppure due bit di dati; gruppi di celle sono organizzati in pagine, la più piccola struttura che è possibile leggere o scrivere su un SSD. Ad oggi le pagine di un SSD sono grandi 4KB.

Le pagine sono raggruppati in blocchi; lo standard è rappresentato da 128 pagine per ogni blocco (dunque 128x4KB = 512KB come dimensioni di ogni blocco). Il blocco è la più piccola struttura che è possibile cancellare in un SSD. Dunque mentre è possibile leggere e scrivere direttamente agendo sulla singola pagina, è invece possibile cancellare un blocco (ovvero 128 pagine per volta). Tale limitazione è all'origine di alcuni problemi che affliggono un SSD.

page and block

Gruppi di celle sono raggruppate in una pagina, gruppi di pagine sono raggruppati in un blocco.

I blocchi sono a loro volta raggruppati in piani; in un die presente in una memoria NAND-flash è possibile identificare più piani. Ogni piano è formato da 1024 blocchi e, di conseguenza, è grande 512MB.

plane

La gerarchia organizzativa di un SSD non finisce qui. Infatti, ogni IC (circuito integrato) NAND-flash è a sua volta formato da diversi die, solitamente 2 oppure 4. E' infine possibile porre in pila più IC per massimizzare l'area a disposizione sul PCB che ospita i chip ed incrementare, di conseguenza, la capacità dell'intero SSD.


Fondamentalmente le memoria flash usate in un SSD provengono dalla stessa stirpe di flash usate nei drive USB. Questi ultimi non sono molto veloci, poichè la velocità di picco di una NAND-flash varia tra 5 e 40 MB/s.

Perchè gli SSD sono invece notevolmente più veloci? Semplicemente perchè i circuiti di memoria NANF-flash presenti negli SSD sono organizzati secondo un criterio di parallelismo. Le reali performance di un disco a stato solido, infatti, derivano dal fatto che viene eseguito l'accesso a più NAND IC (dicitura abbreviata che sta ad indicare i circuiti integrati NAND) contemporaneamente. Se ad esempio ogni NAND garantisce 20 MB/s di bandwidth e si accede contemporaneamente a 10 chip, la velocità globale sarà pari a 200 MB/s.

Ecco un'altra differenza sostanziale rispetto agli hard disk: mentre questi ultimi leggono e scrivono a partire da una medesima singola porzione del piatto, negli SSD tale concetto non è valido poichè vale il criterio del parallelismo. Una sorta di multithreading, dunque. Alcuni SSD sono addirittura progettati per preferire che i dati vengano sparsi appositamente in tutto il drive in modo da poter scrivere e poi leggere tale dato da diversi chip contemporaneamente. Molti drive SSD hanno controller dotati di più canali, solitamente variabile tra 4 e 10.

Sono quindi i canali di un controller ad influenzare il grado di parallelismo di cui un'unità SSD è capace. Intel, ad esempio, ha sempre prediletto un numero maggiore di canali. E' ovvio che, all'aumentare dei canali, è possibile bilanciare il numero di bit da scrivere dividendoli equamente tra i canali a disposizione ed evitando che alcune celle vengano scritte di più rispetto ad altre. Tale tecnica è detta wear levelling.

Tornando al discorso dell'organizzazione fisica di un SSD in pagine (da 4KB) e blocchi (da 512KB) si è detto che è possibile leggere e scrivere su una singola pagina, almeno finchè tale pagina è VUOTA. La pagina non può essere sovrascritta, il suo contenuto deve essere cancellato prima di poterci riscrivere nuovamente. Ed è proprio questo il problema. la più piccola struttura di un SSD che è possibile cancellare è un blocco. Effettivamente è uno spreco: per cancellare una singola pagina è quindi necessario, in realtà, cancellare l'intero blocco cui la pagina appartiene.

Riassumendo, un SSD può leggere e scrivere 4KB per volta, ma può cancellare solamente 512KB per volta.

Ogni volta che si cancella un blocco, viene ridotta l'aspettativa di vita della memoria flash. Le memorie NAND MLC possono essere cancellate 10.000 volte prima di diventare inutilizzabili per l'archiviazione dei dati.

Per questo motivo si cerca di ovviare a tale problematica evitando di sovrascrivere dati già memorizzati e cancellare dati. Sono queste la due situazioni che comportano la cancellazione dell'intero blocco cui la/e pagina/e considerate appartengono.

Chi possiede un SSD solitamente non riempie il proprio drive, per questo i produttori di controller tentano di aggirare la problematica scrivendo in ogni pagina del blocco prima di cancellare quel particolare blocco.

Ovviamente, se si utilizzano tutte le pagine dell'SSD per scriverci all'interno e non si cancella mai nulla dal drive, si esauriranno tutte le pagine a disposizione. In realtà può capitare che, sebbene non siano scritte tutte le pagine di un SSD, tutti i blocchi siano pieni (di pagine sia valide che "invalide").

In altre parole, persino se si usa il 60% della capacità dell'SSD, ci si può ritrovare con l'intero SSD riempito totalmente dal controller a causa della quotidiana crezione e cancellazione dei file.


I moderni sistemi operativi si interfacciano con gli hard disk utilizzando l'indirizzamento logico a blocchi (LBA, ovvero Logical Block Address). Gli hard disk sono dispositivi con piatti che ruotano, e la tecnica LBA organizza i settori sull'HDD in maniera lineare. Quando si salva un file, Windows semplicemente invoca un comando di scrittura per quel file in uno specifico indirizzo logico, per esempio LBA 15.

Il sistema operativo conosce gli LBA liberi e quelli occupati. Quando si cancella un file, gli LBA che puntano a quel determinato file sull'hard disk vengono indicati come disponibili e non più occupati. I dati che sono stati cancellati non vengono rimossi fisicamente ma soltanto a livello logico. La rimozione fisica coincide con l'eventule successiva sovrascrittura, nella medesima zona del disco, di un nuovo file.

Ebbene, gli SSD funzionano allo stesso modo. Il controller di un disco a stato solido include un livello di traduzione che associa gli LBA alle pagine del drive (in fondo, anche gli hard disk e le memorie RAM sono organizzati in pagine!).

Quando si cancella un file da un hard disk così come da un SSD, non c'è nessuna reazione da parte del drive. O almeno fin quando non si sovrascrive il settore (HDD) o la pagina (SSD), ovvero fin quando non si perde fisicamente il dato. In questo caso, mentre l'hard disk semplicemente scrive nuovi dati nel medesimo settore, un SSD alloca una nuova pagina: quella che conteneva il dato "vecchio", logicamente rimosso, sarà marchiata come invalida e ad un certo punto verrà cancellata (riprendendo quanto detto prima, verrà in realtà cancellata il blocco cui la pagina appartiene).

reaction hdd vs ssd


Sempre tenendo ben a mente quanto detto finora, AnandTech propone un esempio concreto per spiegare il fenomeno del degrado di un SSD. Prendiamo in considerazione un "mini SSD" di esempio, delle dimensioni di 20KB e caratterizzato da 5 pagine appartenenti ad un unico blocco.

Supponiamo di voler memorizzare un file di testo da 4KB nell'SSD. La richiesta perviene al controller il quale sa che tutte le pagine sono al momento vuote, quindi alloca la prima pagina al file di testo.

storing data 1

Ipotizziamo ora di voler salvare un'immagine JPEG da 8KB. Ancora una volta è il controller a farsi carico della richiesta, il quale riempirà le successive due pagine memorizzando dunque il file immagine.

Al momento 3 delle 5 pagine a disposizione sono piene, ed il sistema operativo rileva dunque che il 60% dell'SSD è pieno.

storing data 2

A questo punto si supponga di voler cancellare il file di testo (che occupa la prima pagina). La richiesta di cancellazione in realtà non perviene al controller, che continua a rilevare la presenza di tre pagine occupate e di due libere.

Infine, ipotizziamo adesso di voler salvere un'immagine JPEG da 12KB, che richiede quindi tre pagine da 4KB. Il sistema operativo sa che il primo LBA (relativo alla pagina inizialmente allocata per il file di testo) può essere sovrascritto (poichè abbiamo precedentemente detto al SO di volerne cancellare il contenuto). Quindi il sistema operativo informa il controller di sovrascrivere tale LBA, oltre a voler archiviare nei restanti 8KB a disposizione (ovvero le ultime due pagine) la restante parte dell'immagine.

E' questa richiesta la più problematica per il controller: abbiamo una richiesta di scrivere su tre pagine (a livello logico libere) ma in realtà le pagine fisicamente libere sono soltanto due. Sull'SSD, infatti, i primi 4KB sono rappresentati da una pagina "invalida" (contenente il file di testo cancellato, anche se ancora fisicamente presente poichè non sovrascritto), mentre il sistema operativo riconosce tale pagina come libera e disponibile alla memorizzazione di nuovi file.

storing data 3

Si rende quindi necessario cancellare fisicamente la prima pagina. Secondo quanto detto in precedenza, se vogliamo cancellare una pagina non possiamo farlo! Una pagina può solo essere letta o scritta, mentre la sua cancellazione interesserà tutto il blocco cui essa appartiene. Bisogna quindi cancellare l'intero blocco sull'SSD soltanto per recuperare la prima pagina (marchiata come invalida), quindi riscrivere i dati nel drive.

Per fare ciò è dapprima necessario salvare ciò che è memorizzato sull'SSD in una memoria tampone (ricordate? la prima immagine da 8KB, che occupava le pagine 2 e 3). Tale memoria d'appoggio può essere o la cache integrata nel controller oppure esterna ad esso; in quest'ultimo caso incorreremo in un lieve degrado di performance. A questo punto si agisce sulla copia nella cache: si cancella la pagina invalida e rimpiazza con i dati da memorizzare (la seconda foto da 12KB) cancellando il blocco e riscrivendo le pagine a partire dal contenuto memorizzato nella cache. Infine si copia tale contenuto nella memoria flash dell'SSD dopo aver cancellato il blocco dell'SSD (l'unico, nel nostro esempio).

storing data 4

Mentre il sistema operativo richiede semplicemente di scrivere 12KB, il controller dell'SSD in realtà deve dapprima leggere 12KB (le prime tre pagine occupate) e quindi scrivere un intero blocco (ovvero 20KB).

L'SSD preso in esame è abbastanza lento, poichè può scrivere ad 1KB/s e leggere ad una velocità di 2KB/s. In teoria per scrivere 12KB sono necessari 12 secondi, ma poichè il controller ha dovuto eseguire alcune operazioni aggiuntive (dettate appunto dall'impossibilità di sovrascrivere solo una pagina) si è reso necessario dapprima leggere 12KB e quindi scrivere 20KB per un totale di 26 secondi (6 per la lettura e 20 per la scrittura).

Questo processo avviene dietro le quinte; spreca tempo e riduce le performance. Per questo l'utente rileverà una velocità di scrittura di 0,46KB al secondo anzichè 1KB al secondo: proprio perchè in realtà nel disco non si è semplicemente scritto un file da 12KB, ma è stata attuata un'operazione decisamente più lunga. Dunque per scrivere 12KB sono stati impiegati 26 secondi: ciò significa che la velocità di scrittura rilevata sarà pari, quindi, a 0,46KB/s.

Ecco perchè gli SSD diventano lenti all'aumentare dello spazio occupato su di essi: proprio perchè aumenta la probabilità di voler riscrivere su pagine precedentemente usate che richiedono la sovrascrittura e, quindi, l'intero processo appena descritto.

Tutto ciò spiega inoltre perchè la velocità di lettura in un SSD resta costante, mentre quella di scrittura varia sensibilmente (chi ha avuto a che fare con un controller JMicron 602 lo sa meglio di chiunque altro).


Non c'è granchè da fare per il problema appena descritto: semplicemente non si possono cancellare le pagine in un chip di NAND-flash senza interessare l'intero blocco.

Una possibile strategia per aggirare il problema è quella di "nascondere" dello spazio a disposizione sull'SSD. Riprendendo l'esempio appena concluso, l'SSD è capiente, per l'utente che lo utilizzerà, 20KB, ma in realtà abbiamo 24KB di memoria nel drive. I restanti 4KB possono essere utilizzati dal controller, che userà tale pagina in più anzichè scomodare la pagina invalida (la prima, quella inizialmente usata per archiviare il file di testo).

Tuttavia a questo punto si ripresenterà il problema di partenza, poichè abbiamo esaurito, anche con questa tecnica di "overflow", il numero di pagine a disposizione. Il problema è stato soltanto ritardato ma non risolto...

free space to rescue

Ovviamente, all'aumentare dello spazio "nascosto", diminuirà la problematica riscontrata. Ad esempio, l'SSD Intel X25-M contiene il 7,5 / 8% di spazio in più rispetto a quanto rilevato dal sistema operativo. La versione X25-E, più prestante, ha ancora più spazio "nascosto" a disposizione sebbene lo spazio utilizzabile dall'utente coincida con quello presente sulla versione X25-M.

Le scritture random interessano maggiormente l'ambito server: è per questo motivo che Intel ha adottato questa precauzione in maniera più marcata nel modello "E", destinata appunto a tale segmento.

Non scoraggiamoci: possiamo adottare questa precauzione anche sul nostro SSD (che sia o meno dotato di più o meno spazio nascosto a disposizione del controller). Ci basterà formattare il drive e partizionarlo subito dopo creando una partizione più piccola rispetto alla reale capacità dell'SSD: il controller userà lo spazio non partizionato come area di riserva per aggirare la problematica del degrado di performance. Geniale, vero?


La problematica che affligge gli SSD, della quale si è parlato nelle ultime pagine, è essenzialmente dovuta al fatto che il drive non sa quando un file è cancellato, ma soltanto quando viene sovrascritto. Quando da Windows eliminiamo un file, infatti, esso viene soltanto logicamente eliminato, mentre le pagine dell'SSD nel quale è memorizzato saranno contrassegnate come "invalid" ma comunque recanti sempre quel file. Questo rallenta le performance quando vogliamo scrivere un nuovo file.

Per arginare la problematica è stato inventato il TRIM, un comando che richiede sia un SSD che un sistema operativo che lo supporti. Grazie a tale comando è possibile far sì che il sistema operativo dica all'SSD di cancellare le "invalid page" prima che esse vengano sovrascritte.

Innanzitutto, il TRIM funziona solo con gli SSD e non con gli hard disk: per questo motivo l'OS che lo supporta (ad esempio Windows 7) interroga tramite un particolare comando le periferiche di memorizzazione di massa e, se un drive risponde con uno "0", significa che si tratta di un SSD. In tal caso, il sistema operativo disabilita alcune feature come la deframmentazione ed abilita il TRIM.

Quando si cancella un file, il sistema operativo invia un comando TRIM all'SSD, relativo ai LBA che puntano al file in questione. Il controller, dopo aver rimosso gli LBA relativi a quel file, copierà il blocco nella cache, cancellerà le pagine cancellate a livello logico e scriverà i nuovi blocchi nelle pagine ripulite del drive.

trim

In sostanza, si tratta di un processo simile a quello analizzato in precedenza, tuttavia prima si è visto cosa accade quando bisogna scrivere un file e alcune pagine necessarie alla sua scrittura sono già marchiate come "invalide". Il TRIM spiana la strada eseguendo il "lavoro sporco" di pulizia a monte, evitando rallentamenti quando sarà necessario, successivamente, scrivere un nuovo file su uno vecchio (sovrascrittura, appunto).

Come possiamo facilmente intuire (anche e soprattutto sulla base di quanto già detto in precedenza), il TRIM riguarda sempre il blocco e non la singola pagina.

Grazie al TRIM, sia a livello logico che a livello fisico il file che si desidera cancellare viene effettivamente rimosso, in modo da evitare rallentamenti nella scrittura di futuri file in aree precedentemente occupate da file rimossi.

In realtà il TRIM non risolve il problema, poichè non può essere invocato nella sovrascrittura di un file (e tra l'altro avrebbe poco senso farlo): va eseguito prima.

I produttori di controller per SSD intendono supportare il TRIM appena vi è un supporto da parte dei sistemi operativi. Non è al momento noto se gli attuali SSD supporteranno tale funzionalità tramite un semplice aggiornamento del firmware oppure sarà necessario sostituire l'eventuale attuale SSD in nostro possesso con uno nuovo per godere del TRIM. Nella prima ipotesi non c'è da pagare nulla; ciò farà la felicità degli utilizzatori degli SSD e, di riflesso, anche dei produttori...

Alcuni SSD producer mettono a disposizione una utility da lanciare manualmente in ambiente Windows che consente di eseguire il TRIM su tutta l'unità. E' il caso di Patriot: i lettori di InformaticaEasy che hanno letto la recensione sul drive SSD Torqx avranno visto come, dopo l'esecuzione del TRIM, le performance dell'unità migliorino sensibilmente, soprattutto nella scrittura dei file.


Esiste un modo per eseguire un "recovery" di un SSD riportandolo alle originali performance di fabbrica. E' necessario eseguire un "secure erase" dell'unità, sfruttando ad esempio un tool che Intel include nelle confezioni dei suoi drive SSD. Tale software si chiama HDD ERASE e consente di ripulire ogni pagina dell'SSD.

Ovviamente si perderanno tutti i dati contenuti nell'unità, tuttavia quest'ultima verrà "resettata" alle sue originali performance.

Il tool di Intel funziona in realtà con qualunque SSD; si tratta di un'utility da salvare su un dispositivo a parte (es. pendrive) a partire dal quale dovrà essere eseguito il boot (non si agisce da sistema operativo).

Per far sì che il tool funzioni correttamente è necessario impostare da BIOS il controller SATA in modalità Legacy IDE, inoltre il disco dovrà essere connesso ad una delle prime quattro porte SATA pilotate dal controller (ICH, nel caso di southbridge Intel).

A questo punto bisognerà effettuare il boot dal drive sul quale l'utility è memorizzata e, in pochi semplici passi, dovremo acconsentire alla formattazione "secure erase". Alla fine del processo (che richiede qualche decina di minuti), riavviamo il PC e settiamo la modalità del controller SATA come era in precedenza (ad esempio RAID oppure AHCI).

secureerase

secureerase

secureerase

Su un buon SSD non è necessario eseguire tale procedura periodicamente, tuttavia quando si formatta il drive è consigliabile procedere con il secure erase.


A conclusione di questo report, riporto, di seguito, grafici e tabelle che mostrano il degrado di performance (sia in scrittura che in lettura) che affligge un'unità SSD quando è piena o comunque utilizzata dopo un certo periodo di tempo. Sebbene la problematica dovrebbe affliggere soltanto la scrittura, nel caso del drive SSD Intel X25 si notano rallentamenti anche nel caso della lettura.

Tale problematica affligge anche gli hard disk (secondo quanto detto in precedenza relativamente alla velocità di scrittura/lettura variabile e al grado di riempimento del drive).

Ecco i dati rilevati da AnandTech, comparando un SSD vuoto con il medesimo modello "usato":

pcmark new vs used

ssd new vs used read

ssd new vs used write


Abbiamo detto molto sui principi di funzionamento, le problematiche e le principali possibili tecniche di ottimizzazione di un SSD. In realtà ci sono ancora altri aspetti che andrebbero trattati in maniera approfondita, ma per quelli vi rimando alla lettura delle recensioni di dischi a stato solido attualmente pubblicate su InformaticaEasy: in ogni recensione, infatti, tendo sempre a riportare spiegazioni aggiuntive e collaterali oltre ad offrire ai lettori una panoramica del drive nonchè le sue reali performance. Non escludo la possibilità che il seguente articolo venga aggiornato in futuro con ulteriori sezioni.

Il giudizio che molti hanno sugli SSD è: "costa troppo e non è affidabile, quindi non lo compro". Beh, permettetemi di dire che tale opinione è oramai quasi del tutto infondata per diversi motivi.

Innanzitutto, i moderni SSD includono drive capaci di risultare concorrenziali ai più prestanti dischi proposti da Intel grazie all'adozione di controller alternativi, più recenti e molto validi: parlo dei Samsung e degli Indilinx, niente a che vedere con il "povero" JMicron 602. Gli SSD che adottano tali controller sono proposti a prezzi accettabili, e sicuramente vale la pena, ad oggi, considerare l'acquisto di un SSD da 64GB in accoppiata a Windows 7. Sebbene i 64GB di un SSD costino più degli ipotetici 64GB di un classico hard disk, il notevole incremento di performance sicuramente non vi farà rimpiangere l'acquisto. Oltre all'SSD, potremo continuare ad usare il nostro hard disk tradizionale come strumento di backup o come media sul quale installare programmi troppo ingombranti che sull'SSD non troverebbero posto.

Windows 7 è altamente ottimizzato per gli SSD, Vista altrettanto (ma un po' meno): non ha gran senso adottarli in abbinamento con XP.

E' ovvio che bisogna saper scegliere, è cruciale considerare l'acquisto di un drive SSD per il quale valga davvero la pena spendere dei soldi.

Un SSD non è affidabile? Personalmente ho riscontrato diversi "RAID failure" (parlo di hard disk) in poco tempo, invece un singolo moderno SSD, più performante di un RAID0 di hard disk convenzionali, è in quest'ottica certamente più sicuro. E ancora una volta vi parlo per esperienza personale, non per sentito dire. Infine, ricordo che alcuni produttori garantiscono i propri SSD per diversi anni, Patriot addirittura 10. E questo dovrebbe certamente rassicurarvi, sicuramente più del dato MTBF formulato dai produttori "a tavolino" e spesso non corrispondente alla verità.

Soprattutto nel segmento notebook/netbook ha senso parlare di altre due peculiarità di un SSD: assoluta silenziosità operativa e consumo infimo rispetto ad un hard disk. Ma anche in tale contesto vale eccome l'incremento di performance: i produttori di PC portatili adottano solitamente HDD SATA da 5400 RPM che offrono prestazioni davvero ridicole se comparate non tanto agli HDD più prestanti da 3,5'' quanto ai moderni SSD.

Per gli increduli delle performance di un SSD in abbinamento a controller SATA integrati, vi garantisco che sia gli Intel (ICH) che gli AMD si comportano egregiamente, persino se si tratta di controller con qualche anno alle spalle. Non è certo un caso se chi ha installato SSD su netbook con controller SATA I (1,5Gb/s teorici) ha riscontrato degradi prestazionali rispetto ad un controller più prestante davvero infimi, se non inesistenti.

Anche nel caso di configurazioni RAID, ricordiamoci che la banda dell'SATAII è limitata ad OGNUNO dei drive dell'array; il transfer rate complessivo da e verso il controller può dunque superare tranquillamente i 3 Gb/s. Ma personalmente sconsiglio la creazione di RAID 0 nel caso di SSD: ciò che conta sono le performance random, come avete visto. Ed un SSD singolo (benchè "moderno", come ho già ripetuto più volte) è più che sufficiente per l'utente comune.

L'articolo di AnandTech (e spero anche quanto da me riportato e commentato in questo report su InformaticaEasy) si è rivelato un'ottima fonte di ispirazione per trarre considerazioni e formulare opinioni sui dischi a stato solido: voi cosa ne pensate in merito?

Commenti (9)add comment
171
monk: ...
recensione spettacolare hai spiegato tutto quello che c'è da sapere sugli ssd smilies/wink.gif

Monk
1

agosto 05, 2009
62
admin: ...
Grazie smilies/smiley.gif Spero di poter approfondire ancora di più il discorso aggiungendo presto altri dettagli. Al momento sono letteralmente sommerso da altre recensioni smilies/shocked.gif
2

agosto 05, 2009
0
hepokal: ...
Vista l'ora tarda (2.35) solo un buon articolo come il tuo poteva tenermi ancora sveglio. Veramente notevole, grazie e complimenti.
3

agosto 06, 2009
62
admin: ...
Ciao hepokal,
grazie mille per l'apprezzamento e per avermi fatto visita! smilies/wink.gif

Paolo - Admin
4

agosto 06, 2009
0
Nicola: ...
Articolo fantastico, complimenti...
Volevo farti alcune domande:
1: Formattando un SSD senza HDD ERASE non si ottiene lo stesso risultato? come mai? i dati non vengono cancellati e quindi gli spazi lasciati vuoti durante la formattazione?
2: Giustamente hai scritto:

Come mai fanno questo? perchè non usano gli SSD??
3: qual' è l'aspettativa di vita di un SSD moderno? hai scritto che ogni cella può essere riscritta 10000 volte...ti chiedo, operazioni come il TRIM non determinerebbero un invecchiamento precoce dell'SSD camcellando spesso i blocchi??

Grazie

Se mi rispondi anche ti adoro...smilies/grin.gif
5

settembre 26, 2009
0
Nicola: ...
non si legge la parte che avevo messo tra virgolette...smilies/shocked.gif ??? rimedio:

2."i produttori di PC portatili adottano solitamente HDD SATA da 5400 RPM che offrono prestazioni davvero ridicole se comparate non tanto agli HDD più prestanti da 3,5'' quanto ai moderni SSD"

Come mai fanno questo? perchè non usano gli SSD??
6

settembre 26, 2009
0
carlo: ...
Articolo che tutti cercano e che finalmente spiega le cose da sapere, Grazie.
Una cosa soltanto, perchè non fate mai una classifica? Io vorrei comprare un ssd, ma...
dovreste scrivere, il migliore ad oggi è 1.... il secondo 2.. ecc, e scrivere dopo questo modello conviene un hdd normale..... cosi uno vede i prezzi e se lo compra, grazie, e spero che modificherai l'articolo con questi suggerimenti. carlo
7

novembre 20, 2009
62
admin: ...
Ciao Carlo,
sono contento che l'articolo ti sia piaciuto smilies/smiley.gif
Sarebbe effettivamente interessante stilare una classifica univoca relativamente alle performance delle varie soluzioni a stato solido presenti sul mercato, tuttavia, converrai con me, bisognerebbe provarli tutti ed in relazione ai diversi benchmark!
Se noti qualche mia recensione di SSD, comunque, (soprattutto nel caso del Kingston, l'ultimo che ho recensito ad oggi) ci sono diversi grafici che ne comparano le performance con altre unità che ho precedentemente recensito.

Paolo - Admin
8

novembre 20, 2009
0
milena: ...
WOW..sono d'accordo con tutti quelli che hanno scritto sopra
qui c'è davvero tutto quello che serve sapere in un linguaggio facile
un lettura appassionante

personalmente conoscono OCZ e ve lo consiglio!
http://www.itdistribuzione.com/portale/servlet/CoordinatorServlet?action=ProduttoreTipologiaAction&idProduttore=741&idTipologia=636
9

marzo 23, 2010

Scrivi commento
più piccolo | più grande

busy

Articoli correlati:
Articoli più recenti:
Articoli meno recenti: