Emotion Engine – Wikipedia

before-content-x4

Das Emotion Engine ist eine Zentraleinheit, die von Sony Computer Entertainment und Toshiba für die Verwendung 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 & CECHBxx), um PlayStation 2-Spielunterstützung bereitzustellen. Die Massenproduktion der Emotion Engine begann 1999 und endete Ende 2012 mit der Einstellung der PlayStation 2.[1]

Beschreibung[edit]

Die Emotion Engine auf dem Motherboard der PS2

Playstation 2-Architektur

Die Emotion Engine besteht aus acht separaten “Einheiten”, die jeweils eine bestimmte Aufgabe ausführen und auf demselben Würfel integriert sind. Diese Einheiten sind: ein CPU-Kern, zwei Vector Processing Units (VPU), eine 10-Kanal-DMA-Einheit, ein Speichercontroller und eine Image Processing Unit (IPU). Es gibt drei Schnittstellen: eine Eingabe / Ausgabe-Schnittstelle zum E / A-Prozessor, eine Grafikschnittstelle (GIF) zum Grafiksynthesizer und eine Speicherschnittstelle zum Systemspeicher.[2]

Der CPU-Kern ist eng mit der ersten VPU, VPU, verbunden0. Zusammen sind sie für die Ausführung von Spielcode und Modellierungsberechnungen auf hoher Ebene verantwortlich. Die zweite VPU, VPU1, widmet sich Geometrietransformationen und Beleuchtung und arbeitet unabhängig, parallel zum CPU-Kern, gesteuert durch Mikrocode. VPU0kann, wenn es nicht verwendet wird, auch für Geometrietransformationen verwendet werden. Von CPU / VPU0 und VPU1 generierte Anzeigelisten werden an das GIF gesendet, das sie priorisiert, bevor sie zum Rendern an den Grafiksynthesizer gesendet werden.

Die PS2 ist das früheste bekannte kommerzielle Produkt zur Verwendung von ferroelektrischem RAM (FeRAM). Die Emotion Engine enthält 32 kb (4 kB) eingebettetes FeRAM, hergestellt von Toshiba. Es wurde unter Verwendung eines 500 nm komplementären Metalloxid-Halbleiter (CMOS) -Verfahrens hergestellt.[3]

CPU-Kern[edit]

Der CPU-Kern ist ein bidirektionaler superskalarer RISC-Prozessor in der richtigen Reihenfolge.[4] Basierend auf dem MIPS R5900 implementiert es die MIPS-III-Befehlssatzarchitektur (ISA) und einen Großteil von MIPS-IV sowie einen von Sony entwickelten benutzerdefinierten Befehlssatz, der mit 128-Bit-breiten Gruppen von 32-Bit- und 16-Bit-Gruppen arbeitet -Bit- oder 8-Bit-Ganzzahlen auf SIMD-Weise (Single Instruction Multiple Data) (dh vier 32-Bit-Ganzzahlen können mit einem einzigen Befehl zu vier anderen hinzugefügt werden). Zu den definierten Anweisungen gehören: Addieren, Subtrahieren, Multiplizieren, Teilen, Min / Max, Verschieben, logisch, Zählen von führenden Nullen, Laden / Speichern mit 128 Bit und Trichterverschiebung von 256 Bit zu 128 Bit zusätzlich zu einigen, die von Sony nicht beschrieben wurden Wettbewerbsgründe. Im Gegensatz zu einigen Missverständnissen stellten diese SIMD-Funktionen nicht dar, dass der Prozessor “128-Bit” war, da weder die Speicheradressen noch die Ganzzahlen selbst 128-Bit waren, sondern nur die gemeinsam genutzten SIMD / Integer-Register. Zum Vergleich: In der 32-Bit-x86-Architektur waren seit 1999 mit der Einführung von SSE 128-Bit-Register und SIMD-Anweisungen vorhanden. Die internen Datenpfade waren jedoch 128 Bit breit und die Prozessoren waren in der Lage, 4×32-Bit-Mengen in einzelnen Registern parallel zu betreiben.

Der Prozessor ist MIPS-basiert mit einem modifizierten Befehlssatz. Sein Haupt-VU0-Kern ist ein superskalares, in der Reihenfolge 2-Issue-Design mit 6-stufigen Integer-Pipelines und einer 15-stufigen Gleitkomma-Pipeline. Das Registersortiment besteht aus 32 128-Bit-VLIW-SIMD-Registern (Benennung / Umbenennung), einem 64-Bit-Akkumulator und zwei allgemeinen 64-Bit-Datenregistern, 8 16-Bit-Fixfunktionsregistern und 16 8-Bit-Controller-Registern. Der Prozessor verfügt außerdem über zwei 64-Bit-Ganzzahl-ALUs, eine 128-Bit-Load-Store-Einheit (LSU), eine Branch Execution Unit (BXU) und einen 32-Bit-VU1-FPU-Coprozessor (der als Synchronisationscontroller für die VPU0 / VPU1 fungierte) ein 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-Ganzzahl-ALUs implementiert. Sowohl die Ganzzahl- als auch die Gleitkomma-Pipeline sind sechs Stufen lang.

