web-dev-qa-db-pt.com

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

Referenciando esta página: https://support.Microsoft.com/en-us/kb/140365

O NTFS não ultrapassa o tamanho do cluster de 4KB até que o volume ultrapasse 16 TB, e o FAT32 atinge o máximo de 16 KB no intervalo de volume de 16 GB a 32 GB nas versões modernas do Windows.

o exFAT, no entanto, apenas assume o padrão de 4KB na faixa de volume de 7 MB a 256 MB. Depois disso, ele salta para 32 KB na faixa de 256 MB a 32 GB e 128 KB além disso.

Por que é que? Um tamanho de cluster relativamente alto parece um desperdício, especialmente em um formato projetado para dispositivos externos menores, como unidades flash. Duplamente, se você estiver formatando a memória flash, porque, pelo que entendi, o principal benefício para um tamanho de cluster maior é mais rápido IO devido à menor fragmentação e menos clusters gerais para leitura. Estou errado, mas a memória flash é muito, muito menos propensa a lentidão causada por fragmentação.Então, por que tornar o tamanho do cluster tão alto?

12
InsanityOnABun

Como o exFAT é usado principalmente para coisas como cartões SD de grande capacidade, e nos cartões SD, você deve apagar um setor antes de poder escrever nele. Se você usasse pequenos clusters em um cartão com um tamanho grande de setor de apagamento, isso resultaria em muitos comandos de apagar e gravar no mesmo setor, 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 apagamento geralmente não está documentado nas folhas de dados do cartão, mas pode ser encontrado no registro CSD do cartão. O conteúdo deste registro varia de cartão para cartão, dependendo de seu design interno. Como os cartões SD geralmente são usados ​​em câmeras como arquivos que armazenam arquivos grandes, o espaço desperdiçado de um tamanho de cluster grande não é importante, e somente seria se você estivesse armazenando um número muito grande de arquivos muito pequenos, o que geralmente não acontece.

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

http://goughlui.com/2014/01/03/project-read-collect-decode-sd-card-csd-register-data/

E se você inserir seu conteúdo na calculadora a seguir, poderá ver em alguns dos cartões de 32/64 GB o tamanho do setor de apagamento é de 128 blocos, sendo um bloco de 512 bytes. E para um cartão de 2 GB, o tamanho do setor de apagamento é de 32 blocos, sendo 1024 bytes.

http://goughlui.com/static/csdecode2.htm

Se o Windows é ou não inteligente o suficiente para consultar o registro do CSD e sugerir um tamanho de cluster, ou se ele simplesmente adivinha que o tamanho da partição ou do disco é desconhecido. Se você emular um cartão SD com um microcontrolador, poderá descobrir.

11
Muh Fugen