В характеристиках NVMe SSD можно увидеть запись 5000, 7000 и даже 10 000 МБ/с. При копировании большого архива скорость иногда держится лишь первые десятки гигабайт, а затем падает в несколько раз. Это не обязательно перегрев или неисправность. Главная причина часто находится внутри NAND: современные SSD используют быстрый псевдо-SLC-кэш, а заявленная скорость не описывает поведение накопителя после его заполнения.
Заявленная скорость SSD описывает далеко не любой сценарий
Производитель указывает максимальную последовательную скорость чтения и записи, полученную при определенных условиях. Для оценки интерфейса и пиковой производительности такой параметр полезен, но по одной цифре нельзя понять, сколько данных накопитель способен записать с этой скоростью подряд.
Именно здесь возникает один из самых заметных разрывов между спецификацией и реальной эксплуатацией. SSD может действительно выдавать заявленные 7000 МБ/с. Результат теста не обязательно нарисован. Но высокая скорость способна сохраняться, например, пока запись помещается в быстрый кэш. После его исчерпания тот же накопитель переходит к непосредственной работе с основной NAND, и производительность становится другой.
Для установки Windows, запуска программ и копирования нескольких гигабайт это может вообще не проявляться. При переносе образа диска, видеоматериалов, большой библиотеки игр, виртуальных машин или сотен гигабайт между двумя SSD разница становится хорошо заметна.
Поэтому вопрос "какая скорость записи у этого SSD?" технически неполон. Для накопителя полезно знать как минимум две скорости: пиковую в пределах кэша и установившуюся после его заполнения.
Почему NAND вообще бывает SLC, TLC и QLC
Ячейка NAND хранит информацию не как отдельный файл или байт. Контроллер различает уровни заряда транзистора и преобразует их в записанные биты.
SLC хранит один бит в ячейке. Для одного бита достаточно различить два состояния. TLC хранит три бита, что требует уже восьми возможных состояний. QLC хранит четыре бита и использует 16 состояний.
Чем больше бит помещается в одну физическую ячейку, тем выше плотность хранения. На том же объеме кремния можно получить накопитель большей емкости, что снижает стоимость хранения одного гигабайта. Именно поэтому потребительские SSD давно перешли от дорогой SLC к многоуровневой NAND.
Цена этой плотности заключается в усложнении записи и чтения. Контроллеру необходимо точнее определить состояние ячейки. Запись в TLC и особенно QLC требует больше операций, чем простой выбор между двумя состояниями SLC.
Micron прямо указывает в своем техническом материале о QLC NAND, что QLC хранит четыре бита в ячейке с использованием 16 уровней напряжения. Компания также отмечает различия QLC и TLC по задержкам, ресурсу и сложности операций, хотя конкретные показатели сильно зависят от поколения NAND и контроллера.
Это последнее уточнение принципиально. Надпись QLC сама по себе не определяет скорость готового SSD. Современная QLC может оказаться быстрее старой TLC, если накопитель использует более новую NAND, больше каналов, удачный контроллер и хорошую прошивку. Тип памяти задает исходные ограничения, а итоговый SSD является целой системой.

