1. Что такое ECC и как она исправляет одиночные битовые ошибки
Оперативная память ошибается. Заряд в ячейке DRAM может самопроизвольно измениться из-за космического излучения, электрических наводок, деградации ячейки или банального перегрева. Результат — «перевёрнутый» бит: записали 0, прочитали 1. По данным крупного исследования Google и Университета Торонто, проводившегося на парке серверов в течение двух с половиной лет, корректируемые ошибки памяти за год затрагивают заметную долю работающих модулей — это не экзотика, а фоновое явление любого ЦОД.
Для домашнего ПК перевёрнутый бит — это в худшем случае вылет игры. Для сервера — испорченная транзакция в базе данных, повреждённый блок в журнале файловой системы или «тихая» порча данных, которую заметят через месяцы. Поэтому серверная память использует ECC — Error-Correcting Code.
Как это работает. Обычный модуль хранит и передаёт 64 бита данных за такт. ECC-модуль — 72 бита: к каждым 64 битам данных добавляются 8 контрольных, рассчитанных по коду Хэмминга. На модуле для этого физически распаяна дополнительная микросхема памяти — поэтому ECC-планку легко узнать по «лишнему» чипу (9 вместо 8 или 18 вместо 16).
При каждом чтении контроллер заново вычисляет контрольные биты и сравнивает с записанными. Схема SEC-DED (Single Error Correction, Double Error Detection): одиночная битовая ошибка исправляется на лету, прозрачно для ОС; двойная — гарантированно детектируется, и система получает сигнал (machine check), вместо того чтобы молча работать с испорченными данными.
Почему on-die ECC в DDR5 — это не то же самое. Встроенный в чипы DDR5 on-die ECC исправляет ошибки только внутри самой микросхемы памяти — он компенсирует рост плотности ячеек и нужен самим производителям чипов. Путь данных от чипа через дорожки платы, разъём DIMM и шину до контроллера он не защищает. Полноценный (side-band) ECC с дополнительными микросхемами и 80-битной организацией каналов в DDR5 RDIMM — по-прежнему отдельная серверная функция. Обычный DDR5 UDIMM для десктопа полноценного ECC не имеет.
Важная деталь: ECC — совместная работа модуля, процессора и материнской платы. ECC-модуль в платформе без поддержки ECC заработает, но коррекция будет отключена. Поддержку проверяем по спецификации CPU и платы.
2. RDIMM — что регистрируется и зачем
RDIMM — Registered DIMM. «Регистр» — отдельная микросхема в центре модуля, в терминологии DDR4/DDR5 — RCD (Register Clock Driver). Она буферизует командные и адресные сигналы и тактовый сигнал: контроллер отправляет команду не напрямую десяткам чипов, а одному регистру, который ретранслирует её чипам.
Зачем. Каждый чип памяти — электрическая нагрузка на линии канала. Чем больше чипов и модулей на канале, тем сильнее искажается сигнал и тем труднее держать частоту. Регистр снимает проблему: для контроллера весь модуль выглядит как одна аккуратная нагрузка. Результат — на канал можно ставить больше модулей с большим числом рангов без потери стабильности. Двухсокетный сервер с 16–32 слотами DIMM проектируется под RDIMM: с небуферизованной памятью такая конфигурация физически не заведётся на паспортных частотах.
Чем платим. Один такт задержки на командном пути — на фоне суммарной латентности доступа незаметная величина. Энергопотребление чуть выше из-за самого регистра.
В DDR5 регистровая схема ещё важнее: частоты 4800–6400 МТ/с, RCD работает в паре с PMIC (управление питанием на плате модуля). Платформы Intel Xeon Scalable 4-го/5-го поколений и AMD EPYC 9004/9005 принимают только RDIMM. Практический маркер: в спецификации сервера «DDR4 RDIMM 3200» / «DDR5 RDIMM 4800» — берём именно регистровые модули, весь парк в системе регистровый.
3. LRDIMM — когда буферизуют ещё и данные
LRDIMM — Load Reduced DIMM. Следующий шаг после RDIMM: буферизуются не только команды и адреса, но и сами данные. В DDR4 LRDIMM за это отвечают регистр RCD плюс девять буферных микросхем данных (Data Buffers) вдоль нижнего края платы.
Главный эффект — маскировка рангов. У контроллера жёсткий лимит рангов на канал — обычно восемь. Четырёхранговый модуль большой ёмкости без буферизации съедает лимит мгновенно: два модуля 4R — и канал заполнен. Буферы данных LRDIMM «прячут» внутренние ранги: модуль с четырьмя-восемью физическими рангами виден контроллеру как одно-двухранговый. Итог — модули 64, 128 и 256 ГБ исторически выпускались именно как LRDIMM. (Подробный разбор рангов — отдельная статья контент-плана, Статья 4.)
Цена вопроса. Буферы добавляют задержку уже и на пути данных, увеличивают энергопотребление и заметно повышают стоимость. Правило: LRDIMM оправдан только когда требуемый объём физически не собирается на RDIMM. Если задача решается RDIMM 32–64 ГБ — RDIMM быстрее и дешевле.
Статус в DDR5. Ниша LRDIMM сжалась: технология 3DS (чипы стопкой с TSV-соединениями) позволила выпускать RDIMM 96–256 ГБ без буферов данных. Большие объёмы на DDR5 в основном собираются на 3DS RDIMM. На DDR4 — где живёт основной парк Dell PowerEdge 14–15G, HPE ProLiant Gen10 — LRDIMM остаётся актуальным способом дойти до 2–4 ТБ на сокет.
4. UDIMM — где уместна небуферизованная память
UDIMM — Unbuffered DIMM. Контроллер общается с чипами напрямую. Самая простая, дешёвая и формально самая быстрая схема — нет ни такта задержки на регистре, ни буферов данных.
Обратная сторона — электрические ограничения: максимум два модуля на канал, ёмкость типично до 32 ГБ на модуль в DDR4 и до 48 ГБ в DDR5 настольного сегмента, с ростом числа чипов платформа сбрасывает частоту.
Где уместен. Entry-уровень: одно-сокетные платформы на Intel Xeon E, AMD EPYC 4004, серверы начального уровня, рабочие станции. Эти платформы принимают ECC UDIMM — небуферизованные модули с коррекцией. Для микросервера филиала на 20 пользователей 1С — полностью рабочее решение.
Главная ловушка при заказе: «ECC-память» — не синоним «серверная RDIMM». ECC UDIMM и ECC RDIMM — электрически разные модули, платформа принимает строго один тип. Сервер под RDIMM не стартует с UDIMM-планками, и наоборот. Сверяйте тип по спецификации платформы, а не по слову «ECC» в названии.
5. Patrol Scrub, ADDDC и другие серверные ECC-функции
SEC-DED — реакция на ошибку в момент чтения. Серверные платформы надстраивают активные механизмы, которые не ждут накопления ошибок. Эти функции живут в BIOS/UEFI — после сборки проверьте, что включены.
Patrol Scrub. Контроллер в фоне методично перечитывает весь объём RAM (типичный цикл — раз в сутки), находит одиночные ошибки и исправляет их в самих ячейках. Логика: одиночная ошибка, оставленная без внимания, со временем может встретиться со второй в том же слове — а двойную SEC-DED уже не исправит.
Demand Scrub. То же исправление ячейки, но в момент обычного чтения: нашли ошибку — отдали хосту исправленные данные — починили ячейку.
ADDDC и Chipkill — защита от отказа целой микросхемы. SEC-DED не спасает от смерти целого чипа на модуле. Технологии класса Chipkill (термин IBM; у AMD — реализация в EPYC, у Intel — ADDDC на Xeon Scalable) распределяют данные и контрольные биты так, что отказ целой микросхемы переживается без потери данных: платформа на лету переходит в режим деградации и работает до плановой замены. Для модулей на чипах x4 защита работает в полном объёме — ещё одна причина, почему в QVL критичных платформ преобладают 1Rx4/2Rx4.
Memory Mirroring и Sparing. Зеркалирование половины памяти и «запасной» ранг для миграции с проблемного модуля. Функции уровня RAS для критичных систем — ценой части объёма. Большинству задач достаточно ECC RDIMM + Patrol Scrub + ADDDC/Chipkill.
В QC-Lab ANDPRO при тестировании серверной памяти перед отгрузкой мы прогоняем модули под нагрузкой с контролем журнала корректируемых ошибок: модуль, который «сыплет» одиночными ошибками на стенде, не уезжает клиенту, даже если формально работает.
6. Сравнительная таблица: ECC / RDIMM / LRDIMM / UDIMM
Важно понимать: ECC — это функция коррекции, а RDIMM / LRDIMM / UDIMM — схемы буферизации. Они комбинируются: бывают ECC UDIMM, а все серверные RDIMM и LRDIMM — всегда с ECC. Поэтому сравниваем три типа модулей, у каждого указывая отношение к ECC.
Если по таблице вы определили свой тип — дальше выбор сводится к поколению (DDR4 3200 против DDR5 4800/5600), объёму и производителю. Этому посвящён отдельный раздел pillar-гайда, а готовые позиции — в каталоге: серверная DDR4 и серверная DDR5.
7. Какие модули нельзя смешивать в одной системе
1. RDIMM + UDIMM — никогда. Электрически разные схемы. Система не пройдёт POST. Тип буферизации в системе только один.
2. RDIMM + LRDIMM — тоже никогда. Оба регистровые, но протоколы работы с буферами данных несовместимы. Dell, HPE, Lenovo прямо запрещают комбинацию в руководствах по конфигурированию.
3. ECC + non-ECC. В лучшем случае платформа отключит коррекцию для всего объёма, в худшем — не стартует.
4. Разные частоты — можно, но со штрафом. Канал работает на скорости самого медленного модуля.
5. Разные ранги и объёмы — с оговорками. Большинство платформ позволяет, но с соблюдением populating rules и ценой выхода из оптимального чередования каналов. Правило: внутри канала — одинаковые модули, лучше — во всей системе.
6. Разные производители — работает, но проверяйте. Серверные платформы чувствительны к таймингам SPD. Перед доукомплектацией боевого сервера — сверка с QVL; если позиции в QVL нет — прогоняем связку на стенде QC-Lab до отгрузки.
Минимальный порядок проверки перед заказом доукомплектации: тип буферизации (как у текущего парка) → ECC → поколение и частота → ранги и populating rules → QVL. Если на любом шаге сомнение — пришлите модель сервера и маркировку текущих модулей, подберём совместимый вариант: подбор по совместимости ANDPRO.
FAQ
Чем отличается ECC UDIMM от ECC RDIMM, если коррекция и там и там?
Коррекция одинаковая — SEC-DED. Разница в буферизации: RDIMM ретранслирует команды через регистр и рассчитан на многослотовые платформы, UDIMM работает напрямую и ограничен двумя модулями на канал. Платформа принимает строго один тип.
В DDR5 ECC уже встроен — можно взять десктопные модули в сервер?
Нет. On-die ECC исправляет ошибки только внутри микросхемы и не защищает тракт до контроллера. Полноценный side-band ECC — только в ECC-модулях. Десктопный DDR5 UDIMM в RDIMM-платформу физически не подойдёт.
RDIMM медленнее UDIMM из-за регистра?
Формально +1 такт на командном пути. На реальных нагрузках разница неизмеримо мала, стабильность канала выше — весь серверный сегмент стандартизован на RDIMM.
Когда нужен именно LRDIMM, а не RDIMM?
Когда объём не собирается на RDIMM: 2–4 ТБ на сокет на DDR4 с модулями 128–256 ГБ. Иначе RDIMM быстрее и дешевле. На DDR5 большие объёмы решаются 3DS RDIMM.
Можно ли добавить модули другого производителя к установленным?
Технически да — при совпадении типа, поколения, ECC, частоты и желательно рангов. Практически — проверка по QVL или тест связки в QC-Lab перед доукомплектацией production.
Как проверить, что ECC реально работает?
BIOS/UEFI (статус ECC, Patrol/Demand Scrub), консоль управления (iDRAC/iLO/XClarity — журнал корректируемых ошибок), ОС (Linux — EDAC, Windows — WHEA). Регулярные ошибки по одному модулю — замена по гарантии.
Поможете подобрать память под мой сервер?
Да. Модель сервера и маркировку модулей (фото наклейки) на info@andpro.ru или через /services/. Проверим тип, ранги, populating rules, QVL; при необходимости — тест в QC-Lab. КП за 1 час в рабочее время.