Экстенсивный путь, по которому идет развитие NAND-технологий, рано или поздно должен исчерпать свои ресурсы. Сегодня такими являются наращивание логических уровней в одной ячейке, и многослойная компоновка ячеек в кристалле. В первом случае пользователь получает больше места на единицу пространства (при снижении надежности хранения), во втором — наращивание элементов хранения в объемной композиции полупроводника т.е. еще больше места, но с наращиванием живучести («О плавающем затворе»). Непротиворечивость указанных векторов худо-бедно позволяет развиваться технологиям твердотельного хранения, наращивая объемы накопителей и снижая их цену. Об отсутствии света в конце тоннеля знают все производители, вкладывая неимоверные усилия в интеллектуализацию технологий хранения. Первенцем здесь стал 3D XPoint — совместный проект Intel и Micron, который быстро перестал быть совместным, родив Intel Optane и, фактически, похоронив Micron QuantX.
Впрочем, 3D XPoint — «черный ящик», который не вполне соответствует каноническим представлениям о NAND. Его отличительная черта — невероятно низкая латентность, что делает Optane устройством с уникальными серверными характеристиками. Мы чуть ниже вернемся к теме задержек в работе SSD в свете затронутой темы о технологиях хранения.
Еще один важный момент — SLC-кэширование, призванное придать ускорение производительности SSD за счет динамической акселерации записи. Его суть несколько размывается не вполне корректным неймингом: от кэширования, как такового, в этой технологии не так уж много. Главное здесь — способность контроллера SSD «на лету» менять статус NAND-ячеек, используя затворы полупроводниковых компонентов либо в скоростном SLC-режиме, либо запуская ёмкое, хотя и более медленное многоуровневое хранение TLC/QLC (на горизонте уже есть и PLC с пятиуровневой архитектурой состояний).
SLC-кэш на сегодня — локомотив интеллекта хранения. Его возможности обыгрываются на все лады производителями SSD-контроллеров, потому что это бесконечное поле для экспериментов. Можно создавать кэшируемые пространства переменных размеров, обогащая интеллект чипов самообучающимися алгоритмами. Можно строить несколько полей, которые словно хамелеон, будут менять свою масть с SLC на другие формы хранения. Можно исповедовать промежуточные уровни, в зависимости от возникающих задач: SLC⇄ TLC или SLC⇄ QLC на четырех уровневых ячейках. Была бы польза.
Новым подходом в организации «умных» SSD-устройств может стать X-NAND, разработку которого анонсировала компания NEO Semiconductor на саммите Flash Memory Summit 2020. Новая архитектура NAND нацелена на производительность, свойственную SLC-ячейкам, при плотности хранения и стоимости, характерных для QLC-ячеек, с нивелированием главного недостатка механизмов динамической акселерации — падения скорости вследствие переполнения SLC-кэш.
Согласно информации, размещенной на сайте Tom's Hardware, ключевым фактором производительности X-NAND является распараллеливание операций между блоками запоминающей матрицы в пределах одной микросхемы. Как известно, NAND-матрица организована в виде разрядных линий (Bit Lines), каждая из которых подключена к буферу страницы (Page Buffer).

При записи информации содержимое Page Buffer последовательно передается ячейкам разрядной линии, за последовательный перебор которых отвечает адресный счетчик (на слайде не показан). При чтении процесс идет в обратном направлении — содержимое ячеек разрядной линии последовательно накапливается в Page Buffer. Буфер, представляющий собой оперативное запоминающее устройство для транзитного хранения информации, занимает приличную долю площади кристалла, что ограничивает и количество таких буферов в чипе NAND, и возможности по организации параллельного доступа.

Оптимизационная задача, решаемая разработчиками X-NAND, формулируется достаточно просто: обеспечение максимального уровня параллелизма при минимальном объеме транзитного буфера.
Конкретные численные параметры одного из вариантов интерливинга блоков запоминающей матрицы характеризует следующая формулировка: «X-NAND achieves these gains by going from a 16KB page buffer per plane to a 1KB page buffer per plane, but with sixteen times the planes, as one example». В этом примере, вместо буфера объемом 16 килобайт используется набор из 16 параллельно работающих буферов по 1 Килобайту, каждый из которых независимо обменивается информацией со своей разрядной линией. Передача данных осуществляется в 16 параллельных потоков.

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

