Systèmes à microprocesseur (cpu)

Répondre
Avatar du membre
fred_c
Dept: 80
Collec Perso: 11 flips
Rech/Achete: 0 flip
Messages : 4656
Enregistré le : 01/10/2002
Pas vu depuis 2 mois
Niveau : Confirmé
Pro / revendeur : non
Localisation : proche d'Amiens

Message par fred_c » mer. 19 11, 2003 17:19

SYSTEMES A MICROPROCESSEUR.

<br>
Ceci n'est pas un cours sur les systèmes à microprocesseur mais un document qui tente d'expliquer l'organisation d'une carte à microprocesseur tel que nous la trouvons dans nos chers flippers.
<br>
Nous n'allons pas décrire une carte précise mais je vais essayer d'être généraliste. Nous expliciterons les grandes fonctions (et structures) que possèdent en général toutes les cartes à base d'un microprocesseur (microcontrôleur exclus).
<br>

<h2>1 CONSTITUTION D'UN SYSTEME A MICROPROCESSEUR</h2>

Un système à microprocesseur est constitué de quatre types d'éléments :
<br>
- le microprocesseur,<br>
- la mémoire vive,<br>
- la mémoire morte,<br>
- des interfaces d'entrée/sortie.<br>
<br>
C'est quatre éléments sont tous indispensables, si on souhaite avoir un système qui fonctionne et qui serve à quelque chose.
<br>
<br>
Le schéma fonctionnel d'une carte à microprocesseur n'a pas changé depuis le début des microprocesseurs. Pourtant l'évolution des techniques de fabrication a permis d'améliorer régulièrement les performances globales : vitesse et capacité de traitement. Pour mémoire les premiers microprocesseurs fonctionnaient à une fréquence d'horloge de 1MHz alors qu'aujourd'hui nous sommes au dessus du GHz dans les PC.
<br>
La figure 1 montre un découpage fonctionnel en blocs et le tableau 1 traduit ces différents blocs en structure.
<br>

<img src=redactor/fcollet/up/figure1.jpg>
<br><br>

<img src=redactor/fcollet/up/tableau1.jpg>

<br><br>


Les différents éléments communiquent par des ensembles de lignes que l'on nomme des bus. On distingue trois bus :
<br>
- le bus de données,<br>
- le bus d'adresses,<br>
- le bus de contrôle.<br>


<h2>2 LE MICROPROCESSEUR</h2>

Nous ne nous intéresserons, ici, qu'à l'aspect fonctionnel d'un microprocesseur sans faire référence à un produit en particulier.
<br>
Le microprocesseur peut se décomposer en trois unités fonctionnelles:
<br>
- l'unité de traitement,<br>
- l'unité de contrôle ou de commande,<br>
- l'unité de mémorisation.<br>
<br>
Chaque unité peut, elle aussi, se décomposer en plusieurs parties, voir pour cela la figure 2.
<br>

<img src=redactor/fcollet/up/figure2.jpg>

