In che modo l'SSD fallisce verso la fine della vita?


9

Supponiamo che un SSD MLC sia durato molto a lungo e che la prima cella abbia colpito l'ultimo ciclo di cancellazione e si rifiuti di cancellare.

Cosa succede dopo? Il controller lo rileva come un blocco errato e passa al successivo e tenta invece di cancellarlo? La capacità totale dell'unità diminuirà lentamente nel tempo?

MODIFICARE

E ovviamente possiamo dimenticare di livellare l'usura. Sì, allunga la vita di un disco, ma non sto parlando di questo. Alla fine una cella colpirà l'ultimo ciclo di cancellazione.

Risposte:


8

I chip flash NAND hanno alcuni meccanismi integrati per rilevare errori nelle operazioni di scrittura e cancellazione e avviseranno il controller in caso di errore. In questo caso, il controller può riprovare o considerare quel blocco come cattivo e mapparlo dal suo algoritmo di livellamento dell'usura. Ogni pagina nel dispositivo NAND ha anche un'area di riserva accanto all'area dati principale, destinata a metadati come ECC e altre forme di rilevamento e tolleranza agli errori. Il controller può decidere il proprio schema di tolleranza agli errori utilizzando l'area di riserva. I codici di Hamming sono uno schema comune, sebbene ce ne siano diversi, inclusi semplici bit di parità e codici Reed-Solomon. Se le cose non coincidono con un'operazione di lettura, il controller è libero di fare ciò che desidera. Idealmente, dovrebbe anche mappare questi blocchi dall'algoritmo di livellamento dell'usura e perderei la capacità a poco a poco fino a quando "troppi" blocchi falliscono, dove "troppi" dipendono dagli algoritmi e dalle dimensioni della struttura hardware all'interno del controller. Molti progetti di controller di prima qualità dichiarano semplicemente un errore al sistema operativo.

Si noti che questo non è un problema specifico di MLC; sebbene le celle MLC possano essere più inclini a un errore di lettura, poiché esiste necessariamente un margine inferiore per l'errore, le celle SLC falliscono con gli stessi meccanismi e possono essere trattate dal controller allo stesso modo.


2

Proprio come con i dischi rigidi, dipende dall'implementazione nel sistema operativo. Il controller segnalerebbe semplicemente che la scrittura (la cancellazione è in realtà un'operazione di scrittura) non riuscita e spetta al driver devide nel kernel del sistema operativo decidere cosa fare. Da quello che ho visto finora, le implementazioni di Microsoft e Linux restituiscono semplicemente il codice di errore all'applicazione chiamante, quindi produce un errore I / O.

In breve: a un certo punto ottieni semplicemente un dispositivo "rotto".


Bene, fa schifo. Non un'astrazione molto buona allora ...
Pirolistico

1
E sbagliato. Principalmente questo viene gestito nell'SSD stesso, non nel driver del dispositivo. Perché queste sono operazioni normali. Il livellamento dell'usura registra il settore come non riuscito e rimappa il settore.
TomTom,

1

Gli SSD usano qualcosa chiamato "wear leveling", in cui l'unità mantiene una statistica sull'utilizzo del settore e ad un certo punto o quando rileva problemi, sposterà il settore in uno di riserva, proprio come accade con i normali dischi rigidi.


Sì, ma vedo un errore meccanico dell'HD meccanico prima che finiscano i settori riservati. SSD tuttavia potrebbe non farlo. Cosa succede quando un'unità esaurisce i settori riservati?
Pirolistico

Scrivi errori. Cos'altro ti aspetti?
TomTom,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.