Откуда в TLC- или QLC-накопителе появляется SLC
Большинство потребительских SSD не содержит отдельный большой массив настоящей SLC. Контроллер временно использует часть основной TLC или QLC в однобитовом режиме.
Представим TLC-ячейку, рассчитанную на три бита. Пока она работает как TLC, каждый физический элемент хранит три бита информации. Если контроллер временно использует ее как SLC и различает только два состояния, записать данные можно быстрее, но емкость этой области уменьшается примерно втрое относительно TLC-режима.
С QLC принцип похожий: ячейка временно хранит один бит вместо четырех. Производительность записи возрастает, а полезная емкость такого участка относительно QLC-режима уменьшается примерно в четыре раза.
Получается быстрый промежуточный слой. Компьютер отправляет данные на SSD, контроллер сначала записывает их в псевдо-SLC, быстро подтверждает операцию, а затем в свободное время переносит содержимое в основную TLC или QLC.
SanDisk описывает аналогичный подход для своей технологии nCache: часть NAND используется как SLC для ускорения входящей записи, после чего данные переходят в основное TLC-хранилище. Принцип можно увидеть в описании nCache 2.0.
Именно этот механизм позволяет сравнительно недорогому SSD кратковременно показывать скорость, которую чистая QLC при прямой продолжительной записи поддерживать не смогла бы.
Почему кэш называется SLC, хотя память остается TLC или QLC
Физически тип ячейки не меняется. TLC не превращается в отдельную SLC-микросхему. Контроллер всего лишь использует меньше уровней состояния ячейки.
Поэтому выражение "SLC-кэш" удобно, но может вводить в заблуждение. В подавляющем большинстве современных потребительских SSD речь идет о pseudo-SLC, pSLC или SLC mode.
После записи данные должны быть преобразованы в нормальный многоуровневый формат. Контроллер считывает их из временной области и записывает в TLC или QLC. Этот процесс иногда называют folding.
Пока SSD простаивает, пользователь может вообще не замечать внутренней работы. Проблема проявляется при длительной непрерывной записи, когда данные поступают быстрее, чем накопитель успевает освобождать SLC-кэш.
Что происходит в момент заполнения SLC-кэша
Допустим, SSD принимает поток данных со скоростью несколько гигабайт в секунду. Сначала свободная псевдо-SLC область поглощает запись. Одновременно контроллер пытается переносить старые данные из нее в основную NAND.
Если входящий поток небольшой, кэш успевает освобождаться, и пользователь постоянно видит высокую скорость. Именно так ведет себя накопитель в большинстве обычных коротких операций.
При длительном копировании баланс ломается. Новые данные поступают быстрее, чем контроллер освобождает SLC. В определенный момент свободная быстрая область заканчивается.
Дальше накопителю приходится записывать непосредственно в TLC или QLC либо одновременно принимать новые данные и переносить содержимое кэша. Скорость падает до уровня, который способна поддерживать основная NAND в этих условиях.
На графике продолжительной записи это часто выглядит как ступенька. Первые десятки или сотни гигабайт проходят почти горизонтальной линией на высокой скорости, затем производительность резко проваливается.
У некоторых накопителей после этого начинается еще более сложное поведение: скорость то растет, то снижается. Контроллер освобождает часть кэша, снова использует ее, выполняет сборку мусора и параллельно принимает новые данные.
Поэтому одно число "скорость после кэша" тоже иногда оказывается упрощением. Реальный график может состоять из нескольких режимов.
Почему размер SLC-кэша не всегда постоянный
Существует статический и динамический подход.
Статический кэш резервирует определенную физическую область NAND, которая постоянно работает в SLC-режиме. Такой кэш обычно относительно небольшой, зато его размер практически не зависит от заполнения пользовательского пространства.
Динамический кэш использует свободные ячейки основного массива. Пока SSD почти пуст, контроллер способен отдать под SLC большую область. По мере заполнения накопителя эти ячейки требуются уже для постоянного хранения пользовательских данных, поэтому доступный кэш уменьшается.
Solidigm подробно описывала этот принцип в материале о динамическом кэшировании SSD: по мере заполнения накопителя пространство динамического кэша сокращается.
Отсюда возникает важная особенность тестов. Новый SSD на 2 ТБ с 200 ГБ записанных данных и тот же SSD с занятыми 1,8 ТБ могут вести себя как два разных накопителя.
На почти пустом диске быстрый участок записи способен быть очень большим. На заполненном накопителе провал наступит заметно раньше.
Почему в обзоре нового SSD результат бывает лучше, чем через год использования
Самая простая причина заключается как раз в свободном пространстве. Тестовый накопитель обычно пуст или почти пуст. Он получает максимально возможный динамический SLC-кэш.
У пользователя спустя год может быть свободно 10-15% емкости. Контроллер уже не имеет возможности временно использовать сотни гигабайт свободной NAND в однобитовом режиме.
Есть и второй фактор. На свежем SSD много заранее стертых блоков. При продолжительной эксплуатации контроллер чаще вынужден выполнять дополнительные внутренние операции: искать свободные страницы, переносить актуальные данные и очищать блоки.
Поэтому сравнивать тест абсолютно пустого диска с поведением накопителя, заполненного на 90%, напрямую некорректно.
Из этого не следует, что каждый SSD обязательно начинает "тормозить от старости". Сам возраст накопителя не является основной причиной. Гораздо сильнее влияют количество свободного пространства, характер нагрузки, работа TRIM, состояние NAND, температура и архитектура конкретного контроллера.
Почему удалить большой файл иногда недостаточно для мгновенного восстановления скорости
Операционная система знает, что определенные логические блоки больше не содержат нужных данных. Контроллер SSD должен получить эту информацию и подготовить физические страницы NAND для повторного использования.
Для этого применяется TRIM. После удаления файла ОС сообщает накопителю, что соответствующие логические блоки больше не нужны.
Но NAND нельзя просто перезаписать поверх старого содержимого произвольным образом. Память организована страницами и блоками. Запись выполняется страницами, а стирание обычно затрагивает более крупный блок.
Если в блоке остаются актуальные страницы, контроллер может сначала перенести их в другое место, затем стереть блок целиком и только после этого вернуть его в пул свободного пространства. Этим занимается garbage collection.
Поэтому SSD является намного более активным устройством, чем кажется со стороны операционной системы. За простой командой записи скрывается работа FTL, сборщика мусора, wear leveling и управления свободными блоками.

Почему SSD полезно оставлять свободное место
Свободное пространство нужно не из суеверия и не потому, что Windows обязательно должна видеть определенный процент пустого диска. Оно дает контроллеру больше физических вариантов для размещения данных.
У накопителя с большим запасом свободных блоков проще garbage collection. Динамический SLC-кэш может быть больше. Контроллеру реже приходится срочно перемещать уже записанную информацию ради освобождения очередного блока.
Чем ближе SSD к полной емкости, тем меньше эта свобода.
Отсюда и практическая рекомендация не использовать накопитель постоянно на пределе заполнения. Нельзя назвать универсальное значение вроде "обязательно оставлять ровно 20%": разные SSD используют разные объемы внутреннего резервирования, разные типы кэша и разные контроллеры.
Но между состоянием "свободно 500 ГБ" и "свободно 20 ГБ" у динамически кэширующего SSD реальная разница существует.
Over-provisioning и свободное место Windows связаны, но это не одно и то же
У SSD обычно есть физическая NAND, недоступная пользователю. Производитель оставляет часть емкости для служебных операций, замены изношенных блоков и управления записью. Это называется over-provisioning.
Поэтому накопитель не остается полностью без рабочих блоков, даже если пользователь занял почти весь доступный том.
Дополнительное незанятое логическое пространство тоже может облегчить работу контроллера, если ОС корректно использует TRIM. Но точное поведение зависит от прошивки.
Часть профессиональных SSD позволяет явно резервировать дополнительный объем под over-provisioning. В домашних системах обычно достаточно не держать накопитель постоянно заполненным почти до конца и не отключать штатную поддержку TRIM без причины.

