Память NVDIMM: технологическая революция?

11 Янв 2016

Модуль памяти DIMM с энергонезависимым компонентом

Модули памяти NVDIMM являют собой пример совместного использо­ва­ния двух технологий: оперативной и энергонезависимой памяти. Как известно, оперативная память обладает высоким быстродействием, но ее содержимое разрушается при выключении или перезапуске платфор­мы. Энергонезависимая или flash-память сохраняет информацию при отсутствии электропитания, но скорость ее работы сравнительно низкая, особенно при записи информации. Почему бы не объединить преимущества этих двух видов устройств хранения данных?

В сеансе работы системы, модули NVDIMM функционируют как динамическая оперативная память, включенная в адресное пространство вычислительной платформы. При отключении электропитания или по специальному сигналу, ее содержимое может быть скопировано в энергонезависимую Flash-память. При последующем перезапуске платформы, информация будет восстановлена и система быстро вернется в первоначальное состояние. Очевидно, для обеспечения процесса сохранения данных, который должен начаться после выключения основного электропитания, требуется дополнительный источник питания. Таким источником может быть блок аккумуляторов, батарей или конденсаторов большой емкости, как правило выполняемый в конструктивном исполнении PCI-Express адаптера или дискового накопителя и соединяемый с модулем памяти несколькими проводами для передачи питания и управления.

Модуль NVDIMM с подключенной платой резервного питания
Рис 1Модуль NVDIMM с подключенной платой резервного питания

Почему архитектура именно такая?

Описанная архитектура, при реализации которой в адресном пространстве находится только оперативная память (DRAM) и у центрального процессора нет прямого доступа к Flash, классифицируется как NVDIMM-N.

Теоретически, есть и более простой метод, основанный на непосредственном включении энергонезависимой Flash-памяти в адресное пространство вычислительной платформы. Он давно уже используется  для микросхем-носителей встроенного программного обеспечения или firmware, также известного как BIOS (Basic Input-Output System). Но как альтернатива оперативной памяти такой путь неприемлем, поскольку Flash-память обладает сравнительно низким быстродействием, кроме того, количество циклов перезаписи у нее ограничено.

Опция очистки Clear NVDIMM Flash в меню InsydeH2O Setup Utility
Рис 2. Опция очистки Clear NVDIMM Flash в меню InsydeH2O Setup Utility

Доступ к энергонезависимому содержимому NVDIMM с помощью программного обеспечения UEFI BIOS демонстрирует необычайную рефлексивность: пользователю предоставляется возможность удаления flash-информации. Хорошим примером может служить функциональность Insyde BIOS, обеспечивающая дополнительное удобство в обслуживании подсистемы памяти.

Еще один путь — использовать резервное аккумуляторное питание для оперативной памяти и таким образом обойтись без Flash-памяти. Недостаток очевиден — ограниченное время хранения информации.

Проблема кэширования

Сегодня ни одна вычислительная платформа не обходится без кэш-памяти (Cache), представляющей из себя быстродействующий буфер между вычислительным ядром и «внешним миром». Информация, прочитанная процессором из оперативной памяти, сохраняется в кэш-памяти. При повторном обращении к тем же данным, они будут предоставлены из кэш-памяти, что значительно быстрее доступа к оперативной памяти. Другим фактором увеличения быстродействия является отложенная запись или Write-back mode. Смысл метода в том, что запись данных выполняется в кэш, без немедленного переноса информации в оперативную память, а потому очень быстро. И только при необходимости  вытеснения информации из кэш, например для размещения новых данных, требуется запись в «медленную» оперативную память. Какое отношение эти банальные истины имеют к  NVDIMM? Вспомним, что в момент выключения электропитания или перезапуска системы, внутри модуля NVDIMM должен быть выполнен процесс копирования информации из оперативной памяти в энергонезависимую.  Но в режиме отложенной записи, актуальная копия данных существует только в кэш, а в оперативной памяти находятся устаревшие данные, которые и будут перенесены в энергонезависимую память. Более «свежие» актуальные данные будут потеряны.

Решение проблемы — принудительно синхронизировать содержимое кэш и оперативной памяти. Но сделать это необходимо без нивелирования позитивного эффекта от кэширования данных, так, чтобы не снизить быстродействие системы. Именно это требование стало причиной введения компанией Intel двух новых процессорных команд.

Ассемблерная инструкция CLWB (Cache Line Write Back) выполняет копирование данных, подлежащих отложенной записи из кэш-памяти в оперативную память. При этом, данные не вытесняются из кэш-памяти и доступны для дальнейшего использования. Этим новая инструкция CLWB отличается от достаточно давно существующей инструкции CLFLUSH (Cache Line Flush), которая в свою очередь форсирует копирование данных в оперативную память с удалением их из кэш-памяти.

Ассемблерная инструкция PCOMMIT (Persistent Commit) форсирует отложенную запись в оперативную память для всех диапазонов адресного пространства, статус которых, в системных регистрах процессора декларирован как Persistent Memory или Non Volatile Storage.

Рис 3. Результат выполнения функции 7 подфункции 0 инструкции CPUID. Биты 22,23,24 регистра EBX индицируют поддержку инструкций PCOMMIT, CLFLUSHOPT, CLWB соответственно.

Назначение статуса диапазонов, требующих такой синхронизации, выполняется встроенным программным обеспечением, или firmware, при старте вычислительной платформы. При этом для идентификации модулей памяти используется информация, прочитанная из микросхем SPD (Serial Presence Detect).

Предоставление операционной системе сведений о диапазонах адресного пространства, содержащих NVDIMM базируется на ACPI-таблице NFIT (NVDIMM Firmware Interface Table), генерируемой firmware при старте платформы и выполнении процедуры Power-On-Self-Test (POST).

Рис 4. Функциональность таблицы NFIT (NVDIMM Firmware Interface Table),  согласно спецификации ACPI 6.0.

Резюме

Несмотря на то, что модули NVDIMM построены на основе уже достаточно долго существующих технологий, в частности DDR3/DDR4 RAM и NAND Flash, появление устройств,  сочетающих в себе преимущества оперативной и энергонезависимой памяти бросает вызов традиционной классификации видов компьютерных устройств хранения данных. А это в свою очередь, может привести к появлению принципиально новых архитектур вычислительных платформ...

Список используемой литературы

  1. Whole System Persistence // Dushyanth Narayanan, Orion Hodson — Microsoft Research
  2. AgigARAM Product Brief // AgigA Tech, Inc
  3. ArxCis Buying Guide // Viking Technology
  4. Huawei Romley BIOS // Huawei Support