Применение MRAM в модулях NVDIMM. Преимущества и перспективы
Как бы ни была хороша DRAM, но у нее есть существенный недостаток – зависимость от стабильности электропитания. Малейший сбой – и вся информация, хранившаяся в ней, исчезает без шансов на восстановление. Поиск энергонезависимой альтернативы идет уже довольно давно, и наибольшие шансы у гибридной памяти NVDIMM, где вполне могут появиться чипы, выполненные по технологии MRAM.
Что такое NVDIMM
Ответ закодирован в первых двух буквах этой аббревиатуры – NV (non-volatile, энергонезависимый) означает, что это новый класс памяти, разработанный для установки в разъемы, предназначенные для обычной ОЗУ DIMM, и не боящийся отключения питания. Цель – обеспечить сохранность данных при выключении системы, не проиграв при этом в производительности, надежности, энергоэффективности.
На сегодняшний момент существует несколько вариантов NVDIMM, которые уже выпускаются или готовы к использованию:
- NVDIMM-F. Так сказать, «чистый» NVDIMM, выполненный с применением исключительно flash-памяти. По сути, это твердотельный накопитель на интерфейсе RAM со всеми достоинствами и недостатками такого вида памяти.
- NVDIMM-N. Это комбинация flash-чипов и микросхем DRAM в качестве быстродействующего кэша. Операции чтения/записи идут через DRAM, а NAND память используется в качестве резервного хранилища на случай отключения питания. Размер DRAM и NAND совпадает. Технология работы требует наличия того или иного вида резервного источника питания, которого хватит для сохранения информации в момент исчезновения питающего напряжения.
- NVDIMM-P. Вариант, который в данный момент проходит сертификацию в отраслевой организации JEDEC. Здесь объединены предыдущие два варианта.
Место DRAM вполне может занять память, выполненная по технологии MRAM, т. е. с ячейками, в которых имеется миниатюрный магнитный элемент. Отличие от традиционной флэш-памяти заключается в байтовой адресации, в отличие от страничной, которая принята в привычных твердотельных запоминающих устройствах. Также среди достоинств надо отметить отсутствие необходимости страничного выравнивания данных, а также обновления ячеек памяти, как это делается в DRAM.
Реагирование на сбой питания
В случае с NVDIMM-N неизбежно возникает проблема копирования информации, хранящейся в DIMM, в энергонезависимую память в случае отключения питания. Аналогично, при восстановлении питания данные должны быть переданы обратно, из FLASH в оперативную память.
Эта ситуация осложняется тем, что, в отличие от штатного отключения компьютера (операции предсказуемой и управляемой), при внезапных сбоях питания восстановление может сопровождаться n-ым количеством циклов включения/отключения, прежде чем напряжение достигнет нужного значения.
Это требует надежной системы обнаружения сбоев, а также наличие некоего источника резервного питания, но не всей системы, а расположенного в конкретном модуле NVDIMM. С его помощью можно будет завершить процесс «перекачки» информации из DRAM в энергонезависимую память. Все это добавляет ряд специфических требований к компьютерной системе:
- Используемое программное обеспечение должно контролировать состояние питания и его отключение, в том числе штатное завершение работы.
- Флэш-память может использоваться для хранения кэша.
- Батарея резервного питания занимает место, имеет ограниченный срок службы, а также содержит материалы, которые подпадают под директиву, ограничивающую содержание вредных веществ (RoHS – Restriction of Hazardous Substances).
- Если используется батарея, то необходима ее замена в установленные сроки. В случае применения аккумуляторов требуется контроль количества циклов зарядки/разрядки, а также выполнение регулярных проверок состояния аккумулятора.
- Если в случае источника энергии используются конденсаторы либо другие хранилища энергии, то начинают играть свою роль процессы старения этих элементов.
Есть и более неприятный сценарий. При восстановлении питания и, соответственно, процедуре перезаписи информации из FLASH обратно в ОЗУ питание опять может быть отключено (по тем или иным причинам). Это может привести к тому, что данные в энергонезависимой памяти могут оказаться некорректными.
Мало того, в случае с аккумулятором, такие последовательные исчезновения и восстановления питания могут привести к тому, что батарея просто не успеет подзарядиться, и на какой-то итерации восстановление информации в памяти может оказаться невозможным.
Тестирование NVDIMM включает в себя проверку, которая состоит в циклическом включении/выключении питания каждые несколько миллисекунд в течение пары часов. Такая проверка обеспечивает нужный уровень уверенности в том, что система надежно справится с перебоями питания.
Использование MRAM в качестве кэша
Что получится, если DRAM заменить на MRAM?
Во-первых, автоматически устраняется проблема с питанием, вернее, с его непредвиденным отключением, ведь магниторезистивная память сама по себе энергонезависима, потому и перебоев в электроэнергии не боится.
Во-вторых, необходимости в перекачке данных во FLASH при исчезновении напряжения питания и передаче их обратно в кэш-память при восстановлении электроэнергии нет.
Третье, резервная батарея в модуле NVDIMM становится лишней.
Ну и в-четвертых, упрощается программный код, т. к. отпадает надобность в мониторинге состояния питания и управлении сохранением данных. По крайней мере, эта часть программы управления становится проще.
Последнее, что надо упомянуть, так это то, что требование перезаписи кэша в энергонезависимое хранилище, например, при штатном завершении работы системы, может работать как и прежде, с той лишь разницей, что вместо привычных чипов ОЗУ будет выступать MRAM. Впрочем, из разряда обязательных такое требование переходит в разряд допустимых, ибо острой необходимости в нем уже нет.
NVDIMM для программно-определяемых хранилищ
Программно-определяемые хранилища (SDS – Software-defined storage) подменяют привязку к определенному адресному пространству памяти, где хранятся нужные данные, привязкой к именованной области, называемой пространством имен.
Прикладное ПО обращается не к адресам памяти, а к именам. Внешний контроллер определяет, где физически располагается нужная область с данными. Например, в целях безопасности при каждой загрузке системы данные могут перемещаться в другие места. Оперирование не адресами памяти, а именами позволяет абстрагироваться от местоположения информации в компьютерной системе, а сами данные могут перемещаться произвольно без внесения изменений в прикладное ПО.
Области памяти с данными могут шифроваться. Обычно ключи шифрования хранятся вместе с данными, но для повышения криптоустойчивости лучше, если ключи, которые также шифруются, и сами данные располагаются в разных областях хранилища. Благодаря такому физическому расположению данных и ключей, если последние вдруг оказываются скомпрометированными, злоумышленник все равно не получит доступ к самим данным.
Таким образом, ключи могут храниться в одном пространстве имен (namespace), а сами данные – в другом. При записи данных требуется их зашифровать, а при чтении – расшифровать, причем сделать это дважды, отдельно для ключей и самих данных. Эту работу выполняет контроллер.
Приложение просто посылает запрос на чтение данных контроллеру, который находит и расшифровывает ключи в одном хранилище, а затем таким же образом находит и расшифровывает сами данные, которые затем передаются запрашивающему их приложению. Само же прикладное ПО ничего не знает о том, где находятся данные и какие операции над ними производятся при их запросе.
Как тут можно использовать MRAM? Очень хорошо подойдет такая память в качестве кэша, если контроллер умеет обращаться отдельно к этому кэшу и к FLASH-памяти. Таким образом, MRAM может использоваться для хранения ключей, а флэш-память – для данных. Учитывая, что физически это разные чипы, то проблемы с одним из них никак не повиляют на информацию, хранящуюся в другом.
Энергоэффективность MRAM
В чем преимущества магниторезистивной памяти перед DRAM? Можно указать следующие моменты:
- Регенерация данных. В DRAM она производится постоянно с определенной периодичностью, а также перед операцией чтения. Это определяется особенностями строения ячейки памяти DRAM, в которой используется конденсатор, который надо постоянно подзаряжать. Это не только требует времени, но и на такое «техобслуживание» расходуется энергия. MRAM ничего этого не требуется.
- При обращении к DRAM считывание производится построчно, причем чем больше одновременных запросов к памяти от разных приложений, тем более случайным будет выборка этих строк. Скорее всего, бОльшая часть считанных данных не будет использоваться, т. к. блок данных чаще всего разбросан по разным «закоулкам» памяти. MRAM же адресуется побайтно, что позволяет считывать только нужные данные и не тратить энергию на выборку лишней информации.
- После отключения и восстановления питания кэш, использующий DRAM, нужно восстановить или «сбросить» в энергонезависимое хранилище, что требует затрат энергии, которая может браться из резервной батареи, но ее также надо заряжать, и на все эти манипуляции также расходуется энергия. Независимость MRAM от внешнего питания позволяет отказаться от затрат на перекачку данных из/в кэша.
Новые возможности NVDIMM при использовании MRAM
Замена DRAM кэша на MRAM позволяет получить выгоду даже при использовании существующих на данный момент приложений. Это может быть достигнуто за счет того, что больше не будет требоваться мониторинг состояние питания (и, соответственно, контроль состояния резервных батарей, регламентные работы по их тестированию и т. п.). Снизятся энергозатраты за счет отказа от резервного копирования, увеличится производительность, а контролирующее ПО станет проще.
Новые системы с раздельным доступом к MRAM и FLASH позволят создавать приложения для хранения ключей шифрования, с помощью которых предоставляется доступ к данным. И это только один пример. Различные архитектуры построения систем хранения могут быть использованы для других задач.
Разработчики новых видов энергонезависимой памяти работают вместе с создателями NVDIMM чтобы определить, как эта новая память позволит улучшить работу подсистемы памяти, сделать ее более производительной и эффективной.