Traduci gli articoli

lunedì 11 maggio 2015

In-depht Xbox One: la nascita di Xbox One, la console "a prova di futuro", uno sguardo all'hardware



1) Gli investimenti di Microsoft su Xbox One pensando al futuro

I tempi cambiano, la tecnologia avanza e interi gruppi di lavoro si concentrano sull’ottimizzazione delle risorse disponibili. In un periodo afflitto da una profonda crisi economica, proprio come quello che stiamo vivendo anche a nostre spese, tutti i giorni da alcuni anni a questa parte, ha costretto i principali colossi dell’informatica a elaborare nuove tecniche di “ingegnerizzazione del silicio”.
Pesanti investimenti non vengono più fatti da tempo e le maggiori aziende del settore sono concentrate a ridurre i costi, sfruttando il know-how acquisito e le attuali tecnologie. Figlie di questo particolare periodo storico sono le neoarrivate console di Sony e Microsoft, rispettivamente PlayStation 4 e Xbox One.

Come molti di voi avranno sicuramente notato, si tratta di due hardware particolarmente interessanti, ma derivati essenzialmente dal mondo personal computer. Sono lontani, infatti, i tempi in cui una Sony o una Microsoft investivano pesantemente sulle “nuove tecnologie”: il Cell e l’Emotion Engine da una parte, la CPU a tre core di IBM e la RAM unificata dall’altra. Questi elementi sono stati “il fiore all’occhiello” dei due colossi, che avevano puntato pesantemente su hardware, per il tempo, all’avanguardia.

Grazie a come sono state concepite anni fa PS3 e Xbox 360 dobbiamo giochi come Grand Theft Auto V, Uncharted, The Last of Us, Gears of War e molto altro ancora. Hardware indubbiamente potenti, costati miliardi di dollari e che hanno ancora molto da dire.

Cosa è successo intanto a Sony e Microsoft? Come saprete, leggendo un po’ ovunque, Sony è stata coinvolta in una profonda crisi che, vuoi per mancanze strutturali, vuoi per il management, ha mandato in rosso il conto del colosso nipponico. Sony è stata costretta a vendere i suoi immobili, licenziare personale in tutto il mondo, vendere il suo marchio Vaio e apportare pesanti tagli nelle sue divisioni, nessuna esclusa. Storia recente il licenziamento di 50 dipendenti di Sony Santa Monica, autori della celebre saga God of War, alcuni di loro già contattati da Microsoft Studios: magari ne nascerà un altro team interno?

In una situazione così gravosa Sony ha tagliato il dipartimento di ricerca e sviluppo di PlayStation 4, costata alla case madre non più di 1 miliardo di dollari. Il SoC (System on Chip) di PS4 è stato realizzato interamente da AMD, affiancato dai roboanti e costosissimi 8GB di GDDR5. Il SoC è ormai realtà da diverso tempo e i principali fornitori di hardware lo utilizzano già da tempo per Tablet e Smartphone, vedere ad esempio la linea Tegra di NVIDIA, i processori Snapdragon o la serie “A” di Apple montata su iPhone e iPad di ultima generazione. Un chip potente adatto a tutti i dispositivi, che concentra una CPU e una GPU racchiusi in un unico wafer di silicio.


Microsoft non è stata da meno ed ha optato anch’essa per un SoC di AMD, cuore di Xbox One ma le similitudini con PS4 finiscono qui. La differenza è che la casa di Redmon ha investito in AMD il triplo di Sony, versando nelle casse del colosso malese la bellezza di 3 miliardi e più di dollari (solo il controller è costato 100 milioni di dollari…). Questo segna già una differenza consistente tra i due “progetti” next gen.

Possibile che una console costata tre volte tanto la sua rivale sia ben il 50% meno potente? Microsoft, sin dall’inizio, ha negato certe cifre, ribadendo che “non avrebbe mai lasciato al diretto concorrente un gap così grosso”, come sottolineato da Albert Penello, figura di spicco di Microsoft, mesi fa.

