Discussions endiablées autour du retrogaming et des consoles de jeux vidéo, micro-ordinateurs et Arcade. Amstrad / Atari / Bandai / Commodore / Nec / Nintendo / Sega / SNK / Sony / Microsoft


Connexion

Récupérer mon mot de passe



Derniers sujets

» Bram Stoker's Dracula (Megadrive)
par gatsuforever Aujourd'hui à 9:06

» La saga Assassin's Creed
par gatsuforever Aujourd'hui à 8:51

» Bouffe dans tous ses etats ...
par skyllneverdie Hier à 21:37

» Yakuza 0 (Test PS4)
par Tonka Hier à 21:25

» Terranigma (SNES)
par wiiwii007 Hier à 20:02

» Vos jeux finis en 2018
par wiiwii007 Hier à 18:59

» Le topic de la Nintendo Switch
par CTJ Hier à 17:28

» La lecture du retrogamer
par ange_dechu_lucifer Hier à 15:46

» Topic officiel Vita
par ange_dechu_lucifer Hier à 15:16

» This War Of Mine [PC-PS4-One]
par skyllneverdie Hier à 6:36

Rechercher
 
 

Résultats par :
 

 


Rechercher Recherche avancée


Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

forum.paderetro.com » L'enfer » Consoles rétros 2D » Sega Megadrive » Le fonctionnement d'une Megadrive - partie 2 : le Motorola 68000 (dossier)

Le fonctionnement d'une Megadrive - partie 2 : le Motorola 68000 (dossier)

Voir le sujet précédent Voir le sujet suivant Aller en bas  Message [Page 1 sur 1]

fafy

avatar
Témoin de Nintendovah
----------------------------------

0- Introduction :

Maintenant que nous avons bien préchauffé le four cérébrale avec la première partie de cette série de dossiers visant à découvrir les entrailles de la Megadrive (partie consacrée au processeur graphique Texas Instrument TMS9918), nous allons continuer tranquillement notre exploration en s'attaquant au coeur de la machine : son processeur centrale, le Motorola 68000.


Ici aussi je vais essayer d'être le plus explicatif possible et vous proposer un maximum d'analogies pour que le fonctionnement de cette puce vous soit plus facile à comprendre.

----------------------------------

1- Analogie :

Dans la première parti du dossier, pour définir le fonctionnement du processeur graphique, je vous parlais d'un ensemble de caméras, magnétoscopes, cassettes VHS, technicien, listing et armoire de stockage. Le processeur centrale, dans mon exemple, était représenté par le technicien.

Son rôle? Aller chercher dans l'armoire de stockage les cassettes VHS pour alimenter les magnétoscopes, les positionner au bon moment pour que la ces derniers puissent diffuser la séquence vidéo nécessaire au jeu de l'acteur. Il s'occupera aussi de diffuser la musique du film qu'il est en train de réaliser en direct sous nos yeux et encore quelques petites taches multiples dont nous ne parlerons pas ici.

Heureusement pour notre pauvre technicien, tout à été prévu par la production et il possède donc une liste de chose à effectuer en séquence précises dans un temps précis en fonction d’éléments (prévisibles ou pas) précis.

Au départ, notre pauvre opérateur attend bien sagement que le direct commence. Il n'a rien à faire jusqu'au moment ou le réalisateur du show lui ordonne d'envoyer le générique...

----------------------------------

2- Le BIOS :

Maintenant que le rôle du processeur est bien défini (par le rôle du technicien), nous allons parler du BIOS qui ordonne la mise en route du premier processus (la première instruction). Dans notre analogie, le BIOS est représenté par le réalisateur qui n'aura qu'une seule et unique mission : lui donner le top générique (quel feignant !!!).

Premièrement, que signifie BIOS? Et bien, tout simplement, ce sont les initiales de l’anglicisme "Basic Input Output System" (système élémentaire d'entrées/sorties).

Le BIOS est en fait un petit programme, très simple, ayant pour but d'initialiser électroniquement les composants d'un système informatique et d'ordonner au processeur centrale d'effectuer sa première tâche. Cette tâche est toujours la même : vérifier la zone de la cartouche insérée et aller y chercher la première instruction destinée au processeur.

Pour bien comprendre son rôle, imaginez votre voiture (ou moto/scooter, c'est comme vous voulez). Si rien n'est intercalé entre le moteur et votre clé de contact, comment pourrait bien démarrer votre véhicule? C'est pour cela qu'il existe le démarreur (ou lanceur) qui sert à forcer le moteur (alors inerte et sans but) à se lancer et à tourner. Et bien le BIOS est le démarreur de la console, tout simplement.

Au tout début de la Megadrive, il n'y avait pas de BIOS intégré à la carte mère. Il se trouvait directement sur la cartouche du jeu. Mais très vite, les ingénieurs de SEGA posèrent une petite mémoire en lecture seule (ROM pour Read Only Memory) de 2Ko (vous savez désormais à quoi ce chiffre correspond) à coté du processeur directement sur le circuit imprimé de la console.

----------------------------------

3- Explications :

Tout comme un être humain, le processeur possède de la mémoire répartie en zones. Ces zones mémoires, très petites, se nomment des registres et servent à stocker une donnée temporairement pour pouvoir la manipuler par la suite. Le processeur de la Megadrive, le Motorola 68000 possède 8 de ces registres pour les adresses et 8 pour les données, ayant la possibilité de stocker des nombres jusqu'à 32bits par 2 sections de mots 16bits (ce qui vaudra les initiales ST, pour Sixteen/Thirty-two, pour 16/32, aux ordinateurs de la gamme Atari qui en sont également équipés). Ce processeur est donc capable de traiter des instruction 32bits mais demande plus de ressources en raison d'un bus d'entrées uniquement en 16bits. À la bonne heure, la Megadrive n'ira pas plus loin que ces 16 petits bits, donc, pas de soucis !


Il possède aussi ce que l'on appel une ALU (Arithmétique and Logic Unit ou unité arithmétique et logique en français) qui lui sert à faire des opérations mathématiques sur les nombres et des comparaisons d'états de bits. Cette
ALU est composé d'un très grand nombre de composants miniaturisés à l'extrême et formant des structures électroniques complexes basées sur des réseaux de portes logiques (je vous laisse vous renseigner sur le sujet, on est pas la pour manger trop d’électronique non plus hein?).


Toutes ces fonctions internes sont cadencées par une horloge externe, extrêmement précise exprimée en Hz (Hertz) offrant un état haut (1) et un état bas (0) dans un signal carré.


1Hz correspondant à 1 alternance haute/basse en 1 seconde (c'est très lent), si le processeur de la Megadrive est cadencé par une horloge à 7,6MHz, cela signifie donc qu'il alterne 7,6 millions de fois un état haut/bas en 1 seconde (ca commence à être très rapide) !!!

Ces fonctions sont également toutes affublées d'un code binaire (unique à chaque instruction) qui, au finale représente un "jeu d'instruction" permettant de savoir quelle fonction utiliser et à quel moment. Si le processeur possède 200 fonctions, il y aura 200 codes de fonctions. Bon, le 68000 n'en possède que 82 alors...il y aura 82 codes d'instructions (un pour l'addition, un pour la soustraction,...). Sachant qu'il faut 7 bits pour compter jusqu'à 82 (si, si, vérifiez maintenant que vous savez faire), le jeu d'instruction sera encodé sur 8bits (oui, on arrondi à l'octet).

Bien, concrètement, comment notre pauvre petit technicien peut il arriver à exécuter son travail en fonction de toutes ces informations? Et bien grâce à son listing détaillé gracieusement offert par la production du show, tout simplement. Ce listing, c'est le programme du jeu contenu sur la cartouche.

Une fois que le BIOS à lancé le générique (le fameux logo SEGA qui apparaît toujours en premier) et lancé la première instruction pour mettre en branle tout le bastringue, notre petit processeur va exécuter sagement la liste des choses à faire, en séquence et surtout en cadence ! Un coup d’horloge, une instruction, c'est aussi simple que cela !

On va lui demander d'aller chercher les tiles dans la cartouche pour les poser dans la mémoire vidéo, on va lui demander d'additionner une valeur contenue dans un emplacement mémoire avec celle d'une autre contenue dans un autre emplacement, on va lui demander de comparer un résultat avec une autre valeur contenue encore ailleur dans la mémoire,... bref on va lui demander tout un tas de choses... Et pour qu'il puisse s'en sortir l'ami processeur stockera des valeurs, des résultats, des adresses mémoires,... dans ses propres registres !

Par exemple pour réaliser l'opération mathématique ((A+B)-(C+D))*(E+F), il va agir comme suit (on appellera les regitres 1, 2,3,... pour simplifier) :

- aller chercher A
- stocker A dans registre 1
- aller chercher B
- stocker B dans registre 2
- additionner registre 1 et registre 2
- stocker le résultat dans registre 3
- aller chercher C
- stocker C dans registre 1
- aller chercher D
- Stocker D dans registre 2
- additionner registre 1 et registre 2
- stocker le résultat dans le registre 4
- aller chercher E
- stocker E dans registre 1
- aller cherche F
- stocker F dans registre 2
- additionner registre 1 et registre 2
- stocker le résultat dans le registre 5

À ce moment la, les registres 3,4 et 5 comprennent les résultat des calculs A+B, C+D ET E+F. Il ne lui reste plus qu'à effectuer le calcul final :

- soustraire le registre 3 avec le registre 4
- stocker le résultat dans le registre 1
- multiplier le registre 1 avec le registre 5
- stocker le résultat dans le registre 2
- envoyer le résultat à la RAM de la console
- effacer les registres

Et le processeur est à nouveau disponible pour un nouveau calcul !

Ce processus (ah ben tiens, voilà donc pourquoi il s'appel un processeur...) est ici très compressé pour les besoins de l'exemple qui se veut simple à comprendre. En réalité il prend beaucoup plus de coups d’horloge pour le réaliser car il faut donner l'adresse de la zone mémoire cible pour chacun des opérateurs (A, B, C, D, E et F) et spécifier si c'est une lecture ou une écriture. Mais si nous restons sur cette base théorique simpliste, il aura eu besoin de 24 coups d’horloge pour réaliser ce calcul. Sachant qu'il en exécute 7,6 millions en 1 seconde, je vous laisse calculer (vous m'avez pris pour un processeur ou quoi?) le temps qu'il lui aura été nécessaire pour y arriver... Bon allé, je suis sympa... 0,0000032 secondes (qui dit mieux?)

Mais ce qu'il faut bien comprendre dans ce principe de fonctionnement, c'est que le processeur à besoin d'un signal pour le cadencer et de mémoires de stockage pour aller chercher ses informations. Il récupère ce dont il à besoin, le stock, le traite, l'expédie puis se débarrasse de ses données pour recommencer son cycle. Il est bien loin le temps ou les processeurs de Skynet prendrons le contrôle des machines pour anéantir la race humaine ! Oui, je sais, avec mes réflexions, je fais chier Hollywood...

----------------------------------

4- Conclusion :

Voilà vous savez désormais à quoi sert le processeur centrale d'une console. Vous aurez donc compris que ce dernier ne sait rien faire d'autre que des opérations basiques composées de calculs simples (additions, soustractions, multiplications et division), d'instruction de "copier/coller" (lecture et écriture) et de comparaison d'état binaire (C'est à 0 ou c'est à 1? Ah c'est à 1? Ok alors je fait ca !) en cadence avec une horloge.

Sans un coup de starter, il ne sait strictement rien faire et il n'a aucune autonomie dans l’exécution d'un programme. Vulgairement, un processeur ne sait rien faire de plus qu'une calculette ! C'est un parfait petit esclave acharné de travail capable de réaliser plusieurs millions d'instructions par secondes.

Mais c'est un élément essentiel d'une architecture informatique. Sans lui, aucun calcul n'est possible (ou alors il faudrait une pièce remplie de composants pour y arriver). Il concrétise l’extrême complexité d'un programme informatique par des opérations simples mais très nombreuses... et juste une seule à la fois !

Mais que fait-il de ces calculs et autres comparaisons? Et bien ca, nous le verrons un peu plus tard dans les dossier après qu'on soit allé faire un tour dans le fonctionnement d'une mémoire pour le prochain volet.



Dernière édition par fafy le Dim 17 Mai - 8:08, édité 7 fois

http://www.aros-tech.fr/

fafy

avatar
Témoin de Nintendovah
Bon alors? Ca fume un peu dans les cerveaux?

http://www.aros-tech.fr/

kenminido

avatar
Damné du Stick

Merci pour cet exposé, limpide !

Vivement la suite.

fafy

avatar
Témoin de Nintendovah
Merci Smile Hésitez pas si y'a des trucs que vous ne comprenez pas hein? J'essaye de simplifier au maximum les fonctionnements en tirant que les grosses lignes pour une compréhension très "empirique" de la chose mais j'ai tendance à trouver mes explications simples (vu que pour moi ca coule de source) alors que ce n'est pas toujours le cas !!!

http://www.aros-tech.fr/

ixindamix

avatar
Cerbère de la Manette

Je ne m'y connais pas trop en programmation mais selon les anecdotes et les longs discours de vieux hackers barbus,les proc 68k étaient de véritable plaisir à coder tant le fonctionnement des instructions était parfaitement bien réglé,voir exemplaire. Certains ont pleuré des litres de larmes amères et salé, lorsque Motorola a délaissé l'architecture après le 68060 au profit du PowerPc,laissant de coté certaines instructions de cette architecture, jugé encore actuellement comme du pain béni pour les programmeurs...

http://console-toi.fr/

fafy

avatar
Témoin de Nintendovah
C'est claire, je connais très bien ce proc' et c'est effectivement une pure merveille !!! (sauf quand il claque sur mon AES le chien )

http://www.aros-tech.fr/

perchu

avatar
Diable Geek

2 tout petit truc:
- Définir un registre serait intéressant vu le temps que tu passes à expliquer le fonctionnement du processeur
- une toute petite faute d'orthographe à la fin (il y en a peut être d'autres mais elles ne m'ont pas marqué),
"et autre comparaisons?" un petit s à autre serait bien Smile

Sinon sur le fond, article intéressant offrant une bonne première approche. J'aurais juste ajouté un schéma technique de la bête pour expliquer ses entrées et ses sorties mais je pars vite sur le technique.

Un truc qui me chiffonne, tu dis que très vite sega a ajouté une rom pour servir de bios, donc il y a eu des MD sans bios? Quel intérêt d'ajouter cette puce si elle est incluse dans toutes les cartouches? Je veux dire, ça fait très composant en trop pour moi.

fafy

avatar
Témoin de Nintendovah
Dont worry! Les entrées-sorties seront traitées dans la partie "mémoire" du dossier Smile les registres aussi d'ailleurs vu que ce sont des mémoires

Concernant la puce, c'est qu'initialement (en 89) la MD n'avait pas à gerer les zones puisqu'elle n'etait disponible qu'au Japon! J'imagine que la place utilisée par le BIOS sur la cartouche pouvait être mieux employée quand il a fallu gérer les Genesiq puis les MD PAL!

Je corrigerais la faute demain (la je suis sur mobile donc pas pratique).

http://www.aros-tech.fr/

fafy

avatar
Témoin de Nintendovah
Voilà, j'ai fini de rédiger la suite du dossier concernant la mémoire. Pour ceux qui suivent ces explications et qui sont intéressés par le sujet, n'hésitez pas à poser des questions avant qu'on passe à la suite !!!

http://www.aros-tech.fr/

Contenu sponsorisé


Voir le sujet précédent Voir le sujet suivant Revenir en haut  Message [Page 1 sur 1]

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum