SLC-кэширование: гибридные решения на марше

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

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

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

Повышение информационной емкости кристаллов флешь-памяти мо­ти­ви­ро­ва­ло их раз­ра­бот­чи­ков к при­ме­не­нию ря­да не­ор­ди­нар­ных шагов. Аль­тер­на­ти­вой клас­си­че­ским ячей­кам SLC (Single Level Cell) име­ю­щим два ус­той­чи­вых со­сто­я­ния и спо­соб­ным хра­нить один бит информации (0/1), ста­ла мно­го­у­ров­не­вая па­мять MLC, TLC и QLC, ба­зо­вая ячей­ка ко­то­рой мо­жет на­хо­дить­ся в не­сколь­ких ус­той­чи­вых со­сто­я­ни­ях, обус­лов­лен­ных уров­ня­ми за­ря­да пла­ва­ю­ще­го за­тво­ра по­ле­во­го тран­зис­то­ра и спо­соб­на хра­нить не­ско­ль­ко бит: от четырех для MLC до шест­над­ца­ти у QLC.

Передача и хранение многоуровневых сигналов предъявляют более жесткие требования к устойчивости фи­зи­че­ских па­ра­мет­ров элементов, что особенно актуально с учетом фактора деградации параметров запоминающих ячеек в ре­зуль­та­те износа. А когда такие требования становятся невыполнимыми, на помощь приходят сигнальные про­цес­со­ры и коды коррекции ошибок, в частности 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, оптимизированным для твердотельных устройств.