Già perché la montatura del 50% di potenza in più di PS4 è dato da alcuni fattori, su carta, contati aritmeticamente,  e non visti da un punto di vista squisitamente di sviluppo. PS4 ha più ROPs, ha più ALU, ha più Z-Stencil, ha RAM più veloce, ha più CU. Tutto vero, ma non vengono riportati però anche i “contro” di un sistema così “raw-oriented”. Diciamo la verità: PS4 è pura forza bruta e i recenti porting confermano quanto sia buono l’hardware messo in sesto da Sony.

PS4 non fatica con i 1080p e tutto ciò che gli si mette sopra lo macina senza problemi, Almeno per ora. Almeno per i titoli multiformato e per alcuni first-party. Xbox One, dal canto suo, appare come la console “castrata”, meno performante e atavica dal punto di vista tecnologico. Ma ne siamo proprio sicuri?

2) Xbox One è lenta e la eSRAM è il collo di bottiglia della console?

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”.

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.

3) Xbox One è definita da Microsoft “future proof”

La casa di Redmond ha definito più volte Xbox One come una console pensata per il futuro (future proof, per l’appunto). Costato più di 3 miliardi di dollari, questo “all in one entertainment system” è progettato per durare nel tempo, stimando una longevità di ben 10 anni. 

Intenzioni senz’altro interessanti queste di Microsoft e che rispecchiano quanto sta facendo la compagnia verso Xbox One. Continui aggiornamenti atti a migliorare il sistema, l’integrazione di nuove ed interessanti feature che dimostrano anche come la console in realtà non fosse pronta per il rilascio di novembre 2013: ricorderete che per l’utilizzo della console appena uscita serviva un day-one update piuttosto corposo, altrimenti sarebbe stata inutilizzabile. In più molte opzioni sono state aggiunte solo di recente, come l’uscita audio in Dolby Digital utilizzando il cavo ottico e per l’HDMI, la gestione di party e gruppi incompleta e molto altro ancora.

Un altro segno evidente quindi dell’uscita anticipata di Xbox One per fronteggiare sin da subito la rivale PS4 ma che ha segnato tanti problemi al lancio: SDK incompleti, driver instabili, SO con alcuni bug e poco ottimizzato. 

Ma sono anche tutti elementi che, di fatto, certificano come Xbox One sia davvero pensata per essere migliorata, cambiata, potenziata nell’arco del suo ciclo vitale. E la recentissima notizia del rilascio delle DirectX 12, con tanto di trafiletto che indica piena compatibilità con PC Windows 8.1, tablet e console:

"However, you asked us to do more. You asked us to bring you even closer to the metal and to do so on an unparalleled assortment of hardware. You also asked us for better tools so that you can squeeze every last drop of performance out of your PC, tablet, phone and console. Come learn our plans to deliver.".

Sul web si sostiene che le DirectX 12 siano la risposta a Mantle di AMD e che non possano essere sfruttate a dovere su Xbox One. Vi faccio una domanda: secondo voi un colosso come Redmond, leader nel settore informatico, non è in grado di vedere al futuro? Credete davvero che delle librerie grafiche così complesse come le DirectX 12 non richiedano anni di sviluppo?

Le nuove librerie serviranno anche per sbloccare le fantomatiche tiled resource (texture da 6GB contenuto in uno spazio di 32MB, guarda caso la stessa dimensione dell’eSRAM di Xbox One!!!) e, molto probabilmente, il secondo layer della console, annessi tutti e 15 gli Special Processor e i dual lane.

Xbox One non è GCN 1.1 bensì 2.0, la stessa struttura delle schede grafiche di AMD della serie R e grazie alle DirectX 12 si potranno utilizzare le nuove tecniche SM 6.x e Compute Shader 6.x. Controllate il logo delle DirectX 12:


Non notate nulla di strano? Il logo AMD, diciamo normale ma, soprattutto, quello Qualcomm Snapdragon! Le DirectX 12 richiedono, per poter essere utilizzate, nuovi hardware, di nuova concezione, cui rientrano le schede grafiche AMD, Intel, NVIDIA, i processori Snapdragon e, senza sorprese, anche Xbox One: tutti chipset GCN 2.0 e NON precedenti.

