8 (800) 777-72-48 Для связи с отделом продаж
Личный кабинет
Блог

Оперативная память: ECC, REG, RDIMM, LRDIMM, и другие

Разбираемся с различными типами оперативной памяти и технологиями, REG, ECC, RDIMM, LRDIMM, NVDIMM, DCPMM
Статьи 9 мин чтения
Оперативная память: ECC, REG, RDIMM, LRDIMM, и другие

Серверная оперативная память отличается от настольной не только объёмом. Разбираем, что такое ECC и Chipkill, чем регистровая память RDIMM отличается от LRDIMM, зачем нужны энергонезависимые модули NVDIMM и как устроена Intel Optane DC Persistent Memory.

ECC — код коррекции ошибок

ECC (Error Correction Code), или код коррекции ошибок, позволяет исправлять некоторые ошибки в процессе работы оперативной памяти — в том числе случайные, возникающие под воздействием электромагнитных помех или высокоэнергетических элементарных частиц. Такая погрешность появляется из-за изменения значения одного бита в машинном слове, и результат может быть самым непредсказуемым: от изменения одного символа в набранном тексте до зависания всей системы. При чтении данных из памяти или записи в память код ECC позволяет исправлять одиночные битовые ошибки, что повышает надёжность работы памяти там, где это необходимо, — в серверах и рабочих станциях. Для кода ECC добавляются 8 дополнительных бит (64 базовых + 8 дополнительных = 72).

Применение технологии ECC необходимо для обнаружения и, если это возможно, исправления подобных проблем. Память, не имеющая поддержки коррекции ошибок, обозначается non-ECC.

Chipkill и Advanced ECC

Алгоритм ECC исправляет однобитовые ошибки, а также определяет два ошибочных бита, но уже не исправляет их. Технологии Chipkill и Advanced ECC расширяют алгоритм, позволяя корректировать до 4 ошибочных битов и определять до 8. Если ошибок много, сбойный чип можно скрыть в системе без перезагрузки (отсюда и название Chipkill), при этом сервер продолжает стабильную работу. Chipkill и Advanced ECC работают как массив RAID на жёстких дисках, опираясь на распределённое избыточное хранение данных.

Технология Memory Scrubbing постоянно проверяет память на наличие ошибок, а результаты отправляет серверным утилитам управления — например, IPMI (Intelligent Platform Management Interface) в BMC (Baseboard Management Controller).

Для работы ECC вместе с Chipkill/Advanced ECC необходимо, чтобы процессор, материнская плата с BIOS и оперативная память поддерживали ECC. Эта технология обязательна для всех RDIMM, но встречаются и UDIMM с ECC.

RDIMM — регистровая память

Регистровой памятью (Registered DIMM, RDIMM) называют модули ОЗУ, которые имеют «на борту» отдельный регистр для адресов и команд. Контроллер ОЗУ в процессоре обращается к регистрам, а регистры направляют информацию в микросхемы памяти. Такая организация позволяет увеличить количество модулей на канал за счёт снижения электрической нагрузки на контроллер памяти, который находится либо в северном мосту материнской платы, либо в процессоре. Если модуль содержит два регистра, ёмкость модулей вдвое уменьшается.

Регистровая память отличается от обычной, небуферизованной, более высокими задержками при чтении и записи: модули содержат дополнительный промежуточный узел — буфер, работа с которым требует дополнительного времени. Зато уменьшается нагрузка на процессор, так как буфер отвечает за непосредственную работу с банками памяти.

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

Такая память стоит дороже обычной и используется исключительно в серверах, потому что позволяет получить больший объём памяти на один процессор.

LRDIMM — модули со сниженной нагрузкой

LRDIMM (Load Reduced Dual In-Line Memory Modules) — относительно новый тип памяти для серверов, поддерживается процессорами Intel Xeon E5 и AMD Opteron 6200 начиная с 2012 года.

Модули LRDIMM очень похожи на «обычные» Registered DIMM и даже используют те же печатные платы и чипы DRAM, однако принцип работы существенно различается.

Смешивать в одной системе модули LRDIMM и DIMM категорически запрещено — система не запустится.

