SSD · REDSER BLOG

Как работает SSD

SSD хранит данные в NAND, но компьютер не обращается к ячейкам напрямую. Контроллер постоянно переводит логические адреса в физические, корректирует ошибки и управляет износом.

Внутри SSD controller постоянно управляет NAND: выбирает физические страницы для записи, переводит LBA, корректирует ошибки и освобождает блоки. Поэтому логический диск, который видит Windows, — это результат работы firmware, а не прямой вид памяти.

Что находится внутри SSD

NAND chips физически хранят заряд, controller управляет ими, а firmware задает алгоритмы работы. Некоторые модели используют DRAM или дополнительный cache. Без controller набор микросхем не выглядит для компьютера как обычный диск.

KIOXIA относит к функциям controller управление bad blocks, wear leveling, address translation и error correction.

Почему есть pages и erase blocks

Flash-память программируется небольшими страницами, но стирается более крупными блоками. Изменение данных поэтому обычно означает запись новой версии в другое место, а не прямой overwrite старой страницы.

Старая версия становится invalid и будет удалена позже при внутренней очистке. Этот принцип объясняет и роль garbage collection.

Как работает FTL

Операционная система использует Logical Block Addresses. FTL хранит соответствие между этими адресами и физической NAND. Это соответствие меняется постоянно.

При повреждении служебной карты SSD может потерять привычный sector access, хотя chips физически остаются целыми.

Зачем wear leveling

Частое программирование одних и тех же cells ускорило бы износ. Controller распределяет операции так, чтобы использовать память равномернее, и заменяет проблемные blocks резервными.

Поэтому физическое расположение одного и того же логического адреса не обязательно остается постоянным.

Как работает garbage collection

Когда в блоке смешаны актуальные и устаревшие страницы, controller переносит нужные данные и стирает block целиком. Так формируется свободное пространство для будущих записей.

TRIM сообщает, какие LBA больше не нужны хосту, но controller сам решает, когда выполнять внутреннюю очистку.

ECC как обязательная часть чтения

NAND допускает raw bit errors, а controller исправляет их кодами коррекции. С ростом износа чтение может требовать больше retries. Если предел correction превышен, возникает uncorrectable error.

В raw NAND recovery ту же задачу приходится решать отдельно, потому что привычный controller уже не скрывает эти ошибки.

TLC и QLC — не просто маркетинг

Чем больше битов хранится в cell, тем больше уровней заряда нужно различать. Это повышает требования к программированию, чтению и ECC. Плотность растет, но сама аббревиатура не определяет надежность конкретного SSD.

Controller family, firmware и условия эксплуатации часто важнее для реального поведения.

Что происходит при записи нового файла

  1. ОС отправляет write по LBA.
  2. Controller выбирает свободные pages.
  3. FTL обновляет mapping.
  4. Старая версия страницы становится invalid.
  5. Позже garbage collection освобождает block.

Именно поэтому внутри SSD постоянно происходят перемещения, хотя пользователь их не запускает.

Почему восстановление SSD технически сложное

Raw dump chips необходимо собрать с учетом ECC, interleaving, scrambling, FTL и encryption. Современный controller может выполнять аппаратное шифрование постоянно.

Если его можно стабилизировать, sector image через штатную логику часто лучше, чем полный chip-off. Поэтому диагностика ищет не самый эффектный, а наиболее контролируемый путь чтения.

Что эта архитектура меняет для пользователя

Обычная запись файла запускает больше процессов, чем видно в Проводнике. Controller выбирает свободные pages, обновляет FTL, может задействовать cache, отслеживает bad blocks и распределяет износ. Старые физические версии данных становятся invalid и позднее участвуют в garbage collection. Поэтому логический адрес для Windows и реальное место в NAND — разные уровни.

Это объясняет и изменение скорости SSD. Пока есть свободный cache и достаточный запас подготовленных blocks, запись может быть очень быстрой. При заполнении диска или длительной нагрузке controller выполняет больше фоновой работы, и скорость снижается. Само по себе такое снижение не является доказательством неисправности, если накопитель остается стабильным и не дает ошибок.

Для восстановления данных значение еще больше. Рабочий controller выполняет mapping, ECC и часто encryption автоматически. При его отказе «прочитать микросхемы» недостаточно: нужно воспроизвести то, что раньше делала внутренняя логика SSD. Именно поэтому современные SSD с похожим объемом и форм-фактором могут принципиально отличаться по сложности recovery.

Пользователю полезно запомнить одно: firmware и controller — не вспомогательные детали, которые можно заменить без контекста. Они являются частью системы хранения. Чем меньше необратимых изменений сделано до диагностики, тем больше шансов сохранить исходную карту данных.

Почему знание принципа работы полезно без технической подготовки

Понимание FTL, TRIM и garbage collection помогает не делать ошибочных выводов. Например, отсутствие механических звуков не означает, что проблема SSD обязательно программная. А удаленный файл не обязательно лежит в неизменной физической области до тех пор, пока пользователь не запишет другой файл поверх него.

Для владельца практический вывод простой: сохранять резервные копии, не выполнять необратимые сервисные операции при потере доступа и точно описывать симптом. Для специалиста та же архитектура объясняет, почему восстановление одной модели возможно через controller, а для другой требуется совершенно другой путь.

Частые вопросы

Что такое SSD?

Накопитель на NAND flash без механических пластин.

Что делает контроллер SSD?

Управляет NAND, адресацией, ECC, wear leveling и служебными процессами.

Что такое FTL?

Слой, переводящий логические адреса компьютера в физические страницы NAND.

Почему данные перемещаются внутри SSD?

Из-за wear leveling, garbage collection и особенностей erase blocks.

Почему raw NAND не является готовым образом?

Нужно реконструировать mapping, ECC и другие преобразования.

Нужны данные с SSD?

При потере доступа укажите точную модель и то, как SSD определяется системой. Информация о controller, NAND и текущем состоянии важнее попытки восстановить работу случайной сервисной утилитой.