Xbox One è stata progettata fin dall'inizio per lavorare con le DX12. L’intero SoC è costato, lo ripetiamo ancora una volta, 3 miliardi di dollari ed è stato realizzato con AMD ed altre compagnie (Samsung? IBM? Intel?) ed è progettato per il multi-channel e i data packets liberi (PRT o tiled resource) che sfruttano il bandwith di DDR3 ed eSRAM: 17 MB DRAM “on chip” per il flusso dati gestito dai data move engine che si interfacciano alla memoria generale di 32MB, sempre residente nel main SoC. Ecco, abbiamo anche svelato il quesito dei 17 MB extra della eSRAM…

Non era un modo economico per risparmiare sulle GDDR5 come ha fatto Sony, che ha speso 0$ in Ricerca & Sviluppo: un sistema configurato come un PC, semplice ed efficiente ma non rivolto al futuro.

Perché spendere quella somma di denaro nella costruzione di una APU completamente personalizzata? Solo per essere più deboli e meno efficienti rispetto ad una APU standard? Ritenete che tutti ciò abbia un senso?

Credete che i migliori sviluppatori del pianeta come Epic, Remedy e Crytek si sforzino di dare il massimo un hardware vetusto e inferiore come Xbox One? Perché dovrebbero scegliere di lavorare con la "console più debole"?

4) Quale GPU è integrata nel SoC di Xbox One? 

Ormai è chiaro a tutti che la nuova console di Microsoft sia stata lanciata davvero troppo presto e che, dopo le recenti dichiarazioni di Spencer, Penello e Multerer, Xbox One è stata progettata per una dead-line più avanzata rispetto al lancio di novembre 2013. Questo punto è molto importante e va a coincidere proprio con alcuni elementi mai riportati o trattati da Microsoft stessa. Sviluppatori che si lamentavano di SDK ancora acerbi, specifiche tecniche “scialbe” e poco approfondite, driver poco ottimizzati e altre cose che andiamo dicendo da tempo.

La situazione sta migliorando e quello che doveva essere la visione di Microsoft verso Xbox One, solo ora si sta concretizzando. Come i più informati ben sapranno, la casa di Redmond non ha mai, al momento, descritto nel dettaglio il chipset di Xbox One, se non alcuni elementi, comunque importanti, come il clock di CPU e GPU, quantità di eSRAM (47 MB totali, ve lo ricordiamo, non esistono altri MB segreti sparsi nel wafer di silicio…), 15 special processor unit, un guest host e il fatto che l’architettura realizzata sia Full HSA, ossia coerente con tutti i suoi elementi (per fare un esempio, la tanto chiacchierata eSRAM può “comunicare” con CPU, GPU, RAM di sistema e via discorrendo, in maniera sincrona, ossia in lettura e sia in scrittura).

Microsoft non ha mai accennato però alla sua GPU, più volte ricordata essere di tipo “custom” e non proveniente dalla famiglia ATI 6000 o 7000, cosa che altri siti vorrebbero farci credere. Microsoft ha disegnato con AMD la propria console, studiandola nei più minimi dettagli e adoperando scelte che ATTUALMENTE non esistono in commercio.

Per fare un paragone diretto, Sony ha puntato su un hardware stabile, efficiente, veloce ma non dinamico, ripreso direttamente dall’universo PC ma senza introdurre caratteristiche tecniche rilevanti. Un SoC discreto e un pool di memoria velocissimo, come le GDDR5, ma non particolarmente adatte per la comunicazione con la CPU e per la gestione di piccoli flussi di dati. Anche Sony aveva pensato ad affiancare alle GDDR5 una eDRAM o una eSRAM in modo da eliminare colli di bottiglia e rendere l’hardware di PS4 più coerente possibile, scelta poi non adottata per via degli ingenti costi aggiuntivi che sarebbero giunti in termini di progettazione e fabbricazione.

In altre parole, considerando che PS4 utilizza anche 4 Compute Unit e diversi processi GPGPU per l’elaborazione di processi extra-grafici, come audio in-game, gestione della intelligenza artificiale, la fisica, possiamo vedere come la potenza in TFLOPS della console va diminuendo. I TFLOPS di PS4 sono nominali e si riferiscono all’intera potenza RAW della console.

Diversamente Microsoft ha optato per una architettura più specializzata e meno CPU-GPU centrica adottando scelte molto interessanti sotto il profilo ingegneristico: il main SoC è coadiuvato da 15 processori speciali, i data move engine e un chip audio realizzato internamente da Microsoft, senza dimenticarci anche il Kinect, che non grava in particolar modo sulla console avendo RAM e CPU integrati.

Il segreto di Xbox One è proprio questo: un chipset personalizzato, molto performante e dotato di importanti e numerosi sub-asset in grado di alleggerire il carico computazionale del SoC. Il SoC di Xbox One viene calcolato in 1,24 TFLOPS ma non di RAW power bensì della sola capacità di calcolo di CPU e GPU, senza contare quindi il resto dei componenti (tanto per dire, il chip audio da solo vale tra i 50 e gli 80 GFLOPS…).

Abbiamo quindi, riassumendo, la seguente tabella:

- PS4 | 1.84 Tflops | CPU: 100 Glops, Totale 1.94 Tflops
- Xbox One | 1.31 Tflops | CPU: 109 Gflops, Totale 1.41 Tflops

Sony è stata abile a gestire i due fanta-numeri di 1080p Full HD e 1,84 TFLOPS di potenza. Microsoft dal canto suo è stata, invece, molto meno aperta ed ha snocciolato dati piuttosto generici. Se andiamo in profondità però, le cose cominciano a cambiare e il quadro generale assume ben altri connotati.

La CPU di Xbox One è in grado di effettuare più operazioni per ciclo (6) rispetto alla CPU di PS4 (ferma a 2-3), tenendo presente anche la differenza in GHz, Xbox One ha il clock per core a 1.75Ghz mentre i core di PS4 sono bloccati a 1.6Ghz. La CPU di Xbox One è quindi già più veloce di un buon 10% rispetto al rivale.

Ma ora passiamo alla GPU: la conferma che le DirectX 12 siano compatibili con Xbox One apre nuovi interessanti scenari. Il primo, e lo ripetiamo per l’ennesima volta, è che Xbox One sia stata progettata già con in mente le nuove librerie grafiche di Microsoft, cosa che comporta quindi un bel balzo in avanti rispetto alla vecchia gestione delle API 11.2. L’architettura interna, per poter sfruttare nativamente le nuove API è ovviamente più moderna di quanto si potesse pensare. Future proof, ricordate? Questo confermerebbe, in parte, la presenza di un chipset GCN 2.0 o HSA, il futuro delle schede grafiche per PC. Ma la GPU di Xbox One ha molte altre caratteristiche peculiari, come detto in apertura, non esistenti oggi. Innanzitutto le nuove librerie grafiche sbloccheranno le famigerate Tiled Resource, che consentiranno l’utilizzo di texture ad altissima risoluzione sfruttando la eSRAM e, di converso, lasciando ulteriori risorse di sistema e, se in linea con i nostri dati, implementeranno al meglio la gestione delle 15 SPU e i data move engine.



Ora che i developer stanno prendendo confidenza con la eSRAM, e che certifica come il suo utilizzo sia ancora sottosfruttato, il futuro non può che essere roseo. Basti vedere anche le vecchie dichiarazioni di Respawn, autori di Titanfall, che hanno dichiarato:

"Abbiamo eseguito molti test sull'eSRAM, sull'effettivo utilizzo di shadow map, target di rendering e texture particolari. Abbiamo smanettato un sacco con la eSRAM e possiamo dire senza remore che la sua presenza giova alle prestazioni complessive del gioco. Se non ci fosse, sarebbe un problema!", ha riferito Richard Baker nel Digital Foundry di Eurogamer.

Tutto ciò senza tenere in considerazione i nuovi tool, le DX12 e il tool PIX proprio della eSRAM.

X-Rays

2 commenti:

  1. Ciao, inanzitutto complimenti per l' articolo.
    Volevo solo fare una precisazione, le DDR3 usate dalla One sono SK hynix H5TQ4G63AFR-TEC
    http://m.eet.com/media/1202062/Teardown-Xbox-One-DRAM.jpg
    e stando al datasheet ufficiale i modelli TE a 2133MHz sono delle CL14 (14,14,14)
    http://minipcsale.ru/images/joomlakassa/TV_BOX/MINIX_NEO_X7/SK%20Hynix%20H5TQ4G63AFR.pdf
    Quindi direi tutt' altro che a bassissima latenza.

    RispondiElimina