SSD Dynamic Write Acceleration: гибридные решения на марше

04 Янв 2017

SSD Dynamic Write Acceleration: гибридные решения на марше

Компромиссы вида объем-производительность широко применяются в за­поминающих устройствах современных вы­чис­ли­тель­ных систем. Так­ой при­вычный компонент, как кэш-память или скоростной буфер между DRAM и цен­т­ральным процессором существует потому, что со­­зда­ние схем опе­ра­тив­ной памяти, одновременно об­ла­дающих бо­ль­­шим объ­емом и вы­со­ким бы­ст­ро­действием невозможно или эко­но­ми­чески не­це­ле­со­об­раз­но. Ис­сле­ду­ем теоретические пред­по­сыл­ки, при­зван­ные оп­­­ти­ми­зи­ро­вать сис­темную архитектуру вы­чис­ли­те­ль­ной сре­ды.

 

Теоретические предпосылки Dynamic Write Acceleration

Повышение информационной емкости кристаллов флэш-памяти мотивировало их разработчиков к применению ряда неординарных шагов. Альтернативой классическим ячейкам SLC (Single Level Cell) имеющим два устойчивых состояния и способным хранить один бит информации (0/1), стала память MLC (Multi Level Cell) базовая ячейка которой может находиться в нескольких устойчивых состояниях, обусловленных уровнями заряда плавающего затвора полевого транзистора и способна хранить несколько бит. Например, 4 состояния позволяют хранить 2 бита (00/01/10/11b).

Передача и хранение многоуровневых сигналов предъявляют более жесткие требования к устойчивости фи­зи­че­ских параметров элементов, что особенно актуально с учетом фактора деградации параметров запоминающих ячеек вследствие износа. А когда такие требования становятся невыполнимыми, на помощь приходят сигнальные процессоры и коды коррекции ошибок, в частности ECC. По указанным причинам, быстродействие и изно­со­стой­кость «классической» памяти SLC, выше, чем у «авангардного» решения в виде MLC.

Построив запоминающую матрицу на основе MLC, но реализовав сравнительно небольшой быстродействующий блок на основе SLC-ячеек, разработчики могут совместить преимущества и нивелировать недостатки обоих видов па­мя­ти.

Накопитель MTFDDAV256MBF

Ноутбук ASUS T302, исследованный в нашей тестовой лаборатории, укомплектован накопителем MTFDDAV256MBF от Micron Technologies, который, согласно информации производителя, поддерживает Dynamic Write Acceleration.

Накопитель MTFDDAV256MBF от Micron Technologies с SATA-интерфейсом
Рис 1. Накопитель MTFDDAV256MBF от Micron Technologies с SATA-интерфейсом

Попутно отметим, что несмотря на реализацию накопителя в конструктивном исполнении M.2, устройство ис­поль­зу­ет SATA-интерфейс, ограничивающий скорость передачи данных на уровне 6 гигабит в секунду.

В отличие от примера с кэш-памятью, рассмотренного в начале статьи, где размеры основного и транзитного запоминающих устройств фиксированы, разделение NAND матрицы на емкую память MLC и быстро­действу­ющую память SLC происходит адаптивно, с учетом наличия свободного пространства на диске. Одни и те же запоминающие блоки могут работать в обоих режимах.

Поддержка Dynamic Write Acceleration дифференцируется в зависимости от объема и конструктивного исполнения SSD устройства
Рис.2 Поддержка Dynamic Write Acceleration дифференцируется в зависимости от объема и конструктивного исполнения SSD устройства.

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

  1. Технология Dynamic Write Acceleration добавляет еще один аргумент в длинный список причин, в силу которых быстродействие накопителя зависит от количества свободного пространства на нем, а также количества времени и предыстории его использования.
  2. В классическом стеке протоколов, обслуживающих mass storage устройство, статус заданного блока или сектора с точки зрения его занятости для хранения информации, обрабатывается на уровне файловой системы и не влияет на аппаратное обеспечение. SSD устройства, по ряду причин, уже давно не соответствуют такому шаблону. В частности, накопитель, поддерживающий Dynamic Write Acceleration, должен быть осведомлен о количестве свободного пространства, чтобы определить, сколько информации можно хранить в SLC-варианте, требующем большего количества NAND-ячеек в пересчете на заданный объем.
  3. Адаптивное управление запоминающей матрицей, в частности расширение быстродействующей SLC-области (за счет уменьшения емкой MLC-области) при условии наличия свободного пространства и ее уменьшение при недостатке свободного пространства требует затрат рабочего времени накопителя. Это означает, что оптимизация, результатом которой является повышение быстродействия может быть осуществлена только при наличии достаточных пауз между обращениями к устройству. В документах, публикуемых Micron Technologies, такой сценарий применения накопителя обозначен формулировкой commands with idle time between these bursts.

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

