CXL und Memory Pooling: So wird Arbeitsspeicher flexibel qauf technikerblog24.de

CXL und Memory Pooling: So wird Arbeitsspeicher flexibel

Arbeitsspeicher gehört zu den Komponenten eines Computers, deren grundlegende Organisation sich über Jahrzehnte erstaunlich wenig verändert hat. Ein Prozessor besitzt Speicherkanäle, an denen RAM-Module angeschlossen werden. Der Arbeitsspeicher steht diesem System zur Verfügung und kann von einem anderen Server nicht einfach mitbenutzt werden. In einem einzelnen PC ist diese feste Zuordnung sinnvoll. In großen Rechenzentren führt sie jedoch zu einem Problem: Während einem Server der Speicher ausgeht, können wenige Meter entfernt hunderte Gigabyte RAM weitgehend ungenutzt bleiben. Compute Express Link, kurz CXL, soll genau diese starre Verbindung zwischen Prozessor und Speicher aufbrechen.

CXL ist dabei weit mehr als ein neuer Steckverbinder für RAM. Der Standard schafft eine schnelle Verbindung zwischen Prozessoren, Arbeitsspeicher und spezialisierten Recheneinheiten wie Beschleunigern. Besonders interessant ist die Möglichkeit, Speicher außerhalb der klassischen RAM-Steckplätze bereitzustellen und ihn wesentlich flexibler verschiedenen Systemen zuzuordnen. Aus Arbeitsspeicher, der bislang fester Bestandteil eines einzelnen Servers war, kann dadurch eine Ressource werden, die sich ähnlich wie Rechenleistung oder Speicherplatz verwalten lässt.

Warum große Server häufig zu viel RAM besitzen

Ein Server wird normalerweise für seine maximale erwartete Belastung ausgestattet. Benötigt eine Anwendung gewöhnlich 300 Gigabyte RAM, kann während Spitzenzeiten aber 600 Gigabyte verlangen, muss der Rechner entsprechend großzügig bestückt werden. Den größten Teil des Tages bleibt ein Teil dieses Speichers möglicherweise ungenutzt. Bei einem einzelnen Server ist das ärgerlich, in einem Rechenzentrum mit tausenden Maschinen wird daraus ein erheblicher Kostenfaktor.

Die naheliegende Idee wäre, überschüssigen Arbeitsspeicher einfach gemeinsam zu verwenden. Genau das ist technisch allerdings wesentlich schwieriger als bei einer Festplatte oder einem Netzwerkspeicher. Ein Prozessor erwartet extrem schnellen Zugriff auf RAM. Schon zusätzliche Verzögerungen im Bereich von Nanosekunden können sich bei Milliarden Speicherzugriffen bemerkbar machen. Außerdem müssen mehrere Zwischenspeicher und Prozessoren jederzeit wissen, welche Version eines Datensatzes aktuell ist. Speicher lässt sich deshalb nicht ohne Weiteres über ein gewöhnliches Netzwerk verteilen.

CXL baut auf PCI Express auf

Compute Express Link verwendet die physische Infrastruktur von PCI Express. Das ist ein wesentlicher Vorteil, denn PCIe ist in Servern und Computern bereits etabliert. Leitungen, Steckverbinder und viele grundlegende Mechanismen müssen nicht vollständig neu entwickelt werden. CXL ergänzt diese Infrastruktur jedoch um Funktionen, die für den direkten Zugriff auf Speicher und für die Zusammenarbeit zwischen unterschiedlichen Recheneinheiten notwendig sind.

Ein gewöhnliches PCIe-Gerät wird beispielsweise über Ein- und Ausgabeoperationen angesprochen. Eine schnelle Netzwerkkarte oder SSD kann damit enorme Datenmengen transportieren, trotzdem verhält sie sich aus Sicht des Prozessors nicht wie gewöhnlicher Arbeitsspeicher. CXL erweitert PCIe deshalb um spezielle Protokolle, mit denen Speicherzugriffe und kohärente Datenstrukturen möglich werden. Der Prozessor kann damit Speicher verwenden, der sich nicht unmittelbar an seinen eigenen Speicherkanälen befindet.

Drei Protokolle teilen sich unterschiedliche Aufgaben

