Emotionsmotor - Emotion Engine

Sony Emotion Engine-CPU

Die Emotion Engine ist eine zentrale Recheneinheit, die von Sony Computer Entertainment und Toshiba für den Einsatz in der PlayStation 2- Videospielkonsole entwickelt und hergestellt wurde . Es wurde auch in frühen PlayStation 3- Modellen verwendet, die in Japan und Nordamerika verkauft wurden (Modellnummern CECHAxx und CECHBxx), um PlayStation 2-Spiele zu unterstützen. Die Massenproduktion der Emotion Engine begann 1999 und endete Ende 2012 mit der Einstellung der PlayStation 2.

Beschreibung

Die Emotion Engine auf dem Mainboard der PS2
Playstation 2-Architektur

Die Emotion Engine besteht aus acht separaten "Einheiten", von denen jede eine bestimmte Aufgabe erfüllt und auf demselben Würfel integriert ist . Diese Einheiten sind: ein CPU-Kern, zwei Vektorverarbeitungseinheiten (VPU), eine 10-Kanal- DMA- Einheit, ein Speichercontroller und eine Bildverarbeitungseinheit (IPU). Es gibt drei Schnittstellen: eine Eingabe-Ausgabe-Schnittstelle zum E/A-Prozessor, eine Grafikschnittstelle (GIF) zum Grafiksynthesizer und eine Speicherschnittstelle zum Systemspeicher.

Der CPU-Kern ist eng mit der ersten VPU, VPU 0 , gekoppelt . Gemeinsam sind sie für die Ausführung von Spielcode und High-Level-Modellierungsberechnungen verantwortlich. Die zweite VPU, VPU 1 , ist für Geometrie-Transformationen und Beleuchtung vorgesehen und arbeitet unabhängig, parallel zum CPU-Kern, gesteuert durch Mikrocode . VPU 0 kann , wenn sie nicht verwendet wird, auch für Geometrie-Transformationen verwendet werden. Anzeigelisten , die von CPU / VPU0 und VPU1 werden den GIF gesendet, der sie priorisiert , bevor sie an der Disposition Graphics Synthesizer zum Rendern.

CPU-Kern

Der CPU-Kern ist ein superskalarer Zweiwege - RISC- Prozessor. Basierend auf dem MIPS R5900 implementiert es die MIPS-III- Befehlssatzarchitektur (ISA) und einen Großteil von MIPS-IV zusätzlich zu einem von Sony entwickelten benutzerdefinierten Befehlssatz, der mit 128-Bit breiten Gruppen von entweder 32-Bit, 16 -Bit- oder 8-Bit-Ganzzahlen in der Art von Single Instruction Multiple Data (SIMD) (dh vier 32-Bit-Ganzzahlen könnten unter Verwendung eines einzigen Befehls zu vier anderen hinzugefügt werden). Zu den definierten Anweisungen gehören: Addieren, Subtrahieren, Multiplizieren, Dividieren, Min/Max, Verschieben, logisch, Zählen mit führenden Nullen, 128-Bit-Laden/Speichern und 256-Bit-zu- 128-Bit-Trichterverschiebung zusätzlich zu einigen, die von Sony für nicht beschrieben wurden Wettbewerbsgründe. Im Gegensatz zu einigen Missverständnissen bedeuteten diese SIMD-Fähigkeiten nicht, dass der Prozessor "128-Bit" war, da weder die Speicheradressen noch die Ganzzahlen selbst 128-Bit waren, sondern nur die gemeinsam genutzten SIMD/Ganzzahl-Register. Zum Vergleich: 128-Bit breite Register und SIMD-Befehle waren seit 1999 mit der Einführung von SSE in der 32-Bit- x86- Architektur vorhanden . Die internen Datenpfade waren jedoch 128 Bit breit, und die Prozessoren waren in der Lage, parallel mit 4 x 32 Bit in einzelnen Registern zu arbeiten.

