L’introduzione delle API DirectStorage è stata una delle principali novità dell’architettura Xbox X ma si sapeva che la stessa innovazione sarebbe arrivata prima o poi anche su Windows. L’obiettivo è migliorare le prestazioni della GPU e velocizzare quindi le elaborazioni grafiche in ambiente Windows. Cosa c’entra lo storage? È presto detto.
Nel corso degli anni i requisiti per l’esecuzione delle applicazioni più evolute e soprattutto dei videogiochi si sono fatti sempre più stringenti. Fortunatamente, le unità SSD PCIe NVMe hanno permesso di estendere la larghezza di banda disponibile e velocizzare le operazioni di I/O anche con grandi quantitativi di dati.
Abbiamo visto cos’è NVMe e come funziona.
Ad aprile 2023, Microsoft ha rilasciato DirectStorage 1.2, un aggiornamento che corregge alcuni bug presenti nella versione precedente e che migliora sostanzialmente le prestazioni anche su con gli hard disk tradizionali.
Cos’è DirectStorage e come funziona
Facendo uso delle API DirectStorage la GPU può elaborare direttamente risorse compresse conservate in un’unità SSD NVMe. Il chip grafico decomprime tali elementi usando i compute shader in modo da poterli usare quasi istantaneamente.
I viaggi di andata e ritorno dei dati da e verso la CPU vengono così ridotti al minimo liberando risorse hardware e ottenendo eventi guadagni nei tempi di caricamento e per quanto riguarda le performance complessive.
Quando è stata presentata la tecnologia DirectStorage
Microsoft ha parlato per la prima volta di DirectStorage durante l’evento Xbox Series X Games Showcase svoltosi a fine luglio 2020.
Durante la presentazione, Microsoft ha svelato DirectX 12 Ultimate, una suite di strumenti e funzionalità per lo sviluppo di giochi su Windows 10 e Xbox Series X-S, che include anche DirectStorage come una delle principali novità.
La presentazione ha offerto una panoramica delle caratteristiche e dei vantaggi di DirectStorage per migliorare l’esperienza di gioco su PC e console, offrendo tempi di caricamento più veloci e una grafica di alta qualità.
La versione finale di DirectStorage è stata pubblicata a marzo 2022 e da allora sono state rilasciate versioni compatibili con Windows 10 e Windows 11.
Perché è stato introdotto DirectStorage
DirectStorage è stato introdotto per affrontare le sfide legate ai tempi di caricamento dei titoli più complessi e alle prestazioni in ambito gaming su PC e console.
I tradizionali metodi di caricamento, che coinvolgono la lettura dei dati dal disco rigido o dall’unità SSD e la decompressione dei dati lato CPU, possono richiedere molto tempo e causare interruzioni o comunque prestazioni scadenti.
L’aumento della risoluzione delle texture e degli asset gaming richiede ai dispositivi di archiviazione dati una maggiore larghezza di banda.
DirectStorage è stato introdotto per superare i tradizionali limiti, senza coinvolgere la CPU per la decompressione dati. La tecnologia DirectStore offre inoltre un sistema di I/O avanzato e un meccanismo di prioritizzazione del caricamento che permette di gestire in modo efficiente il flusso di dati tra l’archiviazione e la memoria di sistema, migliorando le performance in modo significativo.
Come funziona DirectStorage in breve
In termini semplici, DirectStorage permette di accedere ai dati conservati su hard disk e SSD in modo molto più veloce rispetto alle tradizionali tecnologie di caricamento.
Come abbiamo accennato in precedenza, il funzionamento di DirectStorage si basa su tre principali componenti: la decompressione hardware, il sistema I/O e il meccanismo di priorità del caricamento.
La decompressione hardware è una caratteristica chiave di DirectStorage che permette di caricare dati compressi dal disco rigido o dall’SSD e di decomprimerli direttamente nella memoria di sistema senza coinvolgere la CPU. Ciò consente di risparmiare tempo di CPU e ridurre le tempistiche di elaborazione.
Il sistema I/O di DirectStorage utilizza apposite API (Application Programming Interface) per gestire in modo efficiente il flusso di dati tra l’archiviazione e la memoria di sistema. Ciò consente di ridurre la latenza e migliorare le prestazioni consentendo ai dati di essere letti e scritti in modo rapido ed efficiente.
Il sistema di priorità del caricamento integrato in DirectStorage permette infine di gestire in modo intelligente il caricamento dei dati in base alle esigenze del gioco. Ad esempio, i dati necessari per il livello corrente di un videogioco possono avere una priorità più alta rispetto ai dati di livelli successivi: il sistema velocizza il caricamento dei dati che servono nel breve termine.
I requisiti per poter sfruttare DirectStorage
C’è ovviamente bisogno di hardware moderno per sfruttare DirectStorage. La tecnologia è supportata in Windows 10 e 11, non vi è la stringente necessità di un PC da gioco in senso stretto ma è indispensabile l’uso di storage veloce.
È inoltre necessaria una scheda grafica compatibile con le librerie DirectX 12 Ultimate e in grado di supportare Shader Model 6.0: come requisito minimo, quindi, citiamo le GPU NVidia serie RTX 2000, serie RTX 3000, AMD RDNA 2.
Microsoft spiega inoltre che le migliori prestazioni sono ottenibili in Windows 11 per via dell’architettura del sistema operativo. Sebbene i benefici siano evidenti con qualunque genere di storage, performance più elevate si otterranno ovviamente usando unità di memorizzazione basate su interfaccia PCIe.
Le novità di DirectStorage 1.2
Come abbiamo anticipato in apertura, DirectStorage 1.2 migliora significativamente le prestazioni con i dischi fissi magnetomeccanici. Com’è noto, infatti, questi ultimi sono contraddistinti da tempi di accesso ai file molto più lunghi rispetto agli SSD.
Con il rilascio di DirectStorage 1.2 gli sviluppatori possono utilizzare la modalità I/O con buffer servendosi dei normali hard disk.
Inoltre, la nuova API GetCompressionSupport permette di specificare il percorso di decompressione da usare (tramite GPU o CPU).
Un altro cambiamento importante che influisce sulle prestazioni è la copia immediata dei dati, dopo la decompressione, nella “coda” di rendering della GPU.
L’uso dei core grafici per svolgere le attività di decompressione è diventato un pilastro fondamentale, non solo perché le operazioni possono essere completate in tempi ridotti ma anche perché è possibile svolgerle in modo più efficiente.