Como o SSD falha perto do fim da vida?

9

Digamos que um SSD MLC tenha durado muito tempo e a primeira célula tenha atingido seu último ciclo de exclusão e se recuse a apagar.

O que acontece depois disso? O controlador detecta isso como um bloco ruim e se move para o próximo e tenta apagá-lo? A capacidade total da unidade diminuiria lentamente com o tempo?

EDITAR

E é claro que podemos esquecer o nivelamento de desgaste. Sim, isso prolonga a vida de uma unidade, mas não estou falando sobre isso. Eventualmente, uma célula atingirá seu último ciclo de exclusão.

    
por Pyrolistical 09.06.2009 / 20:13

3 respostas

8

Os chips flash NAND possuem alguns mecanismos internos para detectar falhas em operações de gravação e apagamento, e alertarão o controlador se houver algum deles. Nesse caso, o controlador pode tentar novamente ou tratar esse bloco como ruim e mapeá-lo para fora do seu algoritmo de nivelamento de desgaste. Cada página no dispositivo NAND também tem uma área sobressalente ao lado da área de dados principal, destinada a metadados como o ECC e outras formas de detecção e tolerância a falhas. O controlador pode decidir seu próprio esquema de tolerância a falhas usando a área sobressalente. Códigos de Hamming são um esquema comum, embora existam vários, incluindo simples bits de paridade e códigos Reed-Solomon . Se as coisas não corresponderem a uma operação de leitura, o controlador estará livre para fazer o que quiser. Idealmente, isso também mapearia esses blocos para fora do algoritmo de nivelamento de desgaste, e você perderia pouco a pouco a capacidade até que "muitos" blocos falhem, onde "muitos" depende dos algoritmos e tamanhos de estrutura de hardware dentro do controlador. Muitos projetos de controladores de primeiro corte simplesmente declaram um erro para o sistema operacional.

Observe que isso não é um problema específico da MLC; Embora as células MLC possam ser mais propensas a um erro de leitura, uma vez que há necessariamente uma margem menor de erro, as células SLC falham com os mesmos mecanismos, e podem ser tratadas pelo controlador da mesma maneira.

    
por 09.06.2009 / 20:45
2

Assim como nos discos rígidos, depende da implementação no sistema operacional. O controlador simplesmente relataria que a gravação (a exclusão é realmente uma operação de gravação) falha e cabe ao driver devide no kernel do sistema operacional decidir o que fazer. Pelo que vi até agora, as implementações da Microsoft e do Linux simplesmente retornam o código de erro para o aplicativo de chamada - portanto, ele produz um erro de E / S.

Em suma: você simplesmente recebe um dispositivo "quebrado" em algum momento.

    
por 09.06.2009 / 20:30
1

Os SSDs usam algo chamado "wear leveling", em que o drive mantém uma estatística sobre o uso do setor e, em algum momento, quando detecta problemas, move o setor para um de reserva, como acontece com discos rígidos comuns.

    
por 09.06.2009 / 20:25