Of course, large clusters mean you run out of space on the fake block device if you try to store a lot of small files, and there's no way to coerce the emulation layer into letting you use the rest of the real space (short of using those sector numbers you skipped), so large clusters still seem like a bad idea.
When you include exFAT metadata overhead, larger clusters should be somewhat more efficient – but that has nothing to do with the size of the erase blocks of the raw flash, which is completely hidden by the emulation layer.
The exFAT cluster size probably has little effect on the amount of data written to the raw flash, or the number of block erase operations. But that doesn't matter, because the real location where the data goes on the raw flash is unrelated to the sector numbers of the virtual block device. The difference is that if you write a bunch of 5K files, they will be separated by 30 unused fake sectors that are never read or written to. That's the same amount of data that would have been written if the cluster size was 4K. The exFAT driver allocates 128K for the file, but (ignoring metadata) it only writes 8K: the two sectors that actually contain file data. Suppose the exFAT cluster size is 128K, the (fake) block device's sector size is 4K, and you write a 5K file to the exFAT volume. What actually happens is that exFAT runs on top of a block-device emulation layer, which is typically implemented in firmware on the flash device itself. That would be horrendously inefficient, even if the cluster size matched the flash erase block size. The earlier answer to this question is wrong and shouldn't have been upvoted or accepted. If you were to emulate a SD card with a microcontroller, you could find out. Wether or not Windows is smart enough to query the CSD register and suggest a cluster size, or if it simply guesses based on the partition or disk size is unknown. And for a 2GB card the erase sector size is 32 blocks with a block being 1024 bytes. This webpage has the contents of this register for about a dozen cards:Īnd if you enter its contents in to the following calculator you can see for a few of the 32/64GB cards the erase sector size is 128 blocks with a block being 512 bytes. Since SD cards are generally used in things like cameras which store large files, the wasted space of a large cluster size isnt important, and only would be if you were storing very large numbers of very small files which generally does not happen. The contents of this register will vary from card to card depending on its internal design. The erase sector size is generally not documented in card datasheets but can be found in the CSD register of the card. If you were to use small clusters on a card with a large erase sector size it would result in many erase and write commands to the same sector write a several sequential clusters worth of data to disk not only reducing performance but also prematurely wearing out the flash cells. 9.Because exFAT is used primarily for things like large capacity SD cards, and on SD cards you must erase a sector before you can write to it.No referral / affiliate links, personal voting / campaigning / funding, or selling posts Welcome to /r/Plex, a subreddit dedicated to Plex, the media server/client solution for enjoying your media! Plex Community Discord Rules Latest Regular Threads: No Stupid Q&A: Tool Tuesday: Build Help: Share Your Build: Submit Troubleshooting Post Files not showing up correctly?