Le processeur inclus dans cette console est une version légèrement personnalisée du célèbre Intel Pentium III (un CPU standard pour ordinateurs) fonctionnant à 733 MHz. Avec cela, on peut supposer que cette console n'est qu'un PC en coulisses... Je ne vous donnerai pas la réponse, mais je promets qu'à la fin de l'article, vous serez en mesure de parvenir à votre propre conclusion.

Le package Intel Pentium III sur la carte mère de la Xbox.
Quoi qu'il en soit, les Pentiums, ainsi que d'autres lignes de CPU conçus et fabriqués par Intel, étaient incroyablement populaires sur le marché de l'informatique. La part de marché d'Intel était telle qu'ils sont devenus le point de référence par défaut pour la qualité : en tant qu'utilisateur typique, si vous vouliez un bon ordinateur et aviez le budget, vous n'aviez qu'à chercher quelque chose équipé d'un CPU Intel. Nous savons tous maintenant qu'il y a plus de facteurs impliqués, mais c'est ce que les gars du marketing chez Intel ont réussi à projeter.
Informations techniques
Maintenant que nous avons positionné Intel sur la carte, revenons au sujet de cette console. Lors de mes recherches, je m'attendais à trouver de la documentation avec le même niveau de profondeur que d'autres CPUs (MIPS, SuperH, ARM, etc), mais au lieu de cela, je suis tombé sur une quantité excessive de termes marketing qui n'ont fait que détourner ma recherche. Donc, pour cet article, j'ai élaboré une structure pour organiser toutes les informations nécessaires qui aideront à comprendre comment fonctionne ce CPU. De plus, j'essaierai d'introduire certains termes que Intel a utilisé pour marquer ce CPU.
Cela dit, jetons un coup d'œil :
Marque

Comment cette étude est organisée.
Tout d'abord, le CPU de la Xbox est identifié comme un Pentium III. Alors, qu'est-ce que cela signifie ? À l'époque (début des années 2000), la série Pentium représentait la nouvelle génération de CPU. Ils étaient le 'nouveau haut de gamme' qui regroupait toutes les technologies sophistiquées qui rendaient les ordinateurs super rapides, en plus cela aidait les acheteurs à décider quel CPU ils devaient acheter s'ils voulaient le meilleur du meilleur.
Le Pentium III a remplacé le Pentium II, qui à son tour a remplacé le Pentium original. De plus, lorsque le premier Pentium est sorti, il a remplacé le 80486, qui à son tour a remplacé le 80386... Vous avez compris l'idée. Ce qui compte, c'est que 'Pentium' est principalement un nom de marque, il n'est pas directement associé à son fonctionnement interne. Par conséquent, nous devons aller plus loin !
Pour aller plus loin et ne pas se perdre en chemin, j'ai catalogué les informations en trois sections qui, combinées, constituent la puce. La première est l'Architecture de l'ensemble d'instructions ou 'ISA' (le groupe d'instructions utilisé pour commander le CPU), Microarchitecture (comment l'ISA est mise en œuvre en silicium) et le Cœur (quel ensemble de composants sont utilisés pour emballer la microarchitecture pour former le modèle de CPU spécifique).
L'ISA
En effet, une fois que je mentionne 'Intel', il est question de temps avant que je présente le célèbre x86, son ensemble d'instructions.
La première forme de x86 a fait ses débuts avec la sortie de l'Intel 8086 en 1978, un CPU 16 bits. Ensuite, l'ISA a été constamment élargie avec plus d'instructions à mesure que de nouveaux processeurs Intel étaient lancés (80186, 80286 et ainsi de suite) . Par conséquent, le x86 a commencé à se fragmenter à mesure que de nouvelles fonctionnalités révolutionnaires étaient ajoutées (c'est-à-dire le 'mode protégé' et le 'mode long'). Pour faire face à cela, les applications x86 modernes ciblent couramment l'ISA 80386 (également appelée IA-32 ou i386) comme base, qui, entre autres, fonctionne dans un environnement 32 bits.
Par la suite, Intel a amélioré l'IA-32 avec l'utilisation d'extensions, ce qui signifie que les nouvelles fonctions peuvent ou non être incluses dans un CPU IA-32. Les programmes interrogent le CPU pour vérifier si une amélioration spécifique est présente. Le CPU de la Xbox comprend deux extensions :
- MMX (Extension multimédia): Ajoute 57 instructions SIMD et 8 registres de 64 bits (entiers uniquement) qui peuvent accélérer les opérations vectorielles.
- SSE (Streaming SIMD extension) : Une autre extension de type SIMD qui répond à la critique de MMX (manque de support en virgule flottante et incapacité à utiliser l'unité de virgule flottante en parallèle). Il ajoute 56 nouvelles instructions et huit registres de 128 bits (appelés 'XMM') qui contiennent quatre
floatsde 32 bits.
La bonne nouvelle est que, puisque la console aura toujours le même CPU, les programmeurs peuvent optimiser leur code pour exploiter ces extensions car elles seront toujours présentes.
La Microarchitecture
Quand il s'agit de construire un circuit qui peut interpréter les instructions x86, Intel a proposé tellement de conceptions différentes pour leurs CPU. Certaines conceptions ont été présentées avec la sortie d'une nouvelle série Pentium (c'est-à-dire. Pentium 4) tandis que d'autres ont été présentés lorsque Intel a sorti une version 'améliorée' d'un Pentium (comme le 'Pentium Pro'). Néanmoins, depuis la sortie du premier Pentium, le modèle de CPU et la microarchitecture ne portent plus le même nom. Par exemple, le 80486 utilise la microarchitecture 80486 (et aucune autre), cependant, le Pentium original a la microarchitecture 'P5'.
Maintenant, le CPU de la Xbox, ainsi que le reste des processeurs Pentium III, utilisent la Microarchitecture P6 (également connue sous le nom 'i686'). C'est la 6ème génération (en comptant à partir du 8086) qui présente :
- Un énorme pipeline de 14 étapes: Cela signifie que jusqu'à 14 instructions peuvent être traitées en parallèle. D'un autre côté, les instructions individuelles peuvent prendre beaucoup plus de cycles pour être complétées. Voir une explication précédente.
- Exécution hors ordre: Si possible, le CPU réorganise la séquence d'instructions pour augmenter l'efficacité et la performance.
- Exécution dynamique : Puisque le P6 est une conception hors d'ordre et superscalaire. Le traditionnel prédictor de branche est maintenant combiné avec d'autres techniques ('exécution spéculative' et 'analyse de flux de données') pour tirer parti des nouvelles capacités. Ce faisant, il réduit encore plus les arrêts de pipeline.
Cela dit, prenez un plus près look à ces caractéristiques. Il se trouve qu'elles sont très similaires aux consoles précédentes, cependant, les autres CPU sont très différents en termes de conception par rapport à ceux d'Intel. Historiquement, on pourrait soutenir que la conception du x86 n'aurait jamais permis à Intel de produire, disons, un CPU en pipeline. Pourtant, ils ont réussi à le faire, voyons pourquoi...
CISC ou RISC
La concurrence se trouve à présenter des CPUs conçus autour des directives RISC, alors que le x86 d'Intel ne l'est pas, se retrouvant ainsi dans le groupe CISC. Les CPUs RISC sont connus pour avoir un design intentionnellement simplifié par rapport aux CPUs CISC. Cela comprend, par exemple, la mise en œuvre d'une architecture de chargement-stockage, qui ne fournit que des instructions qui opèrent des valeurs à partir de registres (au lieu d'opérer directement à partir de la mémoire).
Un des avantages des processeurs RISC est que leur approche simpliste permet à leurs CPU d'être conçus avec un sens modulaire, qui peut à son tour être exploité pour améliorer les performances avec des techniques de parallélisme. C'est pourquoi nous avons vu des CPU comme MIPS et PowerPC débuter des étapes de pipeline, des conceptions superscalaires, l'exécution hors ordre, la prédiction de branchement, etc. De l'autre côté, les processeurs CISC précèdent les processeurs RISC et les premiers visaient à résoudre des besoins différents. Par conséquent, leurs conceptions ne sont pas aussi flexibles que les CPUs RISC.
Pour revenir à la question initiale, le P6 est une conception intéressante, car bien que ce CPU ne comprenne qu'un ensemble d'instructions CISC (x86), un sous-ensemble de ses opcodes est interprété en utilisant microcode. Plus important encore, l'unité qui exécute le microcode est construite autour du modèle de chargement-stockage . C'est parce que l'architecture P6 a été conçue par les anciens ingénieurs de l'Intel i960 (un CPU RISC autrefois prometteur d'Intel). En somme, cela a permis à Intel d'obtenir des avantages similaires à ceux des processeurs RISC sans rompre la compatibilité avec l'ISA x86 historique. Il est juste de dire qu'avec le temps, des termes comme 'CISC' et 'RISC' sont devenus trop ambigus pour catégoriser n'importe quel CPU moderne.
En passant, le microcode est déjà intégré dans le silicium mais il peut être corrigé, permettant à Intel de réparer ses CPUs après production chaque fois qu'un bug ou une vulnérabilité de sécurité est découvert. Si vous avez lu les articles précédents (c'est-à-dire N64 ou PS2), gardez à l'esprit que le microcode d'Intel n'est pas accessible au public (encore moins documenté) et Intel est son seul 'mainteneur'.
Le cœur du CPU
Intel a expédié de nombreux puces qui implémentaient la microarchitecture P6. La Xbox comprend un modèle appelé Coppermine. Il a été commercialisé comme la deuxième révision du Pentium III (remplaçant le cœur 'Katmai') et comprend les composants suivants :
- 32 KiB de cache L1 : divisés entre 16 KiB pour les instructions et 16 KiB pour les données.
- Cache L2 intégré de 128 KiB : C'est étrange puisque le Coppermine de série a 256 KiB de L2 . En fait, le Coppermine128 (que l'on trouve dans la marque 'Celeron' d'Intel, l'alternative bas de gamme de Pentium) a la même quantité de L2 . Par conséquent, cela a probablement été fait pour réduire les coûts de fabrication et maintenir cette console à un prix compétitif.
- 133 MHz Bus frontal: C'est le bus qui relie le cache L2 au contrôleur de mémoire, nous en verrons plus à ce sujet plus tard.
- Intel l'appelle 'Front-side bus' pour le distinguer d'un autre bus qui connecte L2 (cache externe) avec L1 (cache interne). Ce dernier bus est appelé 'Back-side bus'... et c'est un nom malheureux à utiliser au Royaume-Uni.
Coppermine ajoute également deux 'améliorations' à leur mise en œuvre originale de cache L2, il s'agit du Advanced Transfer Cache et du Advanced System Buffering. Pour les résumer, le cache L2 est sur la puce et leurs bus sont plus larges, ce qui aide à réduire les éventuels goulets d'étranglement dans le bus frontal.
Enfin, la puce utilise le socket 'Micro-PGA2' pour s'adapter sur la carte mère, mais comme toute autre console, la Xbox l'a soudée avec un Ball Grid Array ou 'BGA'.
P6 et la fin des nombres Pentium
Voici un peu plus d'histoire. Après les années du P6, Intel prévoyait de le succéder avec la microarchitecture 'NetBurst' (présente dans le Pentium IV). Cependant, la ligne de succession s'est également terminée là. Bien que NetBurst ait mis en œuvre de nombreuses techniques contemporaines , il a également souffert d'une consommation d'énergie excessive, d'une émission de chaleur (en moyenne de 85 W ) et de problèmes de scalabilité - tous ces éléments ont empêché la conception d'aller plus loin.
En conséquence, cela a incité une équipe Intel en Israël à revisiter leur CPU P6 à faible consommation - le 'Pentium M' - et à développer un successeur plus puissant. Le premier résultat a été le cœur Yonah, une légère amélioration de la conception du P6, commercialisée sous le nom de Core Solo ou Core Duo. Avec cela, la dissipation de la puissance est tombée à des chiffres raisonnables (entre 27 W et 31 W , selon la variante). Des mois plus tard, la suite Core est devenue le successeur phare de P6 (et NetBurst) et, de manière assez confuse, a atteint les étagères sous la forme de la ligne de CPU Core 2. Au fil des années, les microarchitectures suivantes ont amélioré de nombreux aspects, mais elles ont également réussi à réincorporer des éléments oubliés de NetBurst sans répéter les mêmes erreurs.
Sur une note curieuse, je me demande si le nom du cœur Yonah est destiné à être une métaphore pour le Livre de Jonas, en particulier en reliant l'événement où le prophète, à la fin, a réussi à corriger sa voie pour sauver la ville de Ninive. Bien qu'il soit également possible que je surpense cela.
Architecture de la carte mère
À un moment donné dans l'histoire du PC, les cartes mères ont tellement gagné en complexité que de nouvelles conceptions ont dû être développées à partir de zéro pour répondre efficacement aux besoins émergents.

Vue d'ensemble de la carte mère Xbox.
Le nouveau standard développé repose sur deux puces dédiées pour gérer la plupart des fonctions de la carte mère. Ces puces sont :
- Le Northbridge: Sert de contrôleur de mémoire et interface le GPU.
- Le Southbridge: Interface le reste de l'I/O (c'est-à-dire USB, ATA/SATA, PCI, etc)
La combinaison de ces puces est appelée jeu de puces et elles sont suffisamment importantes pour conditionner les capacités et les performances d'une carte mère. La Xbox, étant si proche d'un PC, comprend également deux puces : Le NV2A, une combinaison de Northbridge et de GPU ; et le MCPX qui gère le reste de l'I/O.
Les deux puces sont interconnectées à l'aide d'un bus spécialisé appelé HyperTransport. Il convient de souligner que certaines cartes mères de PC ont également inclus cette technologie, juste avec une marque différente (nForce MCP-D).
Disposition de la mémoire
La Xbox comprend un total de 64 MiB de DDR SDRAM, ce type de RAM est très rapide par rapport à ce que la concurrence offre. Cependant, elle est également partagée entre tous les composants de ce système. Par conséquent, une fois de plus, nous nous trouvons devant une autre architecture de mémoire unifiée ou disposition 'UMA'.

Représentation du réseau de commutation. Le GPU utilise deux banques tandis que le CPU en utilise une différente, réduisant ainsi la contention dans le processus.
Nous avons déjà vu à quel point ce design peut parfois être problématique. Néanmoins, les programmes peuvent résoudre ce problème en répartissant leurs données entre différentes banques de mémoire. NV2A implémente un réseau de commutation qui permet à différentes unités (CPU, GPU, etc) d'y accéder simultanément .
De plus, la console dispose d'un disque dur interne, et il se trouve qu'il est configuré avec trois partitions de 750 MiB chacune réservées pour le stockage temporaire. Le CPU peut décharger certaines de ses données de la RAM principale, puis les télécharger à nouveau lorsque c'est nécessaire. Gardez à l'esprit que c'est un processus manuel et n'implique pas de RAM virtuelle.
