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

12

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

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

exFAT ne prend cependant par défaut que 4 Ko dans la plage de volume de 7 Mo à 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 petits périphériques externes, comme les lecteurs flash. Doublement, donc si vous formatez la mémoire flash, car si je comprends bien, le principal avantage d'une taille de cluster plus importante est une E / S plus rapide en raison de la fragmentation moindre et des clusters globaux à 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 du cluster si élevée?

InsanityOnABun
la source
"Taille" et "haut" ne vont pas ensemble. Les nombres peuvent être "élevés". "Large" est le mot parieur au lieu de "high".
sciure
Je voulais juste mentionner que je viens de formater un disque de 1 To en utilisant la taille de cluster par défaut, et que Windows a utilisé une taille de cluster de 2048 Ko !!! Ce n'est pas seulement défier les spécifications sur leur page, c'est toujours WAYY trop élevé
woojoo666
Pour tous ceux qui ont atteint cela par Googling et pourraient jamais sauvegarder un répertoire git sur le lecteur / la carte en question, il est également important de connaître les inconvénients des grands secteurs: chaque fichier de ~ 200 octets dans un répertoire git occupe 1 unité d'allocation complète. Les grands secteurs peuvent faire en sorte que les répertoires de développement (qui peuvent contenir plus de 10 000 fichiers minuscules) occupent un grand multiple de leurs tailles de disque dur normales. Ex: superuser.com/questions/704218/… superuser.com/questions/1370780/…
kcrumley

Réponses:

11

Parce que exFAT est utilisé principalement pour des choses comme les cartes SD de grande capacité, et sur les cartes SD, vous devez effacer un secteur avant de pouvoir y écrire. Si vous deviez utiliser de petits clusters sur une carte avec une grande taille de secteur d'effacement, il en résulterait de nombreuses commandes d'effacement et d'écriture dans le même secteur. cellules. La taille du secteur d'effacement n'est généralement pas documentée dans les fiches techniques de la carte mais peut être trouvée dans le registre CSD de la carte. Le contenu de ce registre variera d'une carte à l'autre selon sa conception interne. Étant donné que les cartes SD sont généralement utilisées dans des choses comme les caméras qui stockent de gros fichiers, l'espace gaspillé d'une grande taille de cluster n'est pas important,

Cette page Web contient le contenu de ce registre pour 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/64 Go, la taille du secteur d'effacement est de 128 blocs avec un bloc de 512 octets. Et pour une carte de 2 Go, la taille du secteur d'effacement est de 32 blocs avec un bloc de 1024 octets.

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

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

Muh Fugen
la source
1
je ne savais pas qu'il fallait effacer la mémoire flash avant de pouvoir y écrire. Cela a du sens maintenant. Merci!
InsanityOnABun
1
Vous semblez supposer que les cartes SD n'ont pas de couche de traduction flash, c'est-à-dire que les secteurs logiques adjacents seront toujours physiquement adjacents dans NAND. Sinon, les secteurs logiques d'un cluster n'auraient pas à appartenir au même bloc d'effacement. Quelles preuves avez-vous pour soutenir cette hypothèse?
sciure
En effet, certaines cartes SD et lecteurs flash haute performance ont une couche de traduction et sont toujours pré-formatés avec des clusters de 32 Ko ?? J'ai vérifié que les clusters de 4 Ko améliorent les performances des écritures et des lectures aléatoires
thomasrutter