Без памяти. Версия Marvell

08 Июн 2017

Диалектика развития подсистем хранения данных за последнее де­ся­ти­ле­тие наглядно иллюстрирует тот факт, что прогресс может со­сто­ять не толь­ко в появлении новых компонентов, но и в ис­чез­но­ве­нии старых. Ар­хи­тек­ту­ра Host Memory Buffer (HMB), активно про­дви­га­е­мая ком­па­ни­ей Marvell, де­ла­ет ненужной микросхему DRAM на плате SSD диска, ис­поль­зуя сис­тем­ное ОЗУ для уп­ра­в­ля­ю­ще­го процессора накопителя, а в идеале — ре­а­ли­зуя прямой обмен ин­фор­ма­ци­ей между NAND SSD и DRAM пер­со­наль­ной плат­фор­мы.

Попробуем разобраться в причинах и следствиях такого шага: снизится ли латентность обработки запросов чте­ния и записи вслед за себестоимостью устройств или экономия пагубно повлияет на их характеристики?

Теория

Нелишним будет вспомнить некоторые фундаментальные факты: для чего нужно буферное ОЗУ в mass storage уст­рой­стве и почему оно вдруг может стать не нужным?

Буферизация решает задачи, возникающие вследствие неоднородности тракта передачи данных. При сопряжении традиционных электромеханических накопителей и вычислительных платформ необходимо учитывать не­из­мен­ность скорости битового потока определяемого плотностью записи и вращением магнитных дисков. Не­из­беж­ные паузы в работе ресурсов платформы (CPU, DRAM, каналов DMA), обусловленные многочисленными асинхронными событиями и, как следствие, невозможностью своевременно принять или передать очередную порцию данных меж­ду системой и вращающимся диском, могут привести к потере информации. Формально говоря, вра­ща­ю­щий­ся магнитный диск требует изохронного трафика, а большинство платформ его не обеспечивают. Локальное бу­фер­ное ОЗУ на плате контроллера, по сути, является посредником, изолированным от асинхронных событий плат­фор­мы, а потому способным обеспечить гарантированный трафик.

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

Практика

Накопители SSD не содержат вращающихся элементов и дисками называются исключительно по привычке. Хотя персональные платформы пока далеки от полноценной изохронности, декларирование строго предсказуемых ли­ми­тов латентности для выполнения транзакций системными ресурсами стало неотъемлемой частью спе­ци­фи­ка­ции PCI Express.

Это означает, что имеют место достаточные условия для устранения буферного ОЗУ? Не совсем так!

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

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

Примеры реализации

В силу перечисленных выше причин, термин DRAM-less применительно к SSD означает всего лишь отсутствие ми­кро­схе­мы динамического ОЗУ и устранение (а точнее, уменьшение) локальной буферизации данных средствами периферийного устройства с перекладыванием этой обязанности на оперативную память хост-платформы.

Сравнение двух SATA-устройств: слева, накопитель, оборудованный буферным ОЗУ на основе чипа DDR3, справа DRAM-less устройство
Рис.1 Сравнение двух SATA-устройств: слева, накопитель, оборудованный буферным ОЗУ на основе чипа DDR3, справа DRAM-less устройство

ОЗУ в составе накопителя остается, но, во-первых статическое (а значит, более быстрое и не требующее циклов регенерации), и, во вторых, реализованное на одном кристалле с процессором и интерфейсным контроллером (Рис 2, Рис 3), что также позитивно с точки зрения производительности и надежности.

В силу очевидных технологических ограничений, объем такого статического ОЗУ, как правило, существенно усту­па­ет DRAM. В силу этого ряд обязанностей локальной памяти mass storage устройства делегируется хосту. Как бу­дет показано далее, именно модель разделения обязанностей между DRAM-less устройством и хостом оп­ре­де­ля­ет позитивное или негативное влияние на производительность.

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


Рис.2 Блок-схема DRAM-less SSD с интерфейсом NVMe (Gen3 x2) на основе контроллера Marvell 88NV1160

Наряду с показанным в примере контроллером Marvell 88NV1160, архитектура DRAM-less используется в чипах 88NV1140 (универсальное конфигурируемое решение для накопителей SATA Gen3 и NVMe Gen3 x1) и 88NV1120 (Gen3 SATA only).


Рис.3 Блок-схема DRAM-less SSD с интерфейсом SATA (Gen3) на основе контроллера SiliconMotion SM2246XT

DRAM-less архитектура нередко упоминается в контексте SATA-интерфейса, как один из инструментов его кон­сер­ва­тив­ной оптимизации. Вместе с тем, анализируя приведенные примеры, можно видеть, что рассмотренная мо­дель передачи данных найдет (нашла) применение и в ряде NVMe-устройств, несмотря на кратное различие по про­из­во­ди­тель­но­сти.

Польза или вред?

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

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

Оценка влияния HMB на производительность DRAM-less устройств приводится в документе. При анализе при­ве­ден­ных таблиц следует соблюдать правило «прочих равных условий», внимательно дифференцируя между бюд­жет­ным (DRAM-less) и производительным (HMB+DRAM-less) вариантами.

Сравнение производительности различных типов устройств (для латентности, меньшее значение означает лучший результат)
Рис.4 Сравнение производительности различных типов устройств
(для латентности, меньшее значение означает лучший результат)

На Рис 4. красным цветом выделены результаты двух устройств, на основе которых можно оценить влияние HMB-фактора при прочих равных условиях. Оба устройства с интерфейсом NVMe (PCIe) x1 построены на основе ар­хи­тек­ту­ры DRAM-less. Логично предположить, что верхнее из выделенных устройств поддерживает HMB, а ниж­нее только «обременяет» хост своими внутренними данными. Для латентности (задержек выполнения ко­ман­ды), меньшее значение означает более высокое быстродействие.

Что дальше?

В случае упразднения DRAM на плате SSD остаются всего два функциональных компонента: контроллер и NAND, если не считать понижающих преобразователей напряжения питания в интегральном или дискретном ис­пол­не­нии.

Следующим шагом стало появление термина BGA SSD. Как нетрудно предположить из названия, означает он ре­а­ли­за­цию накопителя в одной микросхеме BGA (Ball Grid Array) и необходимость применения инфракрасной па­яль­ной станции для его замены. Заметим, речь не о частных инициативах отдельных вендоров, а о стандарте, оп­ре­де­ля­е­мом в рамках спецификации PCI Express. Сомнений в этом не оставляет документ авторства PCI Special Interest Group.