I november år 2020 släpper Microsoft nästa generations spelkonsol Xbox Series X. Utöver processor- och grafikdel av modernt snitt introduceras här även rasande snabb SSD-lagring i Xbox-familjen, och spelutvecklare som vill dra nytta av de nya lagringsmöjligheterna gör detta via gränssnittet Directstorage, vilket är en del av den övergripande infrastrukturen Velocity Architecture.

Läs mer om Directstorage här

Xbox Series X är tätt förknippat med Windows 10 rent strategiskt genom prenumerationstjänsten Xbox Game Pass, men också tekniskt då Microsoft ämnar att överföra framstegen som görs med mjukvaran i spelkonsolen till Windows 10. Nyheterna i DirectX 12 Ultimate är ett existerande resultat av detta, och framöver kommer även lagringsgränssnittet Directstorage PC-användare till nytta. I ett nytt utvecklarinlägg förklarar Microsoft vilka fördelar det ger Windows 10-användare.

XboxSeriesX-5.jpg
XboxSeriesX-7.jpg

Problemet Directstorage är tänkt att lösa har inte bara med de högre läs- och skrivhastigheterna som SSD-lagring tillför att göra. Moderna spelmotorer förlitar sig i hög utsträckning på att strömma in stora mängder små bitar data, när exempelvis texturer i en öppen spelvärld bryts ned för att mer effektivt kunna läsas in i realtid.

Nuvarande mjukvarugränssnitt för lagring utformades inte för så stora mängder lagringsanrop (IO), vilket leder till att de utförs ineffektivt trots de höga hastigheterna hos NVME-anslutna SSD-enheter. Detta problem tacklar Microsoft med Directstorage, som ska möjliggöra ett markant steg framåt gällande både att läsa in stora mängder data snabbt och att läsa in stora mängder små databitar i realtid.

Microsoft gör jämförelsen med spelmotorer på föregående generationers spelmotorer och lagringsgränssnitt, där strömmande data på 50 MB/s endast möjliggör hundratals IO-anrop per sekund. Med en NVME-ansluten SSD ökar detta till tiotusentals anrop per sekund, och med Xbox Series X SSD med bandbredd på 2,4 GB/s blir antalet över 35 000 anrop per sekund.

Tidigare mjukvarugränssnitt för lagring i Windows kräver att spelet hanterar samtliga anrop en åt gången, genom att skicka anropet, vänta på att beräkningarna slutförs och sedan hantera resultatet. Med äldre långsamma hårddiskar anpassades spelmotorerna efter förutsättningarna, och antalet anrop var därför lågt. I takt med att NVME-lagring börjat bli mer vanligt blir också väntetiden för anropen (eng. overhead) ett allt större problem.

Problemet späs på ytterligare av att mycket av den data som ska laddas är komprimerad, och därför måste avkomprimeras innan den kan användas av processorn eller grafikkortet. Directstorage löser båda dessa problem genom att kombinera inbyggda moderna tekniker för avkomprimering med att dra nytta av kommunikationsmetoden i NVME-gränssnittet. Det reducerar också antalet anrop som görs genom att utföra en serie parallella anrop i grupper (eng. batch).

Den andra metoden för att uppnå mer effektiv kommunikation är alltså att låta Directstorage arbeta efter hur NVME-gränssnittet fungerar. NVME-enheter är bestyckade med ett flertal kommunikationsköer (NVME queues) som vardera kan överföra ett flertal IO-anrop till och från enheten. Genom att Directstorage anpassas för denna parallella kommunikationsform kan utvecklare utnyttja kapaciteten dagens SSD-lagring besitter.

Utöver att själva kommunikationen sker snabbare och mer parallellt menar Microsoft också att Directstorage tar bort många onödiga steg som med dagens lagringsgränssnitt uppstår mellan det att en applikation skickar anrop till operativsystemet och att resultatet returneras från lagringsenheten. Med en NVME-ansluten SSD kan Directstorage identifiera vilka steg som inte behövs för aktuell begäran, och helt enkelt ignorera dessa.

RTX-IO.jpg

Under presentationen av Geforce RTX 3000-serien avtäckte Nvidia också tekniken RTX IO, vilken likt Directstorage använder modern NVME-kommunikation för att snabbare slussa vidare data mellan lagringen och grafikminnet. RTX IO blir också kompatibelt med Directstorage, vilket innebär att Geforce RTX 3000-ägare kan se både snabbare laddningstider och strömmande data när Directstorage når Windows 10.

Microsoft meddelar inte när Directstorage tar plats i DirectX 12, men företaget samarbetar just nu med ledande spelutvecklare och teknikbolag för att finslipa standarden. Microsoft spår att en förhandsversion blir tillgänglig för utvecklare under år 2021.

Läs mer om Directstorage: