RAM через PCIe: как CXL позволяет расширять память серверов

Сервер может упереться в объем установленной памяти раньше, чем загрузит все процессорные ядра. В облачных средах уже становятся базовыми процессоры от 64-х ядер на сокет, а слотов под память DDR5 не так уже и много. В итоге нагрузку приходится размещать на других серверах, так как процессорной мощности еще достаточно, а объема памяти еще нет. Плюс учитываем, что часть памяти хоста резервируется для отказоустойчивости, в случае выхода из строя или обслуживания других хостов в облаке или он-прем инфре. Цены на серверную память, также не радуют сейчас и тенденция пока не просматривается в сторону уменьшения цен и увеличения доступности.
Один из способов облегчить вопросы с недостатком памяти в серверах - использование CXL технологии. CXL позволяет увеличить емкость доступной памяти хоста, подключением дополнительного объема памяти DDR4 через PCI-E. Разбираемся, как устроена такая система, чем дополнительная память отличается от основной и почему компании уже применяют CXL в своей инфраструктуре.
Как дефицит памяти решает CXL
При работе с памятью в сервере важен не только объем, но и задержки доступа, скорость работы. Ниже рассмотрим, в основном, первую проблему, а именно недостаток объема и как CXL помогает решать эту задачу.
Тут сразу стоит заметить, что для серверов, где используются процессоры AMD Epyc или Intel Xeon , с числом ядер до 64-х на сокет, проблема недостатка памяти на хосте не является актуальной, даже учитывая ее рост за год более чем в пять раз, и чем более емкая планка памяти, тем выше стоимость за модуль.
Один из способов обойти ограничение доступных физически слотов под память, а также каналов памяти для конкретного CPU — вынести часть памяти за пределы стандартных каналов DDR и подключить ее через CXL. Такой подход позволяет наращивать объем оперативной памяти более независимо от процессора и использовать свободную вычислительную мощность сервера эффективнее.
Как работает CXL-память
CXL позволяет добавить к серверу память, которая не занимает обычные каналы DDR процессора. В системе она подключается через PCIe 5.0 с помощью специальных контроллеров, например Vistara. Для операционной системы такая память остается адресуемой как оперативная: приложения могут использовать ее вместе с локальной DRAM, а не обращаться к ней как к накопителю. Linux может работать с такой памятью и видеть ее как системную. Сама по себе серверная платформа также должна поддерживать CXL. Поэтому применяемость на сегодня достаточно ограничена и не является массовой.
Разберем на примере серверной платформы MemServer. В ней установлено 768 ГБ локальной DDR5 и еще 256 ГБ DDR4 через CXL — в сумме 1 ТБ памяти на сервер. Дополнительный объем подключают через два контроллера Vistara. Соотношение локальной и CXL-памяти составляет 3:1.
Причем DDR4 здесь выбрана не только из-за стоимости. Инженеры рассчитывают повторно использовать исправные модули из серверов, которые уже выводятся из эксплуатации. Google, кстати, также уже начинает использовать такой подход в своих ЦОДах. Отдавая приоритет объему памяти, а не ее скорости.
DRAM обычно сохраняет работоспособность от 7-ми и более лет, тогда как срок эксплуатации самого сервера составляет около 5 лет, и часто сервер заменяют, не потому что он начинает сыпать ошибками, а по причине, что можно убрать из стойки 8 серверов и заменить их 2-мя или 4-мя, сокращая количество и улучшая показатели энергопотребления уровня стойки. Vistara позволяет использовать освобождающиеся модули DDR4 от старых серверов с более новыми машинами с DDR5 и использовать их как дополнительный уровень памяти.

У такого решения есть очевидный компромисс — CXL-память работает медленнее локальной. В готовой конфигурации пропускная способность основной DDR5 достигает 614 ГБ/с, а дополнительной CXL-памяти (DDR4-2400) — около 58 ГБ/с (пиковое значение — 76 ГБ/с). Но DDR4-2400 уж совсем устаревшая, и показатели DDR4-2933 будут до 20% выше.
Доступ к ней тоже занимает больше времени: исследователи связывают дополнительную задержку прежде всего с прохождением запроса через контроллер CXL и с тем, что DDR4 на стороне Vistara работает на 2400 МТ/с.
Подход с повторным использованием DDR4 получил развитие и в новых контроллерах Astera Labs. Анонсированные 15 сентября 2026 года Leo 2 поддерживают PCIe 6 и CXL 3.2, а со стороны памяти — четыре канала DDR4 или DDR5. Для DDR4 предусмотрена конфигурация 3DPC: три DIMM на канал, до 12 модулей на плате расширения. Это увеличивает ёмкость, но не превращает четыре канала в двенадцать: установленные на одном канале модули разделяют его пропускную способность.

В случае с Astera Labs, серия E использует подключение PCIe 6 x16, а серия P — два порта x8 и поддерживает пулы памяти с динамическим управлением ёмкостью между хостами виртуализации. Также используются алгоритмы тестирования памяти на ошибки. Решения Astera Labs пока проходят внедрения и тестовые эксплуатации у гиперскейлеров.
Более низкая скорость работы компенсируется стоимостью и энергопотреблением: 256 ГБ CXL-памяти потребляют около 30 Вт против 132 Вт у 768 ГБ локальной памяти. В пересчете на гигабайт энергопотребление составляет около 70% от уровня локальной DRAM, а стоимость — около 13%. В случае Vistara такой разрыв во многом обеспечивается повторным использованием DDR4, поэтому эти значения нельзя считать универсальными для любой системы CXL.

То есть быструю DDR5 не пытаются заменить более медленной памятью. А добавляют к ней второй уровень и распределяют данные так, чтобы разница в скорости как можно меньше влияла на приложения. За счет этого сервер получает дополнительный объем памяти без увеличения числа стандартных каналов DDR — и именно это позволяет полнее использовать его вычислительные ресурсы.
Напоминает, конечно, уровень хранения и тиры на СХД. Когда пускают в хост и медленные NL SAS и быстрые SSD на одной СХД.
Что CXL дает на практике
Конфигурацию проверили на нескольких типах реальных нагрузок — от инфраструктуры разработки до машинного обучения и аналитики. Во всех случаях дополнительная память решала одну и ту же задачу: позволяла разместить больше работы на одном сервере и тем самым сократить потребность в новых машинах.
При этом более высокая задержка CXL-памяти не стала критичной. Linux оставляет часто используемые данные в локальной DDR5, а менее востребованные переносит в дополнительную память. Благодаря этому большинство приложений получает больший объем RAM без заметного ухудшения работы, а накладные расходы на распределение данных между двумя уровнями памяти остаются ниже 0,5%.
Вот такие вот эксперименты, в попытках, добавить немного еще памяти в сервер, особенно дешевой :)
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.