CXL

Was bringt Compute Express Link?

08.08.2022
Von 
Jürgen Hill ist Chefreporter Future Technologies bei der COMPUTERWOCHE. Thematisch befasst sich der studierte Diplom-Journalist und Informatiker derzeit mit aktuellen IT-Trendthemen wie KI, Quantencomputing, Digital Twins, IoT, Digitalisierung etc. Zudem verfügt er über einen langjährigen Background im Bereich Communications mit all seinen Facetten (TK, Mobile, LAN, WAN). 
Mit Intels neuen Sapphire-Rapids-CPUs und AMDs Genoa-Prozessoren wird auch der neue Standard Compute Express Link – kurz CXL – Einzug halten. Wir zeigen, was die neue Technik bringt.
Mit dem neuen CXL-Standard könnte sich die Art, wie wir Rechenzentren und Server bauen, ändern.
Mit dem neuen CXL-Standard könnte sich die Art, wie wir Rechenzentren und Server bauen, ändern.
Foto: Stock image - shutterstock.com

Als neuer Interconnection-Standard soll der Compute Express Link (CXL) die Kommunikation zwischen CPU und RAM-Speicher sowie Devices steuern. Technisch basiert CXL auf PCI Express (PCIe). Ursprünglich wurde CXL 2019 von Intel entwickelt. Mittlerweile ist CXL ein offener Standard und im ebenfalls 2019 gegründeten CXL Consortium sind fast alle namhaften Hardware-Player vertreten.

Branchenkenner gehen davon aus, dass mit Intels Sapphire Rapids sowie AMDs Genoa die ersten Server mit CXL auf den Markt kommen werden. Diese sollen CXL in der Version 1.1 unterstützen.

Die CXL-Technik

Im CXL-Standard sind drei Protokolle sowie drei primäre Device-Arten definiert.

Die Protokolle:

  • CXL.io - basiert auf PCIe 5.0 mit einigen Erweiterungen und bietet Konfiguration, Link-Initialisierung und -Verwaltung, Geräteerkennung und -aufzählung, Interrupts, DMA und Register-E/A-Zugriff unter Verwendung nicht kohärenter Lade-/Speicherfunktionen.

  • CXL.cache - ermöglicht Peripheriegeräten den kohärenten Zugriff auf den Speicher der Host-CPU und dessen Zwischenspeicherung mit einer Schnittstelle für Anfragen und Antworten mit geringer Latenz.

  • CXL.mem - ermöglicht der Host-CPU einen kohärenten Zugriff auf den zwischengespeicherten Gerätespeicher mit Lade-/Speicherbefehlen sowohl für flüchtigen RAM als auch für nichtflüchtigen Flash-Speicher.

Die drei primären Gerätetypen von CXL:

  • Typ 1 (CXL.io und CXL.cache) - spezialisierte Beschleuniger wie etwa SmartNICs ohne lokalen Speicher. Die Geräte sind auf einen kohärenten Zugriff auf den Speicher der Host-CPU angewiesen.

  • Typ 2 (CXL.io, CXL.cache und CXL.mem) - Allzweckbeschleuniger wie GPU, ASIC oder FPGA mit lokalem GDDR- oder HBM-Hochleistungsspeicher. Die Geräte können kohärent auf den Speicher der Host-CPU zugreifen und/oder einen kohärenten oder nicht-kohärenten Zugriff auf den lokalen Gerätespeicher von der Host-CPU aus ermöglichen.

  • Typ 3 (CXL.io und CXL.mem) - Speichererweiterungskarten und Storage-class-Speicher. Die Geräte bieten der Host-CPU einen Zugriff mit niedriger Latenz auf lokalen DRAM oder nichtflüchtigen Speicher.

Das bringt CXL

In der aktuellen Version 1.1 konzentriert sich CXL noch auf Speichererweiterungen und Tiered-Memory-Anwendungen. Sie benötigen mehr RAM als DIMM-Steckplätze im Rechner verfügbar sind? Dann können Sie einfach ein CXL-Speichermodul in einen leeren PCIe 5.0-Steckplatz stecken, um mehr RAM zu erhalten. Ja, die Performance ist etwas geringer und die Latenzzeit etwas höher, aber Sie müssen keine extrem teuren Speicherriegel wie etwa Samsungs kommende 512-GB-DDR5-DIMMs kaufen, um ihren Speicher aufzurüsten.

Technisch basiert das CXL-Interface auf PCI-Express.
Technisch basiert das CXL-Interface auf PCI-Express.
Foto: daniiD - shutterstock.com

Arbeitsspeicher gehört immer noch zu den teuersten Komponenten im Rechenzentrum. Dabei ist zu erwarten, dass der Bedarf angesichts von Anwendungen wie KI/ML, Big Data und wachsenden Datenbank-Workloads weiter steigen wird. Hier bietet sich dann CXL als kostengünstige Alternative zur klassischen DRAM-Erweiterung an.

Und da jedes Erweiterungsmodul über einen eigenen Speichercontroller verfügt, gibt es nach oben hin keine Grenzen für die Anzahl der DRAM-Speicher, die Sie einem System hinzufügen können. Dabei muss es sich nicht einmal um dieselbe Art von Speicher handeln. Um Kosten zu sparen, könnte beispielsweise eine bescheidene Menge DDR5-Speicher direkt an die CPU anschlossen werden und ein langsameres, aber dafür billigeres DDR4-CXL-Speichererweiterungsmodul als Teil einer abgestuften Speicherhierarchie verwendet werden.

Entsprechende Speichermodule hat etwa Marvell bereits angekündigt. Der Hersteller wird voraussichtlich eine erste Reihe von CXL-Speichermodulen mit der Einführung der Sapphire Rapids und Genoa auf den Markt bringen. Auch Samsung hat ein 512-GB-CXL-DRAM-Modul in der Pipeline und wartet auf kompatible Systeme, in denen es eingesetzt werden kann.

Richtig interessant wird es, wenn die ersten CXL 2.0-kompatiblen Systeme auf den Markt kommen. Schließlich geht es bei CXL um mehr als das Hinzufügen von Speicher über einen PCIe-Steckplatz. Mit CXL 2.0 kommt eine Switching-Funktionalität, die dem PCIe-Switching ähnelt. Da CXL jedoch den direkten Speicherzugriff durch die CPU unterstützt, können Sie es nicht nur aus der Ferne einsetzen, sondern auch mehrere Systeme in die Lage versetzen, es im Rahmen eines Speicher-Poolings zu nutzen.

Kein Platz mehr für neuen DDR-RAM? Mit CXL lassen sich Speichererweiterungen über einen PCIe-Steckplatz installieren.
Kein Platz mehr für neuen DDR-RAM? Mit CXL lassen sich Speichererweiterungen über einen PCIe-Steckplatz installieren.
Foto: Petr Svoboda - shutterstock.com

Damit sind eigenständige Speicher-Appliances vorstellbar, die mit Terabytes an preiswertem DDR4-Speicher bestückt sind. Auf diese Appliances können mehrere Systeme gleichzeitig zugreifen, ähnlich wie bei einem Storage-Array, an das mehrere Systeme angeschlossen sind. Auf diese Weise könnte jedem Server im Rack RAM-Speicher zugewiesen werden, und ungenutzter Speicher in einem eigenständigen Server wäre nicht mehr unerreichbar.

CXL verändert den Aufbau von Rechenzentren

Bislang ging es nur darum, wie speicherintensive Anwendungen und Arbeitslasten von CXL profitieren. Doch CXL hat auch Auswirkungen auf andere Peripheriegeräte wie GPUs, DPUs, NICs etc. Wie dieses Zusammenspiel funktioniert, wurde in der kürzlich verabschiedeten CXL-3.0-Spezifikation definiert. Setzt sich CXL 3.0 durch, könnte dies die Art und Weise, wie Systeme und Rechenzentren aufgebaut sind, dramatisch ändern.

Anstatt ganze Server zu kaufen, die jeweils mit allem ausgestattet sind, was sie brauchen, und dazu noch ein paar CXL-Speicher-Appliances, könnten mit CXL 3.0 wirklich disaggregierte Rechenarchitekturen realisiert werden. Das bedeutet, dass Speicher, Storage, Netzwerk und andere Peripherie gepoolt und dynamisch von mehreren Hosts/Servern angesprochen werden. Hierzu werden mehrere CXL-Switches zu einer Fabric zusammengefügt. Die Idee ist im Grunde nichts anderes als das Zusammenschalten einer Reihe von Netzwerk-Switches, so dass Clients auf der einen Seite des Netzwerks effizient mit Systemen auf der anderen Seite kommunizieren können. Aber anstelle von TCP und UDP über Ethernet läuft CXL über PCIe.