« Architecture de la Game Boy / Color (index)

Architecture de la Game Boy / Color

Chapter 3: CPU


Table des matières

  1. Le cœur du CPU
    1. L'effet de couleur
  2. Accès hardware
  3. Mémoire disponible

Au lieu de placer de nombreux puces standard sur la carte mère, Nintendo a opté pour une conception monopuce pour loger (et cacher) la plupart des composants, y compris le CPU. Ce type de puce est appelé Système sur une puce (SoC) et, dans ce cas, il a été spécifiquement conçu pour cette console, permettant à Nintendo de l'adapter à leurs besoins (efficacité énergétique, anti-piratage et E/S supplémentaires, entre autres). En même temps, cette puce ne se trouve dans aucun catalogue de vente au détail, ce qui signifie que les concurrents de l'époque avaient plus de mal à la cloner.

Cela dit, le SoC trouvé sur la Game Boy est appelé DMG-CPU ou Sharp LR35902 et, comme son nom l'indique, il est fabriqué par Sharp Corporation. Cette entreprise, avec Ricoh (le fournisseur du CPU de la NES), a entretenu une relation étroite avec Nintendo.

Le cœur du CPU

Au sein du DMG-CPU, le processeur principal est un Sharp SM83 et il est un mélange entre le Z80 (le même CPU utilisé sur la Sega Master System) et l'Intel 8080. Il fonctionne à ~4.19 MHz, ce qui est plus rapide que le CPU moyen de 1 MHz, mais n'oubliez pas que les vitesses d'horloge peuvent être trompeuses.

Image
Le DMG-CPU, trouvé sur la carte mère de la Game Boy.

Maintenant, quand j'ai fait l'analyse du Master system, j'ai expliqué que le Z80 est lui-même un sur-ensemble du 8080. Alors, qu'est-ce que le SM83 a réellement et qu'est-ce qui lui manque par rapport à ces deux-là ?

De plus, Sharp a également ajouté quelques nouvelles instructions qui ne sont présentes ni dans le Z80 ni dans le 8080. Ils optimisent certaines opérations liées à la façon dont Nintendo/Sharp a organisé le matériel. Un exemple est la nouvelle instruction LDH (signifiant 'load from high memory' ), qui a été spécifiquement incluse pour fonctionner sur les derniers 256 octets de la carte mémoire (où les adresses commencent à $ff00) et, plus important encore, tient en un octet de moins (et est donc légèrement plus rapide).

L'effet de couleur

Image
Carte mère du Game Color .

Image
La même image sans la légende des parties importantes.

Presque 10 ans plus tard, après l'abandon du Virtual Boy et de son matériel de pointe, un successeur modeste est arrivé : le Game Boy Color. À l'intérieur, il y a un nouveau SoC nommé CPU CGB qui apporte quelques ajouts. Cependant, son noyau de CPU SM83 reste le même, sauf pour sa vitesse d'horloge doublée (maintenant fonctionnant à ~8.38 MHz).

Il est difficile de penser qu'après une décennie, Nintendo continuerait à regrouper le même CPU, mais une telle décision comporte les avantages suivants :

Cependant, cela se fait au prix de l'adoption d'une technologie obsolète selon les normes de la fin des années 90. Il suffit de regarder l'état du marché des CPU pour remarquer les capacités dont Nintendo se privait (pour être juste, Nintendo a essayé avec le Virtual Boy).

Accès hardware

Le SM83 conserve un bus de données de 8 bits et un bus d'adresses de 16 bits, donc jusqu'à 64 KB de mémoire peuvent être adressés. La carte mémoire est principalement composée des points d'extrémité suivants :

Ces éléments seront expliqués tout au long de cet article.

Mémoire disponible

Image
Architecture de la mémoire du DMG (Game Boy original). Le PPU arbitre l'accès à la VRAM.

Nintendo a incorporé 8 Ko de RAM sur la carte mère, ceci est pour un usage général (qu'ils appellent Work RAM ou « WRAM ») . Notez que c'est quatre fois plus que ce qu'avait la NES.

Il y a un supplément de 127 B de RAM logé dans le SoC. Il est appelé High RAM ou 'HRAM', et fournit un petit espace pour les données qui peuvent être accédées plus rapidement via l'instruction unique LDH du SM83. Ceci est très similaire au mode 'Zero Page' du 6502 , qui optimisait également les performances en fonction de l'emplacement de la mémoire. Maintenant, la High RAM n'est pas techniquement plus rapide à accéder que la RAM générale, mais c'est une zone priorisée pour le CPU. Vous comprendrez ce que cela signifie lorsque vous atteindrez la section 'Graphiques', où je discute du composant DMA.

Image
Architecture de mémoire étendue du CGB (Game Boy Color). Encore une fois, le PPU arbitre l'accès à la VRAM.

Plus tard, avec la variante Color, Nintendo a agrandi la WRAM à 32 KB. Cependant, comme le CPU est resté inchangé (en particulier ses capacités d'adressage), il n'est pas possible de connecter toute la nouvelle mémoire sans d'abord déborder l'espace d'adressage disponible. Pour résoudre ce problème, les ingénieurs de Nintendo ont mis en œuvre la commutation de banques. Initialement trouvé dans les cartouches NES, la Game Boy Color utilise le même principe pour accéder à ces 32 KB en utilisant seulement 8 KB d'espace mémoire. L'astuce est simple : les derniers 4 Ko peuvent être échangés en utilisant sept banques différentes. Par conséquent, le CPU intègre un registre supplémentaire (appelé SVBK) agissant comme le commutateur de banque, c'est ce que les développeurs doivent utiliser pour examiner la mémoire étendue.


Previous: 2. Une brève introduction

Next: 4. Graphismes


Rodrigo Copetti © 2026 RSS Feed

Basculer vers l'édition moderne

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