Compute Express Link – CXL
CXL (Compute Express Link): что это за технология, как выглядят устройства, где она применяется и каковы её возможности. Эти вопросы и немного истории CXL мы планируем осветить в этой статье.
Введение

Что же такое CXL? Compute Express Link (CXL) — высокоскоростной стандарт межсоединения, разработанный для расширения возможностей шины PCIe компанией Intel. Он функционирует как дополнительный уровень (слой) и обеспечивает эффективную связь между процессором и различными устройствами, такими как GPU, RAM и сетевые адаптеры, что делает его особенно полезным в таких направлениях, как высокопроизводительные вычисления и дата-центры. Используя новые протоколы доступа, CXL объединяет память разных типов в единую систему, убирая ограничения производительности и памяти DIMM.
Работает CXL - следующим образом:

- Когда процессору необходимо выполнить задачу, которую можно выполнить на вычислительном ускорителе, он отправляет запрос по интерфейсу CXL на ускоритель. Затем ускоритель извлекает необходимые данные из когерентной памяти, выполняет задачу и отправляет результаты обратно на процессор по интерфейсу CXL.
- Если система запущена на виртуальной машине, интерфейс CXL можно использовать для передачи задач с центрального процессора на ускоритель, назначенный конкретно для виртуальной машины. Ускоритель связывается с виртуальной машиной через CXL, выполняя задачи и обмениваясь данными по мере необходимости, при этом не обращаясь к CPU.
- В случае с контейнерами, интерфейс CXL можно использовать для того, чтобы несколько контейнеров могли совместно использовать доступ к одному и тому же ускорителю. Центральный процессор также будет взаимодействовать с ускорителем через интерфейс CXL, а сам ускоритель будет работать с контейнерами аналогичным образом, выполняя задачи и обмениваясь данными без обращения к CPU.
История CXL
Некоторые ключевые факты:
- Интерфейс CXL появился в 2019 году по инициативе Intel, Google, Cisco и других компаний для устранения «узких мест» в обмене данными между CPU, GPU и RAM.
- Технология объединила преимущества PCIe с когерентной памятью, ускорив взаимодействие в гетерогенных системах.
- Улучшенная производительность позволила эффективнее использовать ресурсы и нашла свое применение в центрах обработки данных, облачных и HPC-задачах.
- Сегодня CXL — ключевой стандарт индустрии.
- CXL 1.0 и 1.1 — определяют интерфейс управления памятью, позволяя динамически распределять ее пулы между CPU и ускорителями GPU, FPGA и TPU;
- CXL 2.0 — расширяет возможности за счет поддержки пулов общей RAM, совместно используемых несколькими устройствами, а также введения переключателей CXL, которые упрощают топологию сети;
- CXL 3.0 — согласно заявленной спецификации, удваивает пропускную способность по сравнению с CXL 2.0, снижает энергопотребление и задержку, а также улучшает возможности построения архитектуры кластера CXL.
- CXL 3.1 представляет собой минорное обновление CXL 3.0 2023 года выпуска, оптимизированное для лучшей работы и совместимости с решениями на базе PCIe 6.0.
- CXL 3.2 является новейшей версией интерфейса, которая вышла в конце 2024 года. Это решение имеет обновленный модуль мониторинга горячих страниц CXL (CHMU) для многоуровневой памяти, расширенную функциональность и возможности управления CXL-устройствами для оптимизации работы приложений и ОС, а также различные улучшения механизмов безопасности, например, интеграция протокола TSP и расширенная защита IDE.
- CXL.io. Универсальный протокол, основанный на PCIe 5.0 с рядом модификаций, обеспечивающий настройку, инициализацию, обнаружение, прямой доступ к памяти и регистрам ввода/вывода, а также другие возможности с использованием когерентных сигналов загрузки/сохранения данных. По сути, этот протокол повторяет функциональность протокола PCIe.
- CXL.cache. Протокол, определяющий взаимодействие между хостом и устройством, который позволяет периферийным устройствам согласовано обращаться к памяти процессора и кэшировать информацию с с низкой задержкой.
- CXL.mem. Протокол, позволяющий центральному процессору согласовано обращаться к памяти, подключенной к устройству, с помощью команд ввода/вывода как для оперативной памяти, так и для флэш-памяти.
- Первый тип — ускорители без интегрированной оперативной памяти, поддерживающие протоколы CXL.io и CXL.cache. К таким решениям относятся различные сопроцессоры и умные сетевые карты SmartNIC. Подобные продукты имеют контентный доступ к оперативной памяти CPU с кэшированием информации при обработке данных.
- Второй тип — ускорители вычислений, уже имеющие встроенную оперативную память и поддерживающие протоколы CXL.io, CXL.cache и CXL.mem. Примеры подобных решений: чипы GPU, ASIC или FPGA. Такие решения могут самостоятельно получать доступ к оперативной памяти хоста, а также предоставлять ее CPU, предварительно кэшируя данные и образуя адаптивную систему вычислений.
- Третий тип — расширители памяти, использующие протоколы CXL.io и CXL.mem. Эти решения не имеют собственных вычислительных ресурсов, но могут предоставлять центральному процессору кэшируемый доступ к дополнительной оперативной или персистентной памяти.
- CCIX (Cache Coherent Interconnect for Accelerators) — интерфейс, который разработан для обеспечения когерентности между CPU и сторонними ускорителями (FPGA, GPU) через PCIe 4.0, поддерживая симметричную модель когерентности, что позволяет подключать разные компоненты в одной системе без зависимости от бренда устройств. С появлением CXL 3.0 часть функций CCIX была интегрирована в его экосистему, что снизило конкурентоспособность CCIX.
- Gen-Z — стандарт, который фокусируется на масштабировании памяти на уровне серверных стоек и центров обработки данных, используя семантику памяти для прямого доступа к распределенным пулам памяти с низкой задержкой, что минимизирует перемещение данных и энергопотребление. К 2021 году Gen-Z прекратил самостоятельное развитие, передав свои спецификации консорциуму CXL.
- OpenCAPI (Open Coherent Accelerator Processor Interface) — интерфейс, созданный IBM для систем POWER, обеспечивает высокую пропускную способность (до 25 ГБ/с на канал) и когерентность между CPU и ускорителями, но в 2022 году также был интегрирован в CXL, что ограничило его независимое применение.
-
RHEL 9.2+ — в релиз-нотах указаны драйверы CXL: cxl_core, cxl_port, cxl_acpi, cxl_mem для endpoint-устройств и свитчей памяти.
RHEL 9.4/9.5/9.6 — ветка 9 продолжает поставлять ядро с CXL-стеком; см. общие релиз-ноты RHEL 9.4/9.5/9.6 и руководства по переходу на 9, где компоненты cxl-cli/cxl-devel доступны в репозиториях 9.x.
Дополнительно: в пакете аппаратной сертификации RHEL есть отдельный тест memory_CXL для устройств Type-3, что подтверждает поддержку на уровне платформы и инструментов проверки.
-
SLES 15 SP6/SP7 — дистрибутив для серверов на AMD EPYC/Intel Xeon, официальные материалы SUSE по тюнингу для EPYC 9005 описывают использование линий как CXL 2.0 links, что отражает поддержку стека в ядре и платформенной интеграции.
SLES 16 — релиз-ноты отмечают поддержку машинных проверок для памяти CXL, что важно для эксплуатации и мониторинга.
-
Ubuntu 24.04 LTS — ядро 6.8 содержит CXL-драйверы; в списках обновлений безопасности прямо упоминаются CXL drivers, что подтверждает наличие стека в стандартном ядре дистрибутива.
Ubuntu 22.04.5 LTS — при установке HWE-ядра 6.8 (стандарт для 22.04.5) доступны те же CXL-компоненты; см. официальную схему HWE и таблицу, где 22.04.5 использует ядро 6.8.
В официальных man-страницах Ubuntu есть libcxl и инструменты работы с CXL, указывающие на поддержку пространства /sys и пользовательских утилит.
- https://serverflow.ru/blog/ stati/chto-takoe-standart-cxl-budushchiy-preemnik-pcie/?ysclid=mkl7sqgs5449430993
- https://selectel.ru/blog/cxl-interconnect-testing
- https://itelon.ru/blog/cxl-pamyat-dlya-it-infrastruktury-nizhe-zaderzhki-vyshe-gibkost


