« Architecture de la PlayStation 2 (index)

Architecture de la PlayStation 2

Chapter 3: CPU


Table des matières

  1. Le leader
    1. Succès surpassé
    2. Haut de gamme pour les masses
    3. Une commande spéciale pour Sony
  2. Un choix de mémoire reconnaissable
  3. Éviter les mésaventures passées
  4. D'autres choses intéressantes

Au cœur de cette console se trouve une puissante puce intitulée Emotion Engine, ou 'EE', un projet conjoint de Toshiba et Sony cadencé à ~294.91 MHz .

Image
L'Emotion Engine, tel que vu sur la première révision de la carte mère de cette console.

Ce jeu de puces contient de nombreux composants, l'un d'eux étant le processeur principal. Les autres sont à la disposition du processeur pour accélérer certaines tâches. Pour cette analyse, nous diviserons l'EE en trois sections :

Le leader

En résumé, le processeur principal est un MIPS R5900, un cœur MIPS exclusif conçu pour cette console. Vous vous souvenez peut-être lorsque Sony a commencé à s'aventurer avec le silicium MIPS avec la toute première PlayStation (où l'on peut trouver un MIPS R3000A secondé par LSI). Pour la prochaine génération, nous avons un MIPS 'R5900'... mais que signifie ce nom pour nous ?

Pour comprendre ce qui se cache derrière les nouveaux numéros, examinons un peu l'histoire entourant cette époque.

Succès surpassé

Le MIPS R4000 était une série de processeurs populaires adoptée par une large gamme de systèmes, y compris un concurrent proche. Grâce à son succès, MIPS a apporté à la masse une gamme d'avancées jadis inaccessibles (calculs 64 bits, pipelines à 8 étages, etc.).

Avançons dans le temps, et le prochain grand saut est arrivé en 1995, avec la sortie du R10000. Désormais sous le financement de SGI, MIPS a produit un nouveau processeur qui a poussé les capacités de parallélisme du R4000 beaucoup plus loin, en introduisant des techniques comme :

Une telle innovation a cependant un coût de conception complexe, et le produit final était tout sauf bon marché. SGI ne l'a inclus que dans des équipements haut de gamme, et toute tentative de l'amener dans une console de salon était hors de question.

Haut de gamme pour les masses

Déjà conscient des limites commerciales du R10000, SGI/MIPS a engagé Quantum Effect Devices (QED) pour développer une version abordable du R10000 pour le marché de milieu à bas de gamme. En tant qu'entreprise fondée par d'anciens employés de MIPS, QED se spécialisait dans la conception de variantes de cœurs MIPS pour le secteur économique.

Finalement, QED est revenu avec un nouveau cœur appelé le R5000, il s'agissait d'un R10000 ayant subi des réductions significatives :

Par conséquent, cela est devenu un CPU idéal pour alimenter des équipements économiques, tels que les stations de travail d'entrée de gamme de SGI. Dans tous les cas, notez que le pipeline réduit exécutait toujours des opérations à virgule flottante en simultané, comme si QED prévoyait de le garder attractif pour les applications vectorielles/3D. Vous verrez bientôt qu'une autre entreprise a rapidement pris note de cela également.

En passant, il est curieux d'observer qu'à l'autre bout du monde, il y avait des avancées similaires mais dans la direction opposée : ARM s'est associé à DEC dans le but de propulser les puces ARM vers le marché haut de gamme.

Une commande spéciale pour Sony

Toshiba était un licencié MIPS depuis un certain temps et n'était pas étranger à la fabrication de variantes et de packages MIPS. À un moment donné, Sony et Toshiba ont uni leurs forces pour produire un CPU exclusivement conçu pour la future console de Sony. C'était un énorme avantage pour Toshiba : très souvent, les CPU doivent répondre à une large gamme d'exigences provenant de différentes parties prenantes, ce qui limite les opportunités de spécialisation. Maintenant, il n'y avait qu'un seul objectif : le jeu 3D. Ainsi, offrant suffisamment de place pour toutes sortes d'innovation.

Cela dit, Toshiba a fini par s'approprier le design abordable du R5000 et l'a modifié pour accélérer les opérations vectorielles. Le nouveau cœur est appelé R5900 et présente les améliorations '3D' suivantes :

