Выбор между двумя модулями большего объёма и четырьмя меньшего выглядит арифметическим: сумма гигабайт одинакова, число каналов тоже. Разница появляется уровнем ниже — в электрике шины и в логике контроллера, и почти всегда она не в пользу четырёх планок. Механизм стоит понимать до сборки, потому что переиграть конфигурацию потом означает покупать модули заново.
Ранги, нагрузка и общие линии
Контроллер памяти встроен в процессор и обслуживает фиксированное число каналов: на массовых настольных платформах два, на платформах верхнего уровня и в серверах четыре и больше. Канал физически представляет собой пучок линий данных, адреса, команд и тактирования, разведённый от процессорного разъёма к слотам. Каждая микросхема на модуле подключается к этим линиям и добавляет к ним свою ёмкость.
Ранг — это набор чипов, который вместе выдаёт полную ширину канала и активируется отдельным сигналом выбора кристалла. Одноранговый модуль содержит один такой набор, двухранговый — два. Когда в канал ставят два модуля, число рангов на канал удваивается, а если модули двухранговые, доходит до четырёх. Линии команд и адреса при этом остаются общими: их принимают все чипы всех рангов сразу, независимо от того, к какому из них адресовано обращение.
Электрически это означает рост нагрузки и ухудшение формы сигнала. Фронт становится более пологим, окно, в котором приёмник надёжно защёлкивает уровень, сужается. На умеренных частотах запаса хватает, на высоких — перестаёт.
Разводка платы рассчитана на два модуля
Большинство настольных плат с четырьмя слотами разведено по последовательной схеме: линии идут от процессора к ближнему слоту пары, затем к дальнему. Такая топология даёт наименьшие отражения, когда занят только дальний слот каждого канала. Именно поэтому в инструкции указывают ставить два модуля во второй и четвёртый слоты, а ближний оставлять пустым — его ответвление тогда работает как короткий неоконечиваемый отрезок.
Как только в этот слот вставляют модуль, картина меняется: сигнал делится между двумя приёмниками, появляются отражения от точки ветвления. Существует и альтернативная схема с симметричной разводкой ко всем четырём слотам — она ведёт себя ровнее при полном заполнении, но проигрывает по достижимой частоте, когда модуля всего два. Плата спроектирована под один из этих компромиссов, и переключить его настройками нельзя.
Чем платят: частота, напряжение, время инициализации
Первое следствие — снижение частоты, на которой система стартует стабильно. В списках проверенных конфигураций у плат режимы для четырёх модулей заметно ниже, чем для двух, и разрыв растёт вместе с числом рангов. Профиль разгона, записанный в сам модуль, рассчитан на два модуля в системе; при четырёх он нередко не проходит инициализацию вовсе, и плата откатывается на базовый режим.
Второе следствие — необходимость поднимать напряжение на контроллере и на шине, чтобы вернуть запас по сигналу. Это добавляет тепла процессору и помогает не всегда: если причина в отражениях, а не в нехватке амплитуды, прибавка напряжения ничего не исправляет.
Третье следствие — удлинение тренировки при включении. Контроллер подбирает задержки индивидуально для каждой линии и каждого ранга, и с ростом их числа процедура растягивается. Плата с четырьмя занятыми слотами может держать чёрный экран десятки секунд после сброса настроек — это перебор параметров, а не отказ.
Отдельная тема — сборка из двух разных комплектов. Наборы из разных партий не тестировались вместе: у них могут отличаться микросхемы, версии профиля и внутренняя организация. Контроллер обязан найти режим, который устроит все ранги одновременно, и ориентируется на худший из них.
Что четыре модуля дают взамен
Выигрыш существует и связан с чередованием рангов. Пока один ранг занят регенерацией или закрывает открытую строку, контроллер обращается к другому, пряча часть задержек за параллельной работой. Поэтому два ранга на канал обычно работают быстрее одного при прочих равных.
Но тот же эффект даёт один двухранговый модуль на канал — без второй планки и без ухудшения сигнала. Отсюда практический вывод: если нужна выгода от чередования, разумнее поставить два двухранговых модуля, чем четыре одноранговых. Прибавка от перехода с двух рангов на четыре заметно меньше, а расплата по частоте — больше.
Когда четырёх слотов не избежать
Ситуация меняется, когда упирается объём. Если платформа поддерживает четыре слота, а модулей нужной ёмкости под неё нет, заполнение всех слотов остаётся единственным путём — с осознанным откатом по частоте и с ручной настройкой режима. Тот же случай возникает, когда память докупают через год-два: подбирать придётся под уже стоящие планки, а автоматический профиль скорее всего перестанет запускаться.
В серверных платформах проблема решена иначе. Регистровые модули несут на себе буфер, который принимает команды и адрес и переизлучает их на чипы, снимая с шины основную нагрузку. Это стоит одного дополнительного такта задержки, зато позволяет ставить по два-три модуля на канал без обвала частоты. Об этом классе модулей подробнее — в разделе про память с коррекцией ошибок. Для настольной сборки такого механизма нет, поэтому конфигурацию слотов определяют на этапе подбора узлов, порядок которого разобран в разделе сборка.