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 - 8) Come funziona l'SSD e perchè le sue prestazioni degradano

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

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).




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