Dall’annuncio della prossima console di Nintendo, il Wii U, che dovrebbe arrivare quest’anno, si è dato ufficialmente il via alle speculazioni sull’hardware della prossima generazione, e su quello che sarebbe (il condizionale rimane un obbligo in attesa delle specifiche definitive) in grado di fare.
L’ultima notizia, di qualche giorno fa, attesta la Wii U come due volte “più potente” della XBox 360, mentre il successore di quest’ultima sembrerebbe sei volte “più potente” del predecessore.
Fermo restando che il concetto di “potenza” di una macchina rimane, in ogni caso, relativo. “Potente” rispetto a cosa? La CPU? La GPU? La quantità di memoria di sistema e/o video? ecc. Per non parlare poi della diversa implementazione di uno stesso componente; ad esempio CPU in-order oppure out-of-order, cache di tipo e/o dimensioni diverse, ecc., che fanno “esplodere” il numero di casi e scenari possibili che comportano risultati anche molto diversi (e non sempre scontati).
Tralasciando il ginepraio che ne deriva, e considerato che si sa ancora molto poco persino sulla console già presentata (che peraltro subisce continue variazioni), penso sia più interessante riflettere su cosa ci potrebbe aspettare in termini di “silicio a disposizione”, compreso qualche scenario d’impiego, grazie alla moderna tecnologia a disposizione.
Nel far questo prenderò come esempio la XBox 360, ma il discorso vale similmente per la Playstation 3 (con qualche distinguo) mentre uno a parte dev’essere fatto per la Wii, che ha avuto una storia diversa rispetto alle altre (e anche rispetto ai suoi predecessori).
Commercializzata nel novembre del 2005, questa console ha fatto uso della tecnologia disponibile al momento, cioè il processo produttivo a 90nm impiegato per il microprocessore, la GPU, la memoria embedded (10MB di eDRAM) e quella centrale/video (512MB, unificati) e il chipset (che include, nel southbridge, anche una sezione apposita di decodifica hardware del suono compresso in formato WMA-Pro).
Lo scorso anno è stato, invece, impiegato ampiamente il già maturo processo a 32nm nei vari componenti, a cui si è aggiunto anche quello a 28nm per alcuni prodotti (in particolare per le ultime GPU di AMD, le nuove Radeon della famiglia HD 7000, di cui la HD 7970 rappresenta il capostipite) ed è quello che probabilmente potrebbe venire adottato, anche se Intel ha già anticipato tutti col processo a 22nm e l’introduzione dei famosi transistor tri-gate.
In termini molto spiccioli (mi scuseranno gli esperti in materia per la banale approssimazione a cui ricorrerò), fra il processo a 90nm e quello a 28nm c’è sostanzialmente una differenza di un ordine di grandezza.
Calcolatrice alla mano, ed eseguendo un calcolo “bovino”, significa che quest’ultimo occupa meno di un terzo (il 31,1% circa) dello spazio per ogni dimensione (orizzontale e verticale), dunque tenendo conto di entrambe si arriva a poco meno di un decimo (9,67% circa).
Tradotto in soldoni, questo risultato può essere visto in due modi diversi, a seconda di cosa interessi evidenziare. Il primo è ovviamente lo spazio occupato, per quanto già detto: un componente realizzato a 90nm occuperà un decimo dello spazio se realizzato a 28nm, e quindi costerà molto meno produrlo (non mi azzardo a sparare un decimo perché non ho alcuna idea dei costi che stanno dietro alla realizzazione di fabbriche e strumentazioni adeguate, ricerca inclusa).
Ribaltando il discorso possiamo dire, invece, che nello stesso spazio occupato dal dispositivo a 90nm, con quello a 28nm è possibile infilare più di 10 volte il numero di transistor impacchettati rispetto alla precedente tecnologia.
Un numero decisamente impressionante se consideriamo che mettendo assieme soltanto CPU e GPU (ed eDRAM nel caso della XBox 360) si arrivava a circa mezzo miliardo di transistor, e sarebbe quindi lecito immaginare, ma soltanto immaginare sia chiaro, che si potrebbe arrivare a 5 miliardi di transistor come budget a disposizione per queste due importantissime componenti della prossima generazione.
Cosa farci con tutto questo ben di dio è appannaggio degli ingegneri che hanno chiaro in mente l’obiettivo da raggiungere (forse un po’ meno per quelli di Sony, che finora hanno tirato fuori hardware difficile da utilizzare per una console, o tarato male), tenendo conto dello stato dell’arte della tecnologia e della direzione verso cui ci si sta orientando (non mi stancherò mai di ripetere che le console, appena uscite, hanno rappresentato il nuovo punto di riferimento col quale confrontarsi).
Se la compatibilità è importante, parte di questo budget potrebbe essere impiegato per integrare direttamente l’intero hardware precedente in uno spazietto all’interno del chip (ricordo che si occuperebbe all’incirca un decimo), in modo da garantirla pienamente senza ricorrere alla classica emulazione (che richiede comunque parecchie risorse, tant’è che Sony, nonostante i pomposi proclami, non è mai riuscita a integrarla pienamente e in maniera trasparente nella PlayStation 3, contrariamente alla PS2 che, invece, è stata in grado di emulare senza problemi la prima).
Comunque non è necessario relegare questo pezzo di hardware esclusivamente a tale scopo, e infatti nessuno vieterebbe di utilizzare la CPU della XBox 360 anche per agevolare lo sviluppo dei nuovi titoli, scaricandole parte del lavoro. Ad esempio si potrebbe occupare di gestire l’audio, il Kinect, il sistema operativo, e magari l’intelligenza artificiale, lasciando la “parte nuova” a smazzarsi i calcoli “massicci” della scena, della fisica e dei vari effetti speciali.
D’altra parte se la prima XCPU aveva 3 core, non vuol dire che, avendo 10 volte il numero di transistor a disposizione, la prossima ne debba avere necessariamente 30 o giù di lì. Lo stesso discorso è applicabile anche alla PlayStation 3: avendo la CPU 1 core “general purpose” e 7 “coprocessori SIMD”, non vuol dire che la prossima debba averne 10 e 70 rispettivamente.
E’ più sensato immaginare che il pezzo forte sia rappresentato da una nuova CPU, che sia pensata per svolgere meglio e/o in maniera più efficiente i calcoli rispetto alla precedente. Certamente multicore (la tendenza ormai è questa, e sarà sempre più così), magari con 8-16 core (e ognuno in grado di far girare 2 o più thread), ma non con un numero così elevato. Avere molti core, infatti, richiede la presenza e l’uso di parecchie risorse da dedicare al loro arbitraggio, alla sincronizzazione fra le varie parti, e alla coerenza dei dati.
Come pure è molto probabile anche la presenza di un quantitativo molto più elevato di cache L2 ma, soprattutto, l’introduzione di abbondanti cache L3, in maniera da ridurre il più possibile l’accesso alla ben più lenta memoria principale (rispetto alle altre componenti è quella che, da sempre, presenta maggiori difficoltà a scalare). Le cache, si sa, si mangiano buona parte della “torta”, ed è quindi ipotizzabile che molto del budget sia per esse impiegato.
Sulla GPU il discorso si complica. Per la XBox360, in particolare, perché faceva uso di una GPU innovativa e calzava a pennello per i compiti a lei assegnategli, ma soprattutto per la memoria eDRAM impiegata. Sappiamo, infatti, che quei 10MB venivano utilizzati per il Color Buffer e lo Z-Buffer, e che tenendo conto della risoluzione e del filtro di anti-aliasing adottato (FSAA fino a 4x), erano del tutto insufficienti.
Infatti per gestire la risoluzione di 720p (1280×720 pixel), venivano richiesti 3 “passaggi” della scena (dividendola in 3 grandi tile) col filtro 4x: 1280x720x(4 byte Color Buffer + 4 byte Z-Buffer)x4 (filtro) = circa 29,5Mbyte di spazio (da cui la divisione “in 3” della scena: poco meno di 10MB per tile). In Full-HD (1920×1080) ne servirebbero, invece, poco più di 66MB, sempre per evitare di suddividere la scena in tile (e al momento anche senza tenere conto della banda di memoria richiesta allo scopo).
Avendo a disposizione 70MB di eDRAM, cioè 7 volte la quantità della precedente, il problema sarebbe risolto, ma non si sa se l’approccio dell’eDRAM verrà ancora mantenuto con la prossima XBox. Se la compatibilità sarà un perno della nuova console, per lo meno i 10MB di eDRAM saranno presenti, ma rimarrebbero sprecati se la nuova GPU fosse basata su tutt’altra architettura.
E’ scontato che, dopo tutto questo tempo, la GPU vada assolutamente rivista ed eventualmente adeguata, specialmente per la PlayStation 3 che ne montava una abbastanza vecchia già all’epoca. E’ lecito attendersi il supporto a shader model più avanzati, con un numero molto elevato per essi, ma l’immaginazione si ferma qui.
Per quanto riguarda la memoria di sistema e/o video, passare dai 512MB totali della precedente generazione ad almeno 4GB della prossima credo sia plausibile, oltre che auspicato anche dagli stessi sviluppatori. La speranza è che Sony comprenda finalmente l’importanza della memoria video, e che quindi presenti una console con un quantitativo più elevato (rispetto a quella di sistema, se sarà ancora presente questa suddivisione), anche se la PSP Vita, che risulta troppo sbilanciata e penalizzata da questo punto di vista, rappresenta un segnale negativo.
Infine sulle frequenze di clock di CPU e GPU (e memorie), non mi aspetto valori estremamente elevati rispetto al passato. I 3,2Ghz della CPU e i 500Mhz circa delle GPU erano già tanti per l’epoca, e inoltre sappiamo che aumentare la frequenza comporta problematiche che portano ad aumentare eccessivamente i consumi. 4,5-5Ghz sarebbero auspicabili per le CPU, e circa 1GHz per le GPU.
Il Wii U, come già detto, merita un discorso a parte. Molto di quanto già detto è chiaramente applicabile anche alla Wii e al suo successore, ma pensare che quest’ultimo debba presentare un hardware circa 10 volte più potente del predecessore sarebbe un’ipotesi lecita, al pari delle altre, ma comunque viziata da una completa decontestualizzazione nei riguardi del punto di partenza.
Il Wii, come sappiamo, era il successore del Gamecube, ma Nintendo ha sostanzialmente riciclato il vecchio hardware, approfittando dei vantaggi del nuovo processo produttivo a 90nm, e portando quindi ad aumentare il solo clock generale del 50%, oltre all’aggiunta di altri 64MB di memoria al sistema. CPU e GPU sono rimaste, quindi, sostanzialmente invariate rispetto al Gamecube (si vocifera di leggeri cambiamenti a quest’ultima).
Per cui se Nintendo volesse realmente rimettersi al passo della concorrenza, dovrebbe, oltre ad approfittare dei miglioramenti del passaggio dai 90 ai 28nm, recuperare anche il precedente gap dal Gamecube (che era costruito a 180nm, se la memoria non m’inganna).
I numeri che circolano per adesso lasciano pensare che ciò non sia avvenuto, e che quindi la grande casa giapponese continuerà nella sua politica di risparmio che, comunque, le ha consentito di risalire la china rispetto alla concorrenza e tornare leader di mercato. Di mercato, ma non tecnologico…