Por que o tamanho de alocação padrão do exFAT no Windows é tão alto?

7

Referenciando esta página: link

O NTFS não ultrapassa o tamanho do cluster de 4KB até o volume ultrapassar 16 TB, e o FAT32 atinge 16 KB na faixa de volume de 16 GB a 32 GB nas versões modernas do Windows.

No entanto, o

exFAT só aceita 4KB no intervalo de volume de 7MB a 256MB. Depois disso, ele salta para 32KB no intervalo de 256MB a 32GB e 128KB além disso.

Por que isso? Um tamanho de cluster relativamente alto parece um desperdício, especialmente em um formato projetado para dispositivos externos menores, como pen drives. Doubly, se você estiver formatando a memória flash, porque, do meu ponto de vista, o principal benefício para um tamanho de cluster maior é a IO mais rápida devido à menor fragmentação e menos clusters gerais para leitura. Corrija-me se estiver errado, mas a memória flash é muito menos propensa a lentidão causada pela fragmentação. Então, por que aumentar o tamanho do cluster?

    
por InsanityOnABun 01.12.2016 / 21:58

1 resposta

7

Como o exFAT é usado principalmente para coisas como cartões SD de grande capacidade, e em cartões SD você deve apagar um setor antes de poder escrever nele. Se você usasse clusters pequenos em uma placa com um grande tamanho de setor de apagamento, isso resultaria em muitos comandos para apagar e gravar no mesmo setor e gravar vários clusters sequenciais de dados em disco, não apenas reduzindo o desempenho, mas também desgastando prematuramente o flash células. O tamanho do setor de exclusão geralmente não é documentado em planilhas de dados de cartões, mas pode ser encontrado no registro de CSD do cartão. O conteúdo deste registro irá variar de cartão para cartão, dependendo do seu design interno. Como os cartões SD são geralmente usados em coisas como câmeras que armazenam arquivos grandes, o espaço desperdiçado de um grande tamanho de cluster não é importante, e só seria se você estivesse armazenando um grande número de arquivos muito pequenos, o que geralmente não acontece. >

Esta página da web tem o conteúdo deste registro para cerca de uma dúzia de cartões:

link

E se você inserir seu conteúdo na calculadora a seguir, poderá ver algumas das placas de 32 / 64GB que o tamanho do setor de exclusão é de 128 blocos, com um bloco de 512 bytes. E para um cartão de 2 GB, o tamanho do setor de apagamento é de 32 blocos, com um bloco sendo 1024 bytes.

link

Se o Windows for ou não inteligente o bastante para consultar o registro de CSD e sugerir um tamanho de cluster, ou se ele simplesmente adivinhar com base na partição ou o tamanho do disco for desconhecido. Se você fosse emular um cartão SD com um microcontrolador, você poderia descobrir.

    
por 02.12.2016 / 14:13