Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Микросхемы NAND флэш-памяти. Проблемы и их решения.

Микросхемы NAND флэш-памяти. Проблемы и их решения.

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

Микросхемы NAND флэш-памяти оптимизированы для секторного выполнения операций. Флеш-память пишется блоками по 4 Кбайта, а стирается по 512 Кбайт. При модификации нескольких байт внутри некоторого блока контроллер выполняет следующую последовательность действий:

  • считывает блок, содержащий модифицируемый блок во внутренний буфер/кеш;

  • модифицирует необходимые байты;

  • выполняет стирание блока в микросхеме флэш-памяти;

  • вычисляет новое местоположение блока в соответствии с требованиями алгоритма перемешивания;

  • записывает блок на новое место.

    Как только вы записали информацию, она не может быть перезаписана до тех пор, пока не будет очищена. Проблема заключается в том, что минимальный размер записываемой информации не может быть меньше 4 Кб, а стереть данные можно минимум блоками по 512 Кб. Для этого контроллер группирует и переносит данные для освобождения целого блока (вот тут и сказывается оптимизация операционной системы (ОС) для работы с HDD). Нужно прочитать, модифицировать и снова записать на место, после очистки затронутых операцией ячеек памяти, которые с точки зрения ОС уже удалены. Следовательно, чем больше блоков на SSD содержит полезные данные, тем чаще приходится прибегать к процедуре чтение > модификация > очистка > запись, вместо прямой записи. Вот здесь пользователи SSD сталкиваются с тем, что быстродействие диска заметно снижается по мере их заполнения файлами. Накопителю просто не хватает заранее стёртых блоков. Максимум производительности демонстрируют чистые накопители, а вот в ходе их эксплуатации реальная скорость понемногу начинает снижаться. Полное стирание данных стоит ждать тогда, когда на диск будет записано данных равное количеству свободного места + объем резерва (примерно 4 Гб для 60Гб SSD). Если файл попадёт на "изношенную" ячейку, контроллер ещё не скоро перезапишет её новыми данными.
    Раньше в интерфейсе ATA просто не было команд для физической очистки блоков данных после удаления файлов на уровне ОС (для HDD они просто не требовались), но появление SSD заставило разработчиков пересмотреть отношение к данному вопросу. В результате в спецификации ATA появилась новая команда DATA SET MANAGEMENT, более известная как Trim. Она позволяет OC на уровне драйвера собирать сведения об удаленных файлах и передавать их контроллеру накопителя.
    В периоды простоя, SSD самостоятельно осуществляет очистку и дефрагментацию блоков отмеченных как удаленные в ОС (это видно по миганию индикатора, хотя Вы к SSD не обращались). Контроллер перемещает данные так, чтобы получить больше предварительно стертых ячеек памяти, освобождая место для последующей записи. Это дает возможность сократить задержки, возникающие в ходе работы. Но для реализации Trim необходима поддержка этой команды прошивкой накопителя и установленным в ОС драйвером. Сейчас практически все модели SSD поддерживают TRIM, а для старых накопителей нужно прошить контроллер для включения поддержки этой команды (среди операционных систем команду Trim уже поддерживали: Windows 7, Windows Server 2008 R2, Linux 2.6.33, FreeBSD 9.0). Для остальных ОС необходимо было инсталлировать дополнительные драйвера и утилиты. Например, для SSD от Intel использовалась специальная утилита SSD Toolbox, которая может выполнять процедуру синхронизации с ОС по расписанию. Кроме оптимизации, утилита позволяла выполнять диагностику SSD и просматривать SMART-данные всех накопителей компьютера. С помощью SMART, можно оценить текущую степень износа SSD - параметр E9 отражает оставшееся количество циклов очистки NAND-ячеек в процентах от нормативного значения. Когда величина, уменьшаясь от 100, дойдет до 1, можно ожидать скорое появление "битых" блоков.


Лицензия