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 .