Здравствуйте, дорогие друзья!
В сегодняшней небольшой заметке мы поговорим о том, что такое твердотельный накопитель или SSD накопитель. Рассмотрим основные преимущества и недостатки нового типа накопителей. Казалось бы, этот тип накопителей информации появился не так давно, но некоторые пользователи до сих пор не знают, что такое твердотельный накопитель и задают много вопросов относительно них. В этой заметке мы как раз и разберем эти накопители более подробнее — что это такое, для чего нужны, как работают такие накопители, преимущества и недостатки таких накопителей. Но в начале надо понять, что такое твердотельный накопитель?
Что такое твердотельный накопитель?
Твердотельный накопитель (Solid State Drive или SSD накопитель) — устройство для постоянного хранения данных с использованием твердотельной (обычно — флэш) памяти. SSD логически эмулирует обычный жёсткий диск (HDD), но в отличие от обычных жестких дисков, не имеет подвижных механических частей. Накопитель состоит из 2 главных составляющих, контроллера и NAND/Flash памяти.
Твердотельный накопитель.
Контроллер
Главной задачей контроллера, является обеспечение операций чтения/записи, и управление структурой размещения данных. Основываясь на матрице размещения блоков, в какие ячейки уже проводилась запись, а в какие еще нет, контроллер должен оптимизировать скорость записи и обеспечить максимально длительный срок службы 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-блоков. Дополнительный резерв ячеек используется динамически, и по мере физического изнашивания основных ячеек предоставляется резервная ячейка на замену.
Как работает твердотельный накопитель.
Для чтения блока данных в винчестере сначала нужно вычислить, где он находится, потом переместить блок магнитных головок на нужную дорожку, подождать пока нужный сектор окажется под головкой и произвести считывание. Причем хаотические запросы к разным областям жесткого диска еще больше сказываются на времени доступа. При таких запросах HDD вынуждены постоянно «гонять» головки по всей поверхности «блинов» и даже переупорядочивание очереди команд спасает не всегда. А в SSD (он же твердотельный накопитель) все просто — вычисляем адрес нужного блока и сразу же получаем к нему доступ на чтение/запись. Никаких механических операций — всё время уходит на трансляцию адреса и передачу блока. Чем быстрее флэш-память, контроллер и внешний интерфейс, тем быстрее доступ к данным.
А вот при изменении/стирании данных в SSD накопителе не так все просто. Микросхемы NAND Flash памяти оптимизированы для секторного выполнения операций. Flash память пишется блоками по 4 Кб, а стирается по 512 Кб. При модификации нескольких байт внутри некоторого блока контроллер выполняет следующую последовательность действий:
- считывает блок, содержащий модифицируемый блок во внутренний буфер/кэш;
- модифицирует необходимые байты;
- выполняет стирание блока в микросхеме флэш-памяти;
- вычисляет новое местоположение блока в соответствии с требованиями алгоритма перемешивания;
- записывает блок на новое место.
Но как только вы записали информацию, она не может быть перезаписана до тех пор, пока не будет очищена. Проблема заключается в том, что минимальный размер записываемой информации не может быть меньше 4 Кб, а стереть данные можно минимум блоками по 512 Кб. Для этого контроллер группирует и переносит данные для освобождения целого блока.
Вот тут и сказывается оптимизация ОС для работы с HDD. При удалении файлов операционная система не производит физическую очистку секторов на диске, а только помечает файлы как удаленные, и знает, что занятое ими место можно заново использовать. Работе самого накопителя это никак не мешает и разработчиков интерфейсов этот вопрос раньше не волновал. Если такой метод удаления помогает повысить производительность при работе с HDD, то при использовании 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 операций стирания/записи в одну и ту же ячейку, у некоторых специальных типов флэш-памяти этот параметр декларируется на уровне полутора миллиона операций.
P.S. Кстати, если вы хотите знать все про твердотельный накопитель SSD — как его правильно выбирать, устанавливать на компьютер, настраивать, а также переносить систему на SSD накопитель, то вы можете почитать мою книгу «SSD накопитель. Реактивный двигатель для вашей системы». Это пошаговая электронная книга о твердотельных SSD накопителях со всеми иллюстрациями и пояснениями.
Книга написана в формате PDF на простом понятном русском языке со всеми необходимыми пояснениями и иллюстрациями. В ней без проблем разберётся даже обычный школьник!
Забрать книгу можете здесь!
На этом пока все! Надеюсь, что вы нашли в этой заметке что-то полезное и интересное для себя. Если у вас имеются какие-то мысли или соображения по этому поводу, то, пожалуйста, высказывайте их в своих комментариях. До встречи в следующих заметках! Удачи! 😎
Спасибо — полезный материал. Только, милые Вы наши дипломатики, пишите как есть : не «забирайте», а приобретайте, — как-то так ….