Первые измерения

Асинхронное от взаимодействия с хостом, динамическое изменение формата запоминающей матрицы, добавляет новые факты в «богатую внутреннюю жизнь» SSD устройств. В идеале, для получения повторяемых результатов, утилиты бенчмаркинга должны нивелировать влияние подобных факторов, либо взять их под контроль, используя SMART атрибуты и другие виды расширенной функциональности. Все это станет темой отдельных исследований, поэтому два ниже приведенных результата можно принять лишь как предварительные. В качестве инстру­мен­таль­ной среды использовалась тестовая утилита NIOBench собственной разработки.

Поясним смысл режимов утилиты, выбранных для создания двух ниже приведенных рапортов.

Результаты измерения производительности накопителя MTFDDAV256MBF на ноутбуке ASUS T302 в режиме Asynchronous, спекулятивные ме­ха­низ­мы ОС и JVM включены
Рис. 3 Результаты измерения производительности накопителя MTFDDAV256MBF на ноутбуке ASUS T302 в режиме Asynchronous, спекулятивные ме­ха­низ­мы ОС и JVM включены

В режиме Asynchronous (Рис 3.), операции ввода-вывода выполняются посредством популярного фреймворка Java NIO, в частности, для работы с файлами используется метод FileChannel.transferTo(). При этом спекулятивные ме­ха­низ­мы кэшированного чтения и отложенной записи включены по умолчанию.

Результаты измерения производительности накопителя MTFDDAV256MBF на ноутбуке ASUS T302 в режим Unbuffered native, спекулятивные механизмы ОС отключены, JVM в операциях не участвует
Рис. 4 Результаты измерения производительности накопителя MTFDDAV256MBF на ноутбуке ASUS T302 в режим Unbuffered native, спекулятивные механизмы ОС отключены, JVM в операциях не участвует

В режиме Unbuffered native (Рис 4.), операции ввода-вывода выполняются непосредственным вызовом API опе­ра­ци­он­ной системы, в данном примере Microsoft Windows. В этом тесте минимизируется влияние спекулятивных ме­ханизмов, для этого буферизация и кэширование запрещаются явно, установкой специальных флагов, при вы­зо­ве WinAPI функции CreateFile, в битовом поле dwFlagsAndAttributes (входной параметр #6) установлены флаги:

  • FILE_FLAG_NO_BUFFERING, запрещает буферизацию и кэширование чтения
  • FILE_FLAG_WRITE_THROUGH, запрещает отложенную запись

Значения медианы для чтения, записи и копирования файлов выделены на Рис 3. и Рис 4. Отметим, что результат для операции записи несколько ниже максимума, заявленного производителем:

Параметры накопителей, согласно документации Micron Technologies
Рис. 5 Параметры накопителей, согласно документации Micron Technologies

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

Вместо послесловия

Персональные платформы переживают очередной переходной период: в подсистеме хранения данных ноутбука-трансформера ASUS T302, несмотря на конструктивное исполнение M.2 и авангардные методы управления за­по­ми­нающей матрицей, применяется устаревший SATA-интерфейс, разработанный во времена господства магнит­ных дисков. Логично предположить, что преимущества новой NAND-архитектуры памяти, в полной мере рас­кро­ют­ся лишь в сочетании с NVMe-интерфейсом, оптимизированным для твердотельных устройств.