Ссылка на эту страницу: https://support.microsoft.com/en-us/kb/140365
NTFS не превышает 4 КБ размера кластера, пока объем не превышает 16 ТБ, а FAT32 не превышает 16 КБ в диапазоне от 16 ГБ до 32 ГБ в современных версиях Windows.
Однако exFAT по умолчанию имеет значение 4 КБ в диапазоне громкости от 7 до 256 МБ. После этого он переходит к 32 КБ в диапазоне от 256 МБ до 32 ГБ и до 128 КБ сверх этого.
Это почему? Относительно большой размер кластера кажется расточительным, особенно в формате, предназначенном для небольших внешних устройств, таких как флэш-накопители. Вдвойне, если вы форматируете флеш-память, потому что, насколько я понимаю, главное преимущество большего размера кластера - более быстрый ввод-вывод из-за меньшей фрагментации и меньшего количества читаемых кластеров. Поправьте меня, если я ошибаюсь, но флэш-память гораздо, гораздо менее подвержена замедлениям, вызванным фрагментацией. Так зачем делать размер кластера таким большим?
источник
Ответы:
Поскольку exFAT используется в основном для таких вещей, как карты SD большой емкости, а на картах SD вы должны стереть сектор, прежде чем сможете писать на него. Если бы вы использовали небольшие кластеры на карте с большим размером сектора стирания, это привело бы к тому, что многие команды стирания и записи в один и тот же сектор записывали бы несколько последовательных кластеров данных на диск, не только снижая производительность, но и преждевременно изнашивая флэш-память. клетки. Размер сектора стирания обычно не документируется в таблицах данных карты, но его можно найти в реестре CSD карты. Содержимое этого реестра будет варьироваться от карты к карте в зависимости от ее внутреннего дизайна. Поскольку SD-карты обычно используются в таких вещах, как камеры, в которых хранятся большие файлы, неиспользованное пространство большого размера кластера не имеет значения,
На этой веб-странице содержится содержимое этого реестра примерно для десятка карточек:
http://goughlui.com/2014/01/03/project-read-collect-decode-sd-card-csd-register-data/
И если вы введете его содержимое в следующий калькулятор, вы увидите, что для нескольких карт емкостью 32/64 ГБ размер сектора стирания составляет 128 блоков, а блок - 512 байт. А для карты емкостью 2 ГБ размер сектора стирания составляет 32 блока, а блок - 1024 байта.
http://goughlui.com/static/csdecode2.htm
Является ли Windows достаточно умной, чтобы запросить регистр CSD и предложить размер кластера, или она просто догадывается на основе размера раздела или диска, неизвестно. Если бы вам пришлось эмулировать SD-карту с помощью микроконтроллера, вы могли бы это узнать.
источник