Emotion Engine (lett. "Motore delle emozioni"[4]) è un microprocessore sviluppato da Sony e prodotto in collaborazione con Toshiba per la console da gioco PlayStation 2. La produzione del processore iniziò nel 1999, un anno prima della commercializzazione della console, e si concluse nel 2012, con la fine della produzione della console.[5]

Emotion Engine
Central processing unit
Prodottodal 1999 al 2012
Venduto daSony
Progettato daSony
ProduttoreSony, Toshiba
Applicazioniembedded
Specifiche tecniche
Frequenza CPU295[1][2] MHz
Frequenza FSB400 MHz
Processo
(l. canale MOSFET)
500[3] nm
Set di istruzioniRISC MIPS
Microarchitettura64 bit
N° di core (CPU)1
Cache L124 kB[1][2]
Cache L216 kB[1][2][N 1]

Le prime versioni di PlayStation 3, del 2006, erano dotate di un Emotion Engine integrato sulla scheda madre per raggiungere un livello hardware di emulazione e retrocompatibilità con i videogiochi PlayStation 2. Tuttavia nelle versioni dal 2007 in poi, a cominciare dalla versione Europea, Emotion Engine è stato eliminato per abbassare i costi. Al suo posto, per consentire la retrocompatibilità è stata utilizzata un tipo di emulazione a livello software, ma solo con la prima PlayStation.[6]

Caratteristiche modifica

Emotion Engine è un microprocessore complesso. Ricopre sia il ruolo di processore general purpose sia di processore vettoriale che assiste l'unità di elaborazione grafica.

Il nucleo principale è sostanzialmente un'unità superscalare R5900 – versione modificata dell'R5000 – a 295 MHz a istruzioni ridotte basato su architettura MIPS[1] e che implementa il set di istruzioni "MIPS IV".[2] La CPU cache di primo livello è larga 24 kB:[1] 16 kB per le istruzioni con associatività per la memoria a 2 vie (2-way set-associative), e 8 kB per i dati con associatività analoga. Non è propriamente dotato di una memoria cache di secondo livello, elemento che però viene sostanzialmente sostituito da una RAM scratchpad larga 16 kB.[1][2]

 
La struttura interna di Emotion Engine.

Sullo stesso die, l'R5900 è affiancato anche da una unità di calcolo in virgola mobile (FPU) dedicata e da due "unità vettoriali" VLIW a 128 bit in grado di funzionare come processori indipendenti.[2] Sul blocco principale di elaborazione risiede la prima unità vettoriale insieme all'R5900 e all'FPU, detta "Unità Vettoriale 0", che può opzionalmente funzionare in modo indipendente (modalità "micro") o come coprocessore dell'R5900 (modalità "macro"). La matrice di registro della unità 0, è costituita da 32 registri in virgola mobile a 128 bit, che possono essere divisi in quattro campi a precisione singola a 32 bit.[2] La memoria cache microcodice dedicata a questa unità raggiunge i 4 kB.[2]

Sul blocco secondario di elaborazione geometrica risiede la seconda unità vettoriale, detta "Unità Vettoriale 1", simile all'unità 0, ma più specializzata in quanto è un'unità totalmente indipendente destinata alla trasformazione di geometria computazionale per l'unità di elaborazione grafica, Graphics Synthesizer.[2] A tal fine, l'unità 1 si collega alla "GIF", un'interfaccia grafica dedicata anch'essa presente sul blocco secondario e con un bus a 64 bit e frequenza a 150 MHz, che a sua volta è collegata al "GS". L'unità 1 presenta anche una cache microcodice dedicata più grande, rispetto all'unità 0, pari a 16 kB.[2]

Esterni al blocco primario e secondario, ma giacenti sempre sul die, sono presenti anche un controller DMA programmabile a 10 canali e un coprocessore per immagini (IPU) con supporto per la decodifica di formati JPEG e MPEG.[2]

Considerando la totalità degli elementi che lo costituiscono, Emotion Engine può raggiungere un picco di performance complessiva in virgola mobile pari a 6,2 GFLOPS.[2] Secondo il benchmark "Dhrystone 2.1" la performance complessiva in MIPS, può raggiungere le 450 MIPS.[1]

Non possedendo proprietà di esecuzione fuori ordine o una vera CPU cache di secondo livello (così come neanche di una cache di primo livello più larga), le prestazioni dell'R5900 possono risentire pesantemente della mancanza di istruzioni, ma soprattutto dati, nella cache; mentre la modalità "micro" che rende indipendente l'unità 0 è generalmente prossima al non-utilizzo.[2] Nonostante ciò, alcuni sviluppatori al lavoro su PlayStation 2, avrebbero affermato che almeno il 60% delle performance di picco, fossero realizzabili con prestazioni sostenute.[2]

Emotion Engine si collega ai 32 MB di memoria Rambus DRAM principale con frequenza a 400 MHz – due moduli a 16 bit, amplificati in dual channel – raggiungendo una velocità di trasmissione di circa 3,2 GB/s.[1][2]

Note modifica

Esplicative
  1. ^ RAM scratchpad equivalente a CPU cache di secondo livello.
Fonti
  1. ^ a b c d e f g h (EN) Console Specs, su Angelfire. URL consultato il 24 novembre 2019.
  2. ^ a b c d e f g h i j k l m n o (EN) Brian Neal, Sony Playstation 2, in Ace's Hardware (a cura di), Game Consoles: A Look Ahead, 14 dicembre 2003. URL consultato il 24 novembre 2019 (archiviato dall'url originale il 2 febbraio 2004).
  3. ^ (EN) J.F. Scott, Nano-Ferroelectrics, in Nanostructures: Synthesis, Functional Properties and Application, Springer, 2003, pp. 583-600, ISBN 9789400710191. URL consultato il 24 novembre 2019.
  4. ^ Il motore delle emozioni rende il gioco realtà, su la Repubblica, 4 marzo 2000. URL consultato il 28 gennaio 2023.
  5. ^ (EN) Sony confirms production end for PlayStation 2 worldwide, su Engadget, 7 gennaio 2013. URL consultato il 24 novembre 2019.
  6. ^ (EN) Sony Confirms, Discusses PS3 Emotion Engine Removal, su Gamasutra, 26 febbraio 2007. URL consultato il 24 novembre 2019.

Bibliografia modifica

Voci correlate modifica

Altri progetti modifica