SSD

Что такое SSD TRIM?

Что такое SSD TRIM?
SSD-накопители - это совершенно другой носитель данных по сравнению с теми, которые существовали до него. Магнитные носители, особенно вращающиеся диски, представили множество концепций, таких как размер сектора, разбиение на разделы, фрагментация и т. Д. Некоторые из этих идей были эмулированы и в прошивке твердотельных устройств.

С другой стороны, были введены новые концепции для оптимизации производительности, срока службы и надежности этих новых устройств. Одна из таких концепций - операция TRIM.

Схема SSD

Твердотельные накопители невероятно быстры и с каждым годом становятся все быстрее и дешевле. Их надежность также немного улучшилась с момента их появления. Однако твердотельные накопители по-прежнему не так надежны, как магнитные носители, и не так долговечны, как жесткий диск. Фактически, лежащие в основе механизмы чтения-записи сильно отличаются от того, что можно увидеть внутри жесткого диска.

Чтобы понять проблемы, от которых страдает SSD, и почему нам нужна операция TRIM для решения этих проблем, давайте сначала рассмотрим структуру SSD. Данные обычно хранятся в группах по 4 КБ ячеек, называемых страницами. Затем страницы группируются в кластеры по 128 страниц, называемые блоками, и каждый блок имеет размер 512 КБ для большинства твердотельных накопителей.

Вы можете читать данные со страницы, которая содержит некоторую информацию, или вы можете записывать данные на чистые страницы (без ранее существовавших данных на них, только серию единиц). Однако вы не можете перезаписать данные на странице размером 4 КБ, которая уже была записана, без перезаписи всех остальных 512 КБ.

Это является следствием того факта, что напряжения, необходимые для переключения 0 в 1, часто намного выше, чем в обратном направлении. Избыточное напряжение может потенциально перевернуть биты на соседних ячейках и повредить данные.

Операция удаления - снижение производительности SSD

Когда говорят, что данные 'удалено' ОС, SSD просто помечает все соответствующие страницы как недействительные, а не удаляет данные. Это очень похоже на то, что происходит внутри жесткого диска, секторы отмечен как бесплатное, а не физически обнуленное. Это значительно ускоряет операцию удаления.

В случае с жесткими дисками это работает нормально. Когда необходимо записать новые данные, вы можете перезаписать старые данные на освобожден сектор без каких-либо проблем или забот об окружающих секторах. Жесткие диски могут изменять данные на месте.

В случае с SSD это не так просто. Допустим, вы изменяете файл, и это соответствует изменению одной страницы размером 4 КБ. Когда вы пытаетесь изменить страницу размером 4 КБ на SSD, все содержимое его блока, все его 512 КБ, необходимо прочитать в кеш (кеш может быть встроен в SSD или это может быть основная память системы) и затем блок необходимо стереть, а затем вы можете записать новые данные на свою целевую страницу размером 4 КБ. Вам также необходимо будет записать оставшиеся немодифицированные 508 КБ данных, которые вы скопировали в свой кеш.

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

Первоначально это усиление не отображается. Ваш SSD вначале работает очень хорошо. В конце концов, по мере заполнения блоков неизбежно наступает момент, когда начинается все больше и больше операций записи, включающих дорогостоящие операции чтения-изменения-записи. Пользователь начинает замечать, что SSD не работает так хорошо, как изначально.

Контроллеры SSD также стараются обеспечить распределение данных по всему диску. Чтобы все штампы изнашивались одинаково. Это важно, потому что ячейки флэш-памяти имеют тенденцию быстро изнашиваться, и поэтому, если мы постоянно будем использовать только первые несколько тысяч блоков, игнорируя остальную часть SSD, эти несколько блоков скоро изнашиваются. Распределение данных по нескольким кристаллам также улучшает вашу производительность, поскольку вы можете читать или записывать данные параллельно.

Однако теперь записи рассредоточены, что увеличивает шансы на то, что у блока есть страница. Это еще больше ускоряет процесс деградации.

Команда TRIM и освобождение блоков

Команда TRIM сводит к минимуму снижение производительности за счет периодической обрезки недействительных страниц. Например, Windows 10 обрезает ваш SSD раз в неделю. Все данные, которые были помечены ОС как удаленные, фактически очищаются из ячеек памяти контроллером SSD при выполнении этой операции. Да, он все еще должен пройти операцию чтения-изменения-записи, но это происходит только один раз в неделю и может быть запланирован на часы, когда ваша система в основном идеальна.

В следующий раз, когда вы захотите написать на страницу, она будет пуста и готова к операции прямой записи!

Фактическая частота команды TRIM зависит от типа системы, в которой вы работаете. Базы данных, как правило, выполняют много операций ввода-вывода и поэтому требуют более частой обрезки. Однако, если вы делаете это слишком часто, операции с базой данных будут замедляться на период, когда TRIM работает. Задача системного архитектора - найти правильный график и периодичность.

Ограничения

Команда TRIM очень полезна для отсрочки снижения производительности вашего устройства. Это помогает поддерживать в среднем производительность вашего устройства. Но это только в среднем.

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

Кроме того, слишком частое использование SSD TRIM может снизить долговечность вашего хранилища. Поскольку все это удаление и цикл записи изнашивают ячейки, делая данные, хранящиеся в них, доступными только для чтения.

Заключение

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

Поставщики операционных систем, производители микросхем SSD и люди, которые пишут всю сложную логику прошивки, собрались вместе, чтобы дать нам это потрясающее устройство. TRIM - это всего лишь один из многих уровней сложности, которые там упакованы.

Рекомендации

  1. AnandTech и их удивительные исследования и обзор твердотельных накопителей.
  2. Статья в Википедии об усилении записи
  3. Напишите на Arstechnia о твердотельных накопителях и их внутреннем устройстве
Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...
Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...
Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...