Модуль регистровой памяти внешне почти неотличим от настольного: та же длина планки, то же число контактов в гребёнке, те же чипы по одной или обеим сторонам. Разница спрятана в ряду мелких микросхем ближе к центру платы и в содержимом микросхемы SPD. Механически такой модуль нередко входит в обычный слот без усилия — именно поэтому вопрос «а если попробовать» вообще возникает. Ответ отрицательный, и причина не в маркетинговом делении рынка, а в том, как устроена шина команд.

Что делает регистр

Контроллер памяти выдаёт на модуль два принципиально разных потока. Первый — данные, они идут по линиям DQ и двунаправленны. Второй — адреса и команды: выбор строки и столбца, активация банка, сигналы выбора микросхемы, тактовая частота. Командные линии однонаправленны, и контроллер обязан прокачать их на все чипы модуля одновременно.

Каждая микросхема памяти — это электрическая нагрузка: входная ёмкость, ток, который надо переключить за долю наносекунды. Пока в канале один-два модуля по восемь чипов, выходные каскады контроллера справляются. Когда планок четыре, чипов на каждой полтора-два десятка, а сами модули двух- или четырёхранговые, суммарная ёмкость командной шины вырастает настолько, что фронт сигнала размывается. Окно, в котором уровень достоверен, схлопывается, и частоту приходится снижать — либо система вообще не проходит тренировку памяти.

Регистр решает эту задачу физически. Это буферная микросхема, которая принимает адрес и команду от контроллера, защёлкивает их по фронту такта и переизлучает уже внутрь модуля своими выходными каскадами. Тактовый сигнал при этом восстанавливается. Для контроллера целая планка превращается в одну нагрузку вместо двадцати, и он способен держать несколько таких модулей на канале без потери частоты.

Плата за это — один такт задержки. Команда доходит до чипов на цикл позже, чем на небуферизованном модуле. На фоне полной латентности доступа это немного, но при равной частоте регистровая планка всегда чуть медленнее по времени отклика. Взамен на сокет удаётся набрать объём, недостижимый для настольной платформы, — и в серверных задачах этот размен почти всегда в пользу объёма.

Почему настольная плата не стартует

Регистр — активный элемент, и его нужно настроить до первого обращения к памяти. Настройка идёт не по основной шине, а через служебные регистры управления: контроллер по служебному каналу сообщает буферу, сколько рангов на модуле, какие задержки выставить, как распределить нагрузку по выходам. Только после этого начинается тренировка линий данных.

Настольный контроллер такой процедуры не умеет. У него нет ни логики инициализации буфера, ни поправки на дополнительный такт в тайминге команд. Он читает SPD, видит тип модуля, который не поддерживает, и останавливается — либо, если прошивка менее аккуратна, пытается работать как с небуферизованной планкой и не получает ответа. Снаружи это выглядит как отсутствие старта: вентиляторы крутятся, изображения нет, индикатор диагностики застревает на стадии памяти. Иногда плата подаёт звуковой код ошибки памяти. Повреждения обычно не происходит, но и толку тоже.

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

Регистровая и ECC — это разные свойства

Их постоянно путают, потому что на практике почти вся регистровая память несёт коррекцию ошибок. Но это два независимых механизма. Коррекция — это дополнительная микросхема и лишние биты на слово, позволяющие обнаружить и исправить одиночный сбой; она работает на уровне данных. Регистр — это буфер командной шины, он о данных ничего не знает. Существуют небуферизованные модули с коррекцией: они электрически ведут себя как настольные и работают на платах начального серверного уровня, если процессор и чипсет поддерживают такую память. Что именно коррекция ловит и чего не ловит, подробнее разобрано в разделе о памяти с ECC.

Куда это масштабируется дальше

Когда буферизации команд перестаёт хватать, в дело идут модули с полной разгрузкой линий: у них буферизуются и данные тоже, отдельными микросхемами рядом с контактной гребёнкой. Контроллер видит один ранг вместо четырёх или восьми, и на канал удаётся поставить больше планок предельного объёма. Задержка растёт ещё заметнее, зато потолок памяти на сокет поднимается кратно. Выбор между типами модулей — это всегда выбор точки на кривой «объём против отклика», и решается он профилем нагрузки, а не общими соображениями.

Практический вывод

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