Um die Ausführungseinheiten mit Anweisungen und Daten zu versorgen, gibt es einen 16-KB-Zwei-Wege-Assoziat-Anweisungscache, einen 8-KB[5] Assoziativer, nicht blockierender Zwei-Wege-Datencache und ein 16-KB-Arbeitsblock-RAM. Sowohl der Befehls- als auch der Datencache sind virtuell indiziert und physisch gekennzeichnet, während der Arbeitsblock-RAM in einem separaten Speicherbereich vorhanden ist. Zum Übersetzen virtueller Adressen wird ein kombinierter Lookaside-Puffer mit 48 Doppeleinträgen und Datenübersetzung bereitgestellt. Die Verzweigungsvorhersage wird durch einen Zieladresscache mit 64 Einträgen und eine Verzweigungsverlaufstabelle erreicht, die in den Anweisungscache integriert ist. Die Verzweigungsfehler-Vorhersage beträgt aufgrund der kurzen sechsstufigen Pipeline drei Zyklen.

Vektorverarbeitungseinheiten[edit]

Der Großteil der Gleitkomma-Leistung der Emotion Engine wird von zwei Vektorverarbeitungseinheiten (VPU) bereitgestellt, die als VPU0 und VPU1 bezeichnet werden. Dies waren im Wesentlichen DSPs, die auf 3D-Mathematik zugeschnitten waren, und der Vorläufer für Hardware-Vertex-Shader-Pipelines. Jede VPU verfügt über 32 128-Bit-Vektor-SIMD-Register (mit 4D-Vektordaten), 16 16-Bit-Festkommaregister, vier FMAC-Einheiten (Floating Point Multiply-Accumulate), eine FDIV-Einheit (Floating Point Divide) 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 Einzelvektorbefehl besteht aus vier 32-Bit-Gleitkommawerten mit einfacher Genauigkeit, die zur Verarbeitung auf 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 haben, haben sie einen Durchsatz von einem Befehl pro Zyklus. Die FDIV-Einheit verfügt über eine neunstufige Pipeline und kann alle sieben Zyklen einen Befehl ausführen.

Bildverarbeitungseinheit (IPU)[edit]

Die IPU ermöglichte die MPEG-2-komprimierte Bilddecodierung und ermöglichte die Wiedergabe von DVDs und FMV-Spielen. Es ermöglichte auch die Vektorquantisierung für 2D-Grafikdaten.[6]

DMA-, DRAM- und Speicherverwaltungseinheit (MMU)[edit]

Die Speicherverwaltungseinheit, der RDRAM-Controller und der DMA-Controller verwalten den Speicherzugriff innerhalb des Systems.[6]

Interner Datenbus[edit]

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

Externe Schnittstelle[edit]

Die Kommunikation zwischen der Emotion Engine und dem RAM erfolgt über zwei Kanäle des DRDRAM (Direct Rambus Dynamic Random Access Memory) und des Speichercontrollers, der mit dem internen Datenbus verbunden ist. 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 die von den DRDRAM-Kanälen gesendeten Daten, sodass die CPU die zusätzliche Bandbreite nutzen kann.

Die Emotion Engine ist über das GIF direkt mit dem Grafiksynthesizer verbunden und verfügt über einen dedizierten 64-Bit-150-MHz-Bus mit einer maximalen theoretischen Bandbreite von 1,2 GB / s.[7]

Um die Kommunikation zwischen der Emotion Engine und dem Input Output Processor (IOP) bereitzustellen, verbindet die Input Output Interface 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 integrierter 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 eingeführt werden konnten, um die Funktionalität und den Produktlebenszyklus zu erweitern, was als Wettbewerbsvorteil angesehen werden kann. In neueren Varianten (wie der Slim Edition) würde die Benutzeroberfläche jedoch erheblich mehr Bandbreite bieten als von den Eingangsausgabegeräten der PlayStation benötigt, da die Festplattenunterstützung entfernt und das PCMCIA-Anschlussdesign zugunsten eines schlankeren Designs aufgegeben wurde.

Herstellung[edit]

Die Emotion Engine enthielt 13,5 Millionen Metalloxid-Halbleiter (MOS) -Transistoren.[8] auf einem integrierten Schaltkreis (IC) mit einer Größe von 240 mm2.[9] Es wurde von Sony und Toshiba in einem effektiven L von 0,25 um (0,18 um effektiv) hergestelltG) Komplementärer Metalloxid-Halbleiter (CMOS) -Prozess mit vier Verbindungsebenen.

Verpackung[edit]

Die Emotion Engine wurde in einem 540-Kontakt-Kunststoffkugelgitter-Array (PBGA) verpackt.

Die Emotion Engine wurde hauptsächlich als CPU für die PlayStation 2 verwendet. Die ersten SKUs der PlayStation 3 enthielten außerdem eine Emotion Engine auf dem Motherboard, um die Abwärtskompatibilität mit PlayStation 2-Spielen zu erreichen. In der zweiten Version der PlayStation 3 fehlte jedoch eine physische Emotion Engine, um die Kosten zu senken. Alle Funktionen wurden mithilfe der vom Cell Broadband Processor durchgeführten Softwareemulation ausgeführt, zusammen mit einem noch vorhandenen Hardware-Grafiksynthesizer, um die Abwärtskompatibilität von PlayStation 2 zu erreichen. In allen nachfolgenden Revisionen wurde der Grafiksynthesizer entfernt. In späteren System-Software-Revisionen ist jedoch ein PlayStation 2-Software-Emulator verfügbar, der mit den PS2 Classics-Titeln von Sony verwendet werden kann, die im Sony Entertainment Network erhältlich sind.

Technische Spezifikationen[edit]

  • Taktfrequenz: 294 MHz, 299 MHz (spätere Versionen)
  • Befehlssatz: MIPS III, MIPS IV-Teilmenge, 107 Vektorbefehle
  • 2 Probleme, 2 64-Bit-Festkommaeinheiten, 1 Gleitkommaeinheit, 6-stufige Pipeline
  • Befehls-Cache: 16 KB, 2-Wege-Satz assoziativ
  • Datencache: 8 KB, 2-Wege-Satz assoziativ
  • Scratchpad RAM: 16 KB
  • Übersetzungs-Look-beiseite-Puffer: Kombinierte Anweisung / Daten mit 48 Einträgen
  • Vektorverarbeitungseinheit: 4 FMAC-Einheiten, 1 FDIV-Einheit
  • Register der Vektorverarbeitungseinheit: 128 Bit breit, 32 Einträge
  • Bildverarbeitungseinheit: MPEG2-Makroblock-Schichtdecoder
  • Direkter Speicherzugriff: 10 Kanäle
  • V.DDSpannung: 1,8 V.
  • Leistungsaufnahme: 15 W bei 1,8 V.
  • Eingebetteter Speicher: 1 KB RAM, 4 KB FeRAM, 16 KB ROM[3]

Theoretische Leistung[edit]

Verweise[edit]

  1. ^ Gilbert, Ben. “Sony bestätigt Produktionsende für PlayStation 2 weltweit”. Engadget. Abgerufen 23. Juni 2013.
  2. ^ Stokes, Jon (16. Februar 2000). “Ton und Bild: Ein technischer Überblick über die Emotion Engine”. Ars Technica. Archiviert vom Original am 10. Juni 2018. Abgerufen 9. Juni 2015.
  3. ^ ein b Scott, JF (2003). “Nano-Ferroelektrika”. In Tsakalakos Thomas; Ovid’ko, Ilya A.; Vasudevan, Asuri K. (Hrsg.). Nanostrukturen: Synthese, funktionelle Eigenschaften und Anwendung. Springer Science & Business Media. S. 583-600 (584-5, 597). ISBN 9789400710191.
  4. ^ Diefendorff, Keith (19. April 1999). “Sonys emotional aufgeladener Chip” (PDF). Mikroprozessorbericht. Vol. 13 nr. 5. Archiviert (PDF) vom Original am 25. Juli 2018. Abgerufen 1. September 2017.
  5. ^ Transistorisierte Speicher wie RAM-, ROM-, Flash- und Cache-Größen sowie Dateigrößen werden mit binären Bedeutungen für K (1024) angegeben1), M (10242), G (10243), …
  6. ^ ein b Sporny, viele; Carper, grau; Turner, Jonathan (2002). “Das Playstation 2 Linux Kit Handbuch”. Freie Software Foundation. Archiviert von das Original am 18. September 2003. Abgerufen 10. Juni 2015.
  7. ^ Diefendorff 1999, p. 5
  8. ^ Hennessy, John L.; Patterson, David A. (29. Mai 2002). Computerarchitektur: Ein quantitativer Ansatz (3. Aufl.). Morgan Kaufmann. p. 491. ISBN 978-0-08-050252-6. Abgerufen 9. April 2013.
  9. ^ Diefendorff, Keith (19. April 1999). “Sonys emotional aufgeladener Chip: Killer-Gleitkomma” Emotion Engine “zur Stromversorgung von PlayStation 2000”. Mikroprozessorbericht. 13 (5). S2CID 29649747.

Siehe auch[edit]

Verweise[edit]

Externe Links[edit]


after-content-x4