CXL verwendet mehrere logisch getrennte Kommunikationsarten. CXL.io übernimmt klassische Ein- und Ausgabefunktionen und ist eng mit PCI Express verwandt. CXL.cache ermöglicht angeschlossenen Geräten, auf Speicher des Hosts zuzugreifen und dabei die notwendige Cache-Kohärenz aufrechtzuerhalten. CXL.mem erlaubt dem Prozessor wiederum den Zugriff auf Speicher, der sich auf einem angeschlossenen CXL-Gerät befindet.

Gerade CXL.mem macht die Technik für Speichererweiterungen interessant. Ein Server kann dadurch Arbeitsspeicher adressieren, der nicht direkt über seine DDR-Speicherkanäle angeschlossen ist. Zwischen Prozessor und Speicher befindet sich stattdessen ein CXL-Gerät mit eigenem Speichercontroller. Für Betriebssystem und Anwendungen kann dieser zusätzliche Speicher dennoch Teil des verfügbaren Hauptspeichers werden.

CXL und Memory Pooling: So wird Arbeitsspeicher flexibel qauf technikerblog24.de
Zahlreiche Protokolle ermöglichen den Speicherzugriff

Cache-Kohärenz ist das eigentliche Kunststück

Moderne Prozessoren greifen nur selten direkt auf den Hauptspeicher zu. Zwischen CPU-Kern und RAM liegen mehrere Ebenen extrem schneller Caches. Dort befinden sich Kopien häufig benötigter Daten. Sobald mehrere Prozessoren oder Beschleuniger auf dieselben Speicherbereiche zugreifen, entsteht eine schwierige Frage: Welche Kopie ist aktuell?

Würde beispielsweise eine CPU einen Wert im Cache verändern, während ein Beschleuniger gleichzeitig mit einer älteren Version desselben Wertes arbeitet, könnten falsche Ergebnisse entstehen. Kohärente Systeme sorgen deshalb dafür, dass alle Beteiligten einen konsistenten Zustand sehen. Diese Cache-Kohärenz ist einer der entscheidenden Unterschiede zwischen einer einfachen schnellen Datenverbindung und einer Verbindung, über die Komponenten tatsächlich gemeinsamen Speicher verwenden können.

Ein CXL Memory Expander erweitert den vorhandenen RAM

Eine der einfachsten Anwendungen von CXL ist ein Memory Expander. Dabei enthält ein zusätzliches CXL-Gerät Arbeitsspeicher und einen Speichercontroller. Der Server kann diesen Speicher ergänzend zu seinem direkt angeschlossenen DRAM verwenden. Statt sämtliche benötigte Kapazität über die begrenzte Anzahl klassischer Speicherkanäle bereitzustellen, lässt sich zusätzlicher Speicher über CXL anbinden.

Das ist besonders für Anwendungen interessant, bei denen Speicherkapazität wichtiger ist als die absolut niedrigste Zugriffszeit. Große Datenbanken, Virtualisierungssysteme, wissenschaftliche Anwendungen und bestimmte KI-Workloads können enorme RAM-Mengen benötigen. CXL-Speicher kann hier eine zusätzliche Ebene innerhalb der Speicherhierarchie bilden. Besonders häufig benötigte Daten liegen weiterhin im besonders schnellen lokalen DRAM, während weniger zeitkritische Daten in den größeren CXL-Speicher ausgelagert werden können.

Nicht jeder Arbeitsspeicher muss gleich schnell sein

Die Vorstellung eines Computers mit einer einzigen homogenen Sorte RAM entspricht zunehmend weniger der Realität moderner Systeme. Schon heute unterscheiden sich verschiedene Speicherbereiche hinsichtlich Bandbreite, Zugriffszeit und Nähe zum Prozessor. In Mehrprozessorsystemen ist der Zugriff auf lokalen Speicher beispielsweise schneller als der Zugriff auf den RAM eines anderen Prozessors.

CXL erweitert diese Idee. Betriebssysteme und Hardware können unterschiedliche Speicherklassen nutzen und Daten abhängig von ihrer Bedeutung verschieben. Häufig verwendete Speicherbereiche werden möglichst nah am Prozessor gehalten, während selten benötigte Daten auf langsameren, aber größeren Speicher wandern. Dieses Verfahren wird als Memory Tiering bezeichnet. Der Arbeitsspeicher eines Servers ähnelt damit zunehmend einer Hierarchie aus verschiedenen Speicherstufen.

Heiße und kalte Speicherseiten lassen sich verschieben

Betriebssysteme verwalten Arbeitsspeicher normalerweise in sogenannten Pages. Manche dieser Speicherseiten werden ständig benötigt, andere liegen über längere Zeit nahezu unberührt im RAM. Für ein mehrstufiges Speichersystem ist diese Unterscheidung ideal. Häufig genutzte sogenannte Hot Pages können im schnellen lokalen DRAM bleiben oder dorthin verschoben werden. Cold Pages lassen sich dagegen auf einen langsameren CXL-Speicher verlagern.

Damit kann ein System einen relativ kleinen Bestand sehr schnellen Speichers mit einer wesentlich größeren Kapazität ergänzen. Entscheidend ist, dass Anwendungen davon möglichst wenig bemerken. Im Idealfall übernimmt das Betriebssystem oder sogar die Hardware die Verteilung automatisch. Für Software erscheint weiterhin ein großer nutzbarer Adressraum, obwohl sich dahinter technisch unterschiedliche Speicherklassen befinden.

CXL und Memory Pooling: So wird Arbeitsspeicher flexibel qauf technikerblog24.de
Speicher in mehreren Servern zu nutzen, hat ein enormes Sparpotenzial

Memory Pooling geht noch einen Schritt weiter

Eine Speichererweiterung löst allerdings noch nicht das Grundproblem ungleich verteilter Kapazitäten. Der zusätzliche CXL-Speicher gehört zunächst weiterhin einem bestimmten Server. Memory Pooling geht deshalb weiter: Mehrere Hosts können auf einen gemeinsamen Bestand an Speicherressourcen zugreifen, aus dem ihnen jeweils Kapazitäten zugeteilt werden.

Dafür kommen CXL-Switches ins Spiel. Ähnlich wie ein Netzwerkswitch Verbindungen zwischen Geräten herstellt, kann ein CXL-Switch mehrere Hosts und Speichergeräte miteinander verbinden. Ein Verwaltungsmechanismus entscheidet anschließend, welcher Server welche Speicherbereiche verwenden darf. Ein System mit hohem Bedarf kann dadurch mehr Kapazität erhalten, während einem anderen Server weniger Speicher zugeordnet wird.

Aus RAM wird eine verwaltbare Ressource

Der entscheidende Unterschied liegt darin, dass physisch vorhandener Speicher nicht dauerhaft einem Rechner gehören muss. Ein Rechenzentrum könnte beispielsweise einen größeren Pool aus CXL-Speicher bereitstellen und Kapazität abhängig von der aktuellen Last verteilen. Benötigt ein Datenbankserver vorübergehend mehrere hundert Gigabyte zusätzlich, könnten diese Ressourcen zugewiesen werden. Sinkt der Bedarf später, steht die Kapazität wieder anderen Systemen zur Verfügung.

Das erinnert an die Entwicklung anderer Bereiche der IT. Früher gehörten Festplatten, Prozessorleistung und Netzwerkanschlüsse ebenfalls fest zu bestimmten Rechnern. Durch Virtualisierung und Software-defined Infrastructure wurden viele dieser Ressourcen flexibler. CXL eröffnet die Möglichkeit, einen ähnlichen Schritt beim Arbeitsspeicher zu vollziehen.

Memory Sharing ist nicht dasselbe wie Memory Pooling

Memory Pooling und Memory Sharing klingen ähnlich, beschreiben aber unterschiedliche Konzepte. Beim Pooling stammt Speicher aus einem gemeinsamen Bestand, wird für die jeweilige Nutzung jedoch bestimmten Hosts zugewiesen. Mehrere Rechner teilen sich also die physische Infrastruktur, greifen aber nicht zwangsläufig gleichzeitig auf dieselben Daten zu.

Beim Memory Sharing können dagegen mehrere Systeme Zugriff auf gemeinsame Speicherbereiche erhalten. Das eröffnet völlig neue Möglichkeiten für den Datenaustausch zwischen Prozessoren und Beschleunigern. Statt große Datenmengen ständig von einem Speicherbereich in einen anderen zu kopieren, könnten mehrere Komponenten unmittelbar mit denselben Daten arbeiten. Gerade bei datenintensiven Anwendungen kann das den Aufwand erheblich reduzieren.

Kopieren kostet mehr Zeit als man vermuten würde

In modernen Rechensystemen wird überraschend viel Aufwand dafür betrieben, Daten von einem Ort an einen anderen zu bewegen. Eine CPU bereitet Daten vor, kopiert sie in den Speicher eines Beschleunigers, dieser verarbeitet sie und anschließend müssen Ergebnisse möglicherweise erneut übertragen werden. Bei großen Datenmengen kann der Transport selbst zu einem Flaschenhals werden.

Ein kohärenter gemeinsam zugänglicher Speicher kann solche Kopiervorgänge reduzieren. CPU, GPU und andere Beschleuniger könnten auf Daten zugreifen, ohne für jeden Verarbeitungsschritt vollständige Kopien anzulegen. Genau hier zeigt sich, weshalb CXL nicht nur als Speichertechnik interessant ist. Der Standard gehört zu einer größeren Entwicklung hin zu heterogenen Computersystemen, in denen unterschiedliche Prozessorarten eng zusammenarbeiten.

KI macht flexible Speicherarchitekturen besonders interessant

KI-Systeme benötigen nicht nur viel Rechenleistung, sondern zunehmend enorme Speicherkapazitäten. Große Modelle, Zwischenergebnisse und insbesondere während der Verarbeitung entstehende Datenstrukturen können einen beträchtlichen Teil des verfügbaren Speichers belegen. Gleichzeitig ist besonders schneller Speicher direkt an GPUs und anderen Beschleunigern teuer und in seiner Kapazität begrenzt.

CXL kann zusätzliche Speicherstufen schaffen, die nicht unbedingt dieselbe Geschwindigkeit wie unmittelbar angebundener Hochleistungsspeicher erreichen müssen. Daten, die gerade besonders häufig benötigt werden, bleiben möglichst nahe am Beschleuniger. Andere Inhalte können in größerem CXL-Speicher liegen. Entscheidend ist dabei nicht, jeden Speicherzugriff maximal schnell zu machen, sondern die vorhandene Speicherkapazität möglichst sinnvoll über das gesamte System zu verteilen.

Der Speichercontroller wandert aus dem Prozessor heraus

Traditionell sitzt der wichtigste Speichercontroller direkt im Prozessor. Er steuert die angeschlossenen DDR-Module und ist auf eine bestimmte Anzahl an Speicherkanälen beschränkt. CXL ermöglicht dagegen Speichergeräte mit eigenen Controllern. Damit lässt sich die Kapazität erweitern, ohne sämtliche Speicherchips unmittelbar an die CPU anschließen zu müssen.

Diese Trennung verändert die Architektur eines Servers erheblich. Prozessor und Speicher müssen nicht mehr zwangsläufig als festes Paar betrachtet werden. Langfristig kann daraus eine disaggregierte Infrastruktur entstehen, bei der Rechenleistung, Speicher und Beschleuniger eigenständige Ressourcen darstellen, die über schnelle Verbindungen bedarfsgerecht kombiniert werden.

Ein RAM-Netzwerk ist trotzdem kein gewöhnliches Netzwerk

Die Bezeichnung eines Netzwerks aus Arbeitsspeicher ist verlockend, technisch aber nur bedingt richtig. Ethernet ist darauf ausgelegt, Datenpakete über vergleichsweise große Entfernungen und flexible Netzstrukturen zu transportieren. Bei Arbeitsspeicher spielen dagegen extrem niedrige Latenzen, deterministisches Verhalten und Kohärenz eine wesentlich größere Rolle.

Ein CXL-Fabric ähnelt deshalb zwar konzeptionell einem Netz aus Komponenten, arbeitet aber unter völlig anderen Anforderungen. Zusätzliche Switches und Verbindungen dürfen den Zugriff nicht beliebig verzögern. Gleichzeitig müssen Fehlerbehandlung, Zugriffsrechte und Speicherzuordnung zuverlässig funktionieren. CXL ersetzt deshalb weder Ethernet noch klassische Netzwerktechnik. Es schafft vielmehr eine neue Verbindungsebene innerhalb leistungsfähiger Computersysteme.

CXL und Memory Pooling: So wird Arbeitsspeicher flexibel qauf technikerblog24.de
Der gemeinsam genutze Speiche hat aber nicht nur Vorteile

Auch Sicherheit wird bei gemeinsamem RAM komplizierter

Sobald Speicher nicht mehr ausschließlich innerhalb eines einzelnen Servers steckt, entstehen zusätzliche Sicherheitsfragen. Ein System darf selbstverständlich nicht auf Speicherbereiche eines anderen Hosts zugreifen können, nur weil beide mit demselben CXL-Switch verbunden sind. Speicherzuordnung, Isolation und Zugriffskontrolle werden deshalb zu zentralen Bestandteilen der Architektur.

Hinzu kommt die Frage, wie Daten während der Übertragung geschützt werden. Moderne CXL-Versionen enthalten dafür Sicherheitsmechanismen, die unter anderem Authentifizierung, Integritätsschutz und geschützte Verbindungen zwischen Komponenten ermöglichen. Je stärker Speicher zu einer gemeinsam genutzten Infrastruktur wird, desto wichtiger wird diese Absicherung. Ein Fehler in der Speicherisolation wäre wesentlich kritischer als ein gewöhnlicher Netzwerkfehler, weil Anwendungen davon ausgehen, dass ihre Speicherbereiche ausschließlich ihnen gehören.

CXL beseitigt die physikalischen Grenzen nicht

Trotz aller Vorteile kann CXL die Grundlagen der Elektrotechnik nicht umgehen. Speicher, der weiter vom Prozessor entfernt ist und über zusätzliche Controller oder Switches erreicht wird, verursacht zusätzliche Latenz. Ein lokales DDR-Modul bleibt deshalb für bestimmte Zugriffe schneller als weit entfernter CXL-Speicher. Die eigentliche Stärke der Technik liegt nicht darin, klassischen RAM vollständig zu ersetzen.

CXL ermöglicht vielmehr eine wesentlich feinere Abstufung. Besonders zeitkritische Daten können weiterhin im schnellsten verfügbaren Speicher liegen, während große weniger kritische Datenmengen in zusätzliche Speicherstufen ausgelagert werden. Für Anwendungen zählt dann nicht mehr ausschließlich die Geschwindigkeit eines einzelnen Speichermoduls, sondern die Effizienz der gesamten Speicherarchitektur.

Der Server der Zukunft könnte aus Ressourcen zusammengesetzt werden

Langfristig führt diese Entwicklung zu einer ungewöhnlichen Vorstellung. Ein Server müsste nicht mehr zwingend ein klar abgegrenzter Kasten sein, in dem Prozessor, Arbeitsspeicher und Beschleuniger dauerhaft miteinander verbunden sind. Stattdessen könnte ein Rechenzentrum Pools verschiedener Ressourcen besitzen. Einer Anwendung werden beispielsweise eine bestimmte Zahl von Prozessorkernen, mehrere Beschleuniger und eine passende Menge Speicher zugeordnet.

Ändern sich die Anforderungen, verändert sich auch diese Zusammenstellung. Eine speicherintensive Datenbank erhält mehr RAM, während ein anderer Dienst zusätzliche Beschleuniger bekommt. CXL ist eine der Technologien, die eine solche Infrastruktur technisch möglich machen können. Die Grenzen eines einzelnen Servers würden dadurch zunehmend von der physischen Hardware entkoppelt.

Vom RAM-Modul zur Speicherinfrastruktur

Die vielleicht wichtigste Veränderung durch CXL liegt deshalb weniger in einer höheren Übertragungsrate als in einer neuen Vorstellung davon, was Arbeitsspeicher überhaupt ist. Bislang wird RAM überwiegend als Bestandteil eines Computers betrachtet. Er wird beim Kauf oder Aufbau des Systems dimensioniert und bleibt anschließend diesem Rechner zugeordnet.

Mit Memory Expansion, Memory Tiering, Memory Pooling und Memory Sharing wird daraus schrittweise eine Infrastruktur. Speicher kann erweitert, unterschiedlich schnell organisiert, zwischen Systemen verteilt und teilweise gemeinsam genutzt werden. Gerade in großen Rechenzentren könnte dadurch vorhandene Hardware wesentlich effizienter eingesetzt werden. Der Rechner besitzt dann nicht mehr einfach eine bestimmte Menge Arbeitsspeicher. Er erhält genau die Speicherressourcen, die seine aktuelle Aufgabe benötigt.

Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert