Emotion Engine

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Emotion Engine

alt=Description de cette image, également commentée ci-après

L'Emotion Engine des premiers modèles de PlayStation 2

Caractéristiques
Production 1999
Fabricant Sony Computer Entertainment, Toshiba
Fréquence 294,912 MHz à 299 MHz
Finesse de gravure 250 nm à 180 nm
Micro­architecture MIPS
Cœur

MIPS R5900i

L'Emotion Engine est le processeur principal de la PlayStation 2. Il est basé sur un cœur MIPS R5900i, un processeur 64 bits (techniquement, l'Emotion Engine n'est pas un processeur 128 bits proprement dit). Il s'agit d'un microprocesseur VLSI produit en collaboration par Sony Computer Entertainment et Toshiba dès 1999 pour la console PlayStation 2.

Description[modifier | modifier le code]

L'Emotion Engine est en fait un groupe de microprocesseurs assemblés dans un même IHS. Il y en a 8, et sont chacun consacrés à une tâche bien précise.

Le processeur est étroitement lié à la première VPU, VPU0. Ils sont chargés de l'interprétation du code et du calcul de haut niveau. Le second VPU, VPU1, est consacré à la transformation géométrique et de l'éclairage et fonctionne indépendamment, parallèlement au processeur. Le VPU0, lorsqu'il n'est pas utilisé, peut également être utilisé pour les transformations géométriques (polygones).

CPU[modifier | modifier le code]

Le processeur principal est un processeur RISC double cœur, superscalaire, in-order. Il implémente les instructions MIPS-III et une grande partie du MIPS-IV.

Le cœur MIPS est basé sur deux ALU et une FPU. Les ALU sont 64 bits mais la FPU est en 32 bits.

L'Emotion Engine (SCPH-70000)
Un autre Emotion Engine
processeur Emotion Engine

Unités vectorielles[modifier | modifier le code]

La raison majeure des performances en virgule flottante de l'Emotion Engine se situe dans les unités vectorielles, présentes en double (VU0 et VU1). Chacun d'entre eux possède 32 registres 128 bits, 16 registres 16 bits, 4 unités Multiply-accumulate, une unité de division flottante et une mémoire locale. Le VU0 contient 4 kb tandis que le VU1 contient 16 kb.

Bus interne[modifier | modifier le code]

La communication entre le CPU, les deux unités vectorielles, l'unité mémoire et les autres composants est gérée par un bus interne de largeur 128 bits cadencé à la moitié de la vitesse d'horloge de l'Emotion Engine. À 300 MHz, le bus de données interne fournit une bande passante théorique maximale de 2,4 Go/s

Interface externe[modifier | modifier le code]

La communication entre l'Emotion Engine et la RAM se produit par deux canaux RDRAM et le contrôleur mémoire qui s'interface avec le bus de données interne. Chaque canal est de largeur 16 bits et fonctionne à 400 MHz. Combinés, les deux canaux atteignent une bande passante théorique maximale de 3,2 Go/s, environ 33 % plus que le bus interne. C'est pourquoi le contrôleur de mémoire transmet les données envoyées par les chaînes DRDRam si la bande passante supplémentaire peut être utilisée par le CPU.

Fabrication[modifier | modifier le code]

L'Emotion Engine contient 10,5 millions de transistors, la die a une surface de 240 mm2.

Intégration[modifier | modifier le code]

L'Emotion Engine possède 540 contacts en matrice de billes.

Usages[modifier | modifier le code]

La principale utilisation de l'Emotion Engine est en tant que processeur principal de la PlayStation 2. La première PlayStation 3 contenait également ce processeur accompagné du Graphics Synthesizer afin d'assurer une rétrocompatibilité parfaite avec les jeux PlayStation 2. La deuxième révision de la PlayStation 3 ne contenait plus l'Emotion Engine, mais pouvait émuler avec le Cell et le Graphics Synthesizer. La compatibilité a été rompue avec la version slim de la console, à cause de l'absence du Graphics Synthesizer, pour des raisons de coûts.

Spécifications[modifier | modifier le code]

Fréquence d'horloge : 294,912 MHz, 299 MHz (versions ultérieures)
Jeu d'instructions : MIPS-III, avec un sous-ensemble du MIPS-IV, 107 instructions vectorielles.
Base du cœur MIPS : 2 unités 64 bits en virgule fixe, une unité en virgule flottante, pipeline de 6 étages.
Cache d'instructions : 16 Ko
Cache mémoire : 8 Ko
Mémoire vive embarquée : 16 Ko
Unités vectorielles : 4 unités Multiply-accumulate, une unité de division flottante.
Registres vectorielles : 32 entrées, 128 bits de largeur.
Unité de traitement d'image : MPEG-2 Macrobloc.
Accès mémoire direct : 10 canaux.
Voltage nominal : 1,8 V
Consommation électrique: 15 W à 1,8 V

Performances théoriques[modifier | modifier le code]

Virgule flottante : 6.2 GFlops (simple précision)
Polygones nus : 66 millions de polygones par seconde.
Avec éclairage et brouillard : 36 millions de polygones par seconde.
Avec Bézier : 16 millions de polygones par seconde.
Affichage : 150 millions de pixels par seconde.

Voir aussi[modifier | modifier le code]

PlayStation 2
PlayStation 3
Microprocesseur
Cell (processeur)
Architecture MIPS