Устройства флэш-памяти (которые используются для современных твердотельных накопителей) не могут записывать произвольные данные в любой момент; перед записью в ячейку (обычно 4 КБ) необходимо сначала удалить ее. К сожалению, операция удаления очень медленная; именно поэтому флэш-устройства были намного медленнее, чем магнитные накопители, несмотря на отсутствие движущихся частей.
Современные твердотельные накопители скрывают время стирания, поддерживая набор предварительно стертых ячеек, что означает, что команда записи не будет немедленно перезаписывать существующие данные, вместо этого контроллер накопителя выбирает стертую ячейку, переназначает ее и записывает с новыми данными. Это (и несколько стратегий кэширования записи размышлению) дает приводу огромный прирост скорости, значительно превосходящие магнитные диски.
Чтобы всегда иметь набор предварительно удаленных ячеек, каждый раз, когда ячейка не нужна, накопитель планирует ее для фонового стирания и добавляет в список платных ячеек.
К сожалению, существующие файловые системы не удосужились сообщить накопителю, когда сектор свободен. В конце концов, диск должен был быть просто тупым хранилищем битов. Удаление файла или любой другой операции, которая помечает сектор как свободный от точки зрения файловой системы, было лишь отметкой в некоторой структуре метаданных. Сам сектор не был затронут. Даже если файловая система очистит его, записав поверх него нули, накопитель не сможет узнать, означает ли это, что сектор свободен или пользователь хочет получить несколько нулей в файле. Через некоторое время у накопителя не будет свободной ячейки для стирания перед записью; и производительность трагически ухудшилась.
Инструкция TRIM была быстро разработана и принята большинством поддерживаемых файловых систем. Это простой сигнал, который файловая система использует, чтобы сообщить накопителю, что содержимое сектора больше не важно. Как только все сектора, отображенные в ячейке, освобождаются, контроллер SSD удаляет ячейку и планирует ее удаление. Если хост читает эти сектора, SSD не будет загружать данные из Flash, он немедленно отвечает нулями; но самый важный эффект заключается в том, чтобы список предварительно удаленных ячеек всегда пополнялся.
Тем не менее, большинство SSD имеют меньшую емкость, чем физический размер флэш-памяти, иногда до 75%. Это позволяет хранить некоторые неиспользуемые ячейки даже на 100% заполненной системе, так что (перезапись) записи используемых секторов все еще происходит быстро.