web-dev-qa-db-fra.com

Pourquoi la taille d'allocation par défaut exFAT dans Windows est-elle si élevée?

Référencement de cette page: https://support.Microsoft.com/en-us/kb/140365

NTFS ne dépasse pas la taille de cluster de 4 Ko jusqu'à ce que le volume dépasse 16 To et FAT32 ne dépasse pas 16 Ko dans la plage de volumes allant de 16 Go à 32 Go sur les versions modernes de Windows.

cependant, la valeur par défaut d’exFAT est de 4 Ko dans la plage de volumes comprise entre 7 Mo et 256 Mo. Après cela, il passe à 32 Ko dans la plage de 256 Mo à 32 Go et à 128 Ko au-delà.

Pourquoi donc? Une taille de cluster relativement élevée semble inutile, en particulier dans un format conçu pour les périphériques externes plus petits, tels que les lecteurs flash. Doublement, si vous formatez la mémoire flash, car, si je comprends bien, le principal avantage d’une taille de cluster plus grande est une rapidité accrue IO en raison de la fragmentation moindre et de la taille globale des grappes à lire. Corrigez-moi si je me trompe, mais la mémoire flash est beaucoup, beaucoup moins sujette aux ralentissements causés par la fragmentation. Alors, pourquoi rendre la taille de la grappe si élevée?

8
InsanityOnABun

Comme exFAT est principalement utilisé pour des applications telles que les cartes SD de grande capacité, vous devez effacer un secteur sur ces cartes avant de pouvoir y écrire. Si vous utilisiez de petits groupes sur une carte avec une grande taille de secteur d'effacement, cela entraînerait de nombreuses commandes d'effacement et d'écriture sur le même secteur. cellules. La taille du secteur d'effacement n'est généralement pas documentée dans les fiches techniques mais se trouve dans le registre CSD de la carte. Le contenu de ce registre variera d’une carte à l’autre en fonction de sa conception interne. Étant donné que les cartes SD sont généralement utilisées dans des appareils tels que les appareils photo qui stockent des fichiers volumineux, l’espace perdu d’une grande taille de cluster n’est pas important et ne le serait si vous stockiez un très grand nombre de très petits fichiers, ce qui n’est généralement pas le cas.

Cette page Web contient le contenu de ce registre pour environ une douzaine de cartes:

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

Et si vous entrez son contenu dans la calculatrice suivante, vous pouvez voir que pour certaines des cartes 32/64GB, la taille du secteur d'effacement est de 128 blocs, un bloc de 512 octets. Et pour une carte de 2 Go, la taille du secteur d’effacement est de 32 blocs, le bloc étant de 1024 octets.

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

Que ce soit ou non Windows est assez intelligent pour interroger le registre de la CSD et suggérer une taille de cluster, ou s'il ignore simplement en fonction de la taille de la partition ou du disque qu'il est inconnu. Si vous deviez émuler une carte SD avec un microcontrôleur, vous pourriez le savoir.

8
Muh Fugen