Académique Documents
Professionnel Documents
Culture Documents
Le mP fonctionne comme l’unité centrale d’ordinateur (CPU), c-a-d exécute des instructions
envoyées par un programme.
Les mP sont apparus dès la création des premiers circuits intégrés numériques, au début des
années 1970.
Ils constituent le cœur de presque toutes les réalisations électroniques; on en trouve dans
tous les domaines:
Informatique (de la calculatrice à l'ordinateur),
Automobile (ABS, injection, ...),
Automatique (automates programmables, contrôle de processus, ...),
Électronique domestique (thermomètre, télécommande, carte à puce, ...).
R. Beguenane, UQAC, 2002/2003
2/14
MEMOIRE
- CPU Principale
exécuter les informations UNITE de (Programme,
stockées dans la Mémoire COMMANDE données, résultats)
UCT (CPU)
- Périphéries E/S:
(Clavier, Moniteur) sont des
Registres UAL
outils de communication
avec la CPU (ALU)
Unité de commande
UdC= UdC=
Dec.
E/S UAL mP + E/S UAL Dec.
+
Seq. mP Seq.
4/14
A0 16 (20/32) bits R5
ACC A
Acc1
Acc2
ACC B
D7 Tampon
D0
8 (4/16/32) bits RdE
CCR
Ports U Décodeur
Dˇ codeur RI
IR
d
E/S Micropro-
Séquenceur
gramme L0 Verrou Verrou L1
C
RD/WR F0
Memoire Bus de contrôle ļ
BUS DE COMMANDE
Tampon
F
n
UAL
ALU
E/S
S0
S1 Děcaleur
Horloge
Système mP
5/14
Unité de Commande
- Le décodeur d’instructions
Le décodeur sert à animer les circuits électriques nécessaires à l’exécution de l’instructions lue . En effet, il
gère la mise en place des portes logiques pour le bon déroulement de l’opération demandée.
Horloge
On peut également trouver le circuit d’une horloge à quartz intégré (ou pas) au mP.
6/ 14
RAM
Périphéries E/S : Écran, Imprimante, Clavier, Disque dur/souple, Carte d’acquisition, …
- Bus de Données : Bidirectionnel. Plus la taille est importante, la CPU est meilleure au détriment du coût de
construction. La moyenne de la taille varie entre 8 et 64. La puissance du traitement est liée a cette taille. Un
bus 8-bit peut envoyer 1 byte, alors qu’un bus 16-bit en envoie 2 bytes, donc deux fois plus rapide.
- Bus d’Adresse : Unidirectionnel. Plus la taille est importante, le nombre d’unités (locations mémoire) a
adresser est grand au détriment du coût de construction. Le nombre de locations est 2x, ou x est la taille du
bus d’adresse. La moyenne de la taille varie entre 16 et 32. Exemple: une CPU a 16 lignes d’adresses, peut
cibler une mémoire a 64K locations, ou chaque location possède un maximum de 1 byte (Byte Adressable
CPUs).
8/14
La CPU peut donc accéder a une mémoire de 216 = 64K locations : 0000h – FFFFh.
Assumons que le programme qui exécute ces actions, est logé dans les locations mémoires a partir de
1400h
10/ 14
…
1800h 12h Une donnée dans la case 1800h
11/ 14
- La CPU met la valeur “1400h” sur le bus d’adresse. Le circuit mémoire trouve la location pendant
que la CPU envoie un signal LECTURE, indiquant a la mémoire qu’elle veut la donnée de la
location “1400h”. Son contenu “B0h” est mis sur le bus de données Registre RI.
- La CPU décode “B0h” avec le décodeur d’instructions. Elle commande son circuit séquenceur pour
ramener au registre A le contenu de l’adresse mémoire suivante “1401h”. La valeur “21h” est alors
ramené au registre A. Une fois l’instruction complétée, le IP pointe sur l’adresse de la prochaine
instruction a exécuter “1402h”. Telle adresse est envoyée au bus d’adresse pour rechercher la
prochaine instruction.
- A partir de la location mémoire “1402h”, la CPU recherche (fetch) le code “04h”. Après décodage,
la CPU saura qu’elle additionne le contenu du registre A avec la valeur se trouvant a l’adresse
suivante “1403h”. Après avoir ramener telle valeur a la CPU, le circuit séquenceur assure l’addition
a l’aide de l’ALU et prend le résultat de la sortie de l’ALU au registre A. Entre autre, le IP prend la
valeur “1404h”, l’adresse de la prochaine instruction.
- L’adresse “1404h” est mise sur le bus d’adresse et le code (A7h) est recherché et ramené au CPU
(RI), par le bus de données, pour être décodé et analysé. Le IP s’incrémente a “1405h”. La CPU
saura que les deux bytes des deux prochaines adresses (1405h et 1406h) correspondent a
l’adresse de la donnée a ajouter au contenu du registre A. Une première phase de lecture du
premier byte est entamé et le IP est incrémenté a la valeur “1406h”. Suit une deuxième phase de
lecture du 2eme byte. Entre temps, la CPU met les deux valeurs lues “1800h” sur le bus d’adresse.
Après que la CPU lit son contenu “12h”, le circuit séquenceur assure son addition avec le contenu
du registre A a l’aide de l’ALU et prend le résultat de la sortie de l’ALU au registre A. Entre autre, le
IP prend la valeur “1407h”, l’adresse de la prochaine instruction.
- Enfin, le contenu de l’adresse 1407h est recherché et exécuté. L’instruction HALT avise la CPU
d’arrêter d’incrémenter le IP, pour ne pas demander l’instruction suivante.
12/ 14
mP
Bus d’adresses
exécuté
Bus de donnees
• FETCH ALU
• Instruction est ramené de RAM vers
l’unité de commande via un RI
•l’unité de commande prépare pour la
+1
prochaine opération de fetch IP
01111101
8
• EXECUTE
A B
• l’unité de commande décode
RI
l’instruction 01100101011000011
• Envoie des signaux de commande vers
le le processeur
Dec.
Operation ALU + Unite de
Signaux de Commande Operation Seq. commande
C0C1
00 IN1 +IN2 OUT
HORLOGE
01 IN1 +IN2+1 OUT
L/En
AdVal
1404 1405 1406 1800 1407
Adresses
Données A7 18 00 12 F4 Instruction:
A7 18 00
FETCH & Analyse Execution =
LectM 9 Cycles
LectM Horloge
1404h IPBdA IPBdA 1800h
RIA7 RIA718 75A
IP=1404 IPBdA RIA71800
IP1406 12+[A]
IP1405 ALU: (42+21+12)
18BdD 00BdD IP1407
A7BdD 12BdD
14/ 14
Jusqu’au début 1980, toutes les CPUs, sont d’une conception à base de CISC, i.e. avec des
100s d’instructions conçus pour chaque situation possible. Ceci nécessite des 100000s de
transistors, mais aussi rend la conception très complexe, chère et lourde en temps de
traitement.
Au début de 1980, une nouvelle philosophie de conception CPU, a été développée. Elle
s’appelle RISC. Elle est justifiée par le fait qu’une grande partie des instructions CISC ne
sont jamais utilisées en réalité. Pourquoi donc ne pas les réduire des centaines aux dizaines
et utiliser l’économie correspondante des transistors pour améliorer la puissance des CPU?
Quoique, le concept de RISC, a été expérimenté par IBM au début de 1970, le premier RISC-mP
a été implémenté par l’université de Berkeley en 1980. Aujourd’hui et à partir de fin 1980,
plusieurs compagnies utilisent la conception RISC.
Il se trouve qu’aujourd’hui les seuls CISC-mP qui restent sont ceux utilisés par la famille Intel
80x86 (IBM PC, PS, et compatibles) et Motorola 680x0 (Apple Macintosh).