Как флэш-накопители сохраняют хорошую производительность, если TRIM не поддерживается?

Как флэш-накопители сохраняют хорошую производительность, если TRIM не поддерживается?

Насколько мне известно, до версии Windows 7 не было поддержки TRIM/UNMAP (для SSD-накопителей использовались специальные инструменты), но флэш-накопители использовались примерно с 2005 года и полностью поддерживались Windows XP.

Как USB-устройства массового хранения данных, они использовали протокол SCSI поверх USB (я прав?). В SCSI есть UNMAP, но он также не поддерживался в Windows XP.

Таким образом, единственный шанс для USB-флешки узнать, что какой-то блок может быть удален, — это запрос на запись от ОС.

Это означает, что после некоторого использования весь диск загрязняется и всегда работает медленно. Нет способа заставить его удалить любой блок. Вы можете только выбросить его и купить новый USB-флеш-накопитель.

Но я уверен, что это было не так. Что я упустил?

решение1

Короткий общий ответ: благодаря скрытому количеству ячеек NAND.

Контроллеры флэш-накопителей поддерживают производительность записи, применяя механизм сборщика мусора: фрагментированные свободные логические сектора собираются и сопоставляются со свободными физическими блоками NAND. Сборщик мусора вообще не контролируется ОС, это фоновый процесс, который полностью внутренний для накопителя (накопитель просто должен быть включен).

Если на диске больше нет свободного места, то, очевидно, сборка мусора больше не может работать (обратите внимание, что это происходит только в том случае, если диск в какой-то момент был полностью заполнен).

Чтобы решить эту проблему, на большинстве накопителей имеется скрытое количество ячеек NAND: даже если накопитель «логически заполнен» (с точки зрения ОС), он не «физически заполнен», и у контроллера все еще есть место для выполнения сборки мусора. https://www.seagate.com/fr/fr/tech-insights/ssd-over-provisioning-benefits-master-ti/

Теперь скрытый объем ячеек зависит от категории накопителя: у накопителя высокого класса объем будет большим, а у накопителя начального уровня — минимальным. Я также думаю, что можно с уверенностью предположить, что дешевые USB-накопители не имеют скрытых ячеек.

Аналогично, не все диски оснащены продуманным механизмом сбора мусора, некоторые диски могут быть грубыми, а некоторые диски (опять же дешевые USB-флешки) могут вообще не иметь сборщика мусора.

Все, что я написал выше, применимо даже без TRIM.

решение2

Существует слишком много технологий флэш-накопителей, чтобы дать что-либо, кроме очень общего ответа. Ниже приведены некоторые советы, имея в виду, что большинство флэш-накопителей производятся дешево с оборудованием, которое со временем деградирует.

  • Безопасное стирание ATA является альтернативой TRIM для некоторых приводов. в статье Снова сделайте USB-флеш-память быстрой автор использовал его для увеличения производительности записи USB-флеш-накопителя SanDisk Extreme емкостью 64 ГБ с 81,7 МБ/с до 149,7 МБ/с.

  • Слабые сектора на диске можно улучшить форматированием («медленным», а не быстрым)

  • Формат NTFS может быть более эффективным, чем FAT32 и exFAT. См., например, статью Сравнение производительности FAT32, exFAT и NTFS USB3.

  • Если в диспетчере устройств установить для USB-накопителя значение «Повышенная производительность» вместо «Быстрое извлечение», Windows сможет лучше кэшировать данные, но при этом вам придется всегда помнить о необходимости извлекать диск после записи.

  • Обновите драйверы для устройства и/или USB-контроллера.

  • Часто используемый USB-порт может со временем выйти из строя, поэтому попробуйте использовать другой порт, чередуя передний и задний порты корпуса.

решение3

Некоторые USB3.x накопителиподдержка отделки. Я не совсем уверен, сможет ли Windows его использовать, но Linux может.Видимоесли они используют протокол UASP (USB Attached SCSI), то trim может работать в Windows 8+.

Что касается сути вопроса (как это можно сделать без обрезки): я знаю о некоторых контроллерах USB2, у которых были особые трюки в рукаве, поскольку они понимали FAT32. Поэтому они знали, как эмулировать обрезку на этой файловой системе (следя за FAT), но не, например, на NTFS или некоторых файловых системах Linux. На таких дисках наблюдалось значительное падение производительности при использовании чего-то, отличного от FAT32, после того, как записи превышали емкость. Типичное исправлениебылпереформатировать хотя бы время от времени в FAT32; по сути, это эквивалентно полной обрезке.

Увы, у меня нет под рукой источника, подтверждающего мое утверждение о том, что некоторые контроллеры понимают FAT32, но, если я правильно помню, я видел презентацию китайского производителя чипов (вероятно, Yeestor).

Связанный контент