SSD-накопители: избавление от «детских болезней»

SSD-накопители: избавление от «детских болезней»

Твёрдотельные SSD-накопители появились в широкой продаже всего лет пять назад, хотя в авиационной и военной технике они применяются с 1995 года, когда компания M-Systems представила первые в мире серийные «харды» на основе микросхем флэш-памяти.

Сегодня они считаются одними из самых перспективных носителей данных, которые должны прийти на смену порядком задержавшимся на рынке «винчестерам».

Современные твёрдотельные диски, конечно, имеют мало общего с теми, самыми первыми, разве что по принципу действия схожи: в качестве носителя данных в них используются энергонезависимые чипы памяти.
Поэтому неслучайно, что практически все производители SSD-драйвов — это те же самые компании, которые всегда специализировались на выпуске микросхем памяти.

Достоинства SSD-накопителей очевидны.
Отсутствие движущихся частей означает высокую надёжность, устойчивость к механическим воздействиям и пониженное энергопотребление.
Благодаря использованию современных чипов памяти в SSD на порядок меньше среднее время доступа (0,12-,0,18 мс против 14-15 мс), чем в самых быстрых магнитных жёстких дисках, и, как правило, в 2-2,5 раза выше скорость чтения данных (до 250-300 Мбит/с).
Такие накопители обеспечивают заметное ускорение загрузки операционной системы, приложений и доступа к папкам с большим количеством файлов.
Наконец, они меньше нагреваются и полностью бесшумны.

Первый приходящий в голову недостаток SSD-накопителя — высокая цена — явление преходящее и никак не относящееся к собственно конструктивным особенностям таких дисков.
Между тем, у них есть парочка неприятных свойств, связанных именно с природой энергонезависимой памяти.
Ячейки флэш-памяти представляют собой полевые транзисторы с дополнительным плавающим затвором, окружённым диэлектриком.
В результате процессов инжекции электронов или, всё чаще, туннелирования, затвор способен принимать одно из двух (SLC, Single Level Cell — одноуровневая ячейка) или четырёх (MLC, Multi Level Cell — многоуровневая ячейка) состояний.
В первом случае это «0» или «1», во втором — «00», «01», «10» и «11».
Понятно, что MLC обеспечивают вдвое большую ёмкость, пусть и ценой некоторого увеличения времени задержки, поэтому большая часть современных SSD относятся к этому типу.
Впрочем, выпускаются и накопители с SLC — обычно это дорогие модели для систем, где требуется минимальная латентность и повышенная надёжность.

В первых SSD применялись чипы с логической организацией NOR (ИЛИ-НЕ), но сегодня значительно популярнее микросхемы NAND (И-НЕ), обеспечивающие более высокую скорость последовательного чтения и записи, но менее быстрый произвольный доступ.
Чуть ли не самая главная проблема твёрдотельных накопителей связана именно с логической организацией флэш-памяти — это «засорение» диска ячейками с «удалёнными» файлами, проявляющееся в том, что со временем накопитель работает всё медленнее, и в конце концов задержки становятся раздражающе заметными.

Наверное, ни для кого не секрет, что когда мы «удаляем» файлы с диска, сначала они просто помечаются как «удалённые», а физическое их уничтожение происходит тогда, когда они замещаются новыми.
Именно на этой особенности построены всевозможные алгоритмы «восстановления» данных.
Если в случае с магнитным жёстким диском запись новой информации происходит просто «поверх» удалённой, то в случае с флэш-памятью всё сложнее.

Дело в том, что ячейки NAND-памяти объединены в так называемые страницы, и физическое стирание данных в них возможно только 512-килобайтными блоками (128 страниц по 4 Кб).
Чтобы записать новые данные, необходимо либо найти свободные страницы, либо подготовить целый блок, стерев ячейки, занятые файлами, помеченными как удалённые.
Процесс стирания блока отнимает время, а когда этих блоков накапливается много, тогда и возникают досадные «тормоза».

У этой проблемы есть три решения.
Самое простое, применявшееся в SSD уходящего поколения, это полное низкоуровневое форматирование накопителя, приводящее в исходное состояние все ячейки.
Это умеет, например, утилита Wiper Tool, совместимая с любыми дисками с контроллерами Indilinx (это, например, Corsair серии X или OCZ серии Vertex первого поколения).

Второе — это встроенная в микропрограмму накопителя технология GC (Idle Time Garbage Collection — «уборка мусора во время простоя»), которая при отсутствии обращения к накопителю анализирует состояние ячеек и принудительно очищает их от удалённых файлов.

Уборка мусора во время простоя

И, наконец, третье и самое эффективное — использование набора инструкций TRIM, реализованных как на уровне микропрограммы диска, так и в операционной системе.
Это та же самая принудительная уборка, только оптимизированная для конкретной файловой системы.
Помимо стирания «мусорных» ячеек, TRIM отключает ненужные и даже вредные для флэш-дисков процедуры фоновой индексации и дефрагментации.
TRIM поддерживают практически все новые SSD ведущих производителей, включая A-Data, Corsair, Intel, OCZ, SanDick, Samsung и Transcend.
А вот совместимая с TRIM операционка пока только одна — это Windows 7.

Второй недостаток SSD-накопителя — это ограниченное количество циклов записи/стирания, связанная с физическим износом: постоянная нагрузка на диэлектрик, изолирующий плавающей затвор, вызывает изменения его структуры и приводит к «пробою», то есть невозможности удерживать заряд.
В результате ячейка теряет функциональность, оставаясь постоянно в некотором стабильном состоянии.
Контроллер SSD способен отслеживать такие ячейки и помечать их, а подаваемый на них сигнал перенаправляется на резервные, количество которых может составлять до 10% от ёмкости всего накопителя.

Заявленное количество циклов записи стирания на первый взгляд невелико — до 10000 для MLC и до 100000 для SLC.
Если взять среднюю скорость записи 100 Мбит/с и самый распространённый SSD на 128 Гб, то мы получим потенциальное время непрерывной работы 3640 часов или 151 день.
Но на самом деле столь интенсивное использование можно смоделировать лишь искусственно: при обычной работе с компьютерам большая часть файлов записывается на диск всего единожды, а постоянно изменяется не более 10 процентов.
Исходя из этого, можно предположить, что в нашем распоряжении уже 1510 дней, то есть чуть больше четырёх лет эксплуатации, а за это время морально устареет любой компьютер и, тем более, накопитель.

Конечно, полностью привести в негодность SSD-накопитель можно и за полгода — если пользоваться им неправильно.
Многочисленные истории о скоропостижно скончавшихся «твёрдотельниках» связаны именно с их неправильной эксплуатацией.
Особо запущенный случай — использование SSD для записи, монтажа и сведения музыки и видео, для таких целей они в принципе не предназначены.
Но встречаются и досадные ситуации, когда владельцу просто не объяснили, как пользоваться компьютером с таким накопителем.

Особо запущенный случай

К сожалению, автоматически распознаёт и устанавливает правильный режим работы с SSD из всего семейства Windows пока одна только «семёрка», а те же XP или Vista при настройках по умолчанию усиленно изнашивают накопитель.
Подробные инструкции по настройке ОС для работы с «твёрдотельниками» несложно найти в Интернете, и практически все они сводятся к отключению функций, необходимых для обеспечения быстродействия обычного винчестера, но бесполезные и одновременно губительные для SSD.
Это, например, кэширование в в отдельной папке файлов часто запускаемых программ, индексация файлов, регулярная фоновая дефрагментация.
Рекомендуется отключать также файл подкачки и «спящий режим».

Подводя итог, можно сказать, что SSD-накопители уже практически полностью избавились от одной из двух основных «детских болезней» — замедления работы в процессе эксплуатации.
Очевидно, что ключ к решению второй проблемы тоже лежит в программной оптимизации операционных систем под конструктивные особенности таких дисков.
Первый шаг к этому уже сделан в Windows 7.

Автор: Олег Нечай