Es hat eine 6-stufige lange Integer-Pipeline und eine 15-stufige lange Gleitkomma-Pipeline. Das Registersortiment besteht aus 32 128-Bit-VLIW-SIMD-Registern (Benennen/Umbenennen), einem 64-Bit-Akkumulator und zwei 64&-Bit-Allgemeindatenregistern, 8 16-Bit-Fixfunktionsregistern, 16 8-Bit-Controller-Registern. Der Prozessor verfügt außerdem über zwei 64-Bit-Integer-ALUs, eine 128-Bit-Load-Store-Unit (LSU), eine Branch Execution Unit (BXU) und einen 32-Bit-VU1-FPU-Coprozessor (der als Sync-Controller für die VPU0/VPU1 fungierte) mit einen MIPS-Basisprozessorkern mit 32 64-Bit-FP-Registern und 15 32-Bit-Integer-Registern. Die ALUs sind 64-Bit, mit einer 32-Bit-FPU, die nicht IEEE 754-kompatibel ist. Der benutzerdefinierte Befehlssatz 107 MMI (Multimedia Extensions) wurde durch Gruppieren der beiden 64-Bit-Integer-ALUs implementiert. Sowohl die Integer- als auch die Gleitkomma- Pipeline sind sechs Stufen lang.

Um die Ausführungseinheiten mit Befehlen und Daten zu versorgen , gibt es einen 16-KB-Zweiwege-Satz- assoziativen Befehls-Cache , einen 8-KB-Zwei-Wege-Satz-assoziativen, nicht blockierenden Daten-Cache und einen 16 KB Scratchpad-RAM . Sowohl der Befehls- als auch der Datencache werden virtuell indiziert und physisch markiert, während der Arbeitsspeicher-RAM in einem separaten Speicherbereich vorhanden ist. Ein kombinierter 48-Doppeleintrag-Befehls- und Datenübersetzungs- Lookaside-Puffer ist zum Übersetzen virtueller Adressen vorgesehen . Die Verzweigungsvorhersage wird durch einen Verzweigungszieladressen-Cache mit 64 Einträgen und eine Verzweigungsverlaufstabelle erreicht , die in den Befehlscache integriert ist. Die Strafe für die Verzweigungsfehlervorhersage beträgt drei Zyklen aufgrund der kurzen sechsstufigen Pipeline.

Vektorverarbeitungseinheiten

Den Großteil der Gleitkomma- Leistung der Emotion Engine liefern zwei Vector Processing Units (VPU), die als VPU0 und VPU1 bezeichnet werden. Dies waren im Wesentlichen DSPs, die auf 3D-Mathematik zugeschnitten sind, und der Vorläufer der Hardware-Vertex-Shader-Pipelines . Jede VPU verfügt über 32  128-Bit- Vektor-SIMD- Register (die 4D-Vektordaten enthalten), 16 16-Bit-Festkommaregister, vier Gleitkomma-Multiply-Accumulate (FMAC)-Einheiten, eine Gleitkomma-Division (FDIV)-Einheit und einen lokalen Datenspeicher . Der Datenspeicher für VPU0 ist 4 KB groß, während VPU1 über einen 16 KB Datenspeicher verfügt.

Um eine hohe Bandbreite zu erreichen, ist der Datenspeicher der VPU direkt mit dem GIF verbunden und beide Datenspeicher können direkt von der DMA- Einheit gelesen werden . Ein einzelner Vektorbefehl besteht aus vier 32-Bit - Gleitkommawerten mit einfacher Genauigkeit, die zur Verarbeitung an die vier FMAC-Einheiten mit einfacher Genauigkeit (32 Bit) verteilt werden. Dieses Schema ähnelt den SSEx- Erweiterungen von Intel.

Die FMAC-Einheiten benötigen vier Zyklen, um einen Befehl auszuführen, aber da die Einheiten eine sechsstufige Pipeline aufweisen , haben sie einen Durchsatz von einem Befehl pro Zyklus. Die FDIV-Einheit hat eine neunstufige Pipeline und kann alle sieben Zyklen einen Befehl ausführen.

Bildverarbeitungseinheit (IPU)

Die IPU ermöglichte die Dekodierung von MPEG-2- komprimierten Bildern, was die Wiedergabe von DVDs und Spiel- FMV ermöglicht . Es ermöglichte auch die Vektorquantisierung für 2D-Grafikdaten.

DMA, DRAM und Speicherverwaltungseinheit (MMU)

Die Speicherverwaltungseinheit, der RDRAM-Controller und der DMA-Controller handhaben den Speicherzugriff innerhalb des Systems.

Interner Datenbus

