Getty Images
So wird die CXL 3.0-Technologie Storage beeinflussen
Die dritte Version der CXL-Generation wird Auswirkungen auf Storage haben. Die Spezifikation verbessert zwar frühere Generationen, könnte aber auch höhere Anforderungen stellen.
Administratoren könnten die 3.0-Spezifikation von Compute Express Link als eine schnellere und teurere Form von vernetztem Speicher auffassen, aber sie zielt auf eine andere Anwendung ab.
CXL ist das letzte Glied in der System-Disaggregation und ermöglicht es der IT-Abteilung, Memory als Ressource neu zuzuweisen, wie sie es bereits bei Speicher, I/O und Servern tut. Auf diese Weise hoffen große Rechenzentren, Memoryeffizienter zu nutzen, gestrandetes Memory zu reduzieren und Anwendungen mit größeren Memorymengen zu versorgen, als ein Server wirtschaftlich unterstützen kann. Dies wird sich auch auf das Storage auswirken.
CXL 3.0 bringt den Standard einige Schritte weiter
Die CXL-3.0-Spezifikation erweitert frühere Standardgenerationen, um die Skalierbarkeit zu erhöhen und die Abläufe auf Systemebene durch Switching- und Fabric-Funktionen, Peer-to-Peer-Kommunikation und gemeinsame Nutzung von Ressourcen über mehrere Rechendomänen zu optimieren.
CXL 3.0 migriert CXL von dem ursprünglichen PCIe 4.0 in CXL 1.0 und 1.1 und dem PCIe 5.0 von CXL 2.0 zu PCIe 6.0. Die Bandbreite hat sich mit jeder Generation verdoppelt und wird nun mit 64 Gigatransfers pro Sekunde betrieben. Die Version 3.0 implementiert mehrere komplexe Funktionen, die die Kohärenz aller CXL-Versionen im gesamten System verbessern, ohne die Latenz zu erhöhen. Die Standards sind außerdem rückwärtskompatibel.
Die wichtigsten Änderungen an der Spezifikation betreffen das Memory, da CXL das Memory disaggregieren wird. In seiner ersten Version verband CXL den Arbeitsspeicher (persistentes Memory) über eine Punkt-zu-Punkt-Verbindung mit dem Prozessor. CXL 2.0 führte Switches ein, die es bis zu 16 Hosts ermöglichten, auf mehrere Memory-Einheiten oder Teile davon zuzugreifen, um die Disaggregation weiter zu unterstützen, wodurch die Konnektivität der Spezifikation von Server- auf Rack-Ebene erhöht wurde.
Die CXL 3.0-Technologie ermöglicht es mehreren Hosts, Memory ohne Kohärenzprobleme gemeinsam zu nutzen, eine Funktion, die Administratoren für einfache Semaphoren verwenden können. Es wird jedoch auch andere Verwendungszwecke geben, wenn Systemarchitekten diese Option nutzen.
Während in früheren Versionen von CXL nur ein Beschleuniger an einen Switch angeschlossen werden konnte, kann CXL 3.0 nun bis zu 16 Beschleuniger verwalten, wobei die Kohärenz zwischen dem/den Host-Prozessor(en), den Beschleunigern und dem Memory erhalten bleibt. Mit kaskadierten Switches kann das System bis zu 4.095 Memory-Einheiten kohärent verwalten. Dieser Fortschritt wird in der Mitte unten im Diagramm als GFAM (Global Fabric Attached Memory) bezeichnet.
Die direkten Auswirkungen von CXL 3.0 auf Storage
Die CXL 3.0-Technologie unterstützt Peer-to-Peer-Lese-/Schreibvorgänge. Der Speicher wird die Möglichkeit haben, Daten direkt in den oder aus dem Memory zu verschieben, ohne dass der Host eingreifen muss. Bei der Methode des direkten Fernzugriffs auf Memory (RDMA) in CXL 2.0 greift der Host in die Transaktion ein und verlangsamt sie, so dass diese Änderung CXL 3.0 deutlich schneller macht als RDMA. Außerdem wird der Prozessor von dieser Aufgabe entlastet.
Aus Sicht des I/O-Verkehrs unterstützen Peer-to-Peer-Transaktionen ein höheres Verkehrsaufkommen, da der Host den I/O-Strom nicht starten und stoppen muss, wenn er zwischen Aufgaben wechselt. Der Host sollte sich dann stärker auf die Aufgaben konzentrieren, die er am besten beherrscht. Außerdem werden die I/Os schneller, weil sie nicht mehr auf den Host warten müssen, und ein schnellerer Host benötigt eine größere I/O-Bandbreite, um ihn zu beschäftigen.
In einer ganz anderen Richtung bedeutet die Unterstützung der gemeinsamen Memory-Nutzung durch CXL 3.0, dass Software, die derzeit Nachrichten über den Speicher austauscht, diese Kommunikation schließlich in den gemeinsamen Arbeitsspeicher verlagert. Auch dies wird die Prozesse beschleunigen, so dass das Nettoergebnis eine höhere I/O-Bandbreite sein dürfte, auch wenn die Nachrichtenübermittlung nicht mehr im Speicher stattfindet. Die Umsetzung dieser Änderung wird jedoch wahrscheinlich lange dauern, einfach weil sie eine Reihe von strukturellen Änderungen an der Software erfordert, und solche Änderungen brauchen in der Regel einige Jahre, um sich durchzusetzen.
Drittens wird das Memory-Pooling speicherhungrigen Anwendungen den Zugriff auf weit mehr Memory ermöglichen, als derzeit wirtschaftlich ist. Der gesamte Code und die Datensätze selbst der größten Anwendung könnten sich im Arbeitsspeicher befinden, ohne dass es zu Seitenfehlern (Page Faults) kommt. Dies führt zwar zu einem besonders geringen I/O-Verkehr während der Ausführung der Aufgabe, setzt aber den Speicher unter enormen Druck, schnell zu reagieren, wenn eine Aufgabe beendet ist und das Memory einer anderen Aufgabe neu zugewiesen wird.
Bei CXL geht es eher darum, die Leistung des Systems zu steigern, ohne seine Kosten zu erhöhen. Wenn ein Teil der Systemleistung, in diesem Fall die Memory-Verwaltung, verbessert wird, müssen andere Teile des Systems damit Schritt halten, da sie sonst zu einem Engpass werden. CXL wird die Bandbreitenanforderungen an den Speicher erhöhen, da die Server effizienter arbeiten und daher mehr Daten benötigen.
Die indirekten Auswirkungen von CXL 3.0 auf Storage
CXL 3.0 hat mehr mit dem Arbeitsspeicher als mit Storage zu tun, aber es wird wahrscheinlich die Verarbeitungsprozesse beschleunigen, was die Anforderungen an die Speicherleistung erhöhen wird.
Die CXL 3.0-Spezifikation wurde im August 2022 veröffentlicht; es wird wahrscheinlich etwa ein Jahr dauern, bis sie auf breiter Basis in Hardware verfügbar ist. Administratoren müssen dann ihre Anwendungen aktualisieren, um alle Vorteile der CXL 3.0-Technologie nutzen zu können, und auch das wird einige Zeit dauern, wahrscheinlich Jahre.
Das Gute daran ist, dass die Administratoren so viel Zeit haben, sich mit der Technologie vertraut zu machen, bevor sie sich über die Auswirkungen auf ihre Systeme Gedanken machen müssen.