Anzeige

Welchen Stand hat Compute Express Link (CXL)?

CXL soll als Verbindung zwischen CPU und Speicher für schnellere Performance sorgen. Die Ankündigung ist nun auch schon einige Jahre alt, aber man hat den Eindruck, dass man CXL immer häufiger in Trendreports und Specs liest. Welchen Stand hat die Technologie bis dato?

Leserfrage: CXL soll als Verbindung zwischen CPU und Speicher für schnellere Performance sorgen. Die Ankündigung ist nun auch schon einige Jahre alt, aber man hat den Eindruck, dass man CXL immer häufiger in Trendreports und Specs liest. Welchen Stand hat die Technologie bis dato?

Anzeige

Antwort Doc Storage:

Doc StorageCXL (Compute Express Link) ist ein Cache-kohärenter, größtenteils offener Standard für Hochgeschwindigkeits-Verbindungen von CPUs zum Hauptspeicher und anderen Geräten. Die Technik nutzt die physische Standard-PCIe-Schicht und läuft hier als alternatives Protokoll. Durch die Schaffung eines gemeinsamen Adressraumes für angeschlossene Geräte bietet der CXL-Standard Leistungsvorteile vor allem für Hyperscaler. Dabei nutzt es einen flexiblen Prozessor-Port, welcher entweder im PCIe- oder CXL-Modus betrieben werden kann. Beide Geräteklassen können Datenraten von 32 GByte/s über PCIe 5 oder bis zu 64 GByte/s über PCIe 6 transportieren.

Das CXL-Konsortium wurde 2019 von neun Firmen zur Entwicklung technischer Spezifikationen gegründet, aber auch, um neue Anwendungsfälle zu definieren und die Markteinführung der Technologie voranzutreiben. Künstliche Intelligenz (KI), maschinelles Lernen (ML) und Cloud-Infrastrukturen gehören zu den von den Herstellern meistgenannten Anwendungen. Diese profitieren am meisten von der hohen Geschwindigkeit und dem kohärenten Speicherzugriff der neuen Schnittstelle profitieren.

Wie funktioniert CXL?

Vereinfacht gesagt stellt das CXL-Framework den Zusammenhang zwischen den Speichern der CPU und jedem angeschlossenen Gerät her. Dadurch lassen sich Speicher-Ressourcen wirksam bündeln und gemeinsam nutzen, darüber hinaus lässt sich die Komplexität des Software-Stacks reduzieren. Um dieses Speicher-Pooling zu ermöglichen, müssen sowohl der Rechner als auch die Peripheriegeräte CXL-fähig sein. Die Datenübertragung erfolgt über Flusskontrolleinheiten (Flits) mit geringem Overhead. Mit CXL-Switching kann der Host auf mehrere Geräte verteilt und gleichzeitig ein hoher Durchsatz in jede Richtung aufrechterhalten werden. Ressourcen, einschließlich Beschleuniger und verfügbarer CXL-Speicher, lassen sich dynamisch neu zuweisen, wenn sich die Systemauslastung ändert. In der CXL-Spezifikation 2.0 kam ein standardisierter Fabric-Manager hinzu, der eine nahtlose Nutzung mit intern konsistenten Konfigurationen und Fehlerberichten bietet – unabhängig vom Pooling-Typ, Rechner oder Nutzungsmodell.

Anwendungsfälle für CXL

Im Zuge der Weiterentwicklung der Schnittstelle haben diverse Anwendungen die CXL-Hersteller dazu veranlasst, drei diskrete Gerätetypen zu definieren.

Typ-1-Geräte: Beschleuniger und andere Geräte, die nicht über eigenen lokalen Speicher verfügen und daher auf die CPU angewiesen sind. Die Protokolle CXL.io und CXL.cache sollen es diesen Geräten ermöglichen, effizienter zu kommunizieren und Speicherkapazität der CPU zu nutzen.

Typ-2-Geräte: Produkte, die sowohl über eigene Datenspeicherfunktionen verfügen als auch CPU-Speicher nutzen. Alle drei CXL-Protokolle werden kombiniert, um eine zusammenhängende Speicherfreigabe zwischen diesen Geräten und der CPU zu unterstützen.

Typ-3-Geräte: Speichererweiterungen oder Geräte, die zur Erweiterung des vorhandenen CPU-Speichers vorgesehen sind. Die Protokolle CXL.io und CXL.memory ermöglichen der CPU den Zugriff auf diese externen Speicher bei deutlich verbesserter Bandbreite und niedriger Latenz.

Vorteile von CXL

Durch die Optimierung der Anschlussfähigkeit und der gemeinsamen Nutzung von Ressourcen sollen CXL-Technologien die Leistung von hohen Arbeitslasten verbessern und gleichzeitig die Komplexität und damit die Kosten senken. Diese Eigenschaften werden im Zuge der immer weiter zu senkenden Gesamtbetriebskosten (TCO) durch neue Technologien mit schnellerer Datenverarbeitung bei gleichzeitig niedrigeren Preisen ständig wichtiger. Hierzu zählt auch und vor allem die Verbindung von CXL-Speicher-Pools, um eine zuverlässige Konsistenz zu garantieren. Darüber hinaus werden heterogene Architekturen, die Prozessoren unterschiedlicher Typen und Generationen kombinieren, vom CXL-Standard allumfassend berücksichtigt und implementiert. Dies soll vor allem für komplexe KI-Netze und maschinelle Lernsysteme wichtig sein, da sich die einzelnen Elemente dieser Infrastrukturen ständig weiterentwickeln. Gilt hauptsächlich reduzierte Latenz als Schlüsselfaktor für diese Anwendungsfälle und die zukünftige Einführung von PCIe 6, unterstützt CXL laut Herstellern diese Notwendigkeiten ohne Einschränkung.

