ГлавнаяТехнологииHardwareСкорость превыше всего! Обзор технологии SSD-накопителей

Скорость превыше всего! Обзор технологии SSD-накопителей

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

SSD_6

Так что собой представляет SSD? Это твердотельный накопитель (сокращение Solid State Drive), энергонезависимое и перезаписываемое запоминающее устройство без движущихся механических частей с использованием flash-памяти. SSD полностью эмулирует работу жесткого диска, но, по сути, SSD — это большая флешка. Flash-память, как известно, является гораздо более новой и более совершенной технологией хранения информации, поэтому преимущества SSD дисков по сравнению с созданной десятилетия назад технологий хранения данных на магнитных носителях на первый взгляд очевидны. Это высокая механическая надежность, отсутствие движущихся частей, высокая скорость чтения и записи, маленький вес и меньшее потребление энергии. Но у SSD есть ряд специфических особенностей. В отличие от флешек, в Solid State Drive используются микросхемы кеш-памяти (буферной памяти) в связи со спецификой работы и возросшей в несколько раз скоростью обмена данными между контроллером и интерфейсом связи с компьютером (в роли которого, как правило, выступает Serial ATA). Главной задачей контроллера является обеспечение операций чтения и записи, а также управление структурой размещения данных. Основываясь на матрице размещения блоков (в какие ячейки уже проводилась запись, а в какие пока нет), контроллер должен оптимизировать скорость записи и обеспечить максимально длительный срок службы твердотельного накопителя. Вследствие особенностей построения NAND-памяти, работать с каждой ее ячейкой отдельно нельзя. Ячейки объединены в страницы объемом по 4 kB, и записать информацию можно только полностью заняв страницу. Стирать данные можно по блокам, которые равны 512 kB. Все эти ограничения накладывают определенные обязанности на правильный интеллектуальный алгоритм работы контроллера. Поэтому, правильно настроенные и оптимизированные алгоритмы контроллера могут существенно повысить производительность и долговечность работы SSD-диска.

SSD_1

В контроллер входят следующие основные элементы:

  1. Процессор. Это, как правило, 16- или 32-разрядный микроконтроллер, который выполняет инструкции микропрограммы, отвечает за перемешивание и выравнивание данных на flash-чипах, диагностику и кеширование.
  2. Error Correction (ECC) — блок контроля и коррекции ошибок.
  3. Flash-контрллер. Отвечает за адресацию, шину данных и контроль управления микросхемами flash-памяти.
  4. DRAM-контроллер. Также отвечает за адресацию и шину данных, а также за управление буферной памятью.
  5. Интерфейс ввода/вывода. Отвечает за передачу данных на внешние интерфейсы (SATA, USB или SAS).
  6. Контроллер памяти. Состоит из модуля памяти нестираемого типа и буфера. Эта ROM память используется процессором для выполнения микропрограммы и как буфер для временного хранения данных. При отсутствии такой микросхемы часть flash-памяти выступает в роли буфера данных SSD, однако такие модули уже вышли из производства.

На сегодняшний день в носителях SSD, как правило, применяются контроллеры таких производителей, как Intel, Samsung, Toshiba, Marvel, Indilinx и других брендов. Основная составляющая твердотельных накопителей (flash-память) может быть трех типов NAND: SLC (Single Level Cell), MLC (Multi Level Cell) и TLC (Three Level Cell). Принципиальное отличие между ними заключается в том, что SLC позволяет хранить в каждой ячейке только один бит информации, MLC — два, а TLC — три ячейки (благодаря использованию разных уровней электрического заряда на плавающем затворе транзистора), что делает память MLC и TLC более дешевыми относительно емкости. Однако память MLC и TLC обладает меньшим ресурсом (100000 циклов стирания у SLC, в среднем 10000 циклов для MLC, и до 5000 для TLC) и худшим быстродействием. Так как SLC-чипы намного дороже и объем их ниже, то для массовых решений применяют в основном MLC- и TLC-чипы. Эти типы накопителей активно развиваются и по скоростным характеристикам практически приближаются к SLC. Отставание по скорости производители компенсируют алгоритмами чередования блоков данных между микросхемами памяти (одновременная запись и чтение в две микросхемы flash-памяти — по одному байту в каждую), а низкий ресурс — перемешиванием и слежением за равномерным использованием ячеек.

SSD_2

В дополнение к этому, в SSD резервируется часть объема памяти (до 20%). Это недоступная память для стандартных операций записи/чтения. Она необходима как резерв в случае износа ячеек, по аналогии с магнитными накопителями HDD, которые имеют резерв для замены «плохих блоков» (bad sectors). Дополнительный резерв ячеек используется динамически, а по мере физического износа основных ячеек предоставляются резервные ячейки на замену.

Принцип работы привычных HDD можно описать следующей последовательностью : для чтения блока данных на винчестере сначала нужно вычислить, где он находится, потом переместить блок магнитных головок на нужную дорожку, подождать, пока нужный сектор окажется под головкой, и произвести считывание. При чем, хаотические запросы к разным областям жесткого диска еще больше сказываются на времени доступа. При таких запросах HDD вынуждены постоянно «гонять» головки по всей поверхности «блинов» и даже переупорядочивание очереди команд помогает далеко не всегда. В технологии SSD все происходит гораздо проще. Вычисляется адрес нужного блока, после чего вы сразу же получаете к нему доступ на чтение и запись. Никаких механических операций! Все время уходит лишь на трансляцию адреса и передачу блока. Чем быстрее flash-память, контроллер и внешний интерфейс, тем быстрее будет доступ к данным. Но зато изменение и стирание данных в SSD происходит не так просто. Микросхемы NAND flash-памяти оптимизированы для секторного выполнения операций. При модификации нескольких байт внутри некоторого блока контроллер должен выполнить следующую последовательность действий:

  1.  Сначала считывается блок во внутренний буфер.
  2. Модифицируются необходимые байты.
  3. Выполняется стирание блока в микросхеме flash-памяти.
  4. Вычисляется новое местоположение блока в соответствии с требованиями алгоритма перемешивания и в конце блок записывается на новое место.

Таким образом, получается, что как только информация записана на носитель, она не может быть перезаписана до тех пор, пока не будет удалена. Казус также заключается в том, что информация записывается блоками по 4 kB, а стереть данные можно блоками по 512 kB минимум. Для этого контроллер группирует и переносит данные для освобождения целого блока. Тут мы хотели бы подчеркнуть особенность операционных систем, которые все же больше ориентированы на работу с жесткими дисками формата HDD. Например, при удалении файлов операционная система не производит физическую очистку секторов на диске, а только помечает файлы как удаленные и запоминает, что занятое ими место можно заново использовать. Работе самого накопителя это никоим образом не мешает, поэтому разработчиков интерфейсов данный вопрос раньше не волновал. И если такой метод удаления помогает повысить производительность при работе с HDD, то при использовании систем на базе SSD это уже становится проблемой. В SSD, как и в традиционных жестких дисках, данные все еще хранятся на диске после того, как они были удалены операционной системой. Но дело в том, что твердотельный накопитель не знает, какие из хранящихся данных являются полезными, а какие уже не нужны и вынужден все занятые блоки обрабатывать по длинному алгоритму, который мы расписали выше (прочитать, модифицировать, удалить и потом восстановить на место оставшееся). И чем больше блоков на SSD, тем чаще придется прибегать к данной процедуре. Таким образом, рано или поздно пользователь может столкнуться с тем, что быстродействие его скоростного SSD-накопителя заметно снизится. А накопителю просто не хватает заранее стертых блоков. Максимум производительности демонстрируют новенькие SSD, а вот в ходе их эксплуатации реальная скорость понемногу начинает меняться.

SSD_3

