La presentazione delle console di prossima generazione ha messo in subbuglio un mondo, quello dell’intrattenimento digitale, che già da tempo aveva mostrato segni di cedimento, in quanto il ciclo di vita degli attuali dispositivi è sostanzialmente giunto al termine, per lo meno per quanto riguarda l’hardware.
Il mercato, insomma, è saturo. Un videogiocatore generalmente si trova già a casa una o più console, e non ha certo intenzione di comprarne un’altra, se non un nuovo modello, dotato, quindi, di caratteristiche hardware molto più elevate rispetto a quanto già possiede. Aspetta, insomma, il salto di qualità. Il nuovo punto di riferimento per i prossimi anni.
In passato avevo già trattato il tema delle future (nuove) console in diversi articoli (qui, qui e qui ne trovate alcuni, in ordine temporale).
Le aspettative, per lo meno da parte mia, sono state sostanzialmente rispettate: i produttori di console si sono buttati sul risparmio, lesinando sull’hardware, e non innovando come hanno sempre fatto in passato. Il punto di riferimento tecnologico è, ormai, il PC, lasciando alle console un assaggio di quello che è in grado di fare, e questo già da qualche tempo.
Ciò che ha sollevato la mia curiosità è, però, il dato recentemente annunciato da Microsoft, che riguarda il numero di transistor che si troverebbero integrati “nella scheda madre”: ben 5 miliardi. Un dato di per sé impressionante.
Il tutto ovviamente non conteggiando la RAM, che da sola porta via più di 64 miliardi di transistor. 8GB richiedono 64 miliardi di celle/bit in quanto, essendo realizzati come DRAM, richiedono un transistor ciascuna; a ciò aggiungiamo un po’ di logica per gestire gli accessi alle celle.
Sarebbe interessante conoscere nel dettaglio in che modo siano stati utilizzati questi transistor, ma purtroppo esistono pochissime informazioni in merito. A riguardo un dato che è venuto fuori è la quantità impiegata per i 32MB di memoria eSRAM: ben 1,6 miliardi.
Questo significa che per l’altra (unica e più importante) componente del sistema, l’APU (fusione di CPU e GPU nello stesso die), rimangono circa 3,4 miliardi di transistor, al netto di possibili altri impieghi che per il momento possiamo escludere (l’APU è un SoC che, dunque, racchiude tutto, anche il southbridge), anche per semplificare la discussione.
Non esistono dati su quanto possano incidere le due componenti, CPU e GPU, sul budget totale, ma per dare un’idea dei numeri in gioco riporto i dati di alcune di esse per i quali sono noti.
Bobcat, predecessore di Jaguar, dotato di 2 core per la CPU, 512KB di cache L2 per ogni core (Jaguar ha 1MB per coppia di core, e 2MB per 4 core), e 80 stream processor per la GPU (Jaguar ne ha 128): circa 400 milioni di transistor, ma è un cifra che appare molto elevata se confrontata con quella dell’Atom col quale è in concorrenza.
Intel Atom D525, 2 core (4 thread) per la CPU, 512KB di cache L2 per ogni core, GPU Intel GMA 3150: circa 176 milioni di transistor. Ovviamente la GPU è di gran lunga inferiore rispetto a quella integrata in Bobcat.
Bulldozer, CPU desktop dotata di 8 core, 2MB di cache L2 + 2MB di cache L3 per coppia di core (per un totale, quindi, di 8 + 8 MB): circa 1,2 miliardi di transistor.
Trinity, APU desktop dotata di 4 core, 2MB di cache L2 per ogni coppia di core (4MB in totale), e 384 stream processor (famiglia precedente a quella che dovrebbe essere usata nella XBox One): circa 1,3 miliardi di transistor.
Radeon HD 7790, GPU dotata di 896 stream processor (stessa famiglia di quelli che dovrebbero essere usati nella XBox One): circa 2 miliardi di transistor.
Il componente che più si avvicina al SoC utilizzato da Microsoft per la sua console è, forse, Trinity, anche se in versione “dimezzata” (ha esattamente la metà dei core, della cache L2, e degli stream processor, sebbene i core siano completamente diversi e in versione “desktop” anziché “mobile“, oltre alla vecchia architettura MIMD anziché la nuova GCN basata su SIMD), ma anche raddoppiandone rozzamente i numeri, arriveremmo a circa 2,6 miliardi di transistor utilizzati. Mancherebbero all’appello circa 800 milioni di transistor.
Provando a fare un altro conto e supponendo di togliere circa 1,7 miliardi di transistor per la GPU (tenendo presente che abbiamo 768 stream processor al posto degli 896 della HD 7790), per la componente CPU rimarrebbero circa 1,7 miliardi di transistor: decisamente troppi se consideriamo che Bulldozer ne integra circa 1,2 miliardi, e che i core Jaguar sono decisamente più piccoli rispetti a quelli di Bulldozer.
Da qualunque lato lo si guardi, il budget di 3,4 miliardi di transistor per l’APU rimane un numero esageratamente alto, che può significare due cose: o questo numero è palesemente errato (frutto, magari, di marketing pubblicitario), oppure Microsoft sta ancora nascondendo le sue carte, tenendo celato qualche altro prezioso componente finora sconosciuto, o ancora avendo riportato informazioni volutamente sottostimate per la CPU e/o la GPU.
Se questi numeri venissero confermati, assisteremmo a un sufficiente, ma certamente non eccezionale, passo in avanti rispetto alla XBox 360.
Infatti la CPU (Xenon) era quotata per circa 165 milioni di transistor, mentre la GPU (Xenos) per 232, e i 10MB di eDRAM per circa 105 milioni, per un totale di circa 500 milioni di transistor. Non è noto il budget del southbridge (che include un’unità di decodifica hardware dell’audio WMAPro), ma anche stimando circa 50 milioni di transistor, arriveremmo a circa 550 milioni in totale.
Rapportando i 5 miliardi della XBox One coi 550 milioni della 360, vuol dire che la prima ha a disposizione circa 9 volte le risorse. Ciò, in ogni caso, non equivale a una potenza di elaborazione di 9 volte (8 volte di più).
Infatti alcuni numeri fanno decisamente storcere il naso. Prendendo la nuova eSRAM, abbiamo ben 32MB rispetto ai 10 di prima, ma la banda erogata è di appena 102GB/s rispetto ai 256GB/s della vecchia eDRAM. Considerato che la XBox One ha circa 68GB/s provenienti dalla memoria GDDR3 (22,5GB/s per la 360), che però sono circa 1/3 di quanto avrà la Playstation 4, la banda dell’eSRAM è un valore incredibilmente basso.
Riguardo alla GPU, Microsoft dichiara un valore di circa 1,2TFLOPS, che è 5 volte i 240GLOPS di quella della 360. Un incremento di 4 volte, che non è, però, commisurato con ciò che ci si aspetterebbe, specialmente tenendo conto di quanti transistor sarebbero teoricamente a disposizione.
La CPU è l’elemento messo peggio. Jaguar dovrebbe permettere di eseguire 8 operazioni in virgola mobile per ciclo di clock. Supponendo una frequenza di 2Ghz, dovrebbe arrivare a 16GFLOPS di picco per ogni core, per un totale di 128GLOPS. Un valore di poco superiore rispetto ai 115GLOPS (anch’essi teorici) di Xenon…
Appare evidente che, a meno di sorprese, che potrebbero effettivamente saltare fuori se i 5 miliardi di transistor fossero confermati, i numeri disponibili fino ad ora non sembrano mostrare uno scenario invitante.
Sì, nel caso della GPU ci sarebbe un discreto miglioramento, ma non all’altezza guardando agli 8 anni passati dall’introduzione della precedente console.
Sia chiaro che l’obiettivo di raggiungere l’agognata FullHD a 60 fotogrammi al secondi, ed effetti speciali abbastanza moderni, è sicuramente raggiunto, e non è, quindi, in discussione. Tolta la GPU, però, il quadro rimanente è decisamente desolante, perché si poteva fare molto di più dopo tutto questo tempo.
Non rimane altro che aspettare la presentazione definitiva della console, per controllare se qualcosa sarà effettivamente cambiato.
UPDATE: aggiornata la parte relativa all’APU Trinity,
La butto in ridere, ma non è che i transistor che mancano all’appello, sono quelli dedicati al processore che gestisce i DRM ??? :-D :-D
Un bell’articolo su numeri che non collimano. Bah.
Queste sono chiacchere da PCisti.
Alla massa interessano i giochi e il marketing.
Puoi metterci dentro un z80 e andrà bene comunque se i giochi sono all’altezza delle attese.
Aggiungo che la PS3 con il CELL avrebbe dovuto spaccare in due X360.
IMHO
Ciao Cesare,
le APU di Xbox One e PS4 dovrebbero anche includere un meccanismo per condividere completamente la memoria virtuale fra CPU e GPU, con una complessa logica per mantenere la coerenza dei dati nelle rispettive cache (AMD lo chiama “hUMA”): dovrebbe portare numerosi vantaggi rispetto alla generazione precedente di APU. Non so quanto possa ammontare in termini di transistor, ma sarà piuttosto sofisticato.
Inoltre dovrebbero integrare anche un core ARM Cortex-A5 (poca roba comunque) per la gestione dei DRM. Tutto al condizionale ovviamente!
I 256GB/s della 360 però non sono eDRAM -> GPU, il link tra eDRAM e GPU dovrebbe essere di 32GB/s (stando a wikipedia e alle varie dichiarazioni).
E comunque visti il numero di shader mi pare che la banda complessiva dell’Xbox One sia più che sufficiente.
Per il numero di transistor bisogna sempre vedere cos’hanno considerato, se sono solo per il SoC c’è più di qualcosa che non torna, se intendevano tutta l’Xbox One ci possono essere un sacco di altri chip ad alzare il numero (volendo anche quello incluso nel Kinect)
Saranno pure belle queste macchine, ma il divertimento vero??
Sarò attaccato al passato, ma i tempi di Amiga se li sognano.
Me li sogno ancora io. :)
@Sisko212 & Marco: il DRM occupa poco spazio. Un intero CortexA5, che include la tecnologia TrustZone di ARM, è un processore veramente minuscolo, che non incide molto sul budget a disposizione; non credo nemmeno che arrivi anche lontanamente a occupare lo spazio di un core Jaguar.
@Marco: non so quanto potrebbe portare via la logica su cui basa hUMA. La mia sensazione è che richieda pochi transistor in confronto a un intero core.
Peraltro, parlando di core, dalle misurazioni fatte da qualche sito, sembra che il die di Jaguar sia all’incirca del 10% più grande del suo predecessoe Bobcat, il che mi sembra abbastanza in linea con le modifiche effettuate da AMD. Ma Bobcat era già un core piccolo di suo…
@Sapo84: sì, la GPU è connessa alla daughter board contenente l’eDRAM da un bus dedicato da 32GB/s. Questo significa che le sue particolari esigenze (accesso al framebuffer) la banda teorica allocata è quella.
Ma la daughter board integra anche le logica delle ROP (sembra che fosse equivalente a 32 ROP) e si occupa di gestire l’AA e l’HDR, che richiedono non poca banda. Ecco perché la comunicazione fra la logica della daughter board e l’eDRAM avveniva con altro bus dedicato da 256GB/s, che doveva servire sia le richieste della GPU che quelle della logica di cui sopra.
Tenendo conto di tutto, a me non sembra che la banda totale a disposizione (memoria + eSRAM) possa riuscire a soddisfare adeguatamente le richieste dei giochi di prossima generazione, se non tagliando qualcosa a livello di effetti speciali.
Riguardo al Kinect, non mi pare di aver letto di chip dedicati allo scopo. Considera, comunque, che già con la XBox 360 Microsoft decise di sfruttare uno dei 3 core (in realtà uno dei due thread hardware di un core) della CPU per eseguire tutti i calcoli di cui necessita. Adesso di core ce ne sono ben 8 a disposizione, per cui troverai strano che Microsoft decidesse di non utilizzarne qualcuno allo scopo, affidandosi a una soluzione custom, e dunque complicando la vita sia ad AMD che deve realizzare il SoC sia ai suoi sviluppatori che dovrebbero avere a che fare con un ulteriore componente che avrà proprie caratteristiche.
Queste, ovviamente, sono soltanto mie riflessioni personali, in mancanza di informazioni ufficiali (o di “seconda mano”). ;)
fanno bene a non sparare alto. è una strategia precisa a mio avviso. si sono conquistati una buona fetta di mercato, soprattutto in USA, ma ormai hanno saturato il mercato con la vecchia console e devono porsi un gradino sopra a nintendo che ormai è sulla stessa piazzola.
è più un upgrade strategico che tecnologico. a mio avviso. le vecchie console andranno per la maggiore ancora un paio d’anni almeno.
@Cesare: Non capisco come fai a dire che la banda a disposizione non sia sufficiente.
L’attuale Radeon 7770 ha poco più di 70GB/s (quindi meno di metà di quella combinata DDR3 + eSRAM e ad una latenza superiore) e una capacità computazionale non dissimile da quella della nuova Xbox.
Semmai ci si può chiedere se 32MB siano sufficienti per un anti-aliasing di qualità a 1080p (probabilmente no) o se Microsoft ha intenzione di spingere verso altre soluzioni, come ad esempio morphologic anti-aliasing.
Sicuramente pare una scelta strana, ma finché non interverranno gli sviluppatori non sono sicuro che si possa più di tanto speculare sui limiti o meno dell’architettura (per dire, la Wii U sembra castratissima a livello di banda eppure gli sviluppatori dichiarano di non aver avuto problemi da quel punto di vista).
Per il chip nel Kinect mi pare abbiano dichiarato che il processing dell’audio e della voce è fatto da un chip integrato nella periferica (così Xbox One può stare spenta, credo).
Potrebbe essere che il chip si occupi anche di altro e venga considerato in quei 5 miliardi di transistor.
@Sapo84
32MB di eSRAM sono ridicoli.
Se utilizzi il Deferred rendering ( che va per la maggiore per utilizzare il SSAO) ti tocca allocare 2/3 volte la dimensione dello schermo quindi (1920 * 1080 * (4 colori + 2 normali + 1 z-buffer + id materiale + 3 diffuse + 1 specular + 1 Emissive))
Tirando la cinghia, secondo guide linea NVIDA, si può far stare tutto in 3 buffer da 16bit => 1920 * 1080 * 3 * 2 = 12MB
Se vogliamo usare il dual framebuffer abbiamo 24MB usati.
Ergo, sicuramente si dovrà utilizzare un morphologic anti-aliasing, ma mi pare che funziona molto bene e il costo computazionale si del tutto accettabile soprattutto in virtù del fatto che lo si usa su pannelli TV.
Faccio notare che l’atom non abbia l’AVX che anche se piccolo è un bel blocco di silicio.
Quello che mi sorridere è invece il tempo di caricamento.
Se queste macchine hanno un disco derivato da portili (2.5″ , 7200rpm) spostare 2GB di texture sarà parecchio doloroso in tempo di “tempo di caricamento” (2000MB / 60 MB*sec = 33sec) solo di trasferimento senza decompressione. :(
Scusate, mi è partito il commento senza correzioni :(
Non ti preoccupare, si capisce lo stesso e ti ringrazio del contributo.
Comunque nemmeno Bobcat supporta AVX. :)
Interessante il discorso sull’hard disk, ma c’è da dire che rispetto al lettore BluRay siamo a tempi rispettabili. Probabilmente adotteranno un caricamento dinamico delle texture, con un certo gruppo caricato subito, e via via quelle meno usate e/o più lontane dal punto in cui si trova il giocatore, giocando sul fattore LOD.
@Sapo84: a ciò che ha scritto Xeus32 aggiungo alcune cose. Intanto non mi pare che la 7770 brilli:
http://www.hwupgrade.it/articoli/skvideo/3137/amd-radeon-hd-7770-e-7750-l-ora-di-cape-verde_7.html
http://www.anandtech.com/show/5541/amd-radeon-hd-7750-radeon-hd-7770-ghz-edition-review/11
Certamente la banda complessiva della XBox One è, sulla carta, ben superiore. Però c’è da considerare il fatto che un PC ha la sua memoria dedicata, a latenza ben più bassa, che non interferisce con quella della scheda video, per cui non ruba banda alla memoria video, e si occupa generalmente anche della fisica.
Inoltre l’eSRAM non può essere usata per qualunque cosa, ma soltanto per memorizzare buffer, e usando tecniche di deferring il suo spazio è troppo ridotto.
Per cui, tirando le somme, tutto ciò andrà a incidere sulla qualità, come avevo già detto.
D’altra parte se rapportiamo il tutto alla vecchia 360, i cui giochi generalmente girano a 720p@30 FPS con AA 2x o 4x, il nuovo target (1080p@60 FPS e migliori effetti) richiede già rozzamento il quadruplo delle risorse, senza nemmeno tenere conto del deferred, e della fisica più avanzata (che sui PC con Radeon finora è spesso a carico della CPU).
Le recensioni della 7770 riguardano, peraltro, giochi di circa un anno e mezzo fa. Quando arriveranno le nuove console ci saranno engine più moderni, ma anche molto più pesanti…
Riguardo alla Wii U, mi pare che non se la passi così bene, visto che i giochi generalmente si piazzano a metà fra la 360 (che in genere mostra il miglior frame rate) e la PS3. Per cui gli sviluppatori possono dire quello che vogliono, ma i risultati contraddicono le loro dichiarazioni, che magari sono più che altro volte a difendere i loro prodotti e invogliare all’acquisto i giocatori. Marketing, insomma.
Infine sul Kinect, se il chip è integrato nella periferica, non sta sulla scheda madre… :) I 5 miliardi di transistor di cui si parla sembra si riferiscano soltanto ai componenti che stanno sulla seconda.
@Cesare Di Mauro
Non sono molto esperto di LOD, ma non penso si possano usare come dici. Se non carico le cose lontane a bassa risoluzione otterrei una scena incompleta, dall’altro lato, caricare le texture in alta definizione mente mi avvicino all’oggetto è una prassi abbastanza standard.
A mio modesto parere la 7770 verrà usata senza AA e se va bene a risoluzioni più basse come succede in COD MW2.
Alla fine commercialmente, quando hai un gioco con risoluzione maggiore di 720p è sicuramente un successo e la grafica sarà venduta come migliore di una xbox 360 anche con soli 1680×1050.
In più c’è il fattore hw dedicato.
Ho letto una guida Sony su come usare una SPE per ottimizzare i vertex buffer e migliorare quindi il cache fetching della GPU.
Subito pensavo che fossero pazzi, ma poi ho scoperto che MS aveva rilasciato una guida all’assembler dalla GPU per ottimizzarne le prestazioni.
Se l’hardware è quello, qualche workaround lo trovano.
Vi ricordo che una Console è in grado di eseguire un numero di render call quasi 20 volte superiori a quelli di un normale PC.
Mi aspetto una prestazione di almeno un 30 percento superiore a una 7770 solo per ottimizzazione driver, ottimizzazione shader, ottimizzazione codice, riduzione del OS.
Che ne pensi?
Tenendo conto anche del fatto che CPU e GPU possono comunicare direttamente e a elevata velocità (nonché bassa latenza), credo che possa essere un obiettivo realistico.
Non penso a risoluzioni più basse. Dovrebbe farcela a 1080p e 60FPS, con qualche forma di antialiasing.
La mia preoccupazione riguarda, piuttosto, il fatto che le console arriveranno a quasi 2 anni dall’introduzione della Radeon HD7770, e sono alle porte nuovi engine, decisamente più complessi e che richiederanno molte più risorse. Per cui credo che verrà sacrificata la qualità. E siamo soltanto agli inizi, visto che il loro ciclo di vita sarà appena iniziato.
Riguardo al LOD, il concetto è proprio quello che hai espresso: per la roba più lontana si caricano texture molto meno definite, e così via fino ad arrivare a texture di qualità più elevata quando gli oggetti sono più vicini.
Poiché un gioco si estende in uno spazio molto grande, non hai bisogno di caricare tutte le texture di qualità fin da subito, ma puoi limitarti a quelle usate dagli oggetti più vicini, caricando quelle meno definite con quelle più lontane. Man mano che ti sposti, usando il LOD provvederai a caricare le texture più definite che ti servono.
Ecco perché dicevo che non hai bisogno di riempire subito tutta la memoria con le texture, che richiederebbe tempi di caricamento troppo elevati per il giocatore messo lì ad aspettare. Cominci a caricare le texture più definite a partire dalla posizione in cui ti trovi, e man mano quelle meno definite usando il LOD, appunto, così il giocatore potrà iniziare già a giocare dopo un po’ di secondi, mentre l’engine si occuperà di schedulare i caricamenti dall’HD basandosi sulla posizione corrente e sulla direzione in cui ti sposti.
P.S. Riguardo alle SPE, l’obiettivo di Sony era quello di cercare di sfruttare il più possibile la loro potenza di elaborazione, in modo da ottimizzare il più possibile lo sfruttamento della GPU, che era sostanzialmente di fascia media all’epoca.
Non credo che quest’esempio possa essere applicabile alle nuove console, perché queste, in fin dei conti, utilizzano tecnologie prese direttamente dai PC, e dunque hardware ben noto e già sfruttato da un po’ di anni.
Credo che la partita delle ottimizzazioni si giocherà sulle caratteristiche particolari, quindi sulle modifiche fatte apportare appositamente da Sony e Microsoft a quell’hardware standard, a cui si aggiunge il fatto che CPU e GPU possono dialogare in maniera diretta e veloce.
Ho notato una piccola imprecisione:
Trinity (ma anche Bobcat) usa ancora l’architettura VLIW (uguale alle Radeon HD6xxx), mentre XBoxOne dovrebbe usare in teoria una versione leggermente migliorata di GCN.
Per il modo in cui gestiscono i thread, GCN risulta mediamente più efficiente a parità di streaming processor e di frequenza :)
Grazie Antonio, ho aggiornato il pezzo relativamente a quella parte. :P
ho trovato questo articolo, se tutto sarà vero mi sa che i manager microsoft devono avere seri problemi mentali…..
http://www.ilsussidiario.net/News/Hi-Tech/2013/6/18/PlayStation-4-vs-Xbox-One-Che-differenza-c-e-/404120/
Una piccola precisazione, non sono gddr3 ma ddr3 da 2133 MHz.
Inoltre MS ha appena dichiarato che Xbox one è 10x+cloud superiore a xbox360.
Il problema secondo me pero è un altro, hanno fatto una console più costosa ma meno potente di ps4 a livello GPU…pessima mossa secondo me.
ahahahaha ogni tanto la logica arriva in casa microsoft :D
http://www.videogame.it/xbox720/109472/xbox-one-microsoft-si-arrende-alle-proteste-dei-gi.html
Interessante che ora M$ se ne salti fuori con:
http://multiplayer.it/notizie/120601-i-calcoli-di-microsoft-erano-errati-xbox-one-puo-processare-piu-dati-di-playstation-4.html
Magari poi scopriranno che c’e’ addirittura qualke altro chip che non sapevano di aver implementato :)