Die Kommunikation zwischen dem MIPS-Kern, den beiden VPUs, GIF, Speichercontroller und anderen Einheiten wird von einem 128 Bit breiten internen Datenbus abgewickelt, der mit der halben Taktfrequenz der Emotion Engine läuft, aber für eine größere Bandbreite gibt es auch einen 128- .-Bus -bit dedizierter Pfad zwischen der CPU und VPU0 und ein 128-bit dedizierter Pfad zwischen VPU1 und GIF. Der interne Datenbus bietet bei 150 MHz eine maximale theoretische Bandbreite von 2,4 GB/s.

Externe Schnittstelle

Die Kommunikation zwischen der Emotion Engine und dem RAM erfolgt über zwei DRDRAM- Kanäle (Direct Rambus Dynamic Random Access Memory) und den Speichercontroller , der eine Schnittstelle zum internen Datenbus bildet. Jeder Kanal ist 16 Bit breit und arbeitet mit 400 MHz DDR (Double Data Rate). Zusammen haben die beiden DRDRAM-Kanäle eine maximale theoretische Bandbreite von 25,6 Gbit/s (3,2 GB/s), etwa 33 % mehr Bandbreite als der interne Datenbus. Aus diesem Grund puffert der Speichercontroller Daten, die von den DRDRAM-Kanälen gesendet werden, so dass die zusätzliche Bandbreite von der CPU genutzt werden kann.

Die Emotion Engine verbindet sich direkt über das GIF mit einem dedizierten 64-Bit-150-MHz-Bus mit einer maximalen theoretischen Bandbreite von 1,2 GB/s mit dem Grafik-Synthesizer.

Um die Kommunikation zwischen der Emotion Engine und dem Input Output Processor (IOP) bereitzustellen, verbindet die Input Output Schnittstelle einen 32 Bit breiten, 37,5 MHz Input Output Bus mit einer maximalen theoretischen Bandbreite von 150 MB/s mit dem internen Datenbus. Die Schnittstelle bietet genügend Bandbreite für den PCMCIA-Erweiterungsanschluss, der für den Netzwerkadapter mit eingebauter P-ATA-Schnittstelle für schnelleren Datenzugriff und Online-Funktionalität verwendet wurde. Ein Vorteil der hohen Bandbreite bestand darin, dass damit problemlos Hardwareerweiterungen wie der Netzwerkadapter mit integrierter IDE-Festplattenunterstützung oder andere Erweiterungen zur Verlängerung der Funktionalität und des Produktlebenszyklus eingeführt werden konnten, was als Wettbewerbsvorteil angesehen werden kann. In neueren Varianten (wie der Slim Edition) würde die Schnittstelle jedoch deutlich mehr Bandbreite bieten, als die Eingabe-Ausgabe-Geräte der PlayStation benötigen, da die HDD-Unterstützung entfernt und das PCMCIA-Anschlussdesign zugunsten eines schlankeren Designs aufgegeben wurde.

Herstellung

Die Emotion Engine enthielt 13,5 Millionen Metall-Oxid-Halbleiter- (MOS)-Transistoren auf einem 240 mm 2 großen Chip mit integrierter Schaltung (IC) . Es wurde von Sony und Toshiba in einem 0,25 µm ( 0,18 µm effektivem L G ) komplementären Metall-Oxid-Halbleiter (CMOS)-Prozess mit vier Verbindungsebenen hergestellt.

Verpackung

Die Emotion Engine wurde in einem 540-Kontakt-Plastik- Ball-Grid-Array (PBGA) verpackt.

Verwendet

Die Emotion Engine wurde hauptsächlich als CPU der PlayStation 2 verwendet . Die ersten SKUs der PlayStation 3 verfügten auch über eine Emotion Engine auf dem Motherboard, um eine Abwärtskompatibilität mit PlayStation 2-Spielen zu erreichen. Der zweiten Überarbeitung der PlayStation 3 fehlte jedoch eine physische Emotion Engine, um die Kosten zu senken, da sie alle ihre Funktionen mithilfe der Softwareemulation des Cell Broadband Processor ausführte , gepaart mit einem noch vorhandenen Hardware-Grafiksynthesizer, um die Abwärtskompatibilität von PlayStation 2 zu erreichen. In allen nachfolgenden Überarbeitungen wurde der Grafiksynthesizer entfernt; in späteren Systemsoftware-Revisionen ist jedoch ein PlayStation 2-Software-Emulator für die Verwendung mit Sonys PS2 Classics-Titeln verfügbar, die im Sony Entertainment Network erhältlich sind.

Technische Spezifikationen

Theoretische Leistung

Siehe auch

Verweise

Verweise