Много лет назад, когда только разрабатывали жесткие диски с интерфейсом ATA, на уровне операционной системы просто не было команд для физической очистки блоков данных после удаления файлов. Для HDD они не требовались, но появление SSD заставило пересмотреть отношение к данному вопросу. В результате, в спецификации ATA появилась новая команда DATA SET MANAGEMENT, более известная как TRIM. Она позволяет операционной системе на уровне драйвера собирать сведения об удаленных файлах и передавать их контроллеру накопителя. Благодаря этому, в периоды простоя SSD самостоятельно осуществляет очистку и дефрагментацию блоков, отмеченных в системе как «удаленные». Контроллер перемещает данные так, чтобы получить больше предварительно стертых ячеек памяти, освобождая место для последующей записи. Это дает возможность сократить задержки, возникающие в ходе работы. Но для реализации команды TRIM необходима ее поддержка прошивкой накопителя и установленным драйвером. На данный момент только самые последние модели SSD «понимают» TRIM, а для старых накопителей нужно прошить контроллер для включения поддержки этой команды.

В списке операционных систем, поддерживающих команду TRIM, находятся Windows 7, Windows 8, серверные системы от Microsoft (Windows Server 2008 R2 и Windows Server 2012), Linux 2.6.33, FreeBSD 9.0, а также Mac OS X, начиная с версии 10.9 и выше (Mavericks и Yosemite, которая на момент написания статьи пока что была на стадии бета-тестирования для разработчиков). Для остальных операционных систем необходимо инсталлировать дополнительные драйверы и утилиты. Например, разработчики Intel написали специальную утилиту SSD Toolbox, которая может выполнять процедуру синхронизации с операционной системой по расписанию. Кроме оптимизации, утилита позволяет выполнять диагностику SSD и просматривать SMART-данные всех накопителей компьютера. С помощью SMART, можно оценить текущую степень износа SSD (параметр E9 отражает оставшееся количество циклов очистки NAND-ячеек в процентах от нормативного значения). Когда величина, уменьшаясь от 100, дойдет до 1, можно ожидать скорое появление «битых» блоков.

В SSD-накопителе, как и в HDD, данные не удаляются сразу после того, как файл был стерт из операционной системы. Даже если переписать файл по верху нулями, физически данные еще останутся, и если извлечь чипы flash-памяти и считать их содержимое на программаторе, то можно будет найти 4 kB фрагменты файлов. Полного стирания данных стоит ждать лишь тогда, когда на диск будет записан объем данных, равный количеству свободного места + объем резерва (примерно 4 Gb для SSD объемом в 60 Gb). Если же файл попадет на «изношенную» ячейку, то контроллер еще не скоро перезапишет ее новыми данными.

SSD_4

На первый взгляд, надежность SSD не вызывает нареканий. Вроде бы нет движущихся частей, значит, нет и механического износа. Но это не совсем так. Конечно, любая техника может сломаться и SSD не является исключением из правил. И если с низким ресурсом MLC-чипов еще можно как-то бороться резервированием, то контроллер и его прошивка — самые уязвимые элементы. Так как контроллер физически расположен между интерфейсом и микросхемами памяти, вероятность его повреждения в результате сбоя или проблем с питанием достаточно велика, хотя при этом сами данные в большинстве случаев сохраняются. Помимо физических повреждений, при которых доступ к данным пользователя становится невозможен, существует и возможность логического повреждения, когда также нарушается доступ к содержимому микросхем памяти. Любая, даже незначительная ошибка или «глюки» в прошивке могут привести к полной потере данных. Структуры данных здесь очень сложные, а информация разбрасывается по нескольким чипам. Плюс к этому чередование, что вместе делает процесс восстановления данных довольно сложной задачей. Иногда в таких случаях восстановить накопитель помогает прошивка контроллера с низкоуровневым форматированием, когда заново создаются служебные структуры данных. Но это не гарантированный производителем способ. Вендоры стараются постоянно дорабатывать микропрограмму, исправлять ошибки и оптимизировать работу контроллера. Поэтому, рекомендуется периодически обновлять прошивку накопителя для исключения возможных сбоев. Что же касается возможных страхов, вызванных у пользователя примерами, описанными выше, то бояться особо нечего. В среднем SSD расчитан на 6000-10000 циклов перезаписи. Например, Intel дает гарантию на свои диски серии X25-M в рамках 37 Тb общей записи, а это 20 Gb в день в течение 5 лет! Испортить же SSD путем частой его эксплуатации тяжелее, чем обычный магнитный накопитель.

 