En plus de cela, nous trouvons également d'autres améliorations que les développeurs pourraient bien accueillir :

De plus, le processeur est complété par une unité de calcul à virgule flottante dédiée (intitulée 'COP1') qui accélère les opérations sur des nombre à virgule flottante 32 bit (aussi connu en tant que float en C). Il s'agit d'une particularité car elle ne suit pas le standard IEEE 754, le plus évident étant son absence d'infinity (calculé en tant que 0 à la place) . À part cela, il possède 32 registres de 32 bits.

Un choix de mémoire reconnaissable

Aux côtés de l'Emotion Engine se trouvent deux blocs de 16 MB de mémoire RAM, soit un total de 32 MB de mémoire principale. La mémoire utilisée est de type RDRAM (c'est du déjà-vu !) et elle est accessible à travers un bus 16 bits.

Image
Design mémoire de l'Emotion Engine. Vous pouvez deviner où l'engorgement va survenir.

Au départ, cela peut être décevant à entendre, en sachant que le bus interne de l'Emotion Engine est plus large avec ses 128 bits. Cependant, les puces de RAM sont stratégiquement placées conformément à l'architecture dual-channel, qui consiste à connecter les deux puces à l'aide de deux bus 16 bits indépendants (un bus par puce) pour améliorer le débit de données. La configuration qui en résulte donne théoriquement 3.2 GB/sec, sachez donc que la latence mémoire n'est pas un problème avec cette console !

A l'un des coins de l'Emotion Engine se trouve un puissant Contrôleur DMA, ou 'DMAC', qui transfère les données entre la mémoire principale et la mémoire Scratchpad, ou entre la mémoire principale et n'importe quel composant à l'intérieur de l'EE.

Les transferts de données se font par lots de 128 bits, mais voici la partie intéressante : tous les 8 lots, le bus principal est temporairement débloqué. Cela ouvre une petite fenêtre pour réaliser d'autres transferts DMA en parallèle (jusqu'à dix) ou laisser le processeur utiliser le bus principal. Ce mode opératoire s'appelle slice mode et est l'un des nombreux modes disponibles sur cette unité DMA. Gardez à l'esprit que si le slice mode réduit les blocages sur le bus principal, il le fait au prix d'un ralentissement général du transfert DMA.

Éviter les mésaventures passées

Que nous le voulions ou non, avec la quantité de trafic ayant lieu à l'intérieur de l'Emotion Engine, ce design pourrait subir les conséquences de l'architecture mémoire unifiée, ou 'UMA'. C'est-à-dire : plusieurs composants indépendants, tentant simultanément d'accéder à la mémoire principale, menant à un embouteillage. Ainsi, pour corriger cette problématique, Sony a réduit le besoin constant de mémoire en :

Cela semble très pratique pour les applications pouvant bénéficier du cache, mais qu'en est-il de ces tâches, comme la manipulation des Display Lists, qui ne devraient pas utiliser de cache du tout ? Par chance, le processeur fournit un autre mode d'accès à la mémoire, intitulé UnCached, qui utilse uniquement le Write Back Buffer. Ainsi, il ne gaspillera pas des cycles à corriger le cache (résultat de cache misses).

De plus, le UnCached accelerated mode est également disponible. Celui-ci ajoute un buffer pour accélérer la lecture des adresses contiguës en mémoire.

D'autres choses intéressantes

A l'intérieur du même bloc Emotion Engine, il y a encore un autre processeur, intitulé Image Processing Unit, ou 'IPU' ; cette fois conçu pour la décompression d'image. En tant que successeur du MDEC, cet IPU s'avère utile quand un jeu a besoin de décoder une vidéo MPEG2 sans mobiliser le processeur principal.

En résumé, le jeu envoie un flux d'images compressées à l'IPU (de préférence en utilisant le DMA) qui sont alors décodées vers un format que la GPU peut afficher. Le système d'exploitation de la PS2 se repose également sur l'IPU pour la lecture de DVD.

Enfin, l'IPU traite également les textures haute définition compressées, ce qui allège la charge processeur et réduit les larges transferts.


Previous: 2. Une brève introduction

Next: 4. Coprocesseurs


Rodrigo Copetti © 2026 RSS Feed

Basculer vers l'édition moderne

Accueil · Articles · Support · À propos de l'auteur · À propos du site