ps4-hrdware-iconAncora una volta torniamo sul discorso della sottile differenza tra l'architettura della PlayStation 4 e quella della Xbox One. Parliamo dell'approccio alla memoria di sistema delle due console. Entrambe utilizzano un'APU semi-custom di AMD con CPU x86 "Jaguar" 8-core e iGPU Radeon "GCN" (con 18 CU per la PS4 e 12 CU per l'XB1), ma il chip della console di Sony è abbinato a 8GB di memoria GDDR5 con bus a 256-bit , condivisa tra CPU e GPU, mentre quello di Microsoft si appoggia ad un sottosistema misto composto da 8 GB di tradizionali memorie DDR3 @256-bit più una piccola eSRAM (32MB) integrata direttamente on-die.

Sulla PS4 sappiamo che GPU e CPU hanno pieno accesso a tutta la memoria di sistema (come ammesso dalla stessa Sony) e questo lascia intendere un meccanismo di comunicazione  ispirato alla tecnologia hUMA/HSA che AMD implementerà nell'APU Kaveri. Tuttavia non possiamo escludere la presenza di due memory controller separati tra CPU e iGPU che condividono il solo controller DRAM sulla PS4. Anche Microsoft dovrebbe aver utilizzato qualcosa di simile ma tutta la gestione è resa più complessa dell'aggiunta dell'eSRAM.

Nel corso del lungo discorso di Mark Cerny al GameLab di Barcellona il lead architect del progetto Orbis ha spiegato il motivo per cui Sony ha rinunciato all'utilizzo dell'eDRAM sulla PS4 (notare che eDRAM ed eSRAM possono essere utilizzate per lo stesso scopo. La seconda è più facile da integrare, a parità di capacità, e non necessita di refresh). La slide che segue mostra le due opzioni valutate dalla casa di Sony, quella a sinistra è della PS4 e quella a destra di un'ipotetica PS4 mai realizzata.

ZbyUT5D

Il confronto prestazionale è tra un design con 8GB di GDDR5 @256-bit unificato ed uno con 4GB GDDR5 @128-bit + una piccola eDRAM. Come possiamo notare la differenza di bandwidth è enorme (anche se Sony ha esagerato perchè un'eDRAM da 1TB/s significa una velocità di accesso simile alla cache L2 che AMD o Nvidia utilizzano sulle GPU, parliamo di quantitativi sotto i 512KB, se paragonata ai 50GB/s dell'eDRAM da 64MB off-board Crystalwell o ai 100GB/s all'eSRAM da 32MB on-board della XB1, con costi di realizzazione spropositati). Sony sottolinea che questa differenza non è in grado di giustificare la difficoltà nello sfruttare effettivamente la banda a disposizione della seconda soluzione (oltre al prezzo) e che sono stati gli stessi sviluppatori dei videogiochi a preferire/consigliare il primo approccio (al pari dell'architettura X86). Questo significa che Sony si è finalmente aperta all'approccio "developer friendly" ed ha imparato dagli errori del passato fatti con l'architettura CELL e le memorie XDR (Cell è un fantastico microprocessore ma la sua difficoltà nella programmazione si è rivelata un'arma a doppio taglio).

E Microsoft? La casa di Redmond è scesa ad un compromesso (l'ennesimo!): per bilanciare i costi di produzione e poter inserire della memoria embedded ha rinunciato alle GDDR5. Microsoft ha le risorse e la capacità per interfacciarsi direttamente con gli sviluppatori ed ha manifestato la volontà di aiutarli nello sfruttare appieno l'eSRAM (l'aver presentato la tecnologia DirectX tiled resources va proprio in questo senso).

Vedremo quale delle due soluzioni risulterà vincente, di sicuro gli sviluppatori indie si orienteranno verso la soluzione PS4 così come tutti quelli che vogliono semplificare il porting da/verso PC.