Um cartão SDHC tem alguma recuperação de erro de gravação (ECC)?

4

O que acontece se um cartão SDHC recebe um erro de gravação (célula danificada / setor ruim)?

O cartão inteiro será inutilizável (para o lixo, todos os dados gravados nesse setor agora e no futuro serão perdidos)? Ou reescreva o setor (a memória flash fica corrompida ao escrever, então talvez tenha alguma função para verificar se o setor foi gravado com sucesso) para outra e marque a falha como inutilizável, o que será visto como redução de capacidade, mas nenhum dado perdido.

Eu tenho que fazer algumas pesquisas sobre cartões SD em máquinas sem disco.

    
por marc 16.05.2010 / 21:50

2 respostas

2

Em geral, os cartões SD são executados com um sistema de arquivos FAT. Isso detectará e marcará / sinalizará setores defeituosos, para que o resultado final não seja perdido, mas a quantidade de espaço disponível no cartão seja reduzida levemente. Não é perfeito, claro. Algumas placas mais novas têm código de correção de erros embutido (ECC) que faz um trabalho semelhante em um nível mais baixo, portanto, em teoria, deveria ser menos provável perder informações sendo gravadas em um cartão. Ainda é possível, apenas menos provável.

    
por 30.12.2010 / 12:25
2

A maneira como o NAND flash funciona é fornecendo um número de "eraseblocks" - cada "apagador" tem um número de "páginas". Normalmente, você está vendo 128 eraseblocks de Kbyte divididos em 64 páginas de 2 Kbytes. Cada página pode ser gravada, mudando bits de 1 para 0. Se você quiser alterar qualquer bit de 0 para 1, você deve emitir um comando erase para todo o bloqueio de texto que redefine todos os bits para 1 (a menos que o bloco seja usado ).

A escrita não é perfeita e alguns bits podem não mudar de 1 para 0, ou virar sozinhos.

Existe também uma "área fora da banda", ou uma página extra, por bloqueio de texto. Lá, códigos ECC podem ser escritos, e é isso que é usado para o flash SLC . Para flash MLC , eles usam BCH códigos que podem recuperar mais bits.

Internamente, é assim que as coisas funcionam. Os cartões SD não fornecem acesso NAND bruto, mas passam por um microcontrolador interno que é responsável pelo nivelamento de desgaste e por todas essas coisas boas. O dispositivo host nunca vê o NAND bruto, mas apenas um dispositivo de bloco. Mas o SD usa ECC ou BCH AFAIK .

    
por 20.11.2011 / 04:01

Tags