Emotion Engine: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
Riscrivo e semplifico la voce. Inserisco portali, fonti, una pubblicazione e il template CPU.
Riga 1: Riga 1:
{{CPU
{{F|tecnologia|aprile 2010}}
[[File:Sony EmotionEngine CXD9615GB top.jpg|thumb|Emotion Engine]]
|name = Emotion Engine
|image = Sony EmotionEngine CXD9615GB top.jpg
L<nowiki>'</nowiki>'''Emotion Engine''' è una [[CPU]] sviluppata e fabbricata da [[Sony]] in collaborazione con [[Toshiba]] per la console Sony [[PlayStation 2]].
|image_size = 170
|caption =
|produced-start = [[1999]]
|produced-end = [[2012]]
|soldby = [[Sony]]
|designfirm = [[Sony]]
|manuf1 = [[Sony]], [[Toshiba]]
|slowest = 295<ref name=CS>{{Cita web|lingua=en|url=http://www.angelfire.com/electronic2/mariotan/|titolo=Console Specs|sito=Angelfire|accesso=24 novembre 2019|}}</ref><ref name=EE>{{cita web|lingua=en|url=http://aceshardware.com/read.jsp?id=6000026|urlarchivio=https://web.archive.org/web/20040202185047/http://www.aceshardware.com/read.jsp?id=60000286|titolo=Sony Playstation 2|curatore=Ace's Hardware|data=14 dicembre 2003|dataarchivio=2 febbraio 2004|opera=Game Consoles: A Look Ahead|autore=Brian Neal|urlmorto=sì|accesso=24 novembre 2019}}</ref><!-- Frequenza massima, inserita qui per rendere il template correttamente visualizzabile -->
|slow-unit = MHz
|fsb-slowest = 400
|fsb-slow-unit = MHz
|size-from = 500<ref name=EE2>{{cita libro|lingua=en|autore=J.F. Scott|capitolo=Nano-Ferroelectrics|titolo=Nanostructures: Synthesis, Functional Properties and Application|anno=[[2003]]|editore=[[Springer (azienda)|Springer]]|isbn=9789400710191|pp=583-600|url=https://books.google.com/books?id=z2ryCAAAQBAJ&pg=PA584|accesso=24 novembre 2019}}</ref>
|arch = [[RISC]] [[Architettura MIPS|MIPS]]
|microarch = {{M|64||bit}}
|numcores = 1
|l1cache = {{M|24|k|B}}<ref name="CS"/><ref name="EE"/>
|l2cache = {{M|16|k|B}}<ref name="CS"/><ref name="EE"/><ref group="N">[[RAM scratchpad]] equivalente a [[CPU cache]] di secondo livello.</ref>
|application = ''[[Sistema embedded|embedded]]''
}}


'''Emotion Engine''' è 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.<ref>{{cita web|lingua=en|titolo=Sony confirms production end for PlayStation 2 worldwide|data=7 gennaio 2013|accesso=24 novembre 2019|url=https://www.engadget.com/2013/01/07/sony-confirms-production-end-for-playstation-2-worldwide/|sito=[[Engadget]]}}</ref>
Il [[microprocessore]] è formato da:
* un [[Core (informatica)|core]] basato su di un'architettura di tipo [[Architettura MIPS|MIPS]];
* due unità di elaborazione vettoriale ([[Processore vettoriale|VPU]]);
* un'interfaccia grafica (GIF);
* un'unità [[Direct Memory Access|DMA]] a 10 canali;
* un controllore della memoria;
* un'unità di elaborazione delle immagini (''Image Processing Unit'');
* un'interfaccia di Input/Output.


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.<ref>{{cita web|lingua=en|titolo=Sony Confirms, Discusses PS3 Emotion Engine Removal|data=26 febbraio 2007|accesso=24 novembre 2019|sito=[[Gamasutra]]|url=https://www.gamasutra.com/view/news/103861/Sony_Confirms_Discusses_PS3_Emotion_Engine_Removal.php}}</ref>
== Descrizione ==
== Caratteristiche ==
''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à [[Microprocessore superscalare|superscalare]] R5900 – versione modificata dell'R5000 – a {{M|295|M|Hz}} a [[RISC|istruzioni ridotte]] basato su [[architettura MIPS]]<ref name="CS"/> e che implementa il [[set di istruzioni]] "MIPS IV".<ref name=EE/> La [[CPU cache]] di primo livello è larga {{M|24|k|B}}:<ref name="CS"/> 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 {{M|16|k|B}}.<ref name="CS"/><ref name=EE/>
Nel cuore dell'Emotion Engine c'è un core [[Architettura MIPS|MIPS]], [[Microprocessore superscalare|superscalare]] a due vie, basato principalmente sull'architettura MIPS III [[Instruction Set Architecture|ISA]], ma che include anche alcune istruzioni definite dal MIPS IV ISA.


Sullo suo stesso ''[[die (elettronica)|die]]'' l'R5900 è affiancato anche da una [[unità di calcolo in virgola mobile]] (FPU) dedicata e da due "unità vettoriali" [[Very long instruction word|VLIW]] a {{M|128||bit}} in grado di funzionare come processori indipendenti.<ref name=EE/> Sul blocco principale risiede la prima unità vettoriale insieme all'R5900 e all'FPU, detta "Unità Vettoriale 0", può opzionalmente funzionare in modo indipendente (modalità "micro") o come [[coprocessore]] dell'R5900 (modalità "macro"). La matrice di [[Registro (informatica)|registro]] della unità 0, è costituita da 32 registri in [[virgola mobile]] a 128 bit, che possono essere divisi in quattro campi a [[IEEE 754#Numeri a precisione singola (32 bit)|precisione singola]] a 32 bit.<ref name=EE/> La [[memoria cache]] [[microcodice]] dedicata a questa unità raggiunge i 4 kB.<ref name=EE/>
L'esecuzione delle singole [[istruzione (informatica)|istruzioni]] avviene in modalità ''in order'', cioè in ordine, contrariamente ad altri processori in cui l'esecuzione avviene ''out-of-order'' ([[esecuzione fuori ordine]]).


Sul blocco secondario risiede una 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''.<ref name=EE/> A tal fine, l'unità 1 si collega alla "GIF", un'interfaccia grafica dedicata anch'essa presente sul blocco secondario e con un ''[[bus (informatica)|bus]]'' a 64 bit e frequenza a {{M|150|M|Hz}}, 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.<ref name=EE/>
Internamente il core consiste di due unità logico aritmetiche ([[Arithmetic Logic Unit|ALU]]) da 64 bit e di una unità di calcolo a virgola mobile ([[Floating Point Unit|FPU]]) a precisione singola (32 bit). Sia le [[pipeline dati]] delle ALU, che quella della FPU constano di 6 stadi per l'esecuzione delle istruzioni.


Esterni al blocco primario e secondario, ma giacenti sempre sul [[die (elettronica)|die]], sono presenti anche un controller [[Direct Memory Access|DMA]] programmabile a 10 canali e un [[coprocessore]] per immagini (IPU) con supporto per la decodifica di formati [[JPEG]] e [[MPEG]].<ref name=EE/>
Per rifornire di dati e di istruzioni le unità di esecuzione, sono presenti due differenti memorie cache ed una memoria [[RAM scratchpad]]. La cache di istruzioni e quella dei dati sono indicizzate virtualmente ed etichettate fisicamente, mentre la RAM scratchpad risiede in una memoria separata. Un [[Translation Lookaside Buffer]] (TLB) combinato per dati ed istruzioni a 48 doppi valori (''double entry'') si occupa della traduzione degli indirizzi virtuali.


Considerando la totalità degli elementi che lo costituiscono, ''Emotion Engine'' può raggiungere un picco di performance complessiva in virgola mobile pari a {{M|6,2|G|FLOPS}}.<ref name=EE/> Secondo il [[benchmark (informatica)|benchmark]] "Dhrystone 2.1" la performance complessiva in [[MIPS (unità di misura)|MIPS]], può raggiungere le 450 [[MIPS (unità di misura)|MIPS]].<ref name="CS"/>
La [[predizione delle diramazioni]] è ottenuta con una cache ''branch target address'' a 64 ingressi e una ''branch history table'' integrata nella cache delle istruzioni.


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.<ref name=EE/> Nonostante ciò, alcuni sviluppatori al lavoro su ''PlayStation 2'', avrebbero affermato che almeno il 60% delle performance di picco, fossero realizzabili con prestazioni sostenute.<ref name=EE/>
La penalità causata dall'errata previsione della branch è di 3 cicli dovuti alla pipeline corta formata da 6 stage.

Le due VPU (VPU0 e VPU1) forniscono la maggior parte delle prestazioni dell'Emotion Engine in virgola mobile. Ogni VPU è caratterizzata da 32 registri da 128 bit, 16 [[Arithmetic Logic Unit|ALU]] da 16 bit, 4 unità FMAC, una unità FDIV e una memoria locale per i dati.
La memoria dei dati per la VPU0 è da 4KB mentre la memoria dei dati per la VPU1 è da 16KB. Per raggiungere un'alta [[larghezza di banda]], la memoria dei dati delle VPU è connessa direttamente alla GIF, ed entrambe le memorie dei dati possono essere lette direttamente dall'unità DMA. Un singolo vettore delle istruzioni è composto da 4 valori in virgola mobile a precisione singola da 32 bit, che rispetta lo standard [[IEEE]], che sono distribuiti alle 4 unità FMAC in precisione singola (32 bit) per l'elaborazione. L'Emotion Engine non è un processore a 128 bit dato che non elabora valori a 128 bit, ma solo un insieme di 4 valori da 32 bit che entrano in un registro a 128 bit. Lo schema è simile alle estensioni SSEx di [[Intel]]. Le unità FMAC hanno una latenza delle istruzioni di 4 cicli, ma, dal momento che hanno una pipeline da 6 stage, hanno un [[throughput]] di un ciclo per istruzione. L'unità FDIV ha una pipeline da 9 stage e può eseguire un'istruzione ogni sette cicli.

Le comunicazioni tra il core [[Architettura MIPS|MIPS]], le due VPU, la GIF, il controller di memoria e le altre unità è gestita da un [[bus (informatica)|bus]] dati interno da 128 bit che funziona a metà della [[frequenza di clock]] della CPU. A 300&nbsp;MHz, il bus dati interno fornisce una larghezza di banda massima teorica di 2,4 GiB/s. I trasferimenti DMA su questo bus avvengono in pacchetti di 8 parole da 128 bit, raggiungendo un picco di 2 GiB/s. L'Emotion Engine si interfaccia direttamente al sintetizzatore grafico (''Graphics Synthesizer'') tramite il GIF ed un bus dedicato da 64 bit a 150&nbsp;MHz con una larghezza di banda massima teorica di 1,2 GiB/s.

La comunicazione tra l'Emotion Engine e la RAM avviene attraverso due canali di [[DRDRAM]] e il controller di memoria, che si interfaccia al bus dati interno. I due canali di DRDRAM hanno una larghezza di banda massima teorica di 3,2 GiB/s, circa il 33% di banda in più rispetto alla larghezza di banda del bus interno dei dati. Per questo, il controller della memoria manda nel [[buffer]] i dati inviati dai canali DRDRAM così la banda extra può essere utilizzata dalla CPU.

A fornire le comunicazioni tra l'Emotion Engine e il processore di Input Output (IOP), l'interfaccia di Input Output si interfaccia ad un bus da 32 bit di Input Output a 37,5&nbsp;MHz con una larghezza di banda massima teorica di 150 MB/s per il bus dati interno. Da notare che questa interfaccia fornisce una larghezza di banda di gran lunga più vasta di quanto è richiesto dai dispositivi di ingresso/uscita della PlayStation.

Le prime versioni di [[PlayStation 3]] si caratterizzavano di un Emotion Engine sulla [[scheda madre]] per ottenere la [[retrocompatibilità]] con i titoli [[PlayStation]] e la [[PlayStation 2]]. Tuttavia, nelle successive versioni di Playstation 3, compresa la distribuzione iniziale [[PAL]], è stato eliminato l'Emotion Engine per abbassare i costi. Al suo posto, per consentire la retrocompatibilità è stata utilizzata l'[[emulazione]] software, comunque meno performante. Successivamente questa opzione è stata rimossa del tutto nelle versioni Slim e Super Slim.

== Specifiche ==
*Frequenza di clock: 294&nbsp;MHz, 299&nbsp;MHz (versioni successive)
*Instruction Set: III MIPS, MIPS IV Subset, 107 Istruzioni Vettoriali
*Core basato su [[Architettura MIPS|MIPS]]: 2 Issue, 2 [[Arithmetic Logic Unit|ALU]] a 64 Bit, 1 Floating Point Unit, Pipeline a 6 stages
*Cache Istruzioni: 16 KiB, Set Associativa a 2 vie
*Cache Dati: 8 KiB, Set associativa a 2 vie
*[[RAM scratchpad|Scratchpad RAM]]: 16 KiB
*[[Translation Lookaside Buffer]]: 48 valori combinati di istruzioni/dati
*Vector Processing Unit: 4 unità FMAC, 1 unità FDIV
*Registri delle Vector Processing Unit: 32 registri da 128 bit
*Unità di elaborazione di immagini: MPEG2 macroblock layer decoder
*Direct Memory Access: 10 Canali
*Bus dati interno: 128 bit, 150&nbsp;MHz, 2 GiB/s massima larghezza di banda effettiva
*Bus memoria: 2 canali da 16 Bit, 400&nbsp;MHz DRDRAM, 3,2 GiB/s larghezza di banda massima teorica
*Processo di fabbricazione: 0,25&nbsp;µm (0,18&nbsp;µm effective L<sub>G</sub>, 4 Layer Metal, CMOS)
*V<sub>DD</sub> Tensione: 1,8 V
*Consumo di energia: 15 W a 1,8 V
*Numero di Transistor: 10,5 milioni
*Superficie del Die: 240&nbsp;mm²
*Chip Packaging: PBGA a 540 Contatti

==Capacità teoriche==
*Virgola mobile: 6,2 miliardi di operazioni al secondo in singola precisione (32 Bit) in virgola mobile
*Trasformazione di [[prospettiva]]: 66 milioni di poligoni al secondo
*Con luci e nebbia: 36 milioni di poligoni al secondo
*Superficie di Bezier Patch: 16 milioni di poligoni al secondo
*Decompressione di immagine: 150 milioni di pixel al secondo

==Voci correlate==
* [[Architettura MIPS]]
* [[Core (informatica)]]
* [[CPU]]
* [[Microprocessore superscalare]]
* [[Pipeline dati]]


''Emotion Engine'' si collega ai {{M|32|M|B}} di memoria [[Rambus DRAM]] principale con frequenza a {{M|400|M|Hz}} – due moduli a 16 bit, amplificati in [[dual channel]] – raggiungendo una [[velocità di trasmissione]] di circa {{M|3,2|G|B}}/s.<ref name="CS"/><ref name=EE/>
== Note ==
;Esplicative
<references group="N"/>
;Fonti
<references/>
==Bibliografia==
*{{cita pubblicazione|lingua=en|autore=[[Sony]]|url=https://www.dropbox.com/s/onjaprt82y81sj7/EE_Users_Manual.pdf|titolo=EE User's Manual|anno=2002|numero=6|accesso=24 novembre 2019}}
== Voci correlate ==
*[[PlayStation 2]]
*[[Sony]]
*[[Toshiba]]
== Altri progetti ==
== Altri progetti ==
{{interprogetto|commons=Category:Microprocessors}}
{{interprogetto|commons=Category:Emotion Engine (PlayStation 2)}}
{{Controllo di autorità}}
{{Portale|informatica}}
{{Portale|Elettronica|Informatica|PlayStation|Tecnologia|Videogiochi}}

[[Categoria:Console Sony]]
[[Categoria:Microprocessori]]
[[Categoria:Microprocessori]]
[[Categoria:Console Sony]]

Versione delle 15:12, 25 nov 2019

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
N° di core (CPU)1
Cache L1Errore in {{M}}: parametro 2 non è un numero valido.[1][2]
Cache L2Errore in {{M}}: parametro 2 non è un numero valido.[1][2][N 1]

Emotion Engine è 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.[4]

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.[5]

Caratteristiche

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 Errore in {{M}}: parametro 2 non è un numero valido. 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 Errore in {{M}}: parametro 2 non è un numero valido.:[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 Errore in {{M}}: parametro 2 non è un numero valido..[1][2]

Sullo suo stesso die l'R5900 è affiancato anche da una unità di calcolo in virgola mobile (FPU) dedicata e da due "unità vettoriali" VLIW a 128 in grado di funzionare come processori indipendenti.[2] Sul blocco principale risiede la prima unità vettoriale insieme all'R5900 e all'FPU, detta "Unità Vettoriale 0", 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 risiede una 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 Errore in {{M}}: parametro 2 non è un numero valido., 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 Errore in {{M}}: parametro 2 non è un numero valido..[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 Errore in {{M}}: parametro 2 non è un numero valido. di memoria Rambus DRAM principale con frequenza a Errore in {{M}}: parametro 2 non è un numero valido. – due moduli a 16 bit, amplificati in dual channel – raggiungendo una velocità di trasmissione di circa Errore in {{M}}: parametro 2 non è un numero valido./s.[1][2]

Note

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. ^ (EN) Sony confirms production end for PlayStation 2 worldwide, su Engadget, 7 gennaio 2013. URL consultato il 24 novembre 2019.
  5. ^ (EN) Sony Confirms, Discusses PS3 Emotion Engine Removal, su Gamasutra, 26 febbraio 2007. URL consultato il 24 novembre 2019.

Bibliografia

Voci correlate

Altri progetti

Il portale PlayStation non esiste