Perché la dimensione di allocazione predefinita di exFAT in Windows è così alta?


12

Riferendosi a questa pagina: https://support.microsoft.com/en-us/kb/140365

NTFS non supera le dimensioni del cluster 4KB fino a quando il volume non supera i 16 TB e FAT32 raggiunge il limite massimo a 16 KB nell'intervallo di volume da 16 GB a 32 GB nelle versioni moderne di Windows.

exFAT, tuttavia, per impostazione predefinita è solo 4KB nell'intervallo di volumi compreso tra 7 MB e 256 MB. Successivamente passa a 32 KB nell'intervallo da 256 MB a 32 GB e oltre 128 KB.

Perché? Una dimensione del cluster relativamente elevata sembra dispendiosa, soprattutto in un formato progettato per dispositivi esterni più piccoli, come le unità flash. Dubbiamente, se si sta formattando la memoria flash, perché, a quanto ho capito, il vantaggio principale di una dimensione del cluster più grande è un IO più veloce a causa di una frammentazione inferiore e di un numero complessivo di cluster da leggere. Correggimi se sbaglio, ma la memoria flash è molto, molto meno soggetta a rallentamenti causati dalla frammentazione. Quindi perché rendere le dimensioni del cluster così alte?


"Dimensione" e "alto" non vanno insieme. I numeri possono essere "alti". "Grande" è la parola scommettitore anziché "alto".
segatura,


volevo solo ricordare che ho appena formattato un'unità da 1 TB utilizzando la dimensione del cluster predefinita e Windows ha utilizzato una dimensione del cluster di 2048 KB !!! Questo non sta solo sfidando le specifiche sulla loro pagina, è sempre WAYY troppo alto
woojoo666

Per chiunque abbia raggiunto questo da Google e potrebbe mai eseguire il backup di una directory git sull'unità / scheda in questione, è importante conoscere anche il rovescio della medaglia di grandi settori: ogni file ~ 200 byte in una directory git occupa 1 unità di allocazione completa. I settori di grandi dimensioni possono fare in modo che le directory di sviluppo (che possono contenere 10k + file minuscoli) occupino un grande multiplo delle loro normali dimensioni dell'HDD. Es: superuser.com/questions/704218/… superuser.com/questions/1370780/…
kcrumley

Risposte:


11

Poiché exFAT viene utilizzato principalmente per cose come schede SD di grande capacità e su schede SD è necessario cancellare un settore prima di poter scrivere su di esso. Se si utilizzassero piccoli cluster su una scheda con dimensioni di settore di grandi dimensioni, si risulterebbero in molti comandi di cancellazione e scrittura nello stesso settore di scrittura su disco di diversi cluster sequenziali di dati che non solo riducono le prestazioni ma anche consumano prematuramente il flash le cellule. La dimensione del settore di cancellazione non è generalmente documentata nei fogli dati della scheda ma è disponibile nel registro CSD della scheda. Il contenuto di questo registro varierà da una scheda all'altra a seconda del suo design interno. Poiché le schede SD sono generalmente utilizzate in cose come le fotocamere che archiviano file di grandi dimensioni, lo spazio sprecato di un cluster di grandi dimensioni non è importante,

Questa pagina web ha i contenuti di questo registro per circa una dozzina di carte:

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

E se inserisci i suoi contenuti nel seguente calcolatore puoi vedere per alcune delle schede da 32/64 GB la dimensione del settore di cancellazione è di 128 blocchi con un blocco di 512 byte. E per una scheda da 2 GB la dimensione del settore di cancellazione è di 32 blocchi con un blocco di 1024 byte.

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

Indipendentemente dal fatto che Windows sia abbastanza intelligente da interrogare il registro CSD e suggerire una dimensione del cluster, o se semplicemente indovina in base alla dimensione della partizione o del disco è sconosciuto. Se dovessi emulare una scheda SD con un microcontrollore, potresti scoprirlo.


1
non sapevo di dover cancellare la memoria flash prima di poter scrivere su di essa. Adesso ha senso. Grazie!
InsanityOnABun

1
Sembra che si supponga che le schede SD non abbiano un livello di traduzione flash, ovvero che i settori logici adiacenti siano sempre fisicamente adiacenti in NAND. Altrimenti i settori logici in un cluster non dovrebbero appartenere allo stesso blocco di cancellazione. Quali prove hai a sostegno di questa ipotesi?
segatura,

In effetti alcune schede SD e unità flash ad alte prestazioni hanno un livello di traduzione e tuttavia sono ancora preformattate con cluster da 32kb ?? Ho verificato che i cluster da 4kb migliorano le prestazioni per scritture e letture casuali
thomasrutter
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.