Протоколы CXL
Устройства, поддерживающие CXL



CXL против PCIe
Альтернативные технологии



Реальные устройства Hardware
Рассмотрим подробнее, какие случаи использования можно найти в реальных устройствах. Один из примеров — CXL-экспандер, то есть расширитель оперативной памяти. Это PCIe-плата, на которой работает чип CXL. С помощью ее мы можем подключить дополнительный пул оперативной памяти.

На снимке выше — CXL‑экспандер с двумя DIMM‑слотами, поддерживающий ECC‑модули RAM объемом до 128 ГБ и работающий по интерфейсу PCIe Gen 5 x8. При этом не только увеличивается объем оперативной памяти сервера, но появляются и другие преимущества.

Экспандеры — это только вершина айсберга. Есть много периферийных устройств, которые позволяют использовать CXL, в том числе и для отладки.
Уже началась интеграция чипов CXL в крупные проекты. Например, Lenovo SR860 V3 в сотрудничестве с компанией ASTERA LABS разработали платформу, способную вместить 96 модулей DIMM до 512 ГБ каждый, что в сумме дает почти 50 ТБ оперативной памяти! Однако главное — это даже не объем. Платформа может делиться этой памятью с другими серверами посредством CXL в пределах одного дата-центра.

Актуальные операционные системы с поддержкой CXL 2.0
CXL 2.0 уже встроен в современные ядра Linux и поддерживается крупными дистрибутивами. Это позволяет расширять память через устройства Type-3, формировать пулы памяти и работать с NUMA-доменами CXL.
Red Hat Enterprise Linux
SUSE Linux Enterprise Server
Ubuntu LTS
Что с Windows Server
Windows Server 2025 — продукт доступен и поддерживается по LTSC, однако в публичной документации Microsoft на момент подготовки нет прямого описания поддержки CXL Type-3 устройств на уровне ОС.
Microsoft активно публикует исследования и материалы по CXL для облачных сценариев и память-пулинга, но это не является официальным описанием функционала ОС. Для он-прем подтверждения следует ожидать профильные документы по драйверам и ролям, которых пока нет в открытых гайдах.
Поддержка CXL 2.0 уже де-факто доступна в серверных Linux-дистрибутивах актуальных веток RHEL, SLES и Ubuntu LTS. По мере выхода CXL-коммутаторов и зрелости устройств в EDSFF список поддерживаемых версий будет расширяться, а производители дистрибутивов добавят новые утилиты и профили мониторинга. Для Windows Server официальные материалы о полноценной поддержке CXL Type-3 пока не опубликованы.
Также поддержка CXL 2.0 уже официально сертифицирована на платформах ведущих вендоров — в матрицах совместимости Dell, Lenovo, HPE и xFusion перечислены актуальные выпуски RHEL, SLES и Ubuntu LTS для конкретных моделей серверов.
Заключение
Несмотря на то, что в данный момент интерфейс CXL не так распространен, как его главный конкурент PCIe, открытый стандарт активно развивается и все больше высокотехнологичных IT-компаний интегрируют его в свои передовые устройства. Ввиду всех преимуществ, которые предлагает CXL, уже не за горами тот момент, когда этот стандарт полностью вытеснит PCIe из коммерческого сегмента рынка, полностью закрыв все потребности современных кластерных систем. Тем не менее, конкуренты не дремлют, и в индустрии постепенно появляются новые игроки, которые предлагают более интересный функционал, который сможет удовлетворить требования как современных, так и будущих вычислительных систем, причем, включая даже пользовательские устройства.
Источники: