Как работает SSD сборка мусора?

1676
skryl

Поправьте меня, если я ошибаюсь, но не меняется ли растровое изображение блока (которое отслеживает свободные блоки на диске) для разных файловых систем (как по расположению, так и по структуре)? Итак, как может OCZ иметь общий алгоритм для сбора мусора без учета используемой файловой системы?

4

2 ответа на вопрос

7
SysAdmin1138

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

В отсутствие TRIM, когда поступает запись для грязного блока (который уже содержит данные в отношении SSD), происходит одна из двух вещей:

  1. Контроллер считывает старый блок в локальную память.
  2. Контроллер изменяет необходимые биты.
  3. Контроллер переписывает весь блок в старый блок

Однако из-за выравнивания износа это более вероятно:

  1. Контроллер считывает старый блок в локальную память.
  2. Контроллер изменяет необходимые биты.
  3. Контроллер записывает весь блок в новый блок в зарезервированной части
  4. Контроллер обновляет свое логическое отображение для новой пары логический блок: физический блок.
  5. Контроллер помечает старый блок как часть резерва.

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

На самом деле мне было любопытно узнать о процедурах GC и о том, когда они включаются, но это объясняет это довольно хорошо После того, как контроллер помечает блоки как резервные / грязные, все, что нужно сделать ГХ, - это запускать во время холостых циклов и обнулять эти блоки. Таким образом, накопитель использует избыточную флэш-память для немедленной записи и выполняет очистку позже. skryl 13 лет назад 0
2
Erik

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

TRIM также вступает в игру с SSD GC (если аппаратное и программное обеспечение его поддерживает). Это позволяет ОС сообщать диску, какие биты используются файловыми системами / томами (больше не используются). Chris Johnsen 13 лет назад 0
Да, но тогда это не будет общий алгоритм. Erik 13 лет назад 0
Даже с избыточным выделением ресурсов наступит момент, когда вся доступная память накопителя будет записана хотя бы один раз. После этого момента как привод может определить, какие блоки в порядке для удаления в течение цикла ГХ? skryl 13 лет назад 3

Похожие вопросы