Кроме того, кратное уменьшение информационной емкости разрядных линий позволяет снизить энергопотребление, улучшая технологичность решения. Опубликованная информация позволяет предположить, что базовые физические принципы, определяющие функционирование NAND-ячеек пересмотру не подвергались.
Выводы
Очевидны преимущества X-NAND в сравнении с такими реализациями параллелизма, как массив RAID0 или многоканальный доступ к элементам флеш-памяти в пределах платы SSD-накопителя:
- Масштабирование производительности X-NAND не сопровождается экстремальным ростом себестоимости, габаритов и потребляемой мощности устройств хранения данных.
- По сравнению с «крупноблочным» параллелизмом снижаются накладные расходы на преобразование форматов данных — таковое выполняется внутри микросхем флеш-памяти, что особенно важно при фрагментированном доступе.
Теоретически, масштабирование методом параллельной обработки повышает пропускную способность (количество переданной информации за единицу времени), но не может снизить латентность. Иными словами, время чтения или записи одной отдельно взятой физической ячейки памяти не уменьшается.
На практике, если речь идет о блочных устройствах хранения, где минимальный объем сектора равен 512 байтам, а типовое значение обрабатываемого блока составляет 4 Килобайта (что определяется размером страницы виртуальной памяти для x86 и x64-систем) понятие латентности несколько трансформируется и соответствует времени ожидания 4-килобайтной порции данных, а в пределах такого объема, маневры с параллельными операциями уже возможны. Напомним, в примере, рассмотренном выше, гранулярность параллельной обработки составляет 1 Килобайт.
Перспективы
Переходя к утилитарным свойствам, осторожно предположим, что при указанных параметрах создаются предпосылки для увеличения производительности приблизительно в 4 раза для типового сценария фрагментированного доступа (пример — своппинг страниц) и приблизительно в 16 раз для линейного доступа (пример — копирование большого файла), что подтверждается формулировкой из статьи «Write performance is increased because up to sixteen bit lines can be programmed in parallel».
Вместе с тем, подобные прогнозы — дело неблагодарное и приведены лишь для иллюстрации принципов работы X-NAND. Численные параметры интерливинга в конкретном устройстве могут отличаться от принятых в расчетах. Не следует недооценивать влияние накладных расходов и конечно фундаментальные ограничения интерфейса накопителя.
По более взвешенным оценкам, в ряде рабочих нагрузок возможно нивелирование «ступеньки», возникающей при переполнении SLC-кэш накопителя и переходе к использованию многоуровневых (например, QLC) ячеек. График отражает зависимость производительности устройства от объема записанной информации и строится в условиях непрерывной записи больших объемов данных.

Поведение X-NAND в таком тесте теоретически промоделировано в упомянутом выше материале «New X-NAND Tech Detailed: SLC Speed at QLC Capacity and Pricing». Само название обзора позволяет сделать предположения о первых возможных практических применениях X-NAND. Вместе с тем, фундаментальные ограничения, присущие NAND, остаются в силе для X-NAND, поэтому от прогнозов использования новой памяти в сегменте DAX-систем на данный момент разумно воздержаться. С другой стороны, характеристики пропускной способности, приведенные на слайде, кратно превышают возможности современных NVMe-накопителей и даже RAID-массивов на их основе — напротив, они типичны для многоканальных DRAM-подсистем.

Согласно комментарию, столь высокая пропускная способность (около 200 GBPS) возможна в случае реализации идеи X-NAND для памяти SLC-типа. Но о латентности и фрагментированном доступе данный слайд многозначительно умалчивает. Насколько вырастет мощность, потребляемая чипом памяти с учетом масштабирования производительности? Как новая технология повлияет на износоустойчивость запоминающей матрицы? Ответы на эти вопросы еще только предстоит получить.