На современном рынке SSD наблюдается очень четкая тенденция: те бренды, которые не обладают полным циклом производства, оказываются оттеснены на вторые роли. Доминируют компании, имеющие собственные чипы flash-памяти и к ним контроллеры собственной разработки. Именно к таким компаниям теперь можно отнести и альянс Toshiba-OCZ. С одной стороны, Toshiba, которая является одним из ведущих производителей чипов памяти (что неудивительно, так как они стояли у истоков этой технологии). С другой стороны, OCZ с их очень неплохим контроллером Indilinx Barefoot 3, который обладает приличной скоростью и предлагает полный «джентльменский набор»: низкий уровень усиления записи, сборка мусора при простоях, поддержка операции TRIM, многоуровневые коды коррекции ошибок и адаптивное управление NAND-чипами.
Кстати, пользуясь случаем, расскажу, что это за усиление записи. Как я писал в прошлой статье, в современных микросхемах flash-памяти чтение, запись и стирание происходят блоками. Причем блок записи — больше по размерам, чем блок чтения, а блок стирания — больше, чем блок записи. Когда диск совсем пустой, и мы записываем на него данные первый раз, это не играет никакой роли. Все пишется «без шума и пыли», как говорил один киноперсонаж. Совсем другое дело, если нам надо изменить что-то в одном файле (даже один-единственный бит). Просто так взять и перезаписать один блок, как это сделал бы обычный жесткий диск, SSD не может. Вместо этого должна выполниться такая многоступенчатая операция:
Как видите, изменение нескольких байт (или даже бит) приводит к куда большему количеству операций чтения-записи, чем одна. Это явление и называется усилением записи, и оно является основной проблемой, которую приходится решать контроллерам SSD.
В первую очередь оно ведет к падению скорости. Чаще всего для борьбы с этим явлением используют хитрый прием. В приведенном выше алгоритме шаг 3 откладывается, вместо стирания блок, хранивший данные, отмечается как «свободный, но не очищенный». После этого блок с данными записывается в подходящий «свободный и очищенный блок», при этом в специальной таблице адресов блоков (Logical Block Addressing или LBA) контроллер запоминает, что блок надо искать уже по другому адресу. Это позволяет нам записывать данные быстрее, и, возможно, меньшими блоками, чем блок стирания.
Со временем количество неочищенных, но неиспользуемых блоков растет, и часть диска становится неиспользуемой. Поэтому все SSD периодически осуществляют «сборку мусора» — в моменты простоя «неправильные» блоки очищаются и помечаются как свободные.
Этот алгоритм работает тем эффективней, чем больше на диске свободного места. Кстати, именно поэтому некоторые SSD очень сильно теряют в производительности при сильной заполненности.
Вторая проблема усиления записи — это износ SSD. Количество перезаписи ячеек flash-памяти — ресурс ограниченный. Ученые, разумеется, работают над увеличением этого предела, инженеры борются с ним, используя избыточность данных, но все же этот ресурс — конечный, и излишнее усиление записи способствует быстрому выходу диска из строя.
Улучшение алгоритмов сборки мусора. Тут нужно соблюдать тонкий баланс: агрессивная сборка мусора позволит улучшить скорость, так как при записи уже будут свободные ячейки, но это приведет к ускорению «износа» диска.
Улучшение алгоритмов выравнивания износа и ремаппинга. Так как некоторые файлы записываются и стираются намного чаще других, это могло бы привести к тому, что часть SSD быстро исчерпала бы свой ресурс. Какое-то время контроллер мог бы с этим бороться, подменяя сбойные блоки запасными (это называется ремаппинг), но этот ресурс также не бесконечен. Поэтому контроллеры SSD осуществляют операцию «выравнивания износа», в ходе которой часто записываемые блоки периодически меняются местами с редко записываемыми, что позволяет использовать ресурс ячеек памяти более равномерно. Подобные операции приводят к усилению записи, но полностью избежать их нельзя, поэтому оптимизация алгоритмов тут позволяет добиться хороших результатов.
Использование «избыточного» хранилища. В современных SSD часть объема не доступна пользователю, например, декларируемый объем OCZ Vector 150, побывавшего у нас на тесте, составляет 240 Гб, хотя реальный его объем составляет 256 Гб. Это «лишнее» свободное место используется для сборки мусора, выравнивания износа и ремаппинга плохих блоков. Разумеется, чем больше такого «запасного» объема, тем эффективней могут работать служебные алгоритмы контроллера, с другой стороны — это приведет к росту цены накопителя, а кому этого хочется?
Использование команды TRIM. С помощью этой команды операционная система может сообщить, какие из секторов на диске уже не используются (например, файл удален или раздел отформатирован), контроллер отметит их как «свободные, но не очищенные» и не будет стараться сохранить их содержимое при операциях сборки мусора. Это здорово оптимизирует работу SSD и также позволяет сберечь его ресурс.
Есть, конечно, и более сложные алгоритмы оптимизации, но они выходят за рамки данной статьи.
Как видите, контроллеры SSD устроены очень сложно и играют роль не меньшую, чем сами микросхемы flash-памяти.
Но пора вернуться к герою нашего обзора, OCZ Vector 150, и посмотреть, что же дало использование контроллера от OCZ и новых 19-нм чипов памяти от Toshiba.
Главное, что сразу бросается в глаза — у Vector 150 сильно возрос ресурс. Предыдущая модель Vector ограничивалась 36,5 Тб на протяжении пятилетнего гарантийного срока, у Vector 150 эта цифра возросла до 91 Тб за те же пять лет.
Второе «явное» нововведение — поддержка аппаратного шифрования диска. Она была изначально заложена в Barefoot 3, но только в последних моделях ее стали использовать. Пока что шифрование можно включить только через ATA-команду установки пароля. BitLocker не поддерживается.
В плане упаковки Vector не преподносит особых сюрпризов. OCZ разработала удачный дизайн и использует его и дальше, показывая преемственность поколений. В маленькой плоской коробке, оформленной в синих тонах, вы найдете сам диск, инструкции-гарантийники, адаптер для установки SSD в 3.5″ отсек и наклейку, позволяющую вам выразить чувства к OCZ. Приятным дополнением служит лицензия на Acronis True Image HD, которая очень пригодится, если вы мигрируете с одного диска на другой.
Внутреннее устройство Vector 150 в целом схоже с остальными SSD, хотя и отличается от предыдущей модели Vector, что неудивительно, так как используются новые чипы памяти с новым интерфейсом. На плате SSD расположены 16 микросхем NAND (по 8 с каждой стороны), контроллер Barefoot3, расположенный так, чтобы использовать корпус SSD как радиатор для рассеивания тепла, и две микросхемы ОЗУ от Micron, каждая из которых обеспечивает по 256 Мб.
Самое интересное (по крайней мере для меня) в SSD от OCZ — это именно их контроллер. Indolinx Barefoot 3 представляет собой интересный гибрид, одно ядро которого представляет собой процессор ARM Cortex, а второе — специализированный 32-битный RISC процессор OCZ Aragon, спроектированный для работы в SSD и работающий на частоте 400 МГц.
Во всех тестах, которые проводили различные издания, легко заметить очень интересную закономерность. OCZ Vector показывает себя хуже (хотя и не критично) в тестах на чтение, особенно случайное, но в тестах на запись — превосходит почти всех конкурентов, а в случайной записи — вообще оставляет всех позади. Самый же интересный тест — это тест с одновременным чтением и записью, там оптимизированный под такую нагрузку Barefoot показывает еще лучшие результаты.
Еще один интересный замер — это падение скорости по мере заполнения диска. Результат OCZ очень необычен тем, что на нем наблюдается две ступеньки, первая — при заполнении ровно половины диска, вторая — после записи примерно 320 Гб данных. Первая «ступенька» давно является характерной чертой накопителей OCZ, их контроллер старается использовать MLC ячейки памяти как SLC, записывая в каждую только по одному биту информации, и только после исчерпания свободного места переходя на более медленное MLC хранение. Самое хорошее в этом то, что алгоритм сборки мусора позволяет восстановить это поведение, даже когда занято больше половины диска: немного «свободного» времени позволяют OCZ Vector оптимизировать данные и освободить ячейки для использования их в «однобитном».
То, что второе снижение производительности приходится на предел в 320 Гб, демонстрирует, насколько эффективны используемые в OCZ алгоритмы сборки мусора «на ходу». Пока накопитель занят записью постоянно поступающих объемов данных, сборка мусора успевает освободить и подготовить новые блоки для записи, и это при наличии всего лишь 14% резервной емкости. Причем даже на очень длительных тестах записи скорость не падает ниже 20 000 IOPS — результат, в целом достойный даже начальных линеек серверных SSD.
Как видите, SSD-накопитель — продукт сложный с точки зрения алгоритмов, заложенных в контроллер. И благодаря великолепной работе инженеров OCZ, их продукция показывает себя с лучшей стороны в большинстве областей, начиная с долговечности и заканчивая скоростью работы при больших нагрузках. После объединения с Toshiba, производящей сами чипы памяти, OCZ имеет все шансы для достижения лидирующих позиций на рынке.
Опубликовано 23 августа 2014 года.