CXL: физический уровень на базе PCIe

CXL и UALink физически устроены принципиально по-разному, потому что решают разные задачи. Проще говоря: CXL — это «расширитель» памяти и когерентности, а UALink — это «ускоритель» обмена данными между GPU.

🔌 CXL: физический уровень на базе PCIe

CXL не изобретает физику заново, а полностью переиспользует физический уровень (PHY) PCIe.

  • Основа: Электрически это тот же PCIe. CXL 4.0 использует PHY от PCIe 7.0, работая на скорости 128 GT/s на линию.
  • Кодирование: Используется 128b/130b (как в PCIe 3.0–5.0) или PAM4 с FLIT (как в PCIe 6.0+).
  • Структура: Передача данных организована в FLIT фиксированного размера. CXL 3.x/4.0 используют 256-байтовый FLIT, оптимизированный для низкой задержки.
  • Суть: Это «альтернативный протокол» поверх PCIe. Устройство начинает работу как обычное PCIe, а затем через механизм Alternate Protocol Negotiation переключается на CXL, чтобы получить доступ к когерентной памяти.

🚀 UALink: физический уровень на базе Ethernet

UALink, наоборот, берет за основу стандартный Ethernet PHY, что дает ему гибкость и масштабируемость.

  • Основа: Использует IEEE 802.3 Ethernet PHY (стандарты 200GBASE-KR1/CR1, 400GBASE-KR2/CR2).
  • Скорость: Целевая скорость — 212.5 GT/s на линию, чтобы после вычетов на кодирование обеспечить полезные 200 Гбит/с на линию.
  • Кодирование: Использует 64B/66B (стандарт Ethernet) и Reed-Solomon FEC (прямое исправление ошибок). При этом FEC модифицирован для снижения задержки: используется режим с меньшим перемежением (interleave), что жертвует способностью исправлять длинные пачки ошибок ради скорости.
  • Структура: Данные упакованы в 640-байтовый DL Flit с 32-битным CRC, который затем кодируется в 544,514 RS-кодовое слово.

📊 Ключевые различия

ХарактеристикаCXL (Compute Express Link)UALink (Ultra Accelerator Link)
Физическая основаPCIe PHY (до PCIe 7.0)Ethernet PHY (IEEE 802.3)
Скорость линии (макс.)128 GT/s (CXL 4.0)212.5 GT/s (UALink 1.0)
Кодирование / FEC128b/130b (NRZ) или PAM4+FLIT (PCIe 6.0+)64B/66B + модифицированный Reed-Solomon FEC
Размер единицы передачи256B FLIT (CXL 3.x/4.0)640B DL Flit
Макс. ширина каналаx16 (стандарт), x2 (нативно в CXL 4.0)x4 (базовая группа из 4 линий)
Целевая задержкаCXL.mem: 100–200 ns~100–150 ns (уровень NVLink)
Главная функцияКогерентный доступ к памяти, пулинг памяти, расширение емкостиПрямой обмен данными между ускорителями (load/store/atomics)
ТопологияPoint-to-point, с возможностью коммутации (switch)Масштабируемая коммутируемая фабрика (до 1024 ускорителей)
Основная цельУстранение «бутылочного горлышка» памяти и когерентностиОткрытая альтернатива NVLink для связи GPU в «поде»

Короткий вывод: CXL «притворяется» PCIe, чтобы получить когерентный доступ к памяти, а UALink «притворяется» Ethernet, чтобы дешево и масштабируемо соединять ускорители. В гибридных системах их часто используют вместе: UALink — для быстрого обмена между GPU, CXL — для доступа к общему пулу памяти.