← На главную

Путаница DDR5 стандартов тормозит ECC — автор: поднять цены на не-ECC

19.07.2026 16:31 · hackernews

ECC RAM использует коды Хэмминга для исправления ошибок памяти до того, как данные дойдут до CPU. С R избыточными битами такой код исправляет однобитовые ошибки и обнаруживает двухбитовые. Для 32 бит данных нужно 6 избыточных бит, для 64 — 7. В стандарте DDR4 шина данных — 72 бита, из которых 64 уходят на данные, а остальные — на коррекцию.

Путаницу часто вызывают RDIMM и UDIMM. RDIMM (Registered) использует буфер, что позволяет ставить больше модулей в систему, но слегка увеличивает задержки. UDIMM — обычная память в ПК и ноутбуках. Технически можно сделать RDIMM без ECC (64 бита вместо 72), но автор таких систем не встречал. ECC UDIMM на вторичном рынке дороги, а ECC RDIMM часто очень дёшевы: серверы после пяти лет списывают, и память с них продают оптом.

Простая коррекция Хэмминга не спасает, если отказывает целый чип DRAM. IBM запатентовала термин ChipKill для систем, которые выдерживают отказ одного чипа. У Dell и HP это называется «Advanced ECC» и требует чётного числа DIMM. Автору неизвестно, какой именно метод кодирования там используется.

DDR5 получила встроенную on-die ECC: 8 бит коррекции на 128 бит данных. Это не замена полноценной ECC, а лишь борьба с новыми ошибками, вызванными более мелкими и быстрыми ячейками. Автор опасается, что on-die ECC может взаимодействовать с ECC на материнке и снижать её эффективность, но внятной информации об этом нет. Лучшее исследование влияния ECC на ошибки RAM — это статья Google 2009 года про DDR и DDR2. Более новых публичных данных нет.

DDR5 поддерживает два 32-битных подканала вместо одного 64-битного. Для ECC есть два варианта: EC4 (36 бит на подканал) и EC8 (40 бит). EC8 позволяет полноценные коды Хэмминга на каждом подканале. Как работает EC4 — неясно. В интернете пишут, что все DDR5 RDIMM — EC8, а UDIMM — EC4, но поиск eBay показал объявления и с EC4 RDIMM. Автор считает, что выпускать EC4 — неправильно: разница в цене между 72- и 80-битными модулями мизерная, а на рынке создаётся неразбериха.

Зачем вообще нужна ECC? Mozilla утверждает, что 15% крашей Firefox вызваны аппаратными ошибками RAM. Автор сам однажды столкнулся с повреждением BTRFS из-за ошибки памяти, которая проявлялась раз в 5 часов — Firefox бы на такой системе просто падал, и краши списали бы на баги. В другой раз из-за сбойной материнской платы перестали работать почти все слоты DIMM — несколько разработчиков потратили день на отладку несуществующей проблемы в коде.

Вывод: ECC RAM нужно внедрять шире. Идеально — ввести налог на не-ECC память (и EC4 для DDR5), чтобы она была дороже. Специалисты должны рекомендовать ECC везде, где возможно, а ноутбуки и телефоны — не использовать для хранения важных данных. И не плодить лишние вариации памяти, чтобы не усложнять жизнь тем, кто хочет получить ECC.

Читать оригинал →