Sistemas de arquivos diferentes requerem quantidade diferente de RAM em um sistema que os está usando. Um sistema que precisa gravar um arquivo em um sistema de arquivos FAT poderia, em teoria, conviver com um único buffer de 512 bytes, embora o desempenho seja bastante terrível. A expansão para dois ou três buffers de 512 bytes melhoraria enormemente as coisas. Ir além disso melhoraria um pouco mais as coisas e obter um ótimo desempenho de uma placa maior exigiria mais memória do que uma ótima, mas uma câmera que incluísse apenas buffers suficientes para obter eficiência ideal com placas menores ainda seria capaz de trabalhe com os maiores, mesmo que com menos eficiência.
Uma questão mais complicada é o fato de que os padrões de cartão de memória especificam que cada cartão se comporte como uma coleção numerada de setor de 512 bytes que pode ser lida e gravada independentemente em sequência arbitrária, mas não é assim que os dados são armazenados nos chips dentro do cartões. Os chips de memória usados em um cartão de memória típico são divididos em páginas de 528 bytes; aqueles, por sua vez, são agrupados em blocos de 256 ou mais. Depois que uma página é escrita, ela não pode ser reescrita sem apagá-la e com todas as outras páginas em seu bloco. Em teoria, seria possível para um cartão SD atender a uma solicitação de gravação de um setor de 512 bytes, copiando para a RAM todos os dados em seu bloco, apagando o bloco e gravando o bloco inteiro novamente, mas com novos dados em um setor . Na prática, o desempenho seria terrível. Em vez de, escrever um setor fará com que o cartão SD escolha uma página em branco, escreva os dados junto com o número do setor e várias informações auxiliares (as páginas de razão são 528 bytes em vez de 512) e, de alguma forma, acompanhe esse local adequado para os dados. Quando as páginas em branco são escassas, o controlador identifica um bloco cujas páginas foram substituídas principalmente por páginas escritas mais recentemente, copia todas as páginas ainda atuais desse bloco para blocos em branco e apaga todo o bloco agora redundante . Toda essa lógica é tratada inteiramente pelo próprio cartão, sem qualquer intervenção da câmera. Quando as páginas em branco são escassas, o controlador identifica um bloco cujas páginas foram substituídas principalmente por páginas escritas mais recentemente, copia todas as páginas ainda atuais desse bloco para blocos em branco e apaga todo o bloco agora redundante . Toda essa lógica é tratada inteiramente pelo próprio cartão, sem qualquer intervenção da câmera. Quando as páginas em branco são escassas, o controlador identifica um bloco cujas páginas foram substituídas principalmente por páginas escritas mais recentemente, copia todas as páginas ainda atuais desse bloco para blocos em branco e apaga todo o bloco agora redundante . Toda essa lógica é tratada inteiramente pelo próprio cartão, sem qualquer intervenção da câmera.
Toda essa lógica significa que, além do FAT32 ou de outro sistema de arquivos visto pela câmera, o cartão SD precisará ter seu próprio sistema de alocação e gerenciamento de blocos. Qualquer problema que ocorra nesse sistema provavelmente causará perda de dados, independentemente do tipo de sistema em cima dele. Em teoria, muitos cartões de memória são projetados para garantir que, mesmo que a alimentação seja inesperadamente removida durante alguma operação, o cartão poderá reverter o estado do cartão para o que estava antes do início da operação ou executá-lo até a conclusão ( se todos os dados necessários tivessem sido gravados e o cartão estivesse simplesmente limpando dados redundantes). Infelizmente, os cartões diferem em quão bem eles implementam essa lógica. Se uma perda inesperada de energia obstruir as tabelas de gerenciamento de armazenamento de um cartão,
Pessoalmente, acho que seria melhor para o SD Consortium especificar um sistema de arquivos independente do FAT32 ou, no mínimo, especificar que, mesmo que um cartão tivesse que ser legível como um volume FAT32, ele deveria ser gravado usando comunicações baseadas em arquivo protocolo. Um cartão que sabe quais grupos de setores são membros de cada arquivo pode otimizar suas rotinas de desfragmentação e também pode proteger melhor a perda de dados do que um que tivesse que apresentar o disco como um monte de 512 bytes independentes. setores, mas para o bem ou para o mal não é assim que as coisas são especificadas.