В режиме работы с модулями DIMM контроллер памяти подключается параллельно и управляет непосредственно каждым набором микросхем, подключённых к управляющей линии модуля. Чем больше таких наборов у модуля (так называемых рангов), тем больше нагрузка на контроллер.

При работе с LRDIMM управление сводится к отправке пакетной информации (данные и команды) в буфер модуля — iMB (Isolation Memory Buffer). Именно буфер управляет всеми операциями чтения и записи в микросхемах DRAM. За счёт иного механизма «общения» модуля с контроллером нагрузка многорангового модуля становится в два раза ниже: Quad Rank модуль контроллер воспринимает как Dual Rank, а Octal Rank — как Quad Rank.

На практике LRDIMM полезен для увеличения скорости работы большого объёма памяти и вообще возможности организации большого объёма. Конкретный пример: процессоры Intel Xeon E5 v1–v4 содержат четырёхканальный контроллер памяти и поддерживают до восьми логических рангов на канал.

Тип модулейМодулей на процессорОбъём модуляДвухпроцессорная плата
RDIMM Quad Rank8 (по 2 на канал)32 ГБдо 512 ГБ
LRDIMM Quad Rank12 (по 3 на канал)32 ГБдо 768 ГБ, на более высокой частоте
3DS LRDIMM (Xeon E5 v3/v4)12 (по 3 на канал)128 ГБдо 3 ТБ

Одноранговых или двуранговых модулей RDIMM можно поставить больше (до 3 на канал), но они имеют меньшую ёмкость. Планками RDIMM при прочих равных можно достичь только 768 ГБ, тогда как двухпроцессорные системы с 24 слотами на 3DS LRDIMM используют до 3 ТБ.

NVDIMM — энергонезависимые модули

NVDIMM (non-volatile DIMM) — пример комплексного использования двух технологий: оперативной и энергонезависимой памяти. Стандарт утверждён в 2014 году, и многие компании представили свои модули памяти с «батарейкой». В связи с активным развитием микросхем Flash современный NVDIMM включает достаточный объём NAND-памяти и позволяет не только сохранить целостность данных при аварийном отключении питания, но и кэшировать все проходящие через ОЗУ данные на лету.

ТипСоставНазначение
NVDIMM-NSDRAM (ОЗУ) + микросхема флеш-памяти«Оперативка» с расширенным функционалом: резервное хранение данных ОЗУ на случай аварии
NVDIMM-FТолько Flash-память, без ячеек ОЗУСвоего рода хранилище в слоте памяти
NVDIMM-PDRAM + NAND на одной планкеКомбинирует функции N и F: одновременный доступ к DRAM и NAND

Все три конфигурации позволяют существенно увеличить производительность при работе с большими данными, HPC и т. д.

В 2017 году произошёл своего рода прорыв: Micron представила модули NVDIMM ёмкостью 32 ГБ, работающие на частоте DDR4-2933 с задержками CL21 — гораздо быстрее других DDR4 для серверного применения. Несколько раньше вышли модули на 8 и 16 ГБ.

В конфигурации с двумя контроллерами любой из модулей NVDIMM-N заменяется вместе с контроллером в любой удобный момент без прерывания доступа к данным. Когерентность NVDIMM может быть обеспечена не только программными, но и аппаратными средствами. Исчезает необходимость обслуживать аккумуляторы (BBU в старых RAID-контроллерах или UPS), а при вертикальном и горизонтальном масштабировании больше не требуется переоценка рисков потери данных.

DCPMM — Intel Optane DC Persistent Memory

Intel Optane DC (DCPMM) имеет большую ёмкость, чем DRAM, а её производительность выше, чем у SSD и HDD. Это гибрид между модулем оперативной памяти и накопителем, стирающий грань между DRAM и хранилищем данных при вычислениях в памяти.

Другое преимущество — Intel Optane DC сохраняет данные, если питание сервера пропало или нестабильно, при этом сохраняется производительность DRAM: данные остаются в оперативной памяти после выключения устройства.

Для работы с OLTP, базами данных в памяти и других сложных задач нужно использовать ресурсы процессора и памяти по максимуму и при этом сокращать задержки при передаче информации. Решения на базе энергонезависимой памяти (NVM) не могут до конца решить эту проблему; выходом становится энергонезависимая память NVRAM/NVDIMM, в том числе Intel Optane DCPMM.

