Compute Express Link (CXL) ist ein offener Standard für Hochgeschwindigkeitsverbindungen mit hoher Kapazität zwischen CPU und Peripheriegeräten sowie zwische
Compute Express Link (CXL) ist ein offener Standard für Hochgeschwindigkeitsverbindungen mit hoher Kapazität zwischen CPU und Peripheriegeräten sowie zwischen CPU und Speicher. Er wurde für Hochleistungscomputer in Rechenzentren entwickelt.[1][2][3][4] CXL basiert auf der physikalischen und elektrischen Schnittstelle des seriellenPCI Express (PCIe). Es umfasst ein PCIe-basiertes Block-E/A-Protokoll (CXL.io) sowie zwei cache-kohärente Protokolle: eines für den Zugriff auf den Systemspeicher (CXL.cache), eines für den Gerätespeicher (CXL.mem). Dank der seriellen Kommunikations- und Pooling-Fähigkeiten kann CXL-Speicher bei der Implementierung hoher Speicherkapazitäten die Leistungs- und Sockelverpackungsbeschränkungen herkömmlicher DIMM-Speicher überwinden.[5]
Am 2. April 2020 gaben die Konsortien Compute Express Link und Gen-Z Pläne zur Umsetzung der Interoperabilität zwischen den beiden Technologien bekannt.[15][16] Erste Ergebnisse folgten im Januar 2021.[17] Am 10. November 2021 wurden die Gen-Z-Spezifikationen und -Ressourcen an CXL übertragen, um die Entwicklung eines einheitlichen Industriestandards voranzutreiben.[18] Zum Zeitpunkt dieser Ankündigung hatten sich bereits 70 % der Gen-Z-Mitglieder dem CXL-Konsortium angeschlossen.[19]
Am 1. August 2022 wurden die OpenCAPI-Spezifikationen und -Ressourcen an das CXL-Konsortium übertragen.[20][21] Inzwischen gehören dem Konsortium die Unternehmen hinter zentralen speicherkohärenten Verbindungstechnologien an: den offenen Standards OpenCAPI (IBM), Gen-Z (HPE) und CCIX (Xilinx) sowie den proprietären Protokollen InfiniBand/RoCE (Mellanox), Infinity Fabric (AMD), Omni-Path und QuickPath/Ultra Path (Intel) sowie NVLink/NVSwitch (Nvidia) stehen.[22]
Technische Daten
Am 11. März 2019 wurde die auf PCIe 5.0 basierende CXL-Spezifikation 1.0 veröffentlicht.[7] Sie ermöglicht der Host-CPU den Zugriff auf den gemeinsamen Speicher von Beschleunigergeräten über ein cachekohärentes Protokoll. Die CXL-Spezifikation 1.1 wurde im Juni 2019 veröffentlicht.
Am 10. November 2020 wurde die CXL-Spezifikation 2.0 veröffentlicht. Die neue Version bietet Unterstützung für CXL-Switching. Dadurch lassen sich mehrere CXL-1.x- und -2.0-Geräte an einen CXL-2.0-Hostprozessor anschließen. In Konfigurationen mit verteiltem, gemeinsam genutztem Speicher und disaggregiertem Speicher kann zudem jedes Gerät mehreren Hostprozessoren zugeordnet werden. Zusätzlich implementiert CXL 2.0 Geräteintegrität und Datenverschlüsselung.[23] Im Vergleich zu CXL 1.x ergibt sich keine Bandbreitensteigerung, da CXL 2.0 weiterhin die PCIe-5.0-PHY-Schnittstelle nutzt.
Am 2. August 2022 wurde die CXL-Spezifikation 3.0 veröffentlicht. Sie basiert auf der physikalischen PCIe-6.0-Schnittstelle und der PAM-4-Codierung mit doppelter Bandbreite. Zu den neuen Funktionen zählen Fabric-Fähigkeiten mit mehrstufigem Switching und mehreren Gerätetypen pro Port sowie eine verbesserte Kohärenz durch Peer-to-Peer-DMA und gemeinsame Speichernutzung.[24][25]
Am 14. November 2023 wurde die CXL-Spezifikation 3.1 veröffentlicht.
Am 3. Dezember 2024 wurde die CXL-Spezifikation 3.2 veröffentlicht.
Am 18. November 2025 wurde die CXL-Spezifikation 4.0 veröffentlicht. Damit verdoppelte sich die Verbindungsrate von 64 auf 128 GT/s. Außerdem wurden gebündelte Ports sowie verbesserte Funktionen hinsichtlich Zuverlässigkeit, Verfügbarkeit und Wartungsfreundlichkeit des Speichers eingeführt.[26]
CXL-Speichercontroller verursachen in der Regel eine Latenz von etwa 200 ns.[27]
Implementierungen
Am 2. April 2019 stellte Intel seine Agilex-FPGA-Produktfamilie mit CXL vor.[28]
Am 11. Mai 2021 kündigte Samsung ein auf DDR5 basierendes Speichererweiterungsmodul mit 128 GB an. Es ermöglicht Speichererweiterungen im Terabyte-Bereich sowie hohe Leistung für Rechenzentren und möglicherweise auch für PCs der nächsten Generation.[29] Eine aktualisierte 512-GB-Version auf Basis eines proprietären Speichercontrollers wurde am 10. Mai 2022 vorgestellt.[30]
Der Linux-Kernel 6.5 bietet nun Unterstützung für CXL.
Protokolle
Die CXL-Transaktionsschicht besteht aus drei dynamisch multiplexierten (d. h. je nach Bedarf wechselnd) Teilprotokollen auf einer einzigen Verbindung:[38][39][23]
CXL.io basiert auf PCIe 5.0 (und PCIe 6.0 ab CXL 3.0) mit einigen Erweiterungen. Es bietet Konfiguration, Initialisierung und Verwaltung der Verbindung, Geräteerkennung und -aufzählung, Interrupts, DMA sowie Register-I/O-Zugriff mittels nicht-kohärenter Lade-/Speicheroperationen.[40]
CXL.cache definiert die Interaktionen zwischen einem Host und einem Gerät[40] und ermöglicht es Peripheriegeräten, über eine Anfrage-Antwort-Schnittstelle mit geringer Latenz kohärent auf den Speicher der Host-CPU zuzugreifen und diesen zwischenzuspeichern.
CXL.mem ermöglicht der Host-CPU den kohärenten Zugriff auf den an das Gerät angeschlossenen Speicher mit Lade-/Speicherbefehlen sowohl für flüchtigen (RAM) als auch für nichtflüchtigen (Flash-Speicher) Speicher.[40]
Die Protokolle CXL.cache und CXL.mem arbeiten mit einer gemeinsamen Verbindungs- und Transaktionsschicht, die von der Verbindungs- und Transaktionsschicht des CXL.io-Protokolls getrennt ist. CXL.cache und CXL.mem übertragen relevante Daten schneller als CXL.io, indem sie eine Flow Control Unit (FLIT) mit fester Breite von 68 Byte über einen Standard-PCIe-5.0-PHY nutzen. Zwei der 68 Bytes werden von einem Arbitrierungs- und Multiplexing-Block (ARB/MUX) verwendet, um zwischen den Subprotokollen „cache“, „mem“ und „IO“ zu multiplexen. Die verbleibenden 66 Bytes bestehen aus vier 16-Byte-Daten-„Slots“ und einem 2-Byte-CRC-Wert (Cyclic Redundancy Check).[39] CXL-FLITs kapseln Daten des PCIe-Standard-Transaktionsschichtpakets (TLP) und des Datenverbindungsschichtpakets (DLLP) in einem Format mit fester Rahmengröße.[38][37]
CXL 3.0 führt 256-Byte-FLITs im PAM-4-Übertragungsmodus ein. FLITs gibt es in zwei Varianten:
Standard: Die Bytes 0–1, 242–249 und 250–255 werden von der physikalischen Schicht in dieser Reihenfolge als 2-Byte-Flit-Header (HDR), 8-Byte-CRC und Vorwärtsfehlerkorrekturcode (FEC) verwendet. Damit bleiben 240 Bytes für die eigentlichen Daten.
Latenzoptimiert (LOpt): Aufteilung in zwei Hälften je 128 Bytes, wobei der „Happy Path“ (CRC stimmt überein) die Latenz gegenüber dem Standard-Flit um ca. 5 ns reduziert. Die von der PHY reservierten Bytes sind: 0–1 als 2-Byte-HDR, 122–127 als 6-Byte-CRC für die Bytes 0–127, 244–249 als 6-Byte-FEC für alle 256 Bytes und 250–255 als 6-Byte-FEC für die Bytes 128–255. Damit bleiben 236 Bytes für die eigentlichen Daten übrig.
Gerätetypen
CXL ist für die Unterstützung von drei Hauptgerätetypen ausgelegt:[23]
Typ 1 (CXL.io und CXL.cache) – kohärenter Zugriff auf den Host-Speicher, spezialisierte Beschleuniger (wie Smart-NIC, PGAS-NIC und NIC-Atomics) ohne lokalen Speicher. Die Geräte sind auf den kohärenten Zugriff auf den Host-CPU-Speicher angewiesen.[40]
Typ 2 (CXL.io, CXL.cache und CXL.mem) – kohärenter Zugriff auf den Host-Speicher und den Gerätespeicher; Allzweck-Beschleuniger (GPU, ASIC oder FPGA) mit hochleistungsfähigem lokalem GDDR- oder HBM-Speicher. Die Geräte können kohärent auf den Speicher der Host-CPU zugreifen und/oder der Host-CPU einen kohärenten oder nicht-kohärenten Zugriff auf den lokalen Gerätespeicher ermöglichen.[40]
Typ 3 (CXL.io und CXL.mem) – ermöglicht dem Host den Zugriff auf und die Verwaltung von angeschlossenem Gerätespeicher, Speichererweiterungskarten und persistenten Speicher. Geräte bieten der Host-CPU einen Zugriff mit geringer Latenz auf lokalen DRAM oder byte-adressierbaren nichtflüchtigen Speicher.[40]
Geräte vom Typ 2 verfügen über zwei Modi zur Speicherkohärenz, die vom Gerätetreiber verwaltet werden. Im „Device-Bias“-Modus greift das Gerät direkt auf den lokalen Speicher zu, und die CPU führt keine Zwischenspeicherung durch; im „Host-Bias“-Modus übernimmt der Cache-Controller der Host-CPU den gesamten Zugriff auf den Gerätespeicher. Der Kohärenzmodus kann für jede 4-KB-Seite individuell festgelegt werden und wird in einer Übersetzungstabelle im lokalen Speicher von Typ-2-Geräten gespeichert. Im Gegensatz zu anderen Protokollen zur Speicherkohärenz zwischen CPUs erfordert diese Anordnung lediglich, dass der Speichercontroller der Host-CPU den Cache-Agenten implementiert; ein solcher asymmetrischer Ansatz verringert die Komplexität der Implementierung und reduziert die Latenz.[39]
CXL 2.0 bietet nun Unterstützung für das Switching in baumartigen Geräte-Fabrics, wodurch PCIe-, CXL-1.1- und -CXL-2.0-Geräte virtuelle Hierarchien aus Einzel- und Mehrfachlogikgeräten bilden können, die von mehreren Hosts verwaltet werden.[41]
CXL 3.0 hat die Bias-Modi durch eine verbesserte Kohärenzsemantik ersetzt, wodurch Geräte vom Typ 2 und Typ 3 die Daten im Host-Cache rückwirkend ungültig machen können, wenn das Gerät eine Änderung am lokalen Speicher vorgenommen hat. Die erweiterte Kohärenz erleichtert zudem die Implementierung von Peer-to-Peer-Übertragungen innerhalb einer virtuellen Hierarchie von Geräten in derselben Kohärenzdomäne. Sie unterstützt außerdem die gemeinsame Nutzung desselben Speichersegments durch mehrere Geräte, im Gegensatz zum Speicherpooling, bei dem jedem Gerät ein separates Segment zugewiesen wurde.[42]
CXL 3.0 ermöglicht den Anschluss mehrerer Geräte vom Typ 1 und Typ 2 an jeden CXL-Root-Port. Außerdem wird mehrstufiges Switching hinzugefügt, was die Implementierung von Geräte-Fabrics mit nicht-baumstrukturierten Topologien wie Mesh, Ring oder Spline/Leaf erleichtert. Jeder Knoten kann ein Host oder ein Gerät beliebigen Typs sein. Geräte vom Typ 3 können den GFAM-Modus (Global Fabric Attached Memory) implementieren, bei dem ein Speichergerät ohne direkte Verbindung zum Host an einen Switch-Knoten angeschlossen wird. Geräte und Hosts nutzen den Adressierungsmechanismus „Port Based Routing“ (PBR), der bis zu 4.096 Knoten unterstützt.[42]
↑Navin Shenoy: A Milestone in Moving Data. In: newsroom.intel.com. 11. März 2019, archiviert vom Original (nicht mehr online verfügbar) am 9. November 2019; abgerufen am 9. August 2026 (englisch).
↑Industry Liaisons. In: computeexpresslink.org. Archiviert vom Original (nicht mehr online verfügbar) am 28. September 2021; abgerufen am 9. August 2026 (englisch).
↑Intel Architecture Day 2021. In: intel.com. 19. August 2021, archiviert vom Original (nicht mehr online verfügbar) am 19. August 2021; abgerufen am 9. August 2026 (englisch).
↑ abSession: CXLT-201-1: CXL Form Factors. (PDF; 1,45 MB) In: files.futurememorystorage.com. 2024, archiviert vom Original (nicht mehr online verfügbar) am 10. September 2024; abgerufen am 9. August 2026 (englisch).
↑Danny Volkind, Elad Shliselberg: CXL 1.1 vs CXL 2.0 – What’s the difference? In: computeexpresslink.org. 15. Juni 2022, archiviert vom Original (nicht mehr online verfügbar) am 26. Dezember 2022; abgerufen am 9. August 2026 (englisch).
↑ abCompute Express Link 3.0. In: computeexpresslink.org. Archiviert vom Original (nicht mehr online verfügbar) am 8. August 2022; abgerufen am 9. August 2026 (englisch).
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.