Cours N°1 MCE2
INTRODUCTION A
L’INFORMATIQUE
A L’INFORdddUSTRIE
INDUSTRIELLE
I. Historique
Le premier microprocesseur, l¶Intel 4004 de la société informatique Intel, est réalisé en 1971.
Il est composé de 2300 transistors et exécute 60000 instructions par seconde. En comparaison,
un microprocesseur moderne comme l¶Intel Pentium 4 comprend plusieurs dizaines de
millions de transistors et exécute plusieurs milliards d¶instructions par seconde.
En fait, l¶histoire du microprocesseur est intimement liée à celle du micro-ordinateur et de la
micro-informatique en général. L¶Intel 8080, créé en 1974, est notamment l¶un des premiers
microprocesseurs (8bits) adaptés à un ordinateur individuel. Il a fortement influencé
l¶architecture du Z80 de la société Zilog et, dans une moindre mesure, celle de la gamme des
microprocesseurs 80×86 (80186, 80286, 80386, 80486) et les différentes évolutions du
Pentium, équipant hier ou aujourd¶hui la grande majorité des PC.
Par ailleurs, les micro-ordinateurs Macintosh sont équipés de microprocesseurs Motorola
(famille du 68000, intégré au premier Macintosh commercialisé en 1984) et, depuis 1998, de
microprocesseurs RISC (Reduced Instruction Set Computing) de la série Power PC,
développés en collaboration par les firmes américaines Apple, IBM et Motorola.
Pionnier de la micro-informatique et créateur du premier microprocesseur, Intel domine le
marché des microprocesseurs avec environ 80% de parts de marché. La société AMD suit de
loin avec pratiquement 20% et toutes les autres sociétés représentent moins de 1% du marché.
La situation est un peu différente pour les microprocesseurs spécialisés où d¶autres entreprises
sont encore présentes (notamment Texas Instruments aux États-Unis et SMT Electronic en
Europe).
Il faut mettre en tête que dans un ordinateur, il n'y a pas qu'un seul processeur mais il existe
de nombreux processeurs qui gèrent indépendamment : la carte son, la carte graphique, la
carte SCSI, etc...Mais c'est le microprocesseur ou CPU (Central Processing Unit) qui est
chargé de traiter toutes les informations de ces composants.
Les processeurs successifs se sont en effet construits petit à petit en ajoutant à chaque
processeur des instructions et des fonctionnalités supplémentaires, mais en conservant
à chaque fois les spécificités du processeur précédent.
1
L'évolution des microprocesseurs d'Intel au cours du temps sont résumés dans le tableau 1.
Cette évolution dépend essentiellement de la densité d'intégration, la fréquence, la taille du
bus d'adresses et la taille des données à traiter.
$QQpH 1RPEUHGH 9LWHVVHLQLWLDOH %XV %XVGH 0pPRLUH
0LFURSURFHVVHXU
G DSSDULWLRQ WUDQVLVWRUV GHO KRUORJH G DGUHVVHV GRQQpHV DGUHVVDEOH
.+] ELWV ELWV RFWHWV
.+] %LWV ELWV .
0+] %LWV ELWV .
0+] %LWV ELWV .
0+] %LWV ELWV 0
0+] %LWV ELWV 0
0+] %LWV ELWV 0
0+] ELWV ELWV *
0 0+] ELWV ELWV *
3HQWLXP 0 0+] ELWV ELWV *
3HQWLXP3UR 0 0+] ELWV ELWV *
3HQWLXP,, 0 0+] ELWV ELWV *
3HQWLXP,,, 0 0+] ELWV ELWV *
3HQWLXP,9 0 *+] ELWV ELWV *
* 8 bits externes et 16 bits internes
Tableau 1 : Evolution des microprocesseurs
II. Définition d'un microprocesseur
Le microprocesseur est le cerveau de l'ordinateur. Il permet de manipuler, de circuler les
informations et d'exécuter les instructions stockées en mémoire. C¶est le composant essentiel
d'un ordinateur, où sont effectués les principaux calculs. Toute l'activité de l'ordinateur est
cadencée par une horloge unique.
III. Fréquence de fonctionnement
Les microprocesseurs sont cadencés par un signal d'horloge (signal oscillant régulier imposant
un rythme au transfert entre circuit). Au milieu des années 1980, ce signal avait une fréquence
de 4 à 8 MHz. Dans les années 2000, cette fréquence atteint 3 GHz. Plus cette fréquence est
élevée, plus le microprocesseur peut exécuter à un rythme élevé les instructions de base des
programmes.
L'augmentation de la fréquence présente des inconvénients :
- la dissipation thermique d'un circuit donné est proportionnelle au carré de sa fréquence de
fonctionnement, cela implique d'avoir une solution de refroidissement du processeur adaptée ;
2
- la fréquence est notamment limitée par les temps de commutation des portes logiques : il est
nécessaire qu'entre deux « coups d'horloge », les signaux numériques aient eu le temps de
parcourir tout le trajet nécessaire à l'exécution de l'instruction attendue ; pour accélérer le
traitement, il faut agir sur de nombreux paramètres (taille d'un transistor, interactions
électromagnétiques entre les circuits, etc.) qu'il devient de plus en plus difficile d'améliorer
(tout en s'assurant de la fiabilité des opérations).
IV. Architectures CISC et RISC
Les processeurs généraux actuels se répartissent en deux grandes catégories appelées CISC
pour Complex Instruction Set Computer et RISC pour Reduced Instruction Set Computer. Les
processeurs de ces deux catégories se distinguent par la conception de leurs jeux
d'instructions. Les processeurs CISC possèdent un jeu étendu d'instructions complexes.
Chacune de ces instructions peut effectuer plusieurs opérations élémentaires comme charger
une valeur en mémoire, faire une opération arithmétique et ranger le résultat en mémoire. Au
contraire, les processeurs RISC possèdent un jeu d'instructions réduit où chaque instruction
effectue une seule opération élémentaire. Le jeu d'instructions d'un processeur RISC est plus
uniforme. Toutes les instructions sont codées sur la même taille et toutes s'exécute dans le
même temps (un cycle d'horloge en général).
V. Architecture d¶un microprocesseur
Un microprocesseur est formé par les trois éléments fonctionnels interconnectés suivants :
Ź5HJLVWUHV
Ź8$/8QLWpDULWKPpWLTXHHWORJLTXH
Ź&LUFXLWGHFRQWU{OH
V.1. Registres
Dans un processeur, un banc de registres est une mémoire interne au processeur, dans laquelle
sont rassemblés les registres du processeur. Dans les microprocesseurs, les bancs de registres
sont généralement réalisés à l'aide de RAM statique (bascules).
V.1.1. Accumulateur
Il s'agit d¶un registre d'usage général recevant des opérandes, des résultats
intermédiaires ou des résultats provenant de l¶unité arithmétique et logique. Ils évitent des
appels fréquents à la mémoire, réduisant ainsi les temps de calcul. Donc la plupart des
opérations arithmétiques et logiques se font dans l¶accumulateur.
3
V.1.2. Registre d¶état (Flags)
Le registre d'état sert à contenir l'état de certaines opérations effectuées par le processeur. Par
exemple, quand le résultat d'une opération est nul, Ceci provoque un bit spécifique (bit Zéro)
"Z" du registre d'état à avoir la valeur "1". Le registre d'état contient aussi d'autres bits : signe
du résultat, retenu de l'addition ou report de soustraction, ...
V.1.3. Compteur de programme
Le compteur de programme contient l¶adresse de l'instruction suivante en mémoire qui doit
être exécutée. Autrement dit, il doit indiquer au processeur la prochaine instruction à exécuter.
Le registre compteur de programme est constamment modifié après l'exécution de chaque
instruction afin qu'il pointe sur l'instruction suivante. Les microprocesseurs de la famille Intel
dépendent entièrement du registre compteur de programme pour connaître l'instruction
suivante.
V.1.4. Registre d¶instruction
Chaque opération que le microprocesseur doit effectuer est codée (c'est-à-dire pour chaque
instruction on assigne un code qui ne peut pas être modifié ni changé par un autre code)
appelé «instruction code» ou «opération code». Pour exécuter une instruction le
microprocesseur transmet l¶adresse se trouvant dans le registre compteur de programme à la
mémoire, la mémoire retourne au microprocesseur l¶octet adressé par ce dernier (le code de
l¶instruction). Celui-ci sera stocker dans un registre appelé registre d¶instructions. Donc Le
registre d'instructions contient la prochaine instruction à être exécutée par le processeur.
Cette instruction sera acheminée (par un bus de données) au décodeur d'instructions qui sera
chargé de l'interpréter.
V.1.5. Décodeur d¶instruction
C'est lui qui va interpréter l'instruction contenue dans le registre d'instruction. C'est-à-dire
quelle est l'opération à effectuer (transfert, addition, soustraction, branchement,...) et comment
aller chercher les opérandes requis pour cette opération (par exemple, les nombres à
additionner). Le décodeur d'instructions communique alors avec l'unité de commandes et de
contrôles qui pourra déclencher les événements en conséquence. Par exemple, si le décodeur
du microprocesseur 8085 reçoit l'octet 00000110 (le MVI B, donnée 8 bits), il sait que le
processeur doit aller chercher un autre octet en mémoire (donnée) pour compléter
l'instruction.
4
V.1.6. Registres d¶adresses
Ces registres servent à gérer l'adressage de la mémoire. En effet le processeur peut utiliser un
registre ou une paire de registres pour accéder à un emplacement mémoire, et puisque les
registres peuvent être incrémenté ou décrémenter donc on peut accéder facilement à des
données qui se trouvent en mémoire d¶une manière adjacente (tel que les tableaux).
V.1.7. Pointeur de pile
Le pointeur de pile pointe vers le dessus de la pile (TOS : Top Of Stack) en mémoire. Une
pile est un ensemble de données placées en mémoire de manière à ce que seulement la donnée
du "dessus" soit disponible à un instant donné. Pour aller chercher la donnée sous celle du
dessus par exemple, on doit d'abord enlever celle du dessus. Le rôle du pointeur de pile (et de
la pile vers laquelle il pointe) est le suivant: Quand un processeur exécute une instruction, il
est possible qu'il soit interrompu par une "Interruption" (c'est-à-dire un appel au processeur
qui est prioritaire aux instructions du programme qu'il traite). Il doit alors arrêter de s'occuper
de l'instruction qu'il traite présentement pour s'occuper de l'interruption. Quand
l'interruption sera traitée, il retournera à l'instruction qu'il traitait quand il a été
interrompu. Mais pour cela, il doit se rappeler de cette instruction ainsi que de l'état de
certains registres au moment où il traitait l'instruction. Donc pour ne pas les perdre, il les
placera temporairement dans une pile (à l'intérieur de la mémoire RAM par exemple) et
pourra les récupérer une fois l'interruption traitée. Le pointeur de pile (SP) donne donc
l'adresse en mémoire de cette pile temporaire.
Les piles offrent un nouveau moyen d'accéder à des données en mémoire principale, qui
est très utilisé pour stocker temporairement des valeurs.
V.2. Unité arithmétique et logique (UAL)
Comme son nom l'indique, cette unité peut exécuter deux types d'opérations.
- Opérations arithmétiques : Elles incluent l'addition et la soustraction qui sont des
opérations de base (une soustraction est une addition avec le complément à deux). Les
données traitées sont considérées dans des représentations entières.
- Opérations logiques : Ces opérations sont effectuées bit à bit sur les bits de même poids de
deux mots, tel que And, Or, Not, Ou exclusif, de même les opérations de rotation et de
décalage (arithmétique et logique).
Elle reçoit ses opérandes (les octets qu'elle manipule) du bus de données. Celles-ci peuvent
provenir de l'accumulateur A et des registres ou de la mémoire. A la fin d'une opération,
l'UAL peut aller modifier certains bits du registre d'état.
5
V.3. Unité de contrôle et commande
Synchronisée par le signal de l'horloge, c'est elle qui déclenche les événements dans le
processeur (on peut remarquer à ce sujet qu'elle est connectée à toutes les autres composantes
du processeur). Par exemple, quand une information passe dans un bus, cette information est
destinée à un seul endroit (par exemple, un registre). C'est donc l'unité de commande et de
contrôle qui va "déverrouiller" l'entrée de cette destination pour que l'information qui circule
sur le bus puisse y entrer (et ne pas entrer ailleurs en même temps).
Il s'agit donc essentiellement d'un automate exécutant les différentes séquences propres à
chaque instruction. Cet automate peut être réalisé de plusieurs façons (câbler ou micro-
programmer et dans les deux cas le jeu d¶instructions est fixe). La plupart des unités de
traitement sont micro-programmées et donc à jeux d'instructions fixes.
VI. Fonctionnement d¶un système à base de microprocesseur
VI.1. Ecriture en mémoire (WRITE)
Pour écrire une donnée dans la mémoire (figure 1.a), le microprocesseur doit placer
l¶adresse de la donnée sur le bus d¶adresses (son emplacement dans la mémoire) puis il place
la donnée sur le bus de données et enfin génère le signal WRITE (ordre d¶écriture dans la
mémoire).
VI.2. Lecture de la mémoire (READ)
Pour lire une donnée de la mémoire (figure 1.b), le microprocesseur doit connaître son
emplacement, en effet il dépose son adresse sur le bus d¶adresses puis génère le signal READ
(il demande une opération de lecture de la mémoire) alors la donnée sera acheminée vers le
microprocesseur à travers le bus de données. La donnée sera stockée dans un registre dans le
microprocesseur.
Mémoire Mémoire
1000H 1000H
Adresse Adresse
55H 1000H 55H 1000H
Ecriture Lecture
CPU CPU
55H 55H
Donnée Donnée
(a) (b)
Figure 1 : Ecriture et lecture mémoire
6
VI.3. Communication avec les entrées/sorties
Il peut s¶agir d¶un flux d¶informations de l¶extérieur vers l¶ordinateur (acquisition via le
clavier, une connexion réseau, un disque dur, etc...), ou d¶un flux de l¶ordinateur vers
l¶extérieur (écran, réseau, GLVTXHHWF«
Les données échangées entre un périphérique et le processeur transitent par l¶interface (ou
contrôleur) associé à ce périphérique. L¶interface possède de la mémoire tampon pour stocker
les données échangées (suivant le type d¶interface, cette mémoire tampon fait de 1 seul
octet à quelques Méga-octets). L¶interface stocke aussi des informations pour gérer la
communication avec le périphérique :
± des informations de commande, pour définir le mode de fonctionnement de
l¶interface: sens de transfert (entrée ou sortie), mode de transfert des données (par scrutation
ou par interruption), etc. Ces informations de commandes sont communiquées à l¶interface
lors de la phase d¶initialisation de celle-ci, avant le début du transfert.
± des informations d¶état, qui mémorisent la manière dont le transfert est effectué
(erreur de transmission, réception d¶informations, etc). Ces informations sont destinées au
processeur.
Lors de l¶exécution des instructions d¶entrées/sorties, le processeur met à 1 sa borne IO/M et
présente l¶adresse E/S sur le bus d¶adresse. Le signal IO/M indique aux circuits de décodage
d¶adresses qu¶il ne s¶agit pas d¶une adresse en mémoire principale, mais de l¶adresse d¶une
interface d¶entrées/sorties.
Remarque :
La communication entre le microprocesseur et les interfaces d'entrées/sorties peut être série
(sur un seul fil bit par bit) ou parallèle (sur plusieurs fils).
VI.4. Interruptions
Les interruptions permettent au matériel (périphérique) de communiquer avec le processeur.
Dans certains cas, on désire que le processeur réagisse rapidement à un évènement extérieur :
arrivée d¶un paquet de données sur une connexion réseau, frappe d¶un caractère au clavier,
modification de l¶heure. Les interruptions sont surtout utilisées pour la gestion des
périphériques de l¶ordinateur, en effet les systèmes à base de microprocesseurs peuvent
comporter plusieurs éléments matériels tels que l¶écran, les lecteurs de CD, lecteurs de DVD,
les ADC (Analog to digital converter) et DAC (digital to analog converter) etc... Mais la
majorité de ces périphériques n¶ont besoin du microprocesseur qu¶à certains moments. Si un
périphérique nécessite une intervention, il génère lui-même une demande d'interruption.
7
Une interruption est signalée au processeur par un signal électrique sur une borne spéciale.
Lors de la réception de ce signal, le processeur ³traite´ l¶interruption dès la fin de l¶instruction
qu¶il était en train d¶exécuter. Le traitement de l¶interruption consiste soit :
± à l¶ignorer et passer normalement à l¶instruction suivante : c¶est possible uniquement pour
certaines interruptions, nommées interruptions masquables. Il est en effet parfois nécessaire
de pouvoir ignorer les interruptions pendant un certain temps, pour effectuer des traitements
très urgents par exemple. Lorsque le traitement est terminé, le processeur démasque les
interruptions et les prend alors en compte.
± à exécuter un traitant d¶interruption (interrupt handler). Un traitant d¶interruption est un
programme qui est appelé automatiquement lorsqu¶une interruption survient. L¶adresse de
début du traitant est donnée par la table des vecteurs d¶interruptions (voir chapitre
interruptions).
Remarque :
Parfois le microprocesseur est sollicité par plusieurs interruptions en même temps, pour
répondre à ces appels un ordre de priorité est souvent pris en compte pour leurs traitements.
Les interruptions augmentent considérablement l¶efficacité du processeur.
Les interruptions sont de deux types :
Interruptions matérielles.
Interruptions logicielles.
VI.5. Accès direct à la mémoire (DMA)
Lorsqu'un transfert en mémoire est nécessaire de la mémoire RAM à un port d'E/S, le
microprocesseur lit le premier octet en mémoire et le charge dans l'un des registres du
microprocesseur. Le microprocesseur écrit ensuite l'octet rangé précédemment sur le port
d'E/S approprié.
Il en résulte que le microprocesseur effectue des opérations de lecture et d'écriture répétées.
Ainsi, un certain temps est perdu entre le traitement de chaque octet. Pour remédier à ce
problème, une procédure est mise au point pour l'accès direct à la mémoire (Direct Memory
Access), qui permet de transférer des données de la mémoire RAM au port d'E/S sans passer
par le microprocesseur. Pour cela, un contrôleur DMA, qui reprend le rôle du
microprocesseur, c'est à dire qu'il gère les transferts de la RAM aux ports d'E/S.