Microsoft DirectStorage: File-I/O-API der Xbox Series X kommt auf den PC
Microsoft hat angekündigt, dass mit DirectStorage eine Schlüsselfunktion der kommenden Xbox Series X auch in das Windows-Betriebssystem für den PC Einzug halten wird. Dabei handelt es sich um eine Programmierschnittstelle, die in Verbindung mit schnellen NVMe-SSDs wesentlich kürzere Ladezeiten in Spielen ermöglicht.
Neue API für kürzere Ladezeiten in Spielen
Hinter DirectStorage verbirgt sich eine neue Programmierschnittstelle für die Daten-Ein- und Ausgabe, die im Englischen als File I/O API bezeichnet wird. Sie ist Teil der sogenannten Velocity Architecture der im November erscheinenden Spielkonsole Xbox Series X. Die API soll es ermöglichen, dass Spiele die Leistung schneller Massenspeicher abrufen können und Spieler von kürzeren Ladezeiten profitieren. Die Xbox Series X bringt erstmals in der Serie eine NVMe-SSD mit 2,4 GB/s mit sich.
Nächstes Jahr erhalten Entwickler eine Vorschau
Wie Andrew Yeung im Entwicklerblog von Microsoft schreibt, wird die DirectStorage-API auch für Windows-PCs als Feature von DirectX kommen. Allerdings wird dies deutlich später als auf der neuen Xbox sein: Nächstes Jahr soll zunächst eine „Development Preview“ von DirectStorage für Spielentwickler veröffentlicht werden, ein Termin für die finale Fassung als Teil von Windows 10 wurde noch nicht genannt.
DirectStorage soll NVMe-SSDs besser auslasten
DirectStorage soll der Entwicklung von Hard- und Software für Spieleplattformen Rechnung tragen. Inzwischen haben SSDs den herkömmlichen Festplatten den Rang abgelaufen und erreichen mit NVMe-Technik Datentransferraten von mehreren Gigabyte pro Sekunde. Die Leistung wird aber oftmals nicht genutzt, da veraltete Software und APIs noch auf langsame HDDs abgestimmt sind. Auch die Workloads bei Spielen haben sich inzwischen geändert, schreibt Yeung. So würden moderne Spiele viel mehr Daten laden und dies durch Optimierungen auf intelligentere Weise. Statt große Datenblöcke mit wenigen I/O-Anfragen zu laden, gehe der Trend bei Spielen dahin, dass Inhalte wie Texturen in kleinere Blöcke zerlegt werden und nur noch die gerade benötigten geladen werden, was effizienter sei, jedoch die I/O-Requests in die Höhe treibe.
Und genau für diese hohe Zahl der I/O-Anfragen sind moderne SSDs mit PCIe-Schnittstelle und dem NVMe-Protokoll prädestiniert. Jedoch können sie ihre Leistung nur abrufen, wenn auch die API für die hohe Befehlsanzahl optimiert ist, was bisher nicht der Fall sei – DirectStorage soll dies ändern. Die API soll unter anderem eine Reduzierung des NVMe-Overheads pro Anfrage ermöglichen. Zudem soll die Effizienz der Dekomprimierung der bei Spielen oft komprimierten Daten erhöht werden. Insgesamt soll der gesamte Weg der Daten vom Massenspeicher zur GPU beschleunigt werden. Dadurch könnten nicht nur Ladezeiten reduziert werden, sondern Spiele durch die effizientere Speicherverwaltung auch besser aussehen, indem mehr Details nutzbar werden.
DirectStorage ist speziell auf das NVMe-Protokoll zugeschnitten, das seinerseits auf lange Befehlswarteschlangen ausgelegt ist, welche sich laut Yeung besonders für Gaming-Workloads eignen: „Das DirectStorage-Programmiermodell gibt Entwicklern im Wesentlichen die direkte Kontrolle über diese hochoptimierte Hardware“. Welche Hardware konkret für DirectStorage benötigt wird, bleibt vorerst offen. Es wird aber versichert, dass Spiele auch weiterhin funktionieren, wenn das eigene System DirectStorage nicht unterstützen sollte.
Nvidia RTX I/O nutzt DirectStorage
Da dank DirectStorage Grafikkarten effizienter mit Spieldaten vom Massenspeicher gefüttert werden sollen, bringt dies auch die GPU-Hersteller auf den Plan. Nvidia hat im Rahmen der Vorstellung der GeForce RTX 3090, 3080 und 3070 mit Nvidia RTX IO seine Schnittstelle für die Nutzung von DirectStorage bereits vorgestellt. Darüber sollen komprimierte Daten mit hoher Bandbreite direkt von schnellen SSDs zur GPU befördert und von dieser dekomprimiert werden. Der Umweg über die CPU und die sonst zur Dekomprimierung nötige CPU-Leistung entfällt.
Neben den neuen Grafikkarten mit Ampere-Architektur sollen auch GeForce RTX 2000 aus der Turing-Familie RTX IO unterstützen.