<br><br>
<h3>2.1 L'unité de commande ou de contrôle</h3>
<br>
L'unité de commande gère l'unité de traitement (l'UAL) ainsi que les échanges avec l'unité de mémorisation. C'est cette unité qui contrôle aussi les échanges avec l'extérieur.
<br>
C'est un ensemble de structures électroniques coordonnant le fonctionnement interne et externe du µp en fonction d'une suite d'instructions. Cette suite d'instructions que l'on nomme programme est définie par le programmeur.
<br>
L'unité de commande peut se décomposer en différentes structures qui sont :
<br>
- un compteur ordinal ou compteur programme ou index programme.<br>
- un registre d'instruction.<br>
- un décodeur d'instruction.<br>
- un séquenceur.<br>
- des tampons.<br>
<br>
<br>
Le compteur ordinal est un registre contenant l'adresse en mémoire où est mémorisée la prochaine instruction. Ceci explique qu'il soit dessiné dans l'unité de mémorisation même s'il est géré par l'unité de contrôle. De plus ce registre est accessible au programmeur.
<br>
Le registre d'instruction est un registre qui reçoit l'instruction qu'il va falloir décoder avant de l'exécuter.
<br>
Le décodeur d'instructions est un dispositif qui traduit le code de l'instruction reçu en signaux qui sont transmis au séquenceur.
<br>
Le séquenceur se charge de produire les différents signaux qui vont commander les actions en fonction de l'instruction décodée.
<br>
Toutes les actions qui se produisent grâce au séquenceur et son environnement sont nommées la microprogrammation (micro-code).
<br>
Cette structuration permet de comprendre comment fonctionne un microprocesseur mais elle n'est pas indispensable pour être capable de programmer le microprocesseur même en langage d'assemblage.
<br>

<h3>2.2 l'unité de traitement</h3>

L'unité de traitement est une structure permettant de réaliser des opérations arithmétiques et des opérations logiques. Cette unité effectue des opérations sur certaines parties de l'unité de mémorisation. L'unité de traitement est essentiellement composée d'une "'U.A.L."' qui reçoit des ordres provenant de l'unité de commande.
<br>
l'UAL ne fait qu'exécuter des opérations arithmétiques telles que des additions, des soustractions et quelquefois des multiplications et des divisions ainsi que des opérations logiques telles que des décalages logiques ou rotations, des 'OU', 'ET', 'INV', 'OU-EX', des comparaisons ...
<br>
L'UAL est couplé à un registre d'état (CCR = Code Condition Register) qui indique par des états logiques le résultat de l'exécution d'une opération. Ce registre est accessible au programmeur.
<br>

<h3>2.3 l'unité de mémorisation</h3>

L'unité de mémorisation est une zone de stockage sur laquelle s'effectue les opérations de l'UAL et les échanges avec l'extérieur.
<br>
C'est une structure composée d'un ensemble de registres et de tampons. La distinction, faites ici, entre les registres et les tampons tient à l'accessibilité: les registres sont accessibles au programmeur mais pas les tampons.
<br>
Sur certains microprocesseur 8 bits, les registres qui permettent les opérations de l'UAL sont nommés : accumulateurs. En 16 ou 32 bits ils seront souvent nommés : registres de données.
<br>
D'autres registres sont utilisés pour mémoriser des adresses (pointeurs), en mp 8 bits ils sont quelquefois appelés registres d'index. En 16 ou 32 bits ils seront souvent nommés: registres d'adresses.



<h2>3 LA MEMOIRE</h2>

La mémoire est composée de deux types de mémoire:<br>

- de la mémoire vive,<br>
- de la mémoire morte.<br>

<br><br>
La mémoire vive est une mémoire qui peut être lue et écrite mais dont la rétention des informations est dépendante de l'alimentation (volatile), sauf si elle est sauvegardée par une pile ou une batterie ou un condensateur de très grosse capacité (un farad). Sur un flipper la mémoire vive est une RAM statique. Elle sert à stocker les données temporaires (variables) comme le nombre de joueurs, les scores, le numéro de la bille
<br>
La mémoire morte est une mémoire qui est faite pour n'être que lue (excepté lors de la programmation) mais dont les informations contenues restent mémorisées lorsqu'elle n'est plus alimentée. Sur les flippers il y a en général plusieurs ROM. Elles contiennent le programme de fonctionnement du flipper ainsi que des constantes d'initialisation et des constantes du jeu en lui même date de fabrication, numéro de version)
<br><br>

La mémoire morte comme la mémoire vive sont indispensables au fonctionnement du système. Les quantités de mémoire vive ou morte sont très variables, elles dépendent de l'application et du type de matériel. Sur un flipper la mémoire vive est relativement faible (quelques centaines d'octets à quelques dizaines de ko) mais la mémoire morte est généralement plus importante (quelques dizaines de ko à quelques Mo pour les plus sophistiqués).



<h2>4 LES INTERFACES</h2>

Un microprocesseur associé à ces mémoires ne sert à rien car il n'est pas possible de communiquer avec l'extérieur. Pour communiquer avec l'extérieur, on utilise des interfaces d'entrée/sortie.
<br>
Les interfaces d'entrée/sortie peuvent être divisées en trois groupes :<br>

- Les interfaces parallèles,<br>
- Les interfaces séries,<br>
- Les interfaces spécialisées. <br>
<br>
<br>
Nous allons, ici nous focaliser sur ce qui est le plus utile dans les flippers.
<br>
Les interfaces parallèles sont très utilisées pour commander les lampes, les moteurs, les afficheurs et pour recevoir les informations en provenance des contacts de type interrupteur (switch dans notre jargon). Les interfaces communiquent avec l'extérieur par des ensembles de lignes que l'on appelle des ports parallèles.
<br>
Les interfaces séries sont très peu utilisées, Il y en a sur les flippers les plus récents pour communiquer avec des périphériques séries comme une imprimante (série) ou un dispositif de diagnostic.
<br>
Les interfaces spécialisées sont utilisées soit pour contrôler des périphériques analogiques. On trouve donc des convertisseurs analogique/numérique ou numérique/analogique. Il y a aussi des compteurs programmables (Timers) qui permettent de générer des temporisations ou des signaux de fréquences fixes ou variables. Il est aussi possible de citer le cas particulier de l'horloge temps réel (qui donne l'heure sur les flippers les plus récents).
<br>
Toutes ces interfaces d'E/S nécessitent des adaptations de signaux pour commander les lampes ou les moteurs car la puissance de commande est très faible sur chaque ligne. Le terme "'driver"' est souvent utiliser pour désigner les transistors ou les thyristors qui servent à gérer la puissance nécessaire.
<br>

<h2>5 LES BUS</h2>

Nous ne traiterons que des bus spécifiques aux microprocesseurs.
<br>
Des liaisons sont assurées entre les différents composants par des groupes de lignes électriques appelées bus.
<br>
Il existe 3 types de bus ayant chacun une fonction spécifique:
<br>
- le bus de données (DATA BUS) assure le transfert des informations entre le microprocesseur, la mémoire et les interfaces d'E/S (Entrées Sorties). Ce bus est bidirectionnel. Les données circulent en parallèle.
<br>
- le bus d'adresses (ADRESS BUS) permet de sélectionner la position de la donnée à transférer. Ce bus est unidirectionnel et les adresses circulent en parallèle. L'adresse est toujours imposée par le microprocesseur.
<br>
- le bus de contrôle ou de commande (CONTROL BUS) qui regroupe les autres liaisons, ce n'est pas véritablement un bus. Les informations ne circulent pas en parallèle, certaines lignes vont vers le microprocesseur et d'autres vont du microprocesseur vers la mémoire ou/et vers les interfaces.
<br>

<img src=redactor/fcollet/up/figure3.jpg>
<br><br>

Certaines lignes du bus de contrôle sont communes à la grande majorité des microprocesseurs, citons ici la ligne de RESET, les lignes de demande d'interruption, la ligne indiquant une lecture ou une écriture, la ligne du signal d'horloge.
<br>
Comme tout composant électronique, un microprocesseur comporte toujours deux lignes d'alimentations au moins, une référence de potentiel ou masse, et une tension positive généralement 5V sur les cartes de flippers.
<br>


<h2>6 LES COMPOSANTS ANNEXES</h2>

Les différentes parties citées dans ce document constituent les éléments indispensables pour comprendre le fonctionnement de l'architecture de base d'un système à microprocesseur. Mais il y a bien d'autres composants qui sont utiles au bon fonctionnement d'une carte à base de microprocesseurs, par exemple les composants de gestion des adresses "'les décodeurs d'adresses"' qui permettent avec le microprocesseur d'établir le plan d'adressage (mapping) de la carte, et d'autres dont nous ne ferons pas référence ici dans le but de simplifier les choses mais que nous pouvons citer : la génération du signal d'horloge, la gestion des interruptions, la gestion du reset



<h2>7 MISE EN ACTIVITE D'UN MICROPROCESSEUR</h2>

A la mise sous tension de l'unité centrale le microprocesseur reçoit une information d'initialisation. Cette initialisation est assurée par la production d'un état logique bas maintenu un certain temps sur une ligne appelée "'RESET"'.
<br>
Lorsque le signal "'RESET"' devient inactif le microprocesseur place une adresse sur le bus d'adresse (explication simplifiée au maximum). Cette adresse est l'adresse de la première instruction à exécuter. Cette adresse est appelée le vecteur de "'Reset"'. Elle doit être en mémoire morte (ROM).
<br><br>

Les instructions sont donc chargés par les lignes de données dans le microprocesseur puis exécutés l'une après l'autre. Les instructions nécessitent des données pour le traitement. Elles passent aussi par le bus de données mais peuvent provenir soit de la RAM, soit de la ROM, soit des interfaces d'E/S
<br><br>

Un microprocesseur ne s'arrête (en principe) jamais à partir du moment ou il reste sous tension. Il existe toutefois des cas particuliers: activation de la ligne d'arrêt "'HALT"', réquisition des bus par un contrôleur de DMA. Il n'y a pas de contrôleur de DMA dans les cartes de flippers (à ma connaissance).



<h2>8 DES CONSTRUCTEURS (Principaux)</h2>

Voici une liste, non exhaustive, de constructeurs de microprocesseurs, microcontrôleurs, mémoires et interfaces:
<br><br>
Advanced Micro Devices (AMD), Advanced RISC Machines (ARM), Atmel, Cyrix Corporation, Dallas Semiconductor, Digital Equipment Corp. (DEC/Alpha), Fujitsu Microelectronics, Harris Semiconductor, Hitachi Semiconductor, IBM Microelectronics, Intel, Integrated Device Technology, INMOS, Matra MHS, Microchip Technology, Mips Technologies, Mitsubishi Electronics, Motorola, National Semiconductor, NEC Electronics, Oki Semiconductor, Philips Semiconductor, Rockwell, SGS-Thomson, Siemens, SPARC, Sun microelectronics, Texas Instruments, Toshiba America Electronic Components, Western Digital, WSI, Zilog



<h2>9 CONTROLER UNE CARTE A MICROPROCESSEUR</h2>

Pour faire un diagnostic dans le cas d'une carte avec défaillance ce n'est pas facile. Il est toutefois possible de contrôler certains points et nous allons en citer quelques uns.
<br>
L'alimentation correct de tous les circuits est primordiale. Pour cela un simple multimètre en position "'voltmètre continu"' sur un calibre 20V est suffisant. Il faut repérer les broches des circuits qui sont reliées aux deux lignes d'alimentation : la masse et le +5V. On doit trouver une tension comprise entre 4,7V et 5,1V. Il faut avant tout s'assurer que le multimètre est correctement calibré. Chaque circuit doit avoir cette tension à ces bornes sinon il ne faut pas aller plus loin la carte ne peut fonctionner correctement sans cela.
<br>
La deuxième vérification nécessite un oscilloscope (un multimètre peut aussi être utilisé mais la mesure sera très peu précise). Il s'agit de vérifier le signal d'horloge (ou les signaux d'horloge). Il faut mesurer l'amplitude et la fréquence. L'amplitude et la fréquence sont variables d'une carte à une autre, les ordres de grandeurs sont autour de 4,5V pour l'amplitude.
<br>
La troisième vérification consiste à contrôler qu'il y a bien un "'reset"' à la mise sous tension de la carte, ce signal est fugitif donc pas facile à observer. Il est possible de le forcer en plaçant la ligne reste à la masse (une seconde suffit largement). Remarque ceci doit se faire avec la ligne déconnectée de la carte, tout en plaçant une résistance de tirage de quelques kohms au +5V. Risque de détérioration de circuits si l'activation se fait en direct sur la carte (David m'a fait cette remarque, sur certaines carets pas de soucis sur d'autres ce n'est pas le cas, à vérifier !).
<br>
Il reste ensuite à vérifier les bus d'adresses et de données. En fonctionnement normal, les signaux évoluent en permanence sur ces lignes donc à l'oscilloscope il est possible de voir si les signaux ne sont pas anormaux. On doit observer à l'oscilloscope des changements d'états avec une amplitude de 4 à 4,5V. Un court-circuit peut être détecté par un fort affaiblissement ou une absence de signal. Il est aussi possible de vérifier que les signaux sont présents sur les autres composants (bien qu'un test de continuité soit plus simple, plus rapide et facile à faire avec un multimètre).
<br>
Une fois ces vérifications de base faites, il reste à déterminer si une porte logique n'est pas hors-service. L'oscilloscope permet de regarder les signaux en entrée et en sortie des circuits logiques. Une sortie qui ne change pas d'état sur une porte alors que les entrées changent doit permettre de détecter le composant défectueux (ou partiellement HS).
<br>
Il est toujours possible de procéder à des échanges de composants avec une carte en bon état. Je pense qu'il faut éviter de mettre les composants bons sur la carte en défaut. Il est préférable d'essayer un composant dans une carte bonne pour vérifier celui-ci.


<h2>10 CONCLUSION</h2>

On ne devient pas un électronicien chevronné du jour au lendemain Il faut un minimum de théorie pour travailler et beaucoup d'apprentissage sur le tas. J'ai fait ici un premier pas avec vous vers le minimum de théorie, il reste encore l'apprentissage et le dicton c'est en forgeant que l'on devient forgerons s'applique à l'électronique.
<br>
Le dépannage des cartes à microprocesseur n'est pas le plus simple pour commencer.
<br>
J'ai fait cette documentation à la demande de quelques personnes collectionneurs de flippers comme moi. J'espère qu'ils y trouveront une petite réponse à leurs questions. Nous sommes plusieurs sur ce site à être électronicien, David et Didier sont incontournables eu égard à leurs expériences. Je les sollicite sans honte de temps à autre. Je suis personnellement plus un théoricien qu'un praticien (encore que) ;-) .
<br>
Je suis prêt à recevoir vos commentaires et vos critiques qui me feront progresser
<br><br>
FC.

Répondre