Cours : Architecture et fonctionnement du microprocesseur
Filière et Niveau : Génie Informatique - IIA 2
ËL
Enseignant : Mr. Yankam Ngueguim Joël Stéphane
Date : 24 janvier 2025
JO
Chapitre 1 : Architecture et fonctionnement du microprocesseur
V.1. Historique
Le premier microprocesseur a été fabriqué par la société américaine INTEL en 1971. C’était un microprocesseur
4 bits baptisé 4004 destiné à équiper des calculatrices de bureau. En 1972, INTEL a produit le premier micropro-
M
cesseur 8 bits baptisé 8008. Ce microprocesseur était destiné à répondre à un contrat de fabrication d’un terminal.
En réalité, le 8008 s’est révélé trop lent pour satisfaire le cahier des charges du terminal, et INTEL a décidé de
tenter le lancement de ce produit sur le marché grand public.
KA
L’énorme succès de cette initiative fut à l’origine de la fabrication massive des microprocesseurs. Le 8008 est
constitué de 3300 transistors et effectue 60000 instructions par seconde grâce à une horloge à 300KHz. A la suite
du succès du 8008, INTEL produisit, dès 1974, le 8080 qui constituera le premier élément de la future famille
de microprocesseurs de ce fabricant. Fort de ses 6000 transistors, le 8080, doté d’une horloge à 2MHz, effectue
640000 instructions par seconde. En 1974, MOTOROLA, autre fondeur de silicium, décide de lancer le 6800 qui
constituera lui aussi le début d’une grande famille.
N
En 1978, INTEL a réussi à inventer le premier microprocesseur 8086 à 16 bits, étant la base de la famille Intel
80x86 (8086, 80186, 80286, 80386, 80486, Pentium, ...). Plusieurs microprocesseurs actuels sont disponibles à base
YA
de 32 bits ou 64 bits pour la fabrication des ordinateurs.
V.2. Définition
Un microprocesseur est un circuit intégré fabriqué à partir de silicium, dédié à contrôler et traiter les infor-
mations dans un micro-ordinateur. Il est capable d’exécuter des milliers d’instructions par seconde suivant un
r.
programme.
Il faut faire la distinction entre CPU, processeur, microprocesseur et microcontrôleur, DSP :
M
— Le processeur : C’est le nom générique ou commun. C’est un composant (ou une carte électronique) puissant
(par opposition au microprocesseur).
— Le microprocesseur : C’est un composant généraliste (il peut tout faire, et n’est optimisé pour rien),
employé préférentiellement dans les systèmes informatiques, qui nécessite quelques circuits complémentaires
pour pouvoir dialoguer avec son environnement. Selon les types, il peut traiter directement des données de
8, 16, 32, 64 et même quelquefois 128 bits. C’est le composant de base de l’informatique.
— Le microcontrôleur : Il est plus adapté aux applications embarquées car il comporte sur sa puce un certain
nombre d’interfaces en plus du microprocesseur (RAM, ROM, I/O, . . .). Par contre, il est généralement moins
puissant en termes de rapidité ou de taille de mémoire adressable et le plus souvent cantonné aux données
de 8 ou 16 bits.
— Le processeur de signal (DSP : Digital Signal Processor) : Il est optimisé pour le traitement du signal,
mais n’est pas prévu pour accomplir des tâches généralistes de bas niveau qu’exécutent les deux précédents.
Enseignant : Mr Yankam Joël - (Contact : +237 652027193) —- [ 1/9 ] —- Site web : [Link]
ËL
JO
Figure 1 – Le microprocesseur de Marcian Hoff et Federico Faggin inventé en 1971
V.3. Caractéristiques générales d’un microprocesseur
M
Un microprocesseur se définit du point de vue commercial par certaines caractéristiques pour être approprié
aux opérations mathématiques et logiques :
KA
— Le bus de données : C’est la taille de bits de donnée transférée parallèlement vers la mémoire ou l’unité
d’entrée. Cette caractéristique permet de classifier les microprocesseurs tels que 8 bits, 16 bits, 32 bits, 64
bits, etc.
— Espace adressable : Cette caractéristique représente la capacité de spécifier le nombre des cases mémoires
à adresser selon la règle 2k , où k est le nombre des lignes d’adresse du microprocesseur.
N
— Fréquence d’horloge : Le signal d’horloge est un signal de synchronisation qui cadence le fonctionnement
du microprocesseur. Il permet de spécifier la vitesse du microprocesseur. Ce signal provient d’un circuit
YA
oscillateur. Exemple : horloge à 5 MHz, période T = f1 = 0, 2µs. Si l’instruction s’exécute en 3 microcycles,
la durée d’exécution de l’instruction est : 3 × 0, 2 = 0, 6µs.
Pour augmenter les performances d’un microprocesseur, on peut soit augmenter la fréquence d’horloge (limi-
tation matérielle), soit diminuer le CPI (choix d’un jeu d’instruction adapté).
V.4. Brochage et signaux
r.
Un microprocesseur est un circuit intégré se présentant sous forme d’un boîtier DIP (Dual In-line Package). Le
M
nombre des broches est symétrique. Les broches représentent les entrées et les sorties des signaux du microproces-
seur. Ils sont regroupés en six ensembles :
— Les signaux d’alimentation (Vcc, Vss, X1, X2).
— Les signaux de commande du microprocesseur (Reset in, Reset out, Ready, clk, S0, S1).
— Les signaux de commande (RD, WR, O/M, Trap, SOD, SID, HOLD, HLDA).
— Les signaux des adresses et des données (AD0, . . ., AD7, A8, . . ., A15).
— Les signaux d’état (RST5.5, RST6.5, RST7.5).
— Les signaux d’interruption (INTR, INTA).
Il est intéressant de noter que chaque type de microprocesseur possède un nombre spécifique de broches différent
qu’un autre type.
Enseignant : Mr Yankam Joël - (Contact : +237 652027193) —- [ 2/9 ] —- Site web : [Link]
ËL
JO
M
KA
Figure 2 – Brochage du microprocesseur
V.5. Architecture interne d’un microprocesseur
Le microprocesseur comprend essentiellement des blocs fondamentaux pour effectuer ses opérations :
N
YA
r.
M
Figure 3 – Architecture interne standard d’un microprocesseur
a. Unité arithmétique et logique (UAL)
L’unité arithmétique et logique est une unité combinatoire servant à exécuter les opérations mathématiques et
logiques (addition, soustraction, multiplication, ET, OU, . . .).
Enseignant : Mr Yankam Joël - (Contact : +237 652027193) —- [ 3/9 ] —- Site web : [Link]
ËL
JO
Figure 4 – Structure de l’unité arithmétique et logique
Une commande mode permet de spécifier le type de calcul (arithmétique ou logique). La commande fonction
sur k bits permet d’indiquer l’une parmi les 2k fonctions possibles dans le mode considéré. La fonction sélectionnée
s’appliquera sur les données A et B pour fournir le résultat F. L’entrée Cin sera utilisée dans le mode arithmétique
M
comme retenue entrante, tandis que la sortie Cout sera la retenue sortante dans ce même mode arithmétique.
b. Unité de commande et de contrôle
KA
C’est l’unité de contrôle qui supervise le déroulement de toutes les opérations au sein du processeur. Elle est
constituée principalement de :
— L’horloge : C’est l’horloge qui génère les signaux qui permettent le cadencement et la synchronisation de
toutes les opérations. L’horloge n’est pas une montre au sens commun du terme, c’est juste un signal carré
qui a une fréquence fixe (3 GHz par exemple). À chaque coup (front) d’horloge, le microprocesseur réalise
N
une tâche élémentaire. L’exécution d’une instruction nécessite plusieurs coups d’horloges.
— Le compteur programme (PC) : Le compteur programme est un registre (pointeur) qui contient l’adresse
YA
de la case mémoire où est stockée le prochain élément d’instruction qui devra être chargé dans le processeur
pour être analysé et exécuté. Au début de l’exécution d’un programme, le PC est initialisé par le système d’ex-
ploitation à l’adresse mémoire où est stockée la première instruction du programme. Le compteur programme
est incrémenté automatiquement chaque fois qu’un élément d’instruction est chargé dans le processeur.
— Le registre d’instruction (RI) : C’est là où le CPU stocke l’instruction en cours d’exécution.
r.
— Le décodeur : C’est lui qui va "décoder" l’instruction contenue dans RI et générer les signaux logiques
correspondants et les communiquer au séquenceur.
M
— Le séquenceur : Il gère le séquencement des opérations et génère les signaux de commande qui vont activer
tous les éléments qui participeront à l’exécution de l’instruction et spécialement l’ALU.
— Le registre d’état : Le registre d’état est formé de plusieurs bits appelés drapeaux ou indicateurs (Flags)
qui sont positionnés par l’ALU après chaque opération. Par exemple, l’indicateur Z indique quand il est
positionné que le résultat de l’opération est égal à Zéro. L’indicateur C indique que l’opération a généré une
retenue. Le bit N indique que le résultat est négatif.
c. Les registres de stockage temporaire
Le processeur utilise toujours des registres, qui sont des petites mémoires internes très rapides d’accès utilisées
pour stocker temporairement une donnée, une instruction ou une adresse. Chaque registre stocke 8, 16 ou 32 bits.
Le nombre exact de registres dépend du type de processeur et varie typiquement entre une dizaine et une centaine.
Parmi les registres, le plus important est le registre accumulateur, qui est utilisé pour stocker les résultats des
opérations arithmétiques et logiques. L’accumulateur intervient dans une proportion importante des instructions.
Enseignant : Mr Yankam Joël - (Contact : +237 652027193) —- [ 4/9 ] —- Site web : [Link]
d. Notion de pile
La pile est une zone de mémoire RAM utilisée pour conserver le contenu des registres lorsque cela est nécessaire,
pour appeler un sous-programme ou une interruption. Le pointeur de pile (SP, Stack Pointer) doit effectuer l’adresse
de la prochaine instruction à partir de la case mémoire.
V.6. Format d’une instruction
Pour qu’un microprocesseur traite une information, il exécute un programme. Le programme est une suite
d’instructions ordonnées suivant un algorithme structuré. Une instruction est un mot binaire décrivant l’action que
doit exécuter le microprocesseur, par exemple copier une case mémoire dans une autre, ajouter le contenu de deux
cases mémoires, etc.
Ces instructions sont des mots binaires qu’on écrit généralement en hexadécimal, mais pour une plus grande
facilité, on les désignera par leurs « mnémoniques ». La mnémonique est une abréviation en caractère latin. Une
instruction est formée par un ou plusieurs octets. Le premier champ représente l’opération à effectuer et qui est
ËL
appelée l’opcode. Dans le 8085, l’opcode a toujours une taille de 1 octet. L’instruction est formée soit par l’opcode
seul, soit par l’opcode et un opérande. Ce dernier peut être spécifié par différentes formes. Il peut être une donnée
de 8 bits (ou 16 bits), un registre interne ou une adresse d’une position mémoire. Le format d’instruction s’écrit :
JO
Opération à effectuer opérande2 ; opérande 1
V.7. Langage machine
Le langage machine est un langage numérique sous forme binaire exécuté par le microprocesseur après une
traduction ou compilation qui consiste à transformer un code source lisible par un humain en un fichier binaire
M
exécutable par une machine. Tout langage de programmation, pour être exécuté par une machine doit
être à un moment où à un autre traduit en langage binaire.
N KA
YA
r.
Figure 5 – Code Binaire d’un Programme C
M
V.8. Langage assembleur
Le langage assembleur ou langage d’assemblage est un langage informatique de plus bas niveau consistant en
un nombre de symboles appelés mnémoniques, c’est-à-dire des mots abrégés traduits en langage machine pour
exécuter une instruction comme (Add, Soust, Mov, . . .). Le langage machine convertit ces mnémoniques en langage
machine, ainsi que les valeurs (écrites en décimal) en binaire et les libellés d’emplacements en adresses, en vue de
créer par exemple un fichier objet ou un fichier exécutable.
La méthode de programmation en langage assembleur s’établit comme suit :
— Définir le problème à résoudre : que faut-il faire exactement ?
— Déterminer des algorithmes, des organigrammes : comment faire ? Par quoi commencer, puis poursuivre ?
— Rédiger le programme (code source) :
Enseignant : Mr Yankam Joël - (Contact : +237 652027193) —- [ 5/9 ] —- Site web : [Link]
— Utilisation du jeu d’instructions (mnémoniques).
— Création de documents explicatifs (documentation).
— Tester le programme en réel.
— Corriger les erreurs (bugs) éventuelles : déboguer le programme puis refaire des tests jusqu’à obtention d’un
programme fonctionnant de manière satisfaisante.
Réalisation pratique d’un programme
— Rédaction du code source en assembleur à l’aide d’un éditeur (logiciel de traitement de texte ASCII) :
— Édit sous MS-DOS.
— Notepad (bloc-notes) sous Windows.
— Assemblage du code source (traduction des instructions en codes binaires) avec un assembleur :
— MASM de Microsoft.
ËL
— TASM de Borland.
— A86 disponible en shareware sur Internet.
— Pour obtenir le code objet : code machine exécutable par le microprocesseur.
JO
— Chargement en mémoire centrale et exécution : rôle du système d’exploitation (ordinateur) ou d’un moniteur
(carte de développement à base de microprocesseur).
Pour la mise au point (débogage) du programme, on peut utiliser un programme d’aide à la mise au point
(comme DEBUG sous MS-DOS) permettant :
— L’exécution pas à pas. M
— La visualisation du contenu des registres et de la mémoire.
— La pose de points d’arrêt.
KA
Exemple de programme en assembleur
name "add-sub"
org 100h
mov al, 5 ; bin=00000101b
N
mov bl, 10 ; hex=0ah or bin=00001010b
; 5 + 10 = 15 (decimal) or hex=0fh or bin=00001111b
YA
add bl, al
; 15 - 1 = 14 (decimal) or hex=0eh or bin=00001110b
sub bl, 1
; print result in binary:
mov cx, 8
print: mov ah, 2 ; print function.
r.
mov dl, ’0’
test bl, 10000000b ; test first bit.
M
jz zero
mov dl, ’1’
zero: int 21h
shl bl, 1
loop print
; print binary suffix:
mov dl, ’b’
int 21h
; wait for any key press:
mov ah, 0
int 16h
ret
Enseignant : Mr Yankam Joël - (Contact : +237 652027193) —- [ 6/9 ] —- Site web : [Link]
ËL
JO
Figure 6 – Le langage assembleur - Démarche
M
N KA
YA
r.
M
Figure 7 – Le langage assembleur - Pipeline
V.9. Notions d’architecture RISC et CISC
Actuellement, l’architecture des microprocesseurs se compose de deux grandes familles :
— Architecture CISC (Complex Instruction Set Computer) : C’est une architecture avec un grand
nombre d’instructions où le microprocesseur doit exécuter des tâches complexes par instruction unique. Pour
une tâche donnée, une machine CISC exécute ainsi un petit nombre d’instructions, mais chacune nécessite un
plus grand nombre de cycles d’horloge. Le code machine de ces instructions varie d’une instruction à l’autre
et nécessite donc un décodeur complexe (microcode).
— Architecture RISC (Reduced Instruction Set Computer) : C’est une architecture dans laquelle les
Enseignant : Mr Yankam Joël - (Contact : +237 652027193) —- [ 7/9 ] —- Site web : [Link]
instructions sont en nombre réduit (chargement, branchement, appel sous-programme). Les architectures
RISC peuvent donc être réalisées à partir de séquenceur câblé. Leur réalisation libère de la surface permet-
tant d’augmenter le nombre de registres ou d’unités de traitement par exemple. Chacune de ces instructions
s’exécute ainsi en un cycle d’horloge. Bien souvent, ces instructions ne disposent que d’un seul mode d’adres-
sage. Les accès à la mémoire s’effectuent seulement à partir de deux instructions (Load et Store). Par contre,
les instructions complexes doivent être réalisées à partir de séquences basées sur les instructions élémentaires,
ce qui nécessite un compilateur très évolué dans le cas de programmation en langage de haut niveau.
Le choix dépendra des applications visées. En effet, si on diminue le nombre d’instructions, on crée des instruc-
tions complexes (CISC) qui nécessitent plus de cycles pour être décodées, et si on diminue le nombre de cycles par
instruction, on crée des instructions simples (RISC) mais on augmente alors le nombre d’instructions nécessaires
pour réaliser le même traitement.
ËL
JO
M
N KA
YA
r.
M
Figure 8 – L’architecture RISC et CISC
Enseignant : Mr Yankam Joël - (Contact : +237 652027193) —- [ 8/9 ] —- Site web : [Link]
V.10. Notions sur les interruptions
L’interruption est un mécanisme fondamental de tout processeur. Il permet de prendre en compte des événe-
ments extérieurs au processeur et de leur associer un traitement spécifique. Il faut noter que l’exécution d’une
instruction n’est jamais interrompue ; c’est à la fin de l’instruction en cours lors de l’arrivée de l’événement que le
sous-programme d’interruption est exécuté. À la fin de cette procédure, le microcontrôleur reprend le programme
principal à l’endroit où il l’a laissé.
Les interruptions peuvent être causées par des sources externes ou par des sources internes :
— Sources externes :
— Broches parallèles (Exemples : clavier, alarme).
— Ports séries.
— Sources internes :
— Timer.
ËL
— Convertisseur A-N.
— Reset.
Le dernier chapitre VIII détaillera les interruptions et leurs méthodes de programmation dans un système à
microprocesseur.
JO
V.11. Conclusion
Dans ce chapitre, on a décrit l’architecture et le fonctionnement d’un microprocesseur d’une façon générale.
Mais il est important de signaler que chaque type de microprocesseur possède des caractéristiques spécifiques
agissant sur ses performances et sa puissance de traitement des informations. Le chapitre prochain est consacré à
M
l’étude du microprocesseur à 8 bits comme exemple d’application.
N KA
YA
r.
M
Enseignant : Mr Yankam Joël - (Contact : +237 652027193) —- [ 9/9 ] —- Site web : [Link]