CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : papa,ça marche comment une console?

DébutPage précedente
1
Page suivantePage suivante
acdan acdan
MP
Niveau 12
15 décembre 2015 à 11:26:34

Pour bien comprendre,nous allons prendre l'exemple de la megadrive car plus simple,c'est un dossier en 4 parties,alors dites moi si vous voulez la suite,bonne lecture.
(ceci n'est pas de moi)

PARTIE 1 : LE VDP

Voici le premier volet d'une série de dossiers très axés techniques. Pour cela, nous allons partir à l'exploration de la carte mère de la Megadrive qui est une console assez "facile à comprendre". N'ayez pas peur, il n'y a rien inaccessible dans toutes ces explications et vous verrez qu'au finale, les descriptifs techniques de vos machines préférées n'auront plus de secret pour vous.

Une carte mère de Megadrive.

Aujourd'hui nous allons nous balader au coeur d'un circuit graphique (VDP pour Video Display Processor) utilisé pour les consoles SEGA de la SG-1000 à la Saturn : le Texas Instruments TMS9918 dans son mode Megadrive. La particularité de cette version est qu'elle à été intégrée avec un autre processeur (pour le son) dans un seul et unique bloc (on appel cela le "on a chip") donc, inutile de chercher la puce telle qu'elle existe vraiment, vous ne la trouverez pas sur la carte mère de la Megadrive !

Un TMS9918 sur une carte mère de SG-1000.

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

1- Analogie :

Le VDP de la Megadrive propose 2 plans de scrolling (défilement d'une image en vertical ou en horizontal), 1 plan de texte (en mode fixe) ainsi qu'un plan pour les sprites (éléments mobiles d'un jeu comme le héro, par exemple).

Pour définir le processeur graphique, on pourrait commencer par faire une analogie avec une table de montage vidéo pour les films. En effet, prenons l'exemple d'une petite table basique avec 4 voies de mixage reliées chacune à 3 magnétoscopes (oué, on est rétro ou on l'est pas) qu'on appellera A, B & C et une caméra (appelée D) filmant en direct un acteur sur fond vert.

Les cassettes VHS sont insérées dans le magnétoscopes par un technicien (le processeur) suivant une liste (le programme) lui indiquant d'aller chercher ces dernières dans une armoire de classement (la cartouche).

Chacune de ces machines envoie un plan vidéo unique représentant une partie d'un tout, matérialisé par le mixage final des 4 sources par la table de montage (le rendu finale sur votre téléviseur).

Les plans de scorlling et de texte sont appelés Planes (respectivement 1, 2 et Window) et correspondent, dans notre petite analogie, aux magnétoscopes A, B et C, la caméra D représentant le plan de sprites animés.

Le magnétoscope A propose d'avoir une jolie vue de ciel bleu avec des nuages pour l'arrière plan.

Le magnétoscope B propose d'avoir un joli décors en second plan.

Le magnétoscope C se contentera de proposer un chronomètre en haut de l'image.

La caméra D filmera un acteur qui évoluera dans ce décore

Le tout mixé par la console.

Le VDP de la Megadrive fonctionne de la même manière que cet ensemble à la différence près que magnétoscopes, caméras, armoires de classement, techniciens et acteurs sont remplacés par des mémoires, des sprites, des processseurs et un programme !

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

2- Le binaire :

Mais avant de commencer, je vous propose une petite initiation très rapide au binaire pour que la suite de ce dossier vous soit plus aisée :

Le binaire comprend 2 valeurs (le 0 et le 1). Comme pour un interrupteur électrique, on pourrait attribuer comme qualificatifs à ces deux états "éteint" et "allumé". Ces valeurs sont nommées "bits" (contraction de binary digits). On regroupe généralement ces bits dans des "mots binaires" de 8bits (mais cela peut être plus ou moins) que l'on nomme des "octets".

On se retrouve donc avec des suites de 8 bits dans ce genre : 10100101. Le bit de droite est appelé le "bit de poids faible" (LSB en anglais) et celui de gauche se nomme "bit de poids fort" (MSB en anglais).

Quelque soit la longueur du mot binaire utilisé, le bit de poids faible vaux toujours 1 si il est à l'état "allumé" (soit à 1) et 0 si il est "éteint" (donc à 0) . Les bits suivant valent toujours le double de la valeur du bit précédent. Dans le cas d'un mot de 8 bits les valeurs sont 128--64--32--16--8--4--2--1. Additionnés tous ensemble ces valeurs donnent 255, ce qui signifie qu'on peut compter jusqu'à 255 avec 8bits en partant de 0 (si tous les bits du mot sont à 0, le mot vaut 0) soit 256 valeurs.

Notre mot exemple étant 10100101, sa valeur est de 128+0+32+0+0+4+0+1 soit 165 !!!

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

3- Explications :

Comme je l’expliquais au dessus, ici, on n'utilise pas de cassettes VHS mais des mémoires comprenant des informations numériques. Dans le cas de ce processeur précis (le VDP de la Megadrive), c'est la mémoire vidéo qui fait office de stock à données et ici, on y stockera que des images !

La mémoire du Texas Instruments TMS9918 étant de 64Ko, ce chiffre se comprend comme ceci :

- en binaire, et en raison de la base de calcul utilisée, un kilo ne correspond pas à 1000 mais à 1024.
- 1 Ko = 1024 octets soit 1024*8 bits = 8192 bits
- 64Ko = 64*8192 bits = 524288 bits ou 65536 octets.

Les images stockées dans cette mémoire sont découpées en plein de petits morceaux, nommés "tiles", de dimension 8*8 pixels (donc 64 pixels en tout). Chacun des pixels composant la tile possède une couleur bien à lui. Cette couleur est fournie par 4 palettes de 16 variantes chacune pour un total de 64 couleurs disponibles affichables simultanément. Pour simplifier l'utilisation de ces dernières, les concepteurs du VDP les ont réparties dans 4 banques internes et codées sur 4 bits (donc 16 valeurs possibles en comptant le 0). Il faut comprendre ici que chaque plan d'image du processeur possède une palette bien à lui.

Le plan de sprites permet l'affichage simultané de 80 de ces derniers avec une résolution maximale de 32*32 pixels (4 tiles * 4 tiles).

Exemple d'un sprite en 4 tiles.

4 bits par pixels, 64 pixels par tile (soit 32 octets de mémoire utilisée par tile puisqu'on peut donc stocker 2 pixels dans un octet) et 65536 octets disponibles dans la mémoire du processeur, on arrive à 2048 (65536/32) tiles stockables simultanément dans les 64Ko offert par le TMS9918 !

Le résolution de la Megadrive étant de 320*240 il faut horizontalement 40 tiles (320 pixels de large divisés par les 8 pixels d'une tile) et verticalement 30 tiles (240 pixels de haut divisés par les 8 pixels d'une tile) pour recouvrir complètement l'image.

Il est à noter que la séquence d'affichage des tiles par le processeur commence en haut à gauche de l'écran pour se finir en bas à droite.

Mais alors, pourquoi utiliser cette technique, visiblement assez compliquée, au lieu de simplement encoder une image et la restituer pixel par pixel ?

L'explication se trouve au niveau des banques de palettes de couleurs. Vous vous rappelez, on a apprit que le VDP en possédait 4 de 16 couleurs chacune ? On a aussi appris qu'on appelait la couleur grâce à un mot de 4 bits ? Et bien ce mot ne correspond non pas à la couleur, mais à la ligne d'information de la couleur dans la palette. Cette ligne comprend le code de la couleur (en hexadécimale) qui sera envoyé au circuit d'affichage. Ces informations étant codée en dur dans le processeur, elle n'ont pas besoin d'être chargées et ne tienne pas de place dans la mémoire vidéo...

Les couleurs sont codées en 3*4 bits (soit 12 bits) selon la méthode RGB (red, green, blue soit rouge, vert, bleu) selon cette formule :0xBGR. Le blanc, par exemple se nomme 0xFFF et correspond en binaire à 1111-1111-1111.

Correspondance binaire(décimal) vers hexadécimal

Vous avez donc compris que cette technique permet de diviser la taille mémoire d'un pixel d'une tile par plus de 2 par rapport à si le pixel avait été codé directement et de manière indépendante. Ingénieux non?

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

4- Conclusion :

Voilà, vous savez à peu près tout ce qu'il y a d’intéressant à savoir sur ce processeur. Le reste étant vraiment d'ordre très technique et utile principalement aux développeurs, nous n'irons pas plus loin dans l'exploration de cette puce.

Maintenant, vous savez comment est géré le stockage, l'affichage et l'utilisation des plans scrolling/fixe/sprite. Vous en savez aussi un peu plus sur le bianaire donc, vous êtes prêts pour passer à l'étape suivante de l'exploration de la carte mère de la Megadrive qui se fera par l'explication du fonctionnement du processeur centrale : le Motorola 68000

acdan acdan
MP
Niveau 12
15 décembre 2015 à 11:51:08

Deuxième partie

PARTIE 2 : LE PROCESSEUR

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.

Datadyne_Corp Datadyne_Corp
MP
Niveau 22
19 décembre 2015 à 19:55:19

en gros, t'appuies sur "power", et ça s'allume

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
La vidéo du moment