Теперь, что касается интерфейсов. Самыми распространенными интерфейсами для подключения SSD-накопителей потребительского класса сегодня являются Serial ATA 6 Гбит/c, PCI-Express и USB 3.0. Все эти интерфейсы способны обеспечить нужную пропускную способность для любого SSD. В планшетах, ультрабуках и других портативных устройства SSD-накопители подключены, как правило, по интерфейсу mini PCI-Express (mini-SATA).

Заключение

Цены на SSD-накопители продолжают стремительно снижаться. Скорость их работы отлично подойдет для того, чтобы использовать SSD в качестве системного раздела для операционной системы, а также на серверах для кеширования данных, там, где показатель производительности становится решающим фактором при покупке. Но заглядывая в будущее, становится очевидно, что производители вложат всевозможные усилия для того, чтобы за Solid State Drive укрепилась репутация надежных и долговечных систем хранения данных.

SSD_5

Советы по работе с SSD-накопителями:

1. Если на вашем компьютере установлены два типа дисков (HDD и SSD), то для того, чтобы диск твердотельный накопитель прослужил долго, необходимо всю информацию, подверженную частым изменениям (временные файлы, кеш браузера, индексирование и т.п.) перенести на жесткий диск, а также отключить дефрагментацию файлов для SSD в настройках операционной системы.

2. Если вы собрались устанавливать старую Windows XP на компьютер с исключительно SSD-накопителем и при этом иметь два и более логических раздела, то при форматировании диска рекомендуется разделить разделы на части, кратные двум (это можно сделать на процессе установки операционной системы), иначе контроллеру SSD придется каждый раз производить два считывания вместо одного. Помимо этого, у Windows XP есть определенные проблемы с поддержкой секторов объемом более 512 kB, поэтому отсюда также вытекают проблемы с производительностью. В Windows 7 или 8, а также в последних версиях Mac OS X и Linux эти проблемы уже устранены.

3. Также рекомендуется обновить прошивку контроллера, если старая версия не знает команду TRIM. Информацию об этом, как правило, можно найти на сайте производителя. Следует также установить последние драйверы на SATA-контроллеры. Например, если у вас контроллер от Intel, то, как официально заявлено на сайте компании, включив в BIOS режим ACHI и установив Intel Matrix Storage Driver в операционной системе, вы сможете на 10-20% увеличить производительность SSD.

4. Не рекомендуется использовать последние 10-20% свободного пространства от раздела, потому что это может отрицательно сказаться на производительности. Особенно важно соблюдать данное правило, когда работает TRIM, поскольку ему необходимо пространство для перегруппировки данных.

Преимущества и недостатки SSD накопителей в сравнении с HDD:

Плюсы

  • + включаются мгновенно, не требуют раскрутки,
  • + значительно более высокая скорость передачи информации,
  • + не требуется дефрагментация,
  • + тихие, так как отсутствуют механические части,
  • + более выносливы в плане перепадов температуры, ударов и вибраций,
  • + меньшее энергопотребление.

Минусы

  • — хоть в SSD-накопителях и отсутствуют механические части, чипы памяти изнашиваются,
  • — серьезная разница в цене за одинаковый объем по сравнению с HDD,
  • — сложности при попытках восстановить утерянные данные после форматирования.

Средние цены на SSD-накопители с интерфейсами Serial ATA III в Баку (на сентябрь 2014 года):

  •  120-128 Gb ~ 110 манатов (цена в США — 70-80 долларов)
  • 240-256 Gb ~ 165 манатов (цена в США — 120-130 долларов)
  • 480-512 Gb ~ 325 манатов (цена в США — 240-260 долларов)
  • 960 Gb — на момент подготовки статьи в магазинах Баку не было обнаружено (цена в США — 550-560 долларов).

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

 Автор статьи: Анар Алиев

ТЕГИ:
"Игра за 500 млн. долларов". Обзор шутера Destiny
Раз, два, три… Мотор! Обзор мобильных приложений для редактирования видео
Оформление подписки
Оформить подписку на журнал InfoCity вы можете заполнив приведенную
ниже форму. Стоимость одного выпуска — 2 маната.
Ваше имя
Адрес доставки журнала и номер телефона для контактов
Число месяцев подписки
Благодарим вас за подписку!