HS N°4 : La mémoire de la Megadrive

Dans la première partie du dossier, nous avons vu comment travail le processeur graphique de la Megadrive. Dans la seconde partie, c’est son processeur centrale qui a été passé au décryptage de fonctionnement. Avant de continuer à passer au crible le reste de la carte mère de la console (donc de s’attaquer au processeur sonore) et pour commencer à faire un liant avec les deux premières parties, je vous propose de partir à la découverte fonctionnelle de la mémoire informatique.

1- Analogie :

Pour l’analogie, la mémoire en informatique, c’est un peu comme une grande armoire pleine de casiers numérotés dans lesquels sont rangés des choses. Souvenez vous, dans notre exemple, le technicien vas y chercher ses VHS pour alimenter ses magnétoscopes selon une liste de choses à faire dans un temps précis et à une cadence précise…

Pour être un peu plus précis dans ce que notre pauvre technicien acharné de travail doit réaliser, sachez que les casiers de l’armoire sont trop petits pour pouvoir accueillir une grosse VHS. Alors, pour que ces cassettes puissent être stockées dedans, les producteurs ont eu la géniale idée de les démonter en autant de petites pièces que nécessaire et confié la tâche à notre « esclave de l’horloge » de les remonter avant utilisation en suivant un plan…

Pas de panique, en fait, comme vous l’avez lu dans la partie précédente, notre ami est capable de réaliser 7,6 millions de choses en 1 seule seconde alors, franchement, il a plus que le temps de réaliser cette action !

2- Explications :

Le principe de fonctionnement de la mémorisation électronique est extrêmement simple. Imaginez que vous avez 8 interrupteurs électriques reliés chacun à une ampoule et que vous allumez le premier puis le dernier. Vous vous retrouvez donc avec l’équivalence d’un mot binaire de 8 bits 10000001 (valant 129). Le fait que vous puissiez partir en le laissant allumé le « mémorise ».

Une mémoire comporte un nombre extrêmement grand de ces interrupteurs formant des mots. C’est une banque de mots pour être plus précis et, il en existe deux types : les mémoires dites « mortes » et les mémoires dites « vives »…

La mémoire morte est une mémoire qu’on a figé et qu’on ne peut modifier qu’avec un procédé spécifique. Ni l’utilisateur, ni le programme ne peuvent la modifier. On dit qu’elle est en « lecture seule » et vous la connaissez sous le nom de ROM pour Read Only Memory. Un CD, un DVD ou un BlueRay sont des mémoires mortes au même titre qu’une cartouche de jeu car, ni vous ni le programme de la console ou du lecteur média ne peuvent en modifier le contenu pendant son exécution.

La mémoire vive est une mémoire qui, à son initialisation, est vide de toutes données. C’est une sorte de zone de stockage temporaire dans laquelle le programme dépose des données qu’il exploitera en cours de route et dont il pourra modifier le contenu à tout instant et à la volée. Vous la connaissez sous le nom de RAM pour Random Access Memory. Les registres du processeurs, les barrettes mémoires de vos ordinateurs sont des mémoires vives car leur contenu change en fonction de l’utilisation et qu’à l’extinction de votre appareil, toutes ses données disparaissent.

Pour la Megadrive, la mémoire utilisée est principalement de type RAM (vive), la cartouche de jeu et le BIOS sont les seuls éléments de la console qui utilisent une mémoire ROM (morte).

Donc, nous avons désormais bien compris qu’une mémoire est une grande banque de stockage de données numériques rangées proprement dans des emplacement numérotés. Ces emplacements sont nommés « adresses mémoires » et comprennent tous l’équivalent d’un octet mémorisable. Mais, leur nombre est limité par une contrainte technique…

Pour comprendre le problème, retournons vers notre processeur centrale. Pour communiquer avec son environnement extérieur le Motorola 68000 (et tous les autres aussi) utilisent ce que l’on appel des bus (de données ou d’adressage). Comme son nom l’indique, un bus est capable de transporter plusieurs bits en même temps et en parallèle (en tous cas pour notre processeur à nous, c’est le cas).

On sait, grâce à la documentation technique du 68000 que notre processeur possède un bus d’adresse large de 24 bits (16 bits pour celui de données), ce qui représente une capacité de comptage maximum de 16.777.216 et donc d’autant d’emplacements mémoire possible, soit environ 16Mo maximum ! Si le bus d’adresse avait été plus large, la mémoire maximum possible aurait été plus importante. Inversement, pour un bus moins large, la capacité mémoire aurait été plus faible.

En comparaison, le Zilog Z-80 qu’utilise la Master System ne possède qu’un bus d’adresse large de 16 bits pour une capacité mémoire maximum de seulement 64Ko. Vous voyez la grosse différence qu’il existe pour seulement 8 bits en plus ???

Bon, à l’époque de notre bonne vieille Megadrive, il aurait été impensable d’embarquer 16Mo de mémoire sur une console de jeu. En 1989, le prix du Mo de mémoire devait être compris en 30 et 40$… Ce ne sont donc que 64Ko qui seront embarqués à bord de notre machine (la Super Famicom, qui sortira quelques années plus tard, en embarquera 128Ko).

Dans la partie précédente de ce dossier (celle sur le processeur), j’avais donné un exemple de calcul mathématique pour lequel j’avais détaillé (grossièrement) le processus de résolution. Rappelez vous, j’avais parlé d’actions comme :

– Aller chercher A.
– Stoker A dans le registre 1.

Et bien nous allons désormais pouvoir approfondir ce processus :

« Aller chercher A » va pouvoir se traduire en « rendez vous à l’emplacement mémoire xxxxxxxx.xxxxxxxx.xxxxxxxx (oué y’a 24 bits quand même…) et lire sur ton bus de données l’octet présent dans cet emplacement. Tiens, il y a un petit problème !!!

Sur le schéma du processeur 68000, on voit bien que son bus de données est de 16 bits de large. Mais alors si on a un mot de 16 bits à traiter, comment allons nous faire si la mémoire ne peut stocker que des mots de 8 bits? Pas de panique, on a beaucoup de marge dans la cadence d’exécution du processeur alors, le programme va tout simplement scinder le processus en deux et notre petite phrase va ainsi devenir :

« Va chercher la première partie de A à l’emplacement mémoire X (oué, on va pas se retaper les 24 bits à chaque fois) et stock cet octet dans ta mémoire. Une fois que tu auras fini, va chercher la seconde partie de A à l’emplacement X+1 et stock ce que tu y trouveras à la suite de ce que tu as trouvé avant. »

Stocker uniquement des mots de 8 bits (1 octet) est une manière fiable de gagner de la place dans la mémoire. Si votre mot binaire ne dépasse pas la valeur de 256 (maximum pour 8 bits) il serait idiot d’utiliser 16 bits pour le stocker… Deux coups d’horloge sont encore parfaitement acceptable pour coupler deux octets dans un mot de 16 bits.

Maintenant, on peut passer passer à la seconde étape :

« Stocker A dans le registre 1 » va pouvoir se traduire en « maintenant que tu as reconstitué ton mot 16bits, transfert le dans ta mémoire interne n°1 pour pouvoir le traiter par la suite »

Pour la petite précision, sachez que les registres ne sont ni plus ni moins que des emplacement mémoires mais qui possèdent la particularité d’être au plus près de l’unité de calcul, minimisant ainsi le chemin à parcourir pour accéder aux données. Ils sont donc très rapides mais extrêmement coûteux à mettre en place au milieu de l’architecture déjà très complexe d’un processeur. C’est pour cela qu’ils sont en nombre réduit (ici 8 de données et 8 d’adresses).

3- Conclusion :

Voilà dans les grosse lignes comment fonctionnent des mémoires informatiques. Leur technologie est basée sur un montage faisant office d’interrupteur pouvant mettre à 0 ou à 1 un bit et le conserver dans cet état jusqu’à qu’on ne souhaite plus l’utiliser et qu’on l’efface. Le processeur accède aux données stockées dans ces mémoires à l’aide d’un bus d’adresse permettant de lire la valeur d’un emplacement précis puis la traite et la transmet à qui de droit.

Pour la prochaine et dernière étape avant la conclusion récapitulative, nous iront regarder de plus près le circuit sonore de la Megadrive et comprendre comment des 0 et des 1 peuvent se transformer en musiques et en bruitages…

DarkPengoo

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s