Getty Images/iStockphoto
So können CXL-SSDs die Performance von Storage steigern
Obwohl sich CXL-SSDs erst in der Forschungsphase befinden, ist ihre Leistung vielversprechend. Als Memory-Erweiterung können sie Programme verbessern, die große Datensätze verwalten.
In der jüngsten Forschung wurden SSDs entwickelt und simuliert, die die Vorteile der Compute-Express-Link-Schnittstelle (CXL) nutzen, um ihren Betrieb zu beschleunigen. Sie sollen über die Schnittstelle einen großen beständigen Memory-Pool bereitstellen, der kostengünstiger ist als ein reiner DRAM-Pool.
Eine CXL-SSD ist auch eine Alternative, um die Vorteile des NVM-Programmiermodells der Storage Networking Industry Association (SNIA) zu nutzen, da nichtflüchtige DIMMs teuer sind und Intel seine Unterstützung für Optane auslaufen lässt. Unternehmen werden davon profitieren, wenn CXL-SSDs mit Programmen der nächsten Generation zusammenarbeiten, die dieses Modell verwenden. Diese neue Art von Speicher sollte den Computersystemen von morgen einen dringend benötigten Leistungsschub geben.
CXL-SSDs könnten sich bei Anwendungen mit hohem Speicherbedarf durchsetzen. Es mag jedoch unklar sein, warum eine CXL-SSD anders funktionieren sollte als eine NVMe-SSD.
Was ist eine CXL-basierte SSD?
Der Unterschied zwischen CXL und PCIe ist vielleicht nicht sofort offensichtlich. Auf der Signalebene sind die beiden tatsächlich gleich, aber die Protokolle für die beiden sind unterschiedlich. CXL entscheidet sich für ein schnelleres Protokoll als PCIe, obwohl CXL.io standardmäßige PCIe-I/0-Geräte unterstützt.
CXL wurde entwickelt, um große Memory-Pools außerhalb der Hauptplatine des Servers (Far Memory) zu unterstützen und das Memory auf der Hauptplatine des Servers (Near Memory) zu ergänzen. Das gesamte Memory wird in den Speicheradressraum des Servers gemappt und fällt unter die Verwaltung der Memory Management Unit des Serverprozessorchips.
Im Gegensatz zu PCIe muss CXL die Kohärenz verwalten. Der Inhalt einer beliebigen Memory-Adresse, unabhängig ob im Near oder Far Memory, kann weniger aktuell sein als die Replik dieser Adresse im Cache des Prozessors. Das ist nicht weiter schlimm, solange nicht ein anderer Prozessor versucht, diese Adresse zu lesen. Das Memory-Kohärenzschema des CXL ist sorgfältig ausgearbeitet, um sicherzustellen, dass alte Daten niemals ihren Weg zu einem Prozessor finden, wenn eine neuere Version im Cache eines anderen Prozessors vorhanden ist.
Software greift auf den Speicher eines CXL.mem- oder CXL.cache-Geräts über die Byte-Semantik zu: die Software behandelt ihn genauso wie das Memory auf der Serverkarte selbst. Wenn eine SSD ein CXL-Gerät ist, muss es auch mit der Software und dem CXL.mem-Protokoll kommunizieren, als wäre es ein Memory. Eine Standard-SSD kommuniziert über NVMe über den PCIe-Bus unter Verwendung der Block-Semantik. Für den CXL-Standard wurde diese Kommunikation zu CXL.io.
CXL verwaltet das unterschiedliche Timing zwischen dem notwendigerweise langsameren Far Memory und dem Near Memory. Eine CXL-SSD treibt es auf die Spitze: Das Laufwerk hat die Möglichkeit, so langsam wie eine Standard-SSD zu arbeiten, und der CXL-Kanal verwaltet die Daten zum Prozessor trotzdem, indem er die Memory-Semantik nutzt. Es ist zu erwarten, dass CXL-SSDs mit relativ großen Caches ausgestattet sind, um einen solchen langsamen Betrieb zu minimieren.
Samsung: Ein potentieller Weg
Samsung ist ein Befürworter von SSDs mit CXL-Schnittstelle und hat auf dem Flash Memory Summit 2022 etwas vorgeführt, das das Unternehmen als Memory-Semantic SSD (MS-SSD) bezeichnet.
Die Theorie hinter einer MS-SSD besteht darin, dass der Zugriff auf die persistenten Medien im Laufwerk vom Software-Standpunkt aus über die Memory-Byte-Semantik erfolgt und nicht über die Block-Semantik, die normalerweise für SSDs verwendet wird.
Die I/O-Semantik (Block-Semantik) wird durch ein Interrupt-gesteuertes System ausgeführt, was seit den frühen 1980er Jahren die Norm war. Damals konnte die I/O-Routine der Software einen Festplattenzugriff um Millisekunden verzögern, ohne dass dies bemerkt wurde. Das war eine gute Methode, um mit I/O-Geräten umzugehen, die deutlich langsamer waren als der Prozessor.
In den frühen 2000er Jahren, als sich SSDs auf breiter Front durchzusetzen begannen, bemerkten die Nutzer von SSDs, dass die I/O-Routine die SSD verlangsamte. Ein neuer Fokus auf diese Software verbesserte die Geschwindigkeit, aber die grundlegende Struktur der Festplatten-I/O, die mit Prozessor-Interrupts verwaltet wurde, begrenzte das Ausmaß der Verbesserungen.
In der Zwischenzeit wurde der DRAM-Bus, der so schnell wie möglich laufen musste, in den 1990er Jahren synchronisiert, und damit wurde dem Bus die Möglichkeit genommen, eine Pause für ein langsames Memory-Gerät einzulegen. Memory war das Einzige, was sich an den Memory-Kanal anschließen konnte. Der Speicher war gezwungen, einen I/O-Kanal zu benutzen. Das Softwareelement wurde zu einem Problem, als der persistente Speicher aufkam.
Der rote Teil des oberen und unteren Balkens stellt die Verzögerung dar, die durch den I/O-Stack der Software entsteht. Für den oberen Balken, der das Timing einer NVMe-NAND-Flash-SSD darstellt, ist dies ein überschaubarer Anteil an der Gesamtzugriffszeit. In der unteren Leiste, die Intels persistente Optane-Speichermodule enthält, macht der rote Anteil etwa die Hälfte der Gesamtverzögerung aus.
Ein Geschwindigkeitsverlust von 50 Prozent ist inakzeptabel, was zur Entwicklung von CXL als schnellere Schnittstelle führte. CXL läuft mit Memory-ähnlichen Geschwindigkeiten, kann aber im Gegensatz zum Memory-Bus mit doppelter Datenrate mit Memory-Speichern unterschiedlicher Geschwindigkeit arbeiten.
Durch die Entwicklung einer SSD mit einer CXL-Schnittstelle hat Samsung die Tür zur Verwendung von SSDs als Memory geöffnet. Infolgedessen kann die gesamte Arbeit, die SNIA und verschiedene Softwarehäuser in die Unterstützung von persistentem Memory wie Optane gesteckt haben, für preiswerten NAND-Flash-basierten Speichern genutzt werden. Das SNIA NVM Programming Model, das Protokoll, das die Software verwendet, um die Leistung des persistenten Memorys Optane von Intel nutzbar zu machen, hat nun einen zusätzlichen Nutzen: Es wird NAND-Flash-SSDs mit CXL-Schnittstelle unterstützen.
Da NAND-Flash jedoch langsam ist, verwendet Samsungs Design großen DRAM, um so viel wie möglich von der SSD zwischenzuspeichern. Der 2-TB-Prototyp, den Samsung auf dem Flash Memory Summit vorführte, verfügt über 16 GBinternen DRAM-Cache. Solch große Caches werden wahrscheinlich die Norm für CXL-SSDs sein.
Der große Cache zahlt sich jedoch aus. In den Benchmarks, die Samsung auf der Veranstaltung vorstellte, gab das Unternehmen an, dass es in der Lage ist, die zufällige (random) Leseleistung im Vergleich zu bestehenden SSDs um etwa 1.900 Prozent zu verbessern. Samsung gibt, dass die MS-SSD dem Host gegenüber als eine 2-TB-Erweiterung des Servers-Memorys dienen. Die durchschnittliche Latenz dieses Memory hängt von der Trefferquote des internen Cache der SSD ab.
Nicht alle 2 TB dieser SSD müssen als Memory abgebildet werden. Samsungs Gerät kann in Memory-Bereiche und SSD-Bereiche unterteilt werden, die entweder von CXL.mem oder CXL.io bedient werden, was Samsung als Dual-Mode-Betrieb bezeichnet. Dies soll für mehr Flexibilität sorgen.
Möglichkeiten der Persistenz
Der Prototyp der ersten Generation von Samsung unterstützt keine Speicherpersistenz. Das erfordert einiges an Arbeit, da die gesamten 16 GB DRAM während eines Stromausfalls am Leben erhalten werden müssten, entweder für die Dauer des Ausfalls oder bis der gesamte Inhalt in den NAND-Flash der SSD geschrieben werden kann. Beides erfordert eine große Reserve an gespeicherter Energie, entweder in einer Batterie oder einem Superkondensator. Das Ziel des Unternehmens ist es, den persistenten Memory-Betrieb in seinen zweiten Prototyp aufzunehmen.
Wenn sich CXL-SSDs als persistente Speicher durchsetzen, wird sich die Arbeit des Speicheradministrators genauso entwickeln, wie es der Fall wäre, wenn sich Intels Optane durchgesetzt hätte. Software- und Siliziumlieferanten erwarten, dass die automatische Datenverwaltungssoftware alle Probleme vor dem Speicheradministrator verbirgt, aber es wird Bedenken zur Datensicherheit geben, da sich sensible Daten sowohl in der CXL-SSD als auch in einer herkömmlichen SSD befinden können, die auf einer langsameren Ebene der Memory-Hierarchie abgebildet ist.
Andere CXL-SSD-Entwicklungen
Samsung ist nicht das einzige Unternehmen, das plant, SSDs mit der CXL-Schnittstelle zu unterstützen. Kioxia spricht offen über ein Proof-of-Concept-SSD auf CXL-Basis, das um den firmeneigenen XL-Flash-Chip herum entwickelt wurde. XL-Flash ist NAND-Flash mit Schwerpunkt auf Geschwindigkeit, vermutlich als Reaktion auf die Einführung von 3D XPoint-Memory, den einige Unternehmen zunächst als Bedrohung für Standard-NAND-Flash-SSDs ansahen. Das CXL-SSD-Design von Kioxia konzentriert sich auf die Geschwindigkeit von 64-Byte-Transaktionen, insbesondere auf zufällige 64-Byte-Schreibvorgänge.
Das Unternehmen erklärt, dass es davon ausgeht, dass sein Design fast so schnell wie DRAM und schneller als Optane sein wird. Es unterstützt Memory-Größen, die um zwei Größenordnungen größer sind als speichernaher DRAM und 10-mal größer als speichernahe Optane-DIMMs mit persistentem Memory. Das Kioxia-Design verwendet einen großen Pre-Fetch-Puffer, unterscheidet sich aber vom Samsung-Design durch das Hinzufügen von Hardware-Kompression, um die Geschwindigkeit zu erhöhen. Da die Daten kleiner sind, benötigt die SSD weniger Bandbreite und kann Schreibvorgänge beschleunigen.
Darüber hinaus hat das Computer Architecture and Memory Systems Laboratory (CAMEL) am Korea Advanced Institute of Science and Technology in Zusammenarbeit mit RISC-V und OpenExpress Simulationen einer CXL-SSD durchgeführt, um die Leistungsvorteile besser zu verstehen, die sie bieten könnte. Es wurde ein Emulator programmiert, um den Betrieb einer 32-GB-SSD zu simulieren, die auf Samsungs superschnellem Z-NAND-Chip basiert - ähnlich wie der Kioxia XL-Flash - und verglich ihren Betrieb mit dem eines Systems mit großem DRAM.
Die Leistung hing in hohem Maße von der Lokalität der Daten auf der SSD ab; dies ist nur natürlich, da eine hohe Lokalität bedeutet, dass der Großteil der SSD-Zugriffe auf den DRAM-Cache der SSD und nicht auf den NAND-Flash erfolgt. Bei hoher Lokalität lieferte die CXL-SSD Daten mit einer nur 2,4-fachen Latenzzeit des lokalen DRAM der CPU. Am Ende des Spektrums mit geringer Lokalität war die Latenzzeit der CXL-SSD jedoch 84 Mal so hoch wie die des DRAM. Eine CXL-SSD bringt eindeutig mehr Leistung für eine Anwendung, deren großer Datensatz stark lokalisiert ist.
CAMEL fand auch heraus, dass eine NVMe-SSD die 129-fache Latenz eines CXL-SSD in Anwendungen mit hoher Lokalisierung aufwies. Die Latenz war jedoch nur etwa 50 Prozent höher als die des CXL-SSD bei Anwendungen mit geringer Lokalisierung.
Diese Lokalitätsempfindlichkeit spiegelt die Ergebnisse von Samsung wider, dessen CXL-SSD bei Cache-Treffern mit einer Latenzzeit von weniger als einer Mikrosekunde bei zufälligen 128-Byte-Lesevorgängen etwa 20 Millionen IOPSerreichte.