Поправьте меня, если я ошибаюсь, но не меняется ли растровое изображение блока (которое отслеживает свободные блоки на диске) для разных файловых систем (как по расположению, так и по структуре)? Итак, как может OCZ иметь общий алгоритм для сбора мусора без учета используемой файловой системы?
2 ответа
SSD имеют больше блоков, чем указано в заявленной емкости. Эти блоки используются как часть процесса выравнивания износа, а также замены неисправностей, когда блоки полностью изнашиваются. Из-за этого контроллер SSD должен отслеживать, какие блоки он видит в данный момент в системе, а какие логические блоки.
В отсутствие TRIM, когда поступает запись для грязного блока (который уже содержит данные в отношении SSD), происходит одна из двух вещей:
- Контроллер считывает старый блок в локальную память.
- Контроллер изменяет необходимые биты.
- Контроллер переписывает весь блок в старый блок
Однако из-за выравнивания износа это более вероятно:
- Контроллер считывает старый блок в локальную память.
- Контроллер изменяет необходимые биты.
- Контроллер записывает весь блок в новый блок в зарезервированной части
- Контроллер обновляет свое логическое отображение для новой пары логический блок: физический блок.
- Контроллер помечает старый блок как часть резерва.
Ключевым моментом здесь является то, что сам контроллер SSD также сохраняет битовую карту блоков. В отличие от битовой карты файловой системы, она сопоставляет логические блоки с физическими блоками, и это может изменяться каждый раз, когда происходит запись.
Чрезмерное обеспечение. OCZ добавляет, например, на 7% больше вспышки, чем требуется накопителю. Эти 7% используются для выравнивания износа и замены неисправных блоков, но также могут быть стерты во время простоя, избегая цикла стирания-записи, который в противном случае вы бы понесли.