Come ogni mese, benvenuti a questo nuovo appuntamento con Deep In Gametechs, la rubrica di Natural Born Gamers dove vengono affrontati ed approfonditi aspetti, temi e questioni legate al mondo dei videogames dal punto di vista tecnico-realizzativo. Cercheremo infatti di spiegare, descrivere, contestualizzare e valutare tutto ciò che, di fatto, garantisce la realizzazione dei prodotti da noi tanto amati e che, è bene ricordarlo, non si generano per magia o solo grazie alla fantasia dei game artist …tutt’altro!
Senza annoiarvi con esasperati tecnicismi, cercheremo, con la massima chiarezza e semplicità possibile, di addentrarci di volta in volta in un diverso argomento con le sue relative implicazioni: hardware o software che sia. Prendendo a prestito una massima utilizzata in ambito enogastronomico, potremmo azzardare un: “Giocare senza sapere non è che una (piccola) parte del piacere”. D’altronde, siamo oltretutto fortemente convinti che la conoscenza, anche solo formale, di determinati aspetti, non solo garantisca una migliore fruizione del prodotto, ma consenta una scelta molto più consapevole anche in fase di acquisto.
Qui dunque non si fa della chiacchiera soggettiva ed inconcludente su argomenti dove alla fin fine è sostenibile tutto ed il contrario di tutto. Qui si parla, in concretezza, di numeri, dati, logiche implementative. Del piacere di scoprire, di conoscere. D’esser informati e consapevoli, poiché, citando Leonardo, “Naturalmente li omini boni desiderano sapere”.
Buona lettura e buon divertimento!
L’esRAM. Nel nostro caso non si tratta di un farmaco antidepressivo! Bensì è l’acronimo di Embedded Static Random Access Memory, Memoria integrata statica ad accesso casuale.
Adottata e sbandierata prima, rimossa poi: in questa puntata di Deep in Gametechs approfondiremo il concetto di esRAM e, oltre agli usi per i quali è stata concepita, andremo ad analizzare da vicino lo specifico caso dell’XBOX ONE e della XBOX ONE X – Project Scorpio. Andando con il dovuto ordine, inizieremo a spiegare con semplicità cosa sia una esRAM e, in maniera strettamente correlata, quali siano le sue potenzialità. Anzi, a beneficio dei meno esperti, chiariremo/ripasseremo propedeuticamente cosa sia una RAM e lo faremo attraverso una metafora a cui ricorreremo più volte nel corso dell’articolo. Peraltro, non vogliatecene se per molti di voi i concetti che andremo a descrivere possono risultare banalmente noti o se la spiegazione risulti eccessivamente semplicistica.
La biblioteca della memoria
Immaginiamo il sistema di memoria di un elaboratore come una grande biblioteca, fornita di scaffali, bibliotecari e tavoli di lettura, sui quali gli utenti – che nel nostro racconto equivalgono ai processori – possono appoggiare, aprire, consultare, leggere e studiare i libri di loro interesse.
Come si può facilmente intuire, più grandi e numerosi sono gli scaffali, più libri potranno essere contenuti. Ugualmente, anche il disporre di molti bibliotecari e di numerosi e comodi tavoli di lettura costituisce un aspetto fondamentale al fine di garantire una biblioteca funzionale ed efficiente. Immaginatene una vastissima ma con un solo tavolo a disposizione degli utenti su cui leggere: le code ed i tempi di attesa sarebbero interminabili! Così come se vi fosse un solo bibliotecario: anche in questo caso il collo di bottiglia si rivelerebbe determinante nel condannare tutta la biblioteca ad una sicura inefficienza.
Ecco allora che appare chiaro come sia auspicabile avere un numero di tavoli, e di bibliotecari, adeguatamente proporzionato alla quantità di libri e all’utenza della biblioteca stessa. È quindi ugualmente opportuno che vi siano sia tanti tavoli ma che anche il reperimento dei libri sia efficiente e veloce; cosa garantita da tanti bibliotecari. La quantità della RAM e la “velocità” (in senso molto generico) della stessa.
A proposito di RAM
Già che siamo sull’argomento, chiariamo anche cosa si intende per ampiezza di banda e latenza della RAM. Per fare ciò utilizzeremo un semplice esempio, prendendo a modello due bibliotecari del nostro solito esempio. Li chiameremo Rosso e Blu. Rosso è velocissimo a recuperare il libro richiesto e correre come un fulmine fino all’utente che glielo ha richiesto. La latenza è il tempo complessivo che trascorre da quando viene inoltrata una richiesta a quando si ottiene la relativa risposta. Se desiderate approfondire ulteriormente, al seguente link di un notissimo produttore di memorie è presente, in italiano, un’ottima spiegazione http://it.crucial.com/ita/it/velocita-o-latenza-qual-e-il-fattore-piu-importante.
Torniamo comunque al nostro amico Rosso. È rapidissimo, però è un po’ mingherlino e riesce a portare solo pochi libri alla volta e per giunta non troppo pesanti. Potremo quindi affermare che Rosso ha una latenza bassissima, caratteristica positiva, ed una relativamente bassa ampiezza di banda, caratteristica negativa.
Anche se ci sarete già arrivati da soli, Blu è tutto il contrario. Non è velocissimo quanto il suo collega nel tornare con il volume desiderato all’utente ma, al contrario di Rosso, riesce a portare in un solo viaggio una decina di tomi di un’enciclopedia. In questo caso potremo dire che Blu ha una latenza piuttosto elevata, caratteristica negativa, ma una ampiezza di banda molto elevata, cosa positiva. Manco a dirlo, in genere, le due caratteristiche sono inversamente proporzionali ed un bibliotecario che eccelle in una delle due ha delle maggiori limitazioni nell’altra. Proprio come nel caso dei nostri amici Rosso e Blu.
Lo stratagemma dell’esRAM
Rimanendo sempre sull’esempio della biblioteca, è di assoluta comodità utilizzare lo stesso anche per spiegare cosa sia l’esRAM. Immaginiamo ora che nella nostra biblioteca vi sia una corposa parte dedicata ad uno specifico settore di libri, molto richiesta dall’utenza. Per simpatia ed affinità con il nostro contesto immaginiamo che una corposa parte della biblioteca sia dedicata ai fumetti. In effetti, parlando di grafica, il parallelismo è particolarmente felice. I fumetti sono contenuti in volumi relativamente piccoli ma spesso gli utenti richiedono una serie tutta assieme.
In queste situazioni, soprattutto Rosso è un po’ in difficoltà e, per evitare che gli cedano le braccia sotto il peso dei libri è costretto a fare più viaggi. Il nostro amico però è furbo e, essendosi accorto che alcune serie sono richieste molto più spesso di altre, tiene quelle più popolari a portata di mano, su un tavolino di servizio. Questo tavolino di servizio, dedicato ai fumetti, equivale con i dovuti paragoni proprio alla esRAM. Gli appassionati di fumetti, che nel nostro caso possono rappresentare la GPU, avranno quindi un trattamento migliore rispetto agli utenti generici, che, sempre con le dovute semplificazioni, possono corrispondere alla CPU.
Acronimi
Chiarito il valore funzionale dell’esRAM, se vi state chiedendo a cosa facciano riferimento i termini “Embedded” e “Static” è presto detto e vale la pena dedicarci qualche riga. “Static” definisce il particolare tipo di RAM che, per intrinseche caratteristiche costruttive legate all’elettromagnetismo, consente fra le altre cose di mantenere l’informazione contenuta per un tempo indefinito. Sono anch’esse caratterizzate da una bassissima latenza, ma sono relativamente ingombranti, hanno un elevato costo di produzione e, conseguentemente, di mercato.
In contrapposizione le DRAM, dove la “D” sta per Dynamic, necessitano, per conservare i dati in esse contenuti, di un continuo “refresh” prodotto da un impulso elettrico. Per tale motivo ci si riferisce spesso ad esse anche con il termine di “memoria volatile”. Indovinate: sono molto più economiche e compatte delle SRAM. C’è quindi un motivo molto prosaico se l’XBOX ONE possiede 8Gb di DRAM e “solo” 32Mb di (e)SRAM. Infine, per quanto riguarda la “E” di Embedded, sta a significare che essa è integrata, vale a dire che è direttamente connessa, montata a ridosso, del componente che ne ha il controllo e la possibilità di utilizzo. Nella fattispecie, nel caso dell’XBOX ONE, della sua GPU.
L’XBOX ONE
L’impiego di una esRAM è esattamente ciò che Microsoft aveva progettato in vista dell’uscita dell’XBOX ONE a fine 2012. A dirla tutta, questa scelta architetturale venne pubblicizzata come se fosse l’uovo di colombo. La risoluzione di tutti i problemi di lentezza, e in generale di performances, della DRAM montata sulla console in questione. Una sorta di formula magica messa in campo con genialità sopraffina e che avrebbe di colpo, magicamente, risolto tutti i problemi. Fu così che, come anticipato, agli 8 GB di RAM con cui equipaggiarono la loro console, affiancarono anche una esRAM di 32Mb complessivi, ad esclusivo utilizzo della GPU. Per onore di cronaca, ma ci ritorneremo più avanti, Sony scelse per la sua Playstation 4 un approccio del tutto opposto. Riportiamo ora un estratto delle dichiarazioni che all’epoca fece Frank Savage, all’epoca Xbox One Team Partner Development Lead.
We have resource creation settings that allow you to put things into there, and don’t have to all reside in the ESRAM, there can be pieces of it that can reside in regular memory as well. So for example if I’m a racing game, and I know that the top third of my screen is usually sky and that sky doesn’t get touched very much, great, let’s leave that in regular memory, but with the fast memory down here we’re gonna draw the cars. […] There’s no CPU access here, because the CPU can’t see it, and it’s gotta get through the GPU to get to it, and we didn’t enable that.
Un’arma a doppio taglio
Abbiamo deliberatamente lasciato in lingua originale la dichiarazione per conservare tutte le sfumature, ma riepiloghiamo in italiano il succo del discorso. L’ESRAM è una memoria, che può essere usata in concomitanza con la RAM abituale dove è particolarmente utile collocare parti grafiche che vengono continuamente richieste. Ad esempio, in un gioco di guida le parti, come il cielo, che non necessitano di essere lavorate di sovente [touched very much] possono essere lasciate alla “memoria regolare” (la RAM), mentre l’esRAM potrà dedicarsi alle automobili. In più la CPU non può utilizzare l’esRAM, per il semplice fatto che non la vede. Per vederla dovrebbe passare dalla GPU, ma ce ne siamo ben guardati dal garantire questa possibilità.
Al netto di quanto dichiarato è altrettanto evidente come una simile architettura implichi, affinché si riveli effettivamente vincente, una programmazione ad hoc. È scontato aggiungere come l’abilità nel modellare del codice apposito possa variare notevolmente in base alla bravura degli sviluppatori, o al tempo ed alle risorse che a loro sono concessi. Un’arma a doppio taglio: efficace sia di dritto che di rovescio, ma potenzialmente pericolosa anche per chi la sta impugnando.
Consigli per gli acquisti
Occorre sempre discernere dati e discorsi tecnici da ciò che i pubblicitari riportano. Sovente questi ultimi riprendono per sentito dire e mistificano a proprio uso e consumo, d’altronde il loro ruolo è quello di indurre all’acquisto e non di illustrare e divulgare. Ciò non significa neppure che qualsiasi cosa detta da pubblicitario rappresenti per forza di cose un’informazione volutamente falsa e fallace. Semplicemente occorre contestualizzare e decontestualizzare in maniera consapevole; non farlo può portare a delle cantonate o far cadere pericolosi tranelli.
Inoltre, come quasi sempre avviene quando si parla di prestazioni, le affermazioni assolutistiche non sono mai, di per sé, troppo veritiere ed affidabili. Molto sovente, al contrario, la verità sta nel mezzo. Malauguratamente uno dei metodi più sicuri, ma poco utili, è l’inappellabile prova del tempo che, è pur vero, a volte si chiama semplicemente senno-di-poi.
L’XBOX ONE X (Project Scorpio per gli amici)
Dopo l’interruzione filosoficheggiante e generalista, continuiamo il racconto e vediamo cosa è successo e cosa sia stato dichiarato in epoca recente, al lancio di Project Scorpio / XBOX ONE X.
Saremo brutali nella nostra esposizione: l’esRAM è totalmente scomparsa. Completamente rimossa dall’architettura della mid-gen console di casa Microsoft. In altri termini, il miracoloso stratagemma, il tavolino di servizio della nostra biblioteca immaginaria di cui sopra, è stato portato via. Non potendo certo passare inosservata, la spiegazione fornita dalla stessa Microsoft nella persona di Nick Baker “General Manager of Xbox Console Architecture” è stata la seguente:
Con il sistema di memoria che abbiamo ora, abbiamo abbastanza banda da poter coprire e anche più di ciò che avevamo dalla ESRAM. Semplicemente usiamo il nostro sistema di memoria virtuale per mappare i 32MB della esRAM. […]
La latenza è più elevata, ma in termini di performance complessive la banda più potente e le prestazioni superiori della GPU ci permettono di non avere alcun degrado di performances.
La volpe e l’uva?
Sintetizzando, e certamente anche un pochino semplificando le affermazioni di cui sopra, possiamo riassumere il tutto con un bel “ora non ne abbiamo più bisogno”. Malignamente, ma come vedremo anche superficialmente, si potrebbe essere portati a ritenere che la soluzione implementata all’epoca non si sia rivelata così efficace come inizialmente auspicato e che l’attuale rimozione non sia niente più di una legittima semplificazione. …camuffando poi a livello comunicativo tale retromarcia con un qualcosa che sa tanto della vecchia favola di Esopo della Volpe e dell’uva. Il già accennato “non ci serve più!” suona effettivamente molto simile al “tanto quel grappolo era acerbo”.
È pur vero che uno stratagemma di questo tipo dovrebbe rimanere valido a prescindere dal contesto. Il fatto che non vi sia al momento per “sovrabbondanza” una necessità stringente, non è garanzia che in futuro possa verificarsi nuovamente una situazione di bisogno/utilità. Perché dunque precludersi la possibilità di mantenere in gioco una carta di questo tipo? Nel prosieguo dell’articolo cercheremo di dipanare ulteriormente il motivo di questa scelta e di valutarne quanto più oggettivamente la bontà sia a livello tecnico che comunicativo.
Il bandolo della matassa, anzi, della RAM
Certamente l’aumento della RAM e della velocità della stessa è una spiegazione accettabile. Ricordiamo che l’XBOX ONE X è equipaggiata con 12GB di memoria RAM: 8GB per i giochi e 4GB per il sistema operativo. Di contro su XBOX ONE sono presenti “solo” 5GB, ripartiti come segue: 3GB ai giochi e i restanti 2 all’OS. Più abbondanza equivarrebbe a una minore necessità di andare a ricercare soluzioni esotiche. Ciò che però spiega in maniera molto più precisa, e corretta, il cambio di rotta di Microsoft con l’esRAM è il tipo di memoria utilizzata, differente, per le due console.
La memoria montata sull’XBOX ONE è del tipo DDR3, una memoria con una bassissima latenza ma con una larghezza di banda non così eccezionale. Se vi ricordate l’esempio dei due bibliotecari ad inizio articolo, questo tipo di memoria è riconducibile al bibliotecario Rosso. Al contrario l’XBOX ONE X è stata equipaggiata con banchi RAM di tipo GDDR5, la stessa presente su Playstation 4, che complessivamente superiori alle DDR3, hanno tuttavia caratteristiche che ricalcano molto da vicino il profilo del bibliotecario Blu. Un’ampiezza di banda enorme a scapito di una latenza un po’ più alta. Compensata tuttavia dal quantitativo superiore: in altre parole ci sono più bibliotecari Blu.
In conclusione
Tutto questo corrisponde esattamente ciò che è stato dichiarato da Microsoft e che, alla luce di queste considerazioni, assume una veridicità (ed un’onestà) sicuramente più consistente. Ovviamente la “bugia bianca” è rappresentata dall’omissione, nella spiegazione, del cambio di tipologia di RAM. Con tutti i dati a disposizione, leggendo tra le righe, sarebbe stata un’implicita ammissione che la “forza bruta” abbia avuto la meglio sull’astuzia.
In effetti Sony imparò qualche anno addietro, sulla propria pelle, che una potenziale superiorità architetturale non si traduce necessariamente in migliori prestazioni. All’epoca di PS3, infatti, Sony optò per il processore CELL che, necessitando di una programmazione ad hoc, non fu mai sfruttato a pieno dai programmatori. Lezione appresa dalla casa giapponese che con PS4 si affidò ad una architettura decisamente più convenzionale. Saremmo pronti a scommettere che sul volto di qualche ingegnere giapponese, intento ad osservare gli schemi contenuti nella documentazione tecnica della XBOX ONE X, sarà probabilmente comparso un malizioso sorrisetto d’ironico compiacimento. E che in seguito qualche bravo pubblicitario, opportunamente imbeccato, si sia inventato uno slogan di benvenuto ancora più sottile ed a doppio senso di quel che a primo acchito potrebbe sembrare.
Con questa nota finale l’autore desidera pubblicamente ringraziare il suo carissimo amico Andrea Saltarello per i preziosi consigli forniti durante la revisione del presente articolo.
ildagnele.nbg@gmail.com