Модули DIMM на памяти Intel 3D XPoint могут работать лучше
Как известно, в мае компания Intel сообщила о начале во второй половине этого года ограниченных коммерческих поставок модулей DIMM DDR4 на энергонезависимой памяти 3D XPoint. Ёмкость модулей составит 128, 256 и 512 Гбайт. Согласитесь, это куда больше, чем могут предложить модули DIMM на памяти DRAM. Очевидно, что микросхемы 3D XPoint со временем окажутся дешевле, чем оперативная память в пересчёте на единицу хранения данных, а энергонезависимые качества 3D XPoint и вовсе выведут работу вычислительных систем на новый уровень, когда исчезнет понятие длительной загрузки после выключения системы. Все данные остаются в памяти даже после обесточивания системы (как и глюки, ага).
Очевидно, что переход на использование памяти 3D XPoint вместо DRAM потребует изменения или оптимизации программных алгоритмов. Работать с модулями 3D XPoint, как с модулями DIMM нельзя и это не оптимально. Над новыми алгоритмами работают не только в компании Intel. Этим процессом увлечены разработчики в других компаниях и даже в академической среде. Так, группа исследователей из Университета штата Северная Каролина предложила иной алгоритм для работы с данными в памяти, чем тот, который используется сегодня.
Современный метод обработки данных для записи на носитель предполагает интенсивные и постоянные запросы через кэш процессора с избыточным извлечением данных (eager persistency или с «нетерпением»). Подобный метод позволяет защитить информацию от потери в случае программного или аппаратного сбоя, но ведёт к перекрытию потребностей времени на транзакции до 9% и к 21% увеличению интенсивности операций записи на носитель (в данном случае — в память DIMM на 3D XPoint). Избыточная запись для энергонезависимой памяти, как известно противопоказана.
Для работы с памятью 3D XPoint исследователи предложили перейти на «ленивый» метод извлечения и записи данных или lazy persistency. Учёные посчитали, что сбой случается не так часто, чтобы данные из памяти извлекать со значительным избытком и с превышением по операциям превентивной записи. Это делать можно только «лениво» или по требованию. В памяти 3D XPoint на случай сбоя достаточно хранить контрольную сумму пересылаемых данных, по которой процессор сможет восстановить внезапно потерянную информацию. Данный алгоритм к времени транзакций добавит только 1% избыточных операций и увеличит интенсивность операций записи в модуль 3D XPoint всего на 3% вместо 21%. К сожалению, у разработчиков не было живых модулей Intel Optane, и они использовали в работе симулятор памяти 3D XPoint.