Vous êtes sur la page 1sur 14

1/14

Chapitre 0: Généralités sur les mP


Qu’est ce qu’un mP?
Un mP est un composant électronique minuscule, fabriqué le plus souvent en silicium, qui
regroupe un large nombre de transistors élémentaires interconnectés (LSI).

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

(Micro)Processeur & (Micro)Ordinateur


- Un mOrdinateur = Machine automatique  traiter numériquement (00101010) des informations 
Programme : suite d’instructions  Unité Centrale de Traitement (UCT).
- Programme = instructions ordonnées (stockées dans une Mémoire)  traiter un problème
- Transfert d’informations (Micro)Ordinateur  le monde extérieur : Unités Périphériques

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)

- CPU est connectée a la (m)Processeur


Mémoire et les ports E/S, a
PORTS E/S
travers des bandes de fils,
(Adap. Mech. & Elec.) (m)Ordinateur
appelé BUS
(adresse, données et Contrôle)
Unités Périphériques E/S
3/14

Architecture d’un (Micro)Ordinateur

Architecture von Neumann Architecture Harvard


Mem
(Inst. Mem Mem
+Don.) Don. Inst.

Unité de commande
UdC= UdC=
Dec.
E/S UAL mP + E/S UAL Dec.
+
Seq. mP Seq.
4/14

Architecture minimum d’un mP


Mémoire 16 8
(Programme
=
Instructions IP
PC
+
R1
Données)
R2
A15 R3
Bus d’adresse BUS
' D’ADRESSES R4

A0 16 (20/32) bits R5

ACC A
Acc1
Acc2
ACC B
D7 Tampon

Bus de données BUS DE DONNEES


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

Architecture minimum d’un mP


Les registres
Petites mémoires, à accès parallèle, d’un à plusieurs octets. On trouve trois styles de registres :
- qui stockent le résultat de l’instruction traitée;
- qui permettent de retrouver l’adresse de l’information dans la mémoire ;
- qui enregistrent le code de l’instruction qui vient d’être lue dans la mémoire et ramenée dans le mP.

Unité arithmétique et logique (UAL)


Elle est chargée d’exécuter les opérations arithmétiques et logiques du programme.

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.

- Le séquenceur (Le circuit de commande et de séquencement) :


Le séquenceur a pour but de mettre en place chaque section du mP en service à tour de rôle.

Horloge
On peut également trouver le circuit d’une horloge à quartz intégré (ou pas) au mP.
6/ 14

A l’intérieur d’un mOrdinateur


CPU : Registres, UAL, Unité de Commande Bus Données/Adresses/Contrôle

RAM
Périphéries E/S : Écran, Imprimante, Clavier, Disque dur/souple, Carte d’acquisition, …

ROM  Non-volatile, Stockage permanent des programmes et informations essentielles ROM


pour le fonctionnement de l’ordinateur (programmes d’affichage d’informations
sur écran vidéo, …) C Impr.

RAM  Volatile, Stockage temporaire des programmes et données P


Clav.
(logiciels Word, Calcul Taxes, …) U
Quelques Terminologies: Monit.
Bit 0 Octet (Byte) 0000 0000
Quartet (Nibble) 0000 Mot (Word) 0000 0000 0000 0000 Disq.
E/S
KiloOctet (Ko) 210 = 1024 octets (et non [1000] mille octets!!!)
MegaOctet (Mo) 220 = 1048576 octets (et non [106] million octets!!!)
GigaOctet (Go) 230 octets (et non [109] billion octets!!!)
TiraOctet (To) 240 octets (et non [1012] trillion octets!!!)

Exemple: Un micro-ordinateur possède 16 Mo de mémoire  16 x 220 = 224 octets


7/ 14

A l’intérieur d’un mOrdinateur


- Chaque unité (Mémoire, E/S) possède sa propre adresse. Bus d’Addresse
La CPU met l’adresse (en binaire) dans le Bus d’Adresse.
Un circuit de décodage repère l’unité Adressée.

- Ensuite la CPU utilise le Bus de Données pour envoyer


la donnée a l’unité adressée ou acquérir la donnée a C Mémoire Périphéries
partir de cette unité. (Moniteur,
P (RAM, ROM)
Imprimante, )
- Le Bus de Contrôle génère (entre autres) des signaux
de lecture/écriture envers l’unité adressée pour
U
indiquer la direction de transmission des données: Bus de Données
si la CPU lui demande une information
ou plutôt lui envoie une information.
Bus de Contrôle
IMPORTANT:

- 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

A l’intérieur d’un mP (CPU)


