Разбираемся с практической пользой TRIM в твердотельных накопителях

Время дочитывания:
Желая пролить свет на секрет успеха твердотельных устройств с технической стороны, сегодня мы коснемся логики и функционала интересной команды ATA интерфейса - TRIM, играющей ключевую роль в поддержании их производительности.

Разбираемся с практической пользой TRIM в твердотельных накопителях


Ни для кого не секрет, что между HDD и SSD дисками существует много принципиальных различий, обуславливающих их сильные и слабые стороны. Так, для жестких дисков, в этом аспекте, характерны долговечность и низкие показатели обмена данными, для SSD, в свою очередь, ситуация обратная – развивая внушительные показатели скорости, что для большинства и является главным параметром выбора, их камнем преткновения становится ограниченное количество циклов перезаписи. В силу этого, становится неудивительно, что последним удается занимать все более прочные позиции на рынке, вытесняя традиционные диски в специфические ниши. Желая пролить свет на секрет успеха твердотельных устройств с технической стороны, сегодня мы коснемся логики и функционала интересного алгоритма TRIM, играющего ключевую роль в их производительности.

Польза и принципы


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



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



Чтобы было понятнее, о чем здесь идет речь, поверхностно коснемся внутренней структуры накопителей. Если в HDD, наименьшая единица хранения называется сектором,



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



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



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

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



В техническом аспекте, весь смысл лежит в том, чтобы освободить от этой неблагодарной работы дисковый контроллер и снизить износ ячеек памяти. Фактически это означает, что при удалении пользователем каких-либо данных, TRIM «заставляет» систему не просто помечать их как невостребованные в главной файловой таблице (MFT), а по-настоящему стирать из ячеек (именно по этой причине, восстановление данных с таких дисков будет невыполнимой задачей, в сравнении с HDD или SSD, не имеющих ее в своем составе).

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

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

Определение TRIM в системе


Суммируя вышесказанное, стоит отметить, что несмотря на очевидные преимущества данной функции, не все диски имеют ее в своем составе. Также стоит учитывать, что она может быть недоступна или отключена в вашей системе. Узнать текущий статус TRIM возможно несколькими способами, например, через командную строку. Жмем сочетание клавиш Win+R и набираем cmd.exe. Далее в окне вводим строку fsutil behavior query disabledeletenotify



Если в результате будет отображено значение 0 – функция работает, в противном случае в окне будет стоять значение 1.

Как, можно заметить, последние сборки Windows 10 отображают статус сразу для NTFS и ReFS, поэтому в тех случаях, когда TRIM оказался неактивен для текущей ФС (в конкретном примере это NTFS), следующей строкой вводим:

fsutil behavior set disabledeletenotify NTFS 0



В большинстве случаев этого будет вполне достаточно, и функция станет активной, но иногда, команда fsutil может давать некорректные результаты. Происходит это, главным образом, по той причине, что Windows определяет твердотельный диск, как обычный HDD. Указать системе на очевидное несоответствие можно двумя способами: первый, раскрыть свойства диска и перейдя на вкладку сервис, выбрать пункт оптимизации.



Второй, можно выполнить через cmd или PowerShell, для этого, в окне интерпретатора, пишем строку winsat diskformal и дожидаемся результатов.



Обычно, после оценки скоростных показателей, ОС выставляет правильный тип устройства и автоматически подключает для него TRIM, в чем можно убедиться, повторно выполнив команду fsutil behavior query disabledeletenotify

Помимо системных служб существует даже более точное средство диагностики – утилита TRIMcheck. Скачать ее можно здесь: https://cloud.mail.ru/public/GrEw/NmVmQvU3g

Далее запускаем exe-файл и в окне жмем Enter, ждем, пока она произведет все подготовительные операции и после сообщения о создании временного файла, согласно требованию программы, закрываем ее и запускаем повторно через 20-60 секунд.



Интерпретация результатов простая, если утилита выдаст подобное заключение:



TRIM не активен



При таком сообщении:



Работает.

Имейте в виду, что для максимальной достоверности результатов тестирование лучше производить во время простоя системы (когда к диску нет большого количества обращений). Также стоит учитывать, что TRIMcheck не сможет проверить накопители, к которым было применено сжатие.

Заключение


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

Однако, перед тем как останавливать конечный выбор на конкретной модели, стоит помнить, что, являясь командой SATA и M.2 интерфейсов, TRIM будет отсутствовать на внешних USB-дисках, исключение составляют модели на Thunderbolt, но и они имеют свои нюансы.

Желаем вам долговечных и быстрых дисков.

Увидимся в новых материалах.
Есть вопросы по сайту?
Напишите нам прямо сейчас

Комментарии (0)