Вся правда о SSD накопителях

SSD накопители, просто о сложном

Что представляет из себя SSD диск?

SSD (Solid State Drive или твердотельный накопитель) - устройство для постоянного хранения данных с использованием твердотельной (обычно - флэш) памяти. SSD логически эмулирует обычный жёсткий диск (HDD), но в отличии от обычных жестких дисков, не имеет подвижных механических частей. Накопитель состоит из 2 главных составляющих, контроллера и NAND/Flash памяти.

SSD накопитель

Контроллер

Главной задачей контроллера, является обеспечение операций чтения/записи, и управление структурой размещения данных. Основываясь на матрице размещения блоков, в какие ячейки уже проводилась запись, а в какие еще нет, контроллер должен оптимизировать скорость записи и обеспечить максимально длительный срок службы SSD-диска.

Вследствие особенностей построения NAND-памяти, работать с ее каждой ячейкой отдельно нельзя. Ячейки объединены в страницы объемом по 4 Кбайта, и записать информацию можно только полностью заняв страницу. Стирать данные можно по блокам, которые равны 512 Кбайт. Все эти ограничения накладывают определенные обязанности на правильный интеллектуальный алгоритм работы контроллера. Поэтому, правильно настроенные и оптимизированные алгоритмы контролера могут существенно повысить производительность и долговечность работы SSD-диска.

NAND / Flash память

В SSD как и в USB Flash используются три типа памяти NAND: SLC (Single Level Cell), MLC (Multi Level Cell) и TLC (Three Level Cell). Отличие только в том, что SLC позволяет хранить в каждой ячейке только один бит информации, MLC – два, что делает память MLC более дешёвой относительно ёмкости. Однако память MLC обладает меньшим ресурсом (100 000 циклов стирания у SLC, в среднем 10 000 для MLC) и худшим быстродействием. С каждым дополнительным уровнем усложняется задача распознавания уровня сигнала, увеличивается время поиска адреса ячейки, повышается вероятность ошибок.

Так как SLC-чипы намного дороже и объем их ниже, то для массовых решений применяют в основном MLC-чипы. На данный момент MLC память активно развивается и по скоростным характеристикам приближается к SLC. Так же, низкую скорость MLC производители SSD накопителей компенсируют алгоритмами чередования блоков данных между микросхемами памяти (одновременная запись/чтение в две микросхемы флэш-памяти, по байту в каждую) по аналогии с RAID 0, а низкий ресурс - перемешиванием и слежением за равномерным использованием ячеек. Плюс к этому в SSD резервируется часть объёма памяти (до 20%). Это недоступная память для стандартных операций записи/чтения. Она необходима как резерв в случае износа ячеек, по аналогии с магнитными накопителями HDD, который имеет резерв для замены bad-блоков. Дополнительный резерв ячеек используется динамически, и по мере физического изнашивания основных ячеек предоставляется резервная ячейка на замену.

Как работает SSD накопитель.

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

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

  • считывает блок, содержащий модифицируемый блок во внутренний буфер/кеш;
  • модифицирует необходимые байты;
  • выполняет стирание блока в микросхеме флэш-памяти;
  • вычисляет новое местоположение блока в соответствии с требованиями алгоритма перемешивания;
  • записывает блок на новое место.

Но как только вы записали информацию, она не может быть перезаписана до тех пор, пока не будет очищена. Проблема заключается в том, что минимальный размер записываемой информации не может быть меньше 4 Кб, а стереть данные можно минимум блоками по 512 Кб. Для этого контроллер группирует и переносит данные для освобождения целого блока.

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

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

Раньше в интерфейсе ATA просто не было команд для физической очистки блоков данных после удаления файлов на уровне ОС. Для HDD они просто не требовались, но появление SSD заставило пересмотреть отношение к данному вопросу. В результате в спецификации ATA появилась новая команда DATA SET MANAGEMENT, более известная как Trim. Она позволяет OC на уровне драйвера собирать сведения об удаленных файлах и передавать их контроллеру накопителя.

В периоды простоя, 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, можно ожидать скорое появление «битых» блоков.

Преимущества SSD

  • Быстрый запуск от включения до перехода в рабочее состояние, поскольку не требуется раскрутка шпинделя.
  • Очень быстрый случайный доступ к данным (особенно для чтения), из-за отсутствия необходимости перемещать блок головок, и, вследствие этого, более быстрые загрузка системы и запуск приложений, поскольку лимитирующим фактором времени выполнения этих операций, как правило, является время поиска данных на диске.
  • Низкое энегопотребление (и следовательно, тепловыделение) для SSD небольших объёмов, твердотельные накопители большой ёмкости таким преимуществом перед жёсткими дисками не обладают.
  • Высокая механическая надёжность - отсутствие движущихся частей полностью устраняет вероятность отказа по причине поломки механики.

 

Недостатки SSD

  • Высокая стоимость накопителей, в среднем стоимость хранения одного гигабайта на SSD пока ещё несколько выше таковой для обычных жёстких дисков.
  • Ёмкость – хотя сейчас максимальная ёмкость серийно выпускаемых SSD значительно ниже таковой у жёстких дисков, она имеет тенденцию к быстрому увеличению, уже испытываются прототипы терабайтных устройств.
  • Ограниченное число циклов записи - обычная флэш-память выдерживает 300.000 - 500.000 операций стирания/записи в одну и ту же ячейку, у некоторых специальных типов флэш-памяти этот параметр декларируется на уровне полутора миллиона операций.


В обзоре использованы материалы - NIX, Storelab


Нашли ошибку в тексте, выделите ее и нажмите Ctrl + Enter

Прошивки и драйверы для SSD

Intel центр загрузки
OCZ центр загрузки
ADATA центр загрузки
Corsair форум поддержки
Crucial центр загрузки
Kingston центр загрузки
Kingmax центр загрузки
Plextor центр загрузки
Silicon Power центр загрузки
Transcend центр загрузки

© 2012 - 2017 Мой SSD, все зарегистрированные торговые марки и знаки принадлежат соответствующим компаниям
© При цитировании информации сайта, прямая активная ссылка на www.my-ssd.ru обязательна.

Яндекс.Метрика Яндекс.Метрика