История: 3D XPoint

Разработка DCPMM началась в середине 2000-х. В 2012 году Intel и Micron объединили усилия, а в июле 2015 технология была показана публике под названием 3D XPoint («трёхмерная точка пересечения»). Идея заключалась в создании памяти, которая отвечала бы трём критериям:

  • энергонезависимость;
  • надёжность;
  • скорость выше, чем у Flash.

По сути, инженеры разработали новый класс модулей, который позволил преодолеть ограничения классической трёхуровневой модели хранения «горячих, тёплых и холодных» данных: появился четвёртый слой для «полугорячих» данных. Новый слой NVRAM оказывается между SSD (хранение данных) и DRAM с CPU (запуск приложения). Необходимая для запуска приложений информация становится доступна в течение сотен наносекунд — против десятков микросекунд для SSD и миллисекунд для HDD.

Ещё одно существенное преимущество: модули Intel Optane DCPMM устанавливаются в те же стандартные слоты памяти, что и DRAM.

Модули были выпущены в апреле 2019 года вместе со вторым поколением процессоров Intel Xeon Scalable. Одной из первых компаний, получивших новые процессоры и DCPMM, стала Fujitsu, внедрившая их в системы PRIMERGY и PRIMEQUEST.

Режимы работы DCPMM

РежимКак работаетКогда выбирать
Memory ModeВся ёмкость DCPMM работает как «классическая» ОЗУ, DRAM используется как кэшНужно увеличить объём основной памяти: виртуализация, аналитика, устаревшее ПО
App DirectПриложения напрямую работают с DCPMM как с постоянной памятью, SDRAM остаётся основной памятьюБазы данных в памяти, сверхбыстрое хранение, быстрый перезапуск
Mixed ModeЧасть ёмкости — в Memory Mode, часть — в App DirectПараллельные приложения с разными требованиями

Memory Mode

Операционная система и приложения рассматривают DCPMM как пул энергозависимой памяти, а DRAM используется в роли кэша. Контроллер памяти обрабатывает все операции управления кэшем: при запросе данных он сначала проверяет кэш DRAM — если данные есть, скорость передачи и время ожидания идентичны DRAM; в противном случае данные считываются из модулей DCPMM с немного большей задержкой. Наличие в сервере планок DRAM обязательно.

Memory Mode предпочтителен, когда нужно увеличить объём основной памяти. В средах с высокой степенью виртуализации модули DCPMM вмещают больше виртуальных машин и предоставляют больше памяти каждой из них, затрачивая меньше средств, чем сравнимая конфигурация DRAM. То же относится к нагрузкам с интенсивным вводом-выводом — аналитическим и бизнес-приложениям, а также большому набору устаревшего ПО.

App Direct

Режим позволяет приложениям напрямую взаимодействовать с частями DCPMM: все важные данные хранятся в постоянной памяти в непосредственной близости от процессора и сразу доступны при загрузке ПО. ОС распознаёт два отдельных пула памяти: часть DCPMM резервируется как постоянная память, а SDRAM функционирует как основная.

DCPMM в App Direct выполняет роль постоянного запоминающего устройства, но адресация проходит по байтам, как у SDRAM. Данные из пространства App Direct кэшируются в памяти ЦП точно так же, как из SDRAM, поэтому система получается согласованной, а все ядра ЦП сразу получают одинаковые данные. Пространство App Direct можно также монтировать непосредственно в ОС как сверхбыстрый SSD.

App Direct максимально использует DCPMM с точки зрения производительности, ёмкости, гибкости и простоты, поэтому эксперты считают его предпочтительным для сценариев, где устойчивость систем и быстрое время загрузки/перезапуска имеют первостепенное значение: базы данных в памяти и приложения для сверхбыстрого хранения.

Mixed Mode

Разновидность App Direct: DCPMM настраивается так, чтобы одна часть работала в Memory Mode, а другая — в App Direct. Ключевое отличие — «разделение» ёмкости и функциональности задаётся с самого начала, чтобы поддерживать параллельно выполняемые приложения с различными требованиями. В смешанном режиме приложения пользуются преимуществами высокопроизводительного хранилища без задержки, которую вызывает перемещение данных на шину ввода-вывода и обратно.