CXL-Protokolle und -Standards

Die Veröffentlichung des CXL 1.0-Standards im Jahr 2019 war vor allem durch den CPU-Zugriff auf einen gemeinsam genutzten externen Speicher gekennzeichnet. Die Protokolle und Standards von CXL wurden seit der erfolgreichen Einführung in mehreren Schritten verbessert und erweitert.

CXL 1.1 verbesserte einige Compliance- und Interoperabilitätsaspekte des ursprünglichen Standards, während gleichzeitig die Abwärtskompatibilität mit Version 1.0 gewahrt blieb.

CXL 2.0 fügte Switching-Funktionen für Fan-Out-Konfigurationen, Ressourcen-Pooling und persistente Speicherunterstützung hinzu und minimierte gleichzeitig die Notwendigkeit einer zu hohen Bereitstellung von Ressourcen. Zur Verbesserung der Sicherheit wurden außerdem Link-Level-Integrität und Datenverschlüsselung (CXL IDE) integriert.

CXL 3.0, veröffentlicht im August 2022, verdoppelte die Datenrate auf 64 GByte/s und erweiterte die Paketgröße auf 256 Byte. Fabric-Management, Speicherfreigabe und Peer-to-Peer-Kommunikation wurden ohne zusätzliche Latenz verbessert.

Die anfänglich für die Spezifikation 1.0 entwickelten Unterprotokolle sind während des gesamten Lebenszyklus konsistent geblieben:

CXL.io basiert auf PCIe 5 und wird zur Erkennung, Konfiguration und Registrierung von Zugriffsfunktionen verwendet. CXL.io muss von allen CXL-Geräten unterstützt werden, damit es funktioniert.

CXL.cache verwaltet Interaktionen zwischen der CPU und anderen CXL-fähigen Geräten. Dieses Unterprotokoll unterstützt das effiziente Caching des Speichers mit geringer Latenz und den direkten Gerätezugriff auf den CPU-Speicher mithilfe eines Anforderungs- und Antwortprozesses.

CXL.memory bietet Zugriffsmodi für den Rechner, um angeschlossenen Gerätespeicher mithilfe von Lade- und Speicherbefehlen bereitzustellen. In dieser Konfiguration fungiert die CPU als Master, während die CXL-Geräte als untergeordnete Geräte fungieren.

CXL und PCIe

PCI Express (PCIe) hat sich in den letzten zwei Jahrzehnten de facto zur seriellen Hochgeschwindigkeits-Busarchitektur entwickelt, wobei die Punkt-zu-Punkt-Topologie Verbindungen zu angeschlossenen Geräten bereitstellt. Trotz der Leistungsfähigkeit von PCIe für die Massendatenübertragung werden bei größeren Rechenzentrums-Anwendungen Nachteile deutlich. So bleiben Speicher-Pools voneinander isoliert, was eine gemeinsame Nutzung von Ressourcen nahezu unmöglich macht und das Latenzdefizit vor allem für nachträglich verbundene Geräte erhöht.

PCIe 6 ist die neueste abwärtskompatible Generation des Standards. Bei vollständiger Einführung wird CXL für PCIe 6 zu einer Verdoppelung des Durchsatzes im Vergleich zu PCIe 5 führen und gleichzeitig die Bereitstellung alternativer Protokolle unterstützen, die jetzt von der CXL-Schnittstelle genutzt werden. CXL-Protokolle arbeiten über die physikalische PCIe-Schicht und bauen auf der Vielseitigkeit der Standard-PCIe-Architektur auf, indem sie neue Speicherfreigabe-Funktionen in die Transaktionsschicht integrieren. CXL-Speicher-Pooling ermöglicht eine Reduzierung der Latenz und eine verbesserte Beschleunigerleistung. Standard-PCIe-Geräte und CXL-Software lassen sich über dieselbe Verbindung unterstützen. Ein flexibler Prozessor-Port kann schnell Standard-PCIe- oder alternative Protokoll-CXL-Verbindungstransaktionen aushandeln.

Noch befindet sich CXL in der Entwicklungsphase

CXL wurde im März 2019 erstmals in der Version 1.0 vorgestellt. CXL 1.1 wurde nur drei Monate später veröffentlicht und enthielt nur kleinere Updates. Das umfassende Upgrade auf die Version 2.0 im November 2020 umfasste Link-Switching, Link-Sicherheit und andere wichtige Funktionen, die sich direkt auf die Systemleistung und die beschleunigte Einführung konzentrierten. Außerdem wurden Hot-Plug-Flows definiert, um Ressourcen für Anwendungen wie CXL über Ethernet hinzuzufügen oder zu entfernen.

Viele CXL-Geräte befinden sich derzeit in der Entwicklung und Compliance-Programme werden aufgelegt, womit der Bedarf an zuverlässigen CXL-Protokollanalyse- und Testlösungen unterstrichen wird. CXL 2.0 und 3.0 sind seit kurzem verfügbar und unterstützen 32 bzw. 64 GByte/s-Verbindungen.

Grüße
Doc Storage

Anzeige