Cerchiamo di andare oltre a dei freddi numeri, ad esempio il tanto sbandierato 1,84 TFLOPS di PS4 contro gli appena 1,32 TFLOPS di Xbox One (dopo l’upclock pre-lancio di CPU e GPU) che non significano nulla, se si vuole andare oltre la semplice console war.
Dicevamo che Microsoft ha speso tanto (ma non troppo, equiparandola a Xbox 360) per la sua Xbox One. Come i ben informati sapranno il SoC di One integra on-board 47 MB di ESRAM, di cui 32MB attivi e i 17 rimanenti adibiti, molto probabilmente, alla cache della ESRAM stessa per lo spostamento dei dati “liberi”. Questo argomento lo vedremo più approfonditamente nel nostro terzo appuntamento.
Bene, ci ritroviamo 32 MB di velocissima ESRAM, diretta evoluzione della EDRAM montata su Xbox 360, utilizzata come “corsia preferenziale” per la banda che lega SoC e memoria di sistema. Un ottimo sistema per velocizzare le lente DDR3 che monta la console. 8 GB totali di cui 5 diretti sul versante grafico. Uno viene utilizzato dal SO che si occupa dei giochi, uno per il SO che opera il multitasking e le app e uno, tipo hypervisor (Hyper-V nello specifico), che fa da “collante” tra i due. Tutto virtualizzato quindi. Ma si tratta pur sempre di RAM di tipo DDR3, comunemente utilizzata nei PC. Perché questa scelta? Perché non puntare sulla GDDR5 come ha fatto Sony per la sua PS4?
Principalmente per due fattori. La GGDR5 è una memoria ad alta latenza (e scalda anche un bel po’…), ottima per grossi chunk di dati ma che tende a diventare un problema per la gestione di piccoli pacchetti. La CPU non va molto d’accordo con le GDDR5 ed è per questo motivo che nei PC non vengono montate come memoria di sistema: si chiamano appunto GDDR, ossia Graphic DDR. Microsoft ha puntato molto sulla stabilità di sistema, sulla bassa latenza, massimizzando ogni ciclo di clock di RAM e CPU ed evitando i fail-over (perdita di dati o dati elaborati erroneamente e ricalcolati nuovamente): un problema questo, che si presenta frequentemente in Xbox 360, console poco equilibrata da questo punto di vista.
Gli ingegneri di Microsoft hanno così optato per un hardware stabile, a bassa latenza, completamente coerente con tutti i componenti (si parla di Full HSA, infatti) che spaziano dalle memorie, alla ESRAM, al SoC, ai data move engine, al chip audio (realizzato internamente da MS) e via discorrendo. Un hardware molto equilibrato, che evita inutili perdite di dati e completamente sincronizzato in tutti i suoi elementi. Anche in questo caso sono le parole di Andrew Goosen e di Nick Baker nell’intervista concessa ad Eurogamer che risaltano questo nuovo modo di pensare:
“Pensiamo di avere realizzato una console molto equilibrata, capace di ottime prestazioni, in particolare in grado di gestire cose diverse dal mettere in fila tante ALU (unità aritmetiche e logiche). Ci sono anche un certo numero d’aspetti di progettazione e requisiti di sistema di cui abbiamo tenuto conto come latenza, frame-rate e che i giochi non siano interrotti dal lavoro del sistema operativo e altri elementi che hanno avuto una certa priorità nella stesura delle linee guida del nostro design”.
“Ci serviva un alto livello di coerenza di memoria tra la GPU e la CPU e questo ci ha obbligato a modificare la concezione di molti dispositivi che si trovano intorno al processore centrale e a come la CPU gestiva la virtualizzazione”.
“Sul SoC ci sono molti motori paralleli: alcuni sono core CPU e core DSP core: al calcolo di quindici siamo arrivati in questo modo: otto dentro la componente audio, quattro move engine, due per la codifica/decodifica video e uno deputato ad effettuare la composizione/dimensionamento video”.
“Per ottenere la migliore combinazione tra prestazioni, capacità di memoria ed efficienza, la GDDR5 può creare dei problemi. L’ESRAM invece costa molto poco sotto il profilo del consumo energetico e ha l’opportunità di dare al sistema una larghezza di banda molto elevata. È possibile ridurre la larghezza di banda sulla memoria esterna risparmiando un sacco di corrente e sul costo della materia prima. Nelle scelte progettuali dell’Xbox One la combinazione tra un’alta capacità di memoria, un consumo energetico basso e tanta banda passante era un elemento chiave e per ottenerlo non c’erano molti di modi di farlo se non tramite l’uso della ESRAM”.
“L’ESRAM dispone di quattro controller di memoria ciascuno da 256-bit per un totale di 1024 bit in entrambe le direzioni. 1024 bit in scrittura danno un massimo di 109GB/s che sommati allo stesso valore simultaneo in lettura arriva a un identico picco di 109GB/s. Ma, come abbiamo detto, usando applicazioni reali questo valore va combinato attestandosi circa a 140-150GB/s e non è l’unico elemento da tenere in considerazione ovvero il limite di banda della memoria esterna, la DDR 3. Quanto può corrispondere infatti la potenza della banda passante della memoria esterna se si effettua lo stesso genere di calcolo? Con la DDR3 si prende il numero di bit dell’interfaccia, si moltiplica per la velocità e si ottiene il valore di 68GB/s: aggiungendola al valore di 140-150GB/s ottenuto calcolando la banda teorica messa a disposizione dall’ESRAM si arriva a 218GB/s. Tuttavia è difficile riuscire a mantenere valori simili con un’interfaccia di memoria esterna per lunghi periodi di tempo e quindi ci si attesta a circa un 70-80% dell’efficienza possibile che porta la banda passante della DDR3 a circa 50-55GB/s”.
Una nota importante è doverosa: chi ha concepito Xbox One è lo stesso staff che realizzò anche Xbox 360.
Questo stralcio di intervista ci serve per capire bene una cosa: Xbox One è una console altamente customizzata, differente da PS4 e pensata in modo diametralmente opposto. Xbox One va vista come hardware innovativo, rivolto al futuro, diverso da tutto ciò che è stato realizzato sino ad oggi. Soluzioni come ESRAM integrata nel SoC e altamente coerente con i singoli componenti permetterà la gestione di complessissimi mondi 3D, ma per far questo le software house dovranno aggiornare i loro tool di sviluppo. Engine vecchi, pensati per actual gen possono andare su PS4 “macina RAW” ma non per Xbox One, che va ottimizzata e da cui si può tirare il massimo solo dopo aver conosciuto profondamente tutti gli aspetti legati al suo hardware. La ESRAM ora viene solo utilizzata per dei target rendering diversi, ma i soli 32MB non bastano per un flusso video a 1080p comprensivo di effetti quali Anti Aliasing. La ESRAM va utilizzata per altri compiti e non per gli asset diretti allo streaming video o per il caricamento in blocco delle sole texture. La ESRAM è una memoria velocissima ad accesso rapido, capace di lettura e scrittura in contemporanea. Va bene ora, ma in futuro le cose dovranno cambiare, se non si vuole assistere a orrendi porting come Call of Duty: Ghosts.
Molti sviluppatori rimasti nell’ombra hanno dichiarato che il vero problema di Xbox One è nella ESRAM, ma solo recentemente team qualificati hanno invece smentito il tutto, dicendo anzi che grazie proprio alla veloce memoria è possibile eseguire diverse e numerose operazioni, senza colli di bottiglia.
Xbox One è infatti capace di 1080p e 60 fps, Forza Motorsport 5 ne è un esempio lampante e anche le recenti produzioni dimostrano che sotto quel silicio c’è ben altro. Ryse: Son of Rome è il primo gioco in assoluto ad utilizzare il nuovo CryEngine di Crytek ed ha permesso a Microsoft di mostrare le potenzialità, appena accennate, della nuova console.
E ora torniamo alla domanda iniziale: perché a Microsoft è costata così tanto Xbox One? La settimana prossima lo scopriremo…