Un programme stocké dans une mémoire est un ensemble d’instructions pour la CPU pour performer une action
donnée (contrôle d’un robot). C’est le rôle de la CPU de chercher ces instructions et les exécuter. Pour y parvenir, la
CPU est équipée de:
Registres
Reg. A
C’est des petites mémoires, à accès parallèle, pour stocker une information
Reg. IP Reg. B
temporairement. Celle-ci peut être une valeur a traiter ou l’adresse d’une
valeur a chercher d’une mémoire. Ces registres peuvent être 8, 16, 32 ou 64 bits, Reg. C
suivant la CPU. En générale, plus les registres sont nombreux et de Reg. Inst.
grande taille, meilleure est la CPU. Ceci est au détriment du prix qui croit. Reg. Flag
Decodeur
Unité arithmétique et logique (UAL)
Elle est chargée d’exécuter les opérations arithmétiques et logiques du programme. Sequenceur
UAL
Compteur Programme
Pointe sur l’adresse de la prochaine instruction a exécuter. A chaque fois qu’une instruction est exécutée, le
compteur programme est incrémenté. C’est son contenu qui est placé dans le bus d’adresse pour trouver et chercher
l’instruction désirée. Pour l’IBM PC, ce compteur programme est un registre qui s’intitule IP (pointeur
d’instructions).
Décodeur d’instructions
Son rôle est d’interpréter le code instruction recherché dans la CPU. Il l’analyse et transmet au séquenceur le type
d’opération a exécuter.
Séquenceur
Organise l’exécution de l’instruction en distribuant les m-commandes aux divers blocs du mP suivant le rythme
d’une horloge pilote.
9/ 14

Principe de fonctionnement d’un mP(Ordinateur)


Exemple simple: Addition de 3 nombres (21h, 42h et 12h) avec une CPU imaginaire ayant un bus de
données 8-bit, bus d’adresse 16-bit, et 4 registres A, B, C et D.

La CPU peut donc accéder a une mémoire de 216 = 64K locations : 0000h – FFFFh.

Assumons les codes opération des instructions suivantes:


- “Déplacer une valeur au registre A”  10110000 (B0h)
- “Additionner une valeur au contenu du registre A”  0000 0100 (04h)
- “Additionner une valeur adressée au contenu du registre A”  1010 0111 (A7h)

Les étapes nécessaires sont:

ACTION CODE DONNEES


Déplacer 21h dans le registre A (MOV) B0h 21h
Additionner 42h au contenu de A (ADD) 04h 42h
Additionner 12h adressée par 1800h au contenu de A (ADD) A7h 1800h 12h

Assumons que le programme qui exécute ces actions, est logé dans les locations mémoires a partir de
1400h
10/ 14

Principe de fonctionnement d’un mP(mOrdinateur)


Le contenu du programme dans la mémoire est:

Adresse Mémoire Contenu Commentaires


1400h B0h Déplacer une valeur dans le registre A

1401h 21h La valeur a déplacer

1402h 04h Ajouter une valeur au contenu du registre A

1403h 42h La valeur a ajouter

1404h A7h Ajouter une valeur adressée au contenu du


registre A

1405h 18h Le MSB de l’adresse de la valeur a ajouter

1406h 00h Le LSB de l’ adresse de la valeur a ajouter

1407h F4h Arrêt du programme


1800h 12h Une donnée dans la case 1800h
11/ 14

Principe de fonctionnement d’un mP(mOrdinateur)


- Le IP du CPU est initialisé a la valeur “1400h”, l’adresse de la 1ere instruction a exécuter. La CPU
ANALYSE est prête a exécuter.

- 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

Principe de fonctionnement d’un mP(mOrdinateur)


Unite de commande RAM
16
• Une opération instruction peut prendre
plusieurs cycles d’horloge
• Ceux-ci peuvent être en 2 phases: fetch et

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

10 IN1 +IN2’ OUT

11 IN1 +IN2’+1 OUT


13/ 14

Principe de fonctionnement d’un mP(mOrdinateur)


Exemple: Instruction ADD A, [1800h] est codée  A7 18 00
Adresse Mémoire Contenu Commentaires
1404h A7h Ajouter une valeur adressée au contenu du registre A
1405h 18h Le MSB de l’adresse de la valeur a ajouter
1406h 00h Le LSB de l’ adresse de la valeur a ajouter

1800h 12h La donnée à ajouter
1 2 3 4 5 6 7 8 9
Clk

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 IPBdA IPBdA 1800h
RIA7 RIA718 75A
IP=1404 IPBdA RIA71800
IP1406 12+[A]
IP1405 ALU: (42+21+12)
18BdD 00BdD IP1407
A7BdD 12BdD
14/ 14

Jeu d’Instructions – CISC/RISC

